From 4c1485ce2c1d2d985e9733214b211a4f40c0c375 Mon Sep 17 00:00:00 2001 From: marzavec Date: Thu, 12 Apr 2018 17:45:23 -0700 Subject: katex update, added changelog --- client/katex/.gitkeep | 0 client/katex/auto-render.js | 219 - client/katex/contrib/auto-render.js | 790 ++ client/katex/contrib/auto-render.min.js | 2 +- client/katex/contrib/copy-tex.css | 12 + client/katex/contrib/copy-tex.js | 174 + client/katex/contrib/copy-tex.min.css | 1 + client/katex/contrib/copy-tex.min.js | 1 + client/katex/contrib/index.html | 0 client/katex/contrib/mathtex-script-type.js | 113 + client/katex/contrib/mathtex-script-type.min.js | 1 + client/katex/fonts/KaTeX_AMS-Regular.eot | Bin 60728 -> 0 bytes client/katex/fonts/KaTeX_AMS-Regular.ttf | Bin 60540 -> 71428 bytes client/katex/fonts/KaTeX_AMS-Regular.woff | Bin 34948 -> 40200 bytes client/katex/fonts/KaTeX_AMS-Regular.woff2 | Bin 28584 -> 33208 bytes client/katex/fonts/KaTeX_Caligraphic-Bold.eot | Bin 12676 -> 0 bytes client/katex/fonts/KaTeX_Caligraphic-Bold.ttf | Bin 12468 -> 19588 bytes client/katex/fonts/KaTeX_Caligraphic-Bold.woff | Bin 8372 -> 12136 bytes client/katex/fonts/KaTeX_Caligraphic-Bold.woff2 | Bin 7312 -> 10608 bytes client/katex/fonts/KaTeX_Caligraphic-Regular.eot | Bin 12576 -> 0 bytes client/katex/fonts/KaTeX_Caligraphic-Regular.ttf | Bin 12356 -> 18960 bytes client/katex/fonts/KaTeX_Caligraphic-Regular.woff | Bin 8296 -> 11868 bytes client/katex/fonts/KaTeX_Caligraphic-Regular.woff2 | Bin 7288 -> 10412 bytes client/katex/fonts/KaTeX_Fraktur-Bold.eot | Bin 26808 -> 0 bytes client/katex/fonts/KaTeX_Fraktur-Bold.ttf | Bin 26616 -> 35968 bytes client/katex/fonts/KaTeX_Fraktur-Bold.woff | Bin 18268 -> 23388 bytes client/katex/fonts/KaTeX_Fraktur-Bold.woff2 | Bin 16104 -> 20488 bytes client/katex/fonts/KaTeX_Fraktur-Regular.eot | Bin 26200 -> 0 bytes client/katex/fonts/KaTeX_Fraktur-Regular.ttf | Bin 25996 -> 34652 bytes client/katex/fonts/KaTeX_Fraktur-Regular.woff | Bin 17784 -> 22844 bytes client/katex/fonts/KaTeX_Fraktur-Regular.woff2 | Bin 15508 -> 19868 bytes client/katex/fonts/KaTeX_Main-Bold.eot | Bin 49128 -> 0 bytes client/katex/fonts/KaTeX_Main-Bold.ttf | Bin 48948 -> 61772 bytes client/katex/fonts/KaTeX_Main-Bold.woff | Bin 28936 -> 36928 bytes client/katex/fonts/KaTeX_Main-Bold.woff2 | Bin 23816 -> 30824 bytes client/katex/fonts/KaTeX_Main-BoldItalic.ttf | Bin 0 -> 44824 bytes client/katex/fonts/KaTeX_Main-BoldItalic.woff | Bin 0 -> 26228 bytes client/katex/fonts/KaTeX_Main-BoldItalic.woff2 | Bin 0 -> 22176 bytes client/katex/fonts/KaTeX_Main-Italic.eot | Bin 29156 -> 0 bytes client/katex/fonts/KaTeX_Main-Italic.ttf | Bin 28968 -> 47952 bytes client/katex/fonts/KaTeX_Main-Italic.woff | Bin 17576 -> 27200 bytes client/katex/fonts/KaTeX_Main-Italic.woff2 | Bin 14840 -> 23064 bytes client/katex/fonts/KaTeX_Main-Regular.eot | Bin 50048 -> 0 bytes client/katex/fonts/KaTeX_Main-Regular.ttf | Bin 49856 -> 70512 bytes client/katex/fonts/KaTeX_Main-Regular.woff | Bin 28916 -> 39728 bytes client/katex/fonts/KaTeX_Main-Regular.woff2 | Bin 23916 -> 33096 bytes client/katex/fonts/KaTeX_Math-BoldItalic.eot | Bin 26646 -> 0 bytes client/katex/fonts/KaTeX_Math-BoldItalic.ttf | Bin 26440 -> 0 bytes client/katex/fonts/KaTeX_Math-BoldItalic.woff | Bin 16324 -> 0 bytes client/katex/fonts/KaTeX_Math-BoldItalic.woff2 | Bin 13988 -> 0 bytes client/katex/fonts/KaTeX_Math-Italic.eot | Bin 26940 -> 0 bytes client/katex/fonts/KaTeX_Math-Italic.ttf | Bin 26752 -> 41448 bytes client/katex/fonts/KaTeX_Math-Italic.woff | Bin 16580 -> 23820 bytes client/katex/fonts/KaTeX_Math-Italic.woff2 | Bin 14104 -> 20416 bytes client/katex/fonts/KaTeX_Math-Regular.eot | Bin 26876 -> 0 bytes client/katex/fonts/KaTeX_Math-Regular.ttf | Bin 26684 -> 0 bytes client/katex/fonts/KaTeX_Math-Regular.woff | Bin 16516 -> 0 bytes client/katex/fonts/KaTeX_Math-Regular.woff2 | Bin 14124 -> 0 bytes client/katex/fonts/KaTeX_SansSerif-Bold.eot | Bin 22216 -> 0 bytes client/katex/fonts/KaTeX_SansSerif-Bold.ttf | Bin 22016 -> 34032 bytes client/katex/fonts/KaTeX_SansSerif-Bold.woff | Bin 13580 -> 19172 bytes client/katex/fonts/KaTeX_SansSerif-Bold.woff2 | Bin 11084 -> 16000 bytes client/katex/fonts/KaTeX_SansSerif-Italic.eot | Bin 19876 -> 0 bytes client/katex/fonts/KaTeX_SansSerif-Italic.ttf | Bin 19668 -> 31308 bytes client/katex/fonts/KaTeX_SansSerif-Italic.woff | Bin 13140 -> 18128 bytes client/katex/fonts/KaTeX_SansSerif-Italic.woff2 | Bin 10872 -> 15204 bytes client/katex/fonts/KaTeX_SansSerif-Regular.eot | Bin 16972 -> 0 bytes client/katex/fonts/KaTeX_SansSerif-Regular.ttf | Bin 16760 -> 30156 bytes client/katex/fonts/KaTeX_SansSerif-Regular.woff | Bin 11312 -> 16784 bytes client/katex/fonts/KaTeX_SansSerif-Regular.woff2 | Bin 9220 -> 14004 bytes client/katex/fonts/KaTeX_Script-Regular.eot | Bin 14864 -> 0 bytes client/katex/fonts/KaTeX_Script-Regular.ttf | Bin 14664 -> 24864 bytes client/katex/fonts/KaTeX_Script-Regular.woff | Bin 9796 -> 13856 bytes client/katex/fonts/KaTeX_Script-Regular.woff2 | Bin 8700 -> 12268 bytes client/katex/fonts/KaTeX_Size1-Regular.eot | Bin 10580 -> 0 bytes client/katex/fonts/KaTeX_Size1-Regular.ttf | Bin 10384 -> 13172 bytes client/katex/fonts/KaTeX_Size1-Regular.woff | Bin 5724 -> 6980 bytes client/katex/fonts/KaTeX_Size1-Regular.woff2 | Bin 4632 -> 5812 bytes client/katex/fonts/KaTeX_Size2-Regular.eot | Bin 9876 -> 0 bytes client/katex/fonts/KaTeX_Size2-Regular.ttf | Bin 9680 -> 12412 bytes client/katex/fonts/KaTeX_Size2-Regular.woff | Bin 5464 -> 6684 bytes client/katex/fonts/KaTeX_Size2-Regular.woff2 | Bin 4396 -> 5560 bytes client/katex/fonts/KaTeX_Size3-Regular.eot | Bin 5920 -> 0 bytes client/katex/fonts/KaTeX_Size3-Regular.ttf | Bin 5724 -> 8360 bytes client/katex/fonts/KaTeX_Size3-Regular.woff | Bin 3632 -> 4776 bytes client/katex/fonts/KaTeX_Size3-Regular.woff2 | Bin 2812 -> 3860 bytes client/katex/fonts/KaTeX_Size4-Regular.eot | Bin 8684 -> 0 bytes client/katex/fonts/KaTeX_Size4-Regular.ttf | Bin 8488 -> 11284 bytes client/katex/fonts/KaTeX_Size4-Regular.woff | Bin 5268 -> 6456 bytes client/katex/fonts/KaTeX_Size4-Regular.woff2 | Bin 4032 -> 5132 bytes client/katex/fonts/KaTeX_Typewriter-Regular.eot | Bin 24984 -> 0 bytes client/katex/fonts/KaTeX_Typewriter-Regular.ttf | Bin 24768 -> 36308 bytes client/katex/fonts/KaTeX_Typewriter-Regular.woff | Bin 14976 -> 20924 bytes client/katex/fonts/KaTeX_Typewriter-Regular.woff2 | Bin 12272 -> 17536 bytes client/katex/fonts/index.html | 0 client/katex/index.html | 0 client/katex/katex.js | 8246 -------------------- client/katex/katex.less.css | 925 --- client/katex/katex.min.css | 2 +- client/katex/katex.min.js | 7 +- client/katex/katex.tar.gz | Bin 1135671 -> 0 bytes client/katex/katex.zip | Bin 1180333 -> 0 bytes client/katex/katex/README.md | 64 - client/katex/katex/contrib/auto-render.min.js | 1 - client/katex/katex/fonts/KaTeX_AMS-Regular.eot | Bin 60728 -> 0 bytes client/katex/katex/fonts/KaTeX_AMS-Regular.ttf | Bin 60540 -> 0 bytes client/katex/katex/fonts/KaTeX_AMS-Regular.woff | Bin 34948 -> 0 bytes client/katex/katex/fonts/KaTeX_AMS-Regular.woff2 | Bin 28584 -> 0 bytes .../katex/katex/fonts/KaTeX_Caligraphic-Bold.eot | Bin 12676 -> 0 bytes .../katex/katex/fonts/KaTeX_Caligraphic-Bold.ttf | Bin 12468 -> 0 bytes .../katex/katex/fonts/KaTeX_Caligraphic-Bold.woff | Bin 8372 -> 0 bytes .../katex/katex/fonts/KaTeX_Caligraphic-Bold.woff2 | Bin 7312 -> 0 bytes .../katex/fonts/KaTeX_Caligraphic-Regular.eot | Bin 12576 -> 0 bytes .../katex/fonts/KaTeX_Caligraphic-Regular.ttf | Bin 12356 -> 0 bytes .../katex/fonts/KaTeX_Caligraphic-Regular.woff | Bin 8296 -> 0 bytes .../katex/fonts/KaTeX_Caligraphic-Regular.woff2 | Bin 7288 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Bold.eot | Bin 26808 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Bold.ttf | Bin 26616 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Bold.woff | Bin 18268 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Bold.woff2 | Bin 16104 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Regular.eot | Bin 26200 -> 0 bytes client/katex/katex/fonts/KaTeX_Fraktur-Regular.ttf | Bin 25996 -> 0 bytes .../katex/katex/fonts/KaTeX_Fraktur-Regular.woff | Bin 17784 -> 0 bytes .../katex/katex/fonts/KaTeX_Fraktur-Regular.woff2 | Bin 15508 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Bold.eot | Bin 49128 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Bold.ttf | Bin 48948 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Bold.woff | Bin 28936 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Bold.woff2 | Bin 23816 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Italic.eot | Bin 29156 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Italic.ttf | Bin 28968 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Italic.woff | Bin 17576 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Italic.woff2 | Bin 14840 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Regular.eot | Bin 50048 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Regular.ttf | Bin 49856 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Regular.woff | Bin 28916 -> 0 bytes client/katex/katex/fonts/KaTeX_Main-Regular.woff2 | Bin 23916 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-BoldItalic.eot | Bin 26646 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-BoldItalic.ttf | Bin 26440 -> 0 bytes .../katex/katex/fonts/KaTeX_Math-BoldItalic.woff | Bin 16324 -> 0 bytes .../katex/katex/fonts/KaTeX_Math-BoldItalic.woff2 | Bin 13988 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Italic.eot | Bin 26940 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Italic.ttf | Bin 26752 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Italic.woff | Bin 16580 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Italic.woff2 | Bin 14104 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Regular.eot | Bin 26876 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Regular.ttf | Bin 26684 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Regular.woff | Bin 16516 -> 0 bytes client/katex/katex/fonts/KaTeX_Math-Regular.woff2 | Bin 14124 -> 0 bytes client/katex/katex/fonts/KaTeX_SansSerif-Bold.eot | Bin 22216 -> 0 bytes client/katex/katex/fonts/KaTeX_SansSerif-Bold.ttf | Bin 22016 -> 0 bytes client/katex/katex/fonts/KaTeX_SansSerif-Bold.woff | Bin 13580 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Bold.woff2 | Bin 11084 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Italic.eot | Bin 19876 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Italic.ttf | Bin 19668 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Italic.woff | Bin 13140 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Italic.woff2 | Bin 10872 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Regular.eot | Bin 16972 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Regular.ttf | Bin 16760 -> 0 bytes .../katex/katex/fonts/KaTeX_SansSerif-Regular.woff | Bin 11312 -> 0 bytes .../katex/fonts/KaTeX_SansSerif-Regular.woff2 | Bin 9220 -> 0 bytes client/katex/katex/fonts/KaTeX_Script-Regular.eot | Bin 14864 -> 0 bytes client/katex/katex/fonts/KaTeX_Script-Regular.ttf | Bin 14664 -> 0 bytes client/katex/katex/fonts/KaTeX_Script-Regular.woff | Bin 9796 -> 0 bytes .../katex/katex/fonts/KaTeX_Script-Regular.woff2 | Bin 8700 -> 0 bytes client/katex/katex/fonts/KaTeX_Size1-Regular.eot | Bin 10580 -> 0 bytes client/katex/katex/fonts/KaTeX_Size1-Regular.ttf | Bin 10384 -> 0 bytes client/katex/katex/fonts/KaTeX_Size1-Regular.woff | Bin 5724 -> 0 bytes client/katex/katex/fonts/KaTeX_Size1-Regular.woff2 | Bin 4632 -> 0 bytes client/katex/katex/fonts/KaTeX_Size2-Regular.eot | Bin 9876 -> 0 bytes client/katex/katex/fonts/KaTeX_Size2-Regular.ttf | Bin 9680 -> 0 bytes client/katex/katex/fonts/KaTeX_Size2-Regular.woff | Bin 5464 -> 0 bytes client/katex/katex/fonts/KaTeX_Size2-Regular.woff2 | Bin 4396 -> 0 bytes client/katex/katex/fonts/KaTeX_Size3-Regular.eot | Bin 5920 -> 0 bytes client/katex/katex/fonts/KaTeX_Size3-Regular.ttf | Bin 5724 -> 0 bytes client/katex/katex/fonts/KaTeX_Size3-Regular.woff | Bin 3632 -> 0 bytes client/katex/katex/fonts/KaTeX_Size3-Regular.woff2 | Bin 2812 -> 0 bytes client/katex/katex/fonts/KaTeX_Size4-Regular.eot | Bin 8684 -> 0 bytes client/katex/katex/fonts/KaTeX_Size4-Regular.ttf | Bin 8488 -> 0 bytes client/katex/katex/fonts/KaTeX_Size4-Regular.woff | Bin 5268 -> 0 bytes client/katex/katex/fonts/KaTeX_Size4-Regular.woff2 | Bin 4032 -> 0 bytes .../katex/katex/fonts/KaTeX_Typewriter-Regular.eot | Bin 24984 -> 0 bytes .../katex/katex/fonts/KaTeX_Typewriter-Regular.ttf | Bin 24768 -> 0 bytes .../katex/fonts/KaTeX_Typewriter-Regular.woff | Bin 14976 -> 0 bytes .../katex/fonts/KaTeX_Typewriter-Regular.woff2 | Bin 12272 -> 0 bytes client/katex/katex/katex.min.css | 1 - client/katex/katex/katex.min.js | 6 - 186 files changed, 1095 insertions(+), 9470 deletions(-) delete mode 100644 client/katex/.gitkeep delete mode 100644 client/katex/auto-render.js create mode 100644 client/katex/contrib/auto-render.js create mode 100644 client/katex/contrib/copy-tex.css create mode 100644 client/katex/contrib/copy-tex.js create mode 100644 client/katex/contrib/copy-tex.min.css create mode 100644 client/katex/contrib/copy-tex.min.js create mode 100644 client/katex/contrib/index.html create mode 100644 client/katex/contrib/mathtex-script-type.js create mode 100644 client/katex/contrib/mathtex-script-type.min.js delete mode 100644 client/katex/fonts/KaTeX_AMS-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Caligraphic-Bold.eot delete mode 100644 client/katex/fonts/KaTeX_Caligraphic-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Fraktur-Bold.eot delete mode 100644 client/katex/fonts/KaTeX_Fraktur-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Main-Bold.eot create mode 100644 client/katex/fonts/KaTeX_Main-BoldItalic.ttf create mode 100644 client/katex/fonts/KaTeX_Main-BoldItalic.woff create mode 100644 client/katex/fonts/KaTeX_Main-BoldItalic.woff2 delete mode 100644 client/katex/fonts/KaTeX_Main-Italic.eot delete mode 100644 client/katex/fonts/KaTeX_Main-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Math-BoldItalic.eot delete mode 100644 client/katex/fonts/KaTeX_Math-BoldItalic.ttf delete mode 100644 client/katex/fonts/KaTeX_Math-BoldItalic.woff delete mode 100644 client/katex/fonts/KaTeX_Math-BoldItalic.woff2 delete mode 100644 client/katex/fonts/KaTeX_Math-Italic.eot delete mode 100644 client/katex/fonts/KaTeX_Math-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Math-Regular.ttf delete mode 100644 client/katex/fonts/KaTeX_Math-Regular.woff delete mode 100644 client/katex/fonts/KaTeX_Math-Regular.woff2 delete mode 100644 client/katex/fonts/KaTeX_SansSerif-Bold.eot delete mode 100644 client/katex/fonts/KaTeX_SansSerif-Italic.eot delete mode 100644 client/katex/fonts/KaTeX_SansSerif-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Script-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Size1-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Size2-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Size3-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Size4-Regular.eot delete mode 100644 client/katex/fonts/KaTeX_Typewriter-Regular.eot create mode 100644 client/katex/fonts/index.html create mode 100644 client/katex/index.html delete mode 100644 client/katex/katex.js delete mode 100644 client/katex/katex.less.css delete mode 100644 client/katex/katex.tar.gz delete mode 100644 client/katex/katex.zip delete mode 100644 client/katex/katex/README.md delete mode 100644 client/katex/katex/contrib/auto-render.min.js delete mode 100644 client/katex/katex/fonts/KaTeX_AMS-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_AMS-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_AMS-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_AMS-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Bold.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Bold.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Bold.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Bold.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Caligraphic-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Bold.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Bold.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Bold.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Bold.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Fraktur-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Bold.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Bold.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Bold.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Bold.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Italic.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Italic.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Italic.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Italic.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Main-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Math-BoldItalic.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Math-BoldItalic.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Math-BoldItalic.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Math-BoldItalic.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Italic.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Italic.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Italic.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Italic.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Math-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Bold.eot delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Bold.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Bold.woff delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Bold.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Italic.eot delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Italic.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Italic.woff delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Italic.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_SansSerif-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Script-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Script-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Script-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Script-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Size1-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Size1-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Size1-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Size1-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Size2-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Size2-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Size2-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Size2-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Size3-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Size3-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Size3-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Size3-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Size4-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Size4-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Size4-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Size4-Regular.woff2 delete mode 100644 client/katex/katex/fonts/KaTeX_Typewriter-Regular.eot delete mode 100644 client/katex/katex/fonts/KaTeX_Typewriter-Regular.ttf delete mode 100644 client/katex/katex/fonts/KaTeX_Typewriter-Regular.woff delete mode 100644 client/katex/katex/fonts/KaTeX_Typewriter-Regular.woff2 delete mode 100644 client/katex/katex/katex.min.css delete mode 100644 client/katex/katex/katex.min.js (limited to 'client/katex') diff --git a/client/katex/.gitkeep b/client/katex/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/client/katex/auto-render.js b/client/katex/auto-render.js deleted file mode 100644 index 3943dc0..0000000 --- a/client/katex/auto-render.js +++ /dev/null @@ -1,219 +0,0 @@ -(function(e){if("function"==typeof bootstrap)bootstrap("rendermathinelement",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeRenderMathInElement=e}else"undefined"!=typeof window?window.renderMathInElement=e():global.renderMathInElement=e()})(function(){var define,ses,bootstrap,module,exports; -return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0 ? floor : ceil)(it); +}; + +/***/ }), +/* 9 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(10); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex__ = __webpack_require__(38); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_katex__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__ = __webpack_require__(39); + +/* eslint no-console:0 */ + + + + +var splitWithDelimiters = function splitWithDelimiters(text, delimiters) { + var data = [{ type: "text", data: text }]; + for (var i = 0; i < delimiters.length; i++) { + var delimiter = delimiters[i]; + data = Object(__WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__["a" /* default */])(data, delimiter.left, delimiter.right, delimiter.display || false); + } + return data; +}; + +/* Note: optionsCopy is mutated by this method. If it is ever exposed in the + * API, we should copy it before mutating. + */ +var renderMathInText = function renderMathInText(text, optionsCopy) { + var data = splitWithDelimiters(text, optionsCopy.delimiters); + var fragment = document.createDocumentFragment(); + + for (var i = 0; i < data.length; i++) { + if (data[i].type === "text") { + fragment.appendChild(document.createTextNode(data[i].data)); + } else { + var span = document.createElement("span"); + var math = data[i].data; + // Override any display mode defined in the settings with that + // defined by the text itself + optionsCopy.displayMode = data[i].display; + try { + __WEBPACK_IMPORTED_MODULE_1_katex___default.a.render(math, span, optionsCopy); + } catch (e) { + if (!(e instanceof __WEBPACK_IMPORTED_MODULE_1_katex___default.a.ParseError)) { + throw e; + } + optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e); + fragment.appendChild(document.createTextNode(data[i].rawData)); + continue; + } + fragment.appendChild(span); + } + } + + return fragment; +}; + +var renderElem = function renderElem(elem, optionsCopy) { + for (var i = 0; i < elem.childNodes.length; i++) { + var childNode = elem.childNodes[i]; + if (childNode.nodeType === 3) { + // Text node + var frag = renderMathInText(childNode.textContent, optionsCopy); + i += frag.childNodes.length - 1; + elem.replaceChild(frag, childNode); + } else if (childNode.nodeType === 1) { + // Element node + var shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1; + + if (shouldRender) { + renderElem(childNode, optionsCopy); + } + } + // Otherwise, it's something else, and ignore it. + } +}; + +var defaultAutoRenderOptions = { + delimiters: [{ left: "$$", right: "$$", display: true }, { left: "\\[", right: "\\]", display: true }, { left: "\\(", right: "\\)", display: false }], + + ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"], + + errorCallback: function errorCallback(msg, err) { + console.error(msg, err); + } +}; + +var renderMathInElement = function renderMathInElement(elem, options) { + if (!elem) { + throw new Error("No element provided to render"); + } + + var optionsCopy = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, defaultAutoRenderOptions, options); + renderElem(elem, optionsCopy); +}; + +/* harmony default export */ __webpack_exports__["default"] = (renderMathInElement); + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(11), __esModule: true }; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(12); +module.exports = __webpack_require__(4).Object.assign; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.1 Object.assign(target, source) +var $export = __webpack_require__(13); + +$export($export.S + $export.F, 'Object', {assign: __webpack_require__(23)}); + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0) + , core = __webpack_require__(4) + , ctx = __webpack_require__(14) + , hide = __webpack_require__(16) + , PROTOTYPE = 'prototype'; + +var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , expProto = exports[PROTOTYPE] + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(a, b, c){ + if(this instanceof C){ + switch(arguments.length){ + case 0: return new C; + case 1: return new C(a); + case 2: return new C(a, b); + } return new C(a, b, c); + } return C.apply(this, arguments); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% + if(IS_PROTO){ + (exports.virtual || (exports.virtual = {}))[key] = out; + // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% + if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); + } + } +}; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +$export.U = 64; // safe +$export.R = 128; // real proto method for `library` +module.exports = $export; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(15); +module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +module.exports = function(it){ + if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + return it; +}; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(17) + , createDesc = __webpack_require__(22); +module.exports = __webpack_require__(2) ? function(object, key, value){ + return dP.f(object, key, createDesc(1, value)); +} : function(object, key, value){ + object[key] = value; + return object; +}; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(18) + , IE8_DOM_DEFINE = __webpack_require__(19) + , toPrimitive = __webpack_require__(21) + , dP = Object.defineProperty; + +exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes){ + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if(IE8_DOM_DEFINE)try { + return dP(O, P, Attributes); + } catch(e){ /* empty */ } + if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); + if('value' in Attributes)O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(1); +module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; +}; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = !__webpack_require__(2) && !__webpack_require__(3)(function(){ + return Object.defineProperty(__webpack_require__(20)('div'), 'a', {get: function(){ return 7; }}).a != 7; +}); + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(1) + , document = __webpack_require__(0).document + // in old IE typeof document.createElement is 'object' + , is = isObject(document) && isObject(document.createElement); +module.exports = function(it){ + return is ? document.createElement(it) : {}; +}; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__(1); +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function(it, S){ + if(!isObject(it))return it; + var fn, val; + if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; + if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + throw TypeError("Can't convert object to primitive value"); +}; + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + +module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; +}; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.2.1 Object.assign(target, source, ...) +var getKeys = __webpack_require__(24) + , gOPS = __webpack_require__(35) + , pIE = __webpack_require__(36) + , toObject = __webpack_require__(37) + , IObject = __webpack_require__(6) + , $assign = Object.assign; + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = !$assign || __webpack_require__(3)(function(){ + var A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , aLen = arguments.length + , index = 1 + , getSymbols = gOPS.f + , isEnum = pIE.f; + while(aLen > index){ + var S = IObject(arguments[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } return T; +} : $assign; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__(25) + , enumBugKeys = __webpack_require__(34); + +module.exports = Object.keys || function keys(O){ + return $keys(O, enumBugKeys); +}; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(26) + , toIObject = __webpack_require__(5) + , arrayIndexOf = __webpack_require__(28)(false) + , IE_PROTO = __webpack_require__(31)('IE_PROTO'); + +module.exports = function(object, names){ + var O = toIObject(object) + , i = 0 + , result = [] + , key; + for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while(names.length > i)if(has(O, key = names[i++])){ + ~arrayIndexOf(result, key) || result.push(key); + } + return result; +}; + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function(it, key){ + return hasOwnProperty.call(it, key); +}; + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function(it){ + return toString.call(it).slice(8, -1); +}; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__(5) + , toLength = __webpack_require__(29) + , toIndex = __webpack_require__(30); +module.exports = function(IS_INCLUDES){ + return function($this, el, fromIndex){ + var O = toIObject($this) + , length = toLength(O.length) + , index = toIndex(fromIndex, length) + , value; + // Array#includes uses SameValueZero equality algorithm + if(IS_INCLUDES && el != el)while(length > index){ + value = O[index++]; + if(value != value)return true; + // Array#toIndex ignores holes, Array#includes - not + } else for(;length > index; index++)if(IS_INCLUDES || index in O){ + if(O[index] === el)return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__(8) + , min = Math.min; +module.exports = function(it){ + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(8) + , max = Math.max + , min = Math.min; +module.exports = function(index, length){ + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(32)('keys') + , uid = __webpack_require__(33); +module.exports = function(key){ + return shared[key] || (shared[key] = uid(key)); +}; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0) + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); +module.exports = function(key){ + return store[key] || (store[key] = {}); +}; + +/***/ }), +/* 33 */ +/***/ (function(module, exports) { + +var id = 0 + , px = Math.random(); +module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + +/***/ }), +/* 34 */ +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' +).split(','); + +/***/ }), +/* 35 */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 36 */ +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(7); +module.exports = function(it){ + return Object(defined(it)); +}; + +/***/ }), +/* 38 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_38__; + +/***/ }), +/* 39 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* eslint no-constant-condition:0 */ +var findEndOfMath = function findEndOfMath(delimiter, text, startIndex) { + // Adapted from + // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx + var index = startIndex; + var braceLevel = 0; + + var delimLength = delimiter.length; + + while (index < text.length) { + var character = text[index]; + + if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) { + return index; + } else if (character === "\\") { + index++; + } else if (character === "{") { + braceLevel++; + } else if (character === "}") { + braceLevel--; + } + + index++; + } + + return -1; +}; + +var splitAtDelimiters = function splitAtDelimiters(startData, leftDelim, rightDelim, display) { + var finalData = []; + + for (var i = 0; i < startData.length; i++) { + if (startData[i].type === "text") { + var text = startData[i].data; + + var lookingForLeft = true; + var currIndex = 0; + var nextIndex = void 0; + + nextIndex = text.indexOf(leftDelim); + if (nextIndex !== -1) { + currIndex = nextIndex; + finalData.push({ + type: "text", + data: text.slice(0, currIndex) + }); + lookingForLeft = false; + } + + while (true) { + if (lookingForLeft) { + nextIndex = text.indexOf(leftDelim, currIndex); + if (nextIndex === -1) { + break; + } + + finalData.push({ + type: "text", + data: text.slice(currIndex, nextIndex) + }); + + currIndex = nextIndex; + } else { + nextIndex = findEndOfMath(rightDelim, text, currIndex + leftDelim.length); + if (nextIndex === -1) { + break; + } + + finalData.push({ + type: "math", + data: text.slice(currIndex + leftDelim.length, nextIndex), + rawData: text.slice(currIndex, nextIndex + rightDelim.length), + display: display + }); + + currIndex = nextIndex + rightDelim.length; + } + + lookingForLeft = !lookingForLeft; + } + + finalData.push({ + type: "text", + data: text.slice(currIndex) + }); + } else { + finalData.push(startData[i]); + } + } + + return finalData; +}; + +/* harmony default export */ __webpack_exports__["a"] = (splitAtDelimiters); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/client/katex/contrib/auto-render.min.js b/client/katex/contrib/auto-render.min.js index 5eab253..a93360a 100644 --- a/client/katex/contrib/auto-render.min.js +++ b/client/katex/contrib/auto-render.min.js @@ -1 +1 @@ -(function(e){if("function"==typeof bootstrap)bootstrap("rendermathinelement",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeRenderMathInElement=e}else"undefined"!=typeof window?window.renderMathInElement=e():global.renderMathInElement=e()})(function(){var e,t,r,n,a;return function i(e,t,r){function n(o,l){if(!t[o]){if(!e[o]){var f=typeof require=="function"&&require;if(!l&&f)return f(o,!0);if(a)return a(o,!0);throw new Error("Cannot find module '"+o+"'")}var s=t[o]={exports:{}};e[o][0].call(s.exports,function(t){var r=e[o][1][t];return n(r?r:t)},s,s.exports,i,e,t,r)}return t[o].exports}var a=typeof require=="function"&&require;for(var o=0;o0?r:n)(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(10),o=n.n(r),i=n(38),u=n.n(i),c=n(39),a=function(t,e){for(var n=function(t,e){for(var n=[{type:"text",data:t}],r=0;rf;)for(var p,d=c(arguments[f++]),h=s?r(d).concat(s(d)):r(d),v=h.length,y=0;v>y;)l.call(d,p=h[y++])&&(n[p]=d[p]);return n}:a},function(t,e,n){var r=n(25),o=n(34);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(26),o=n(5),i=n(28)(!1),u=n(31)("IE_PROTO");t.exports=function(t,e){var n,c=o(t),a=0,f=[];for(n in c)n!=u&&r(c,n)&&f.push(n);for(;e.length>a;)r(c,n=e[a++])&&(~i(f,n)||f.push(n));return f}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(5),o=n(29),i=n(30);t.exports=function(t){return function(e,n,u){var c,a=r(e),f=o(a.length),s=i(u,f);if(t&&n!=n){for(;f>s;)if((c=a[s++])!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===n)return t||s||0;return!t&&-1}}},function(t,e,n){var r=n(8),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(8),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(32)("keys"),o=n(33);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(0),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(7);t.exports=function(t){return Object(r(t))}},function(e,n){e.exports=t},function(t,e,n){"use strict";var r=function(t,e,n){for(var r=n,o=0,i=t.length;r element). +// Modifies fragment in-place. Useful for writing your own 'copy' handler, +// as in copy-tex.js. +var katexReplaceWithTex = function katexReplaceWithTex(fragment) { + var copyDelimiters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCopyDelimiters; + + // Remove .katex-html blocks that are preceded by .katex-mathml blocks + // (which will get replaced below). + var katexHtml = fragment.querySelectorAll('.katex-mathml + .katex-html'); + for (var i = 0; i < katexHtml.length; i++) { + var element = katexHtml[i]; + if (element.remove) { + element.remove(null); + } else { + element.parentNode.removeChild(element); + } + } + // Replace .katex-mathml elements with their annotation (TeX source) + // descendant, with inline delimiters. + var katexMathml = fragment.querySelectorAll('.katex-mathml'); + for (var _i = 0; _i < katexMathml.length; _i++) { + var _element = katexMathml[_i]; + var texSource = _element.querySelector('annotation'); + if (texSource) { + if (_element.replaceWith) { + _element.replaceWith(texSource); + } else { + _element.parentNode.replaceChild(texSource, _element); + } + texSource.innerHTML = copyDelimiters.inline[0] + texSource.innerHTML + copyDelimiters.inline[1]; + } + } + // Switch display math to display delimiters. + var displays = fragment.querySelectorAll('.katex-display annotation'); + for (var _i2 = 0; _i2 < displays.length; _i2++) { + var _element2 = displays[_i2]; + _element2.innerHTML = copyDelimiters.display[0] + _element2.innerHTML.substr(copyDelimiters.inline[0].length, _element2.innerHTML.length - copyDelimiters.inline[0].length - copyDelimiters.inline[1].length) + copyDelimiters.display[1]; + } + return fragment; +}; + +/* harmony default export */ __webpack_exports__["a"] = (katexReplaceWithTex); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/client/katex/contrib/copy-tex.min.css b/client/katex/contrib/copy-tex.min.css new file mode 100644 index 0000000..e5b8b8f --- /dev/null +++ b/client/katex/contrib/copy-tex.min.css @@ -0,0 +1 @@ +.katex,.katex-display{user-select:all;-moz-user-select:all;-webkit-user-select:all;-ms-user-select:all} \ No newline at end of file diff --git a/client/katex/contrib/copy-tex.min.js b/client/katex/contrib/copy-tex.min.js new file mode 100644 index 0000000..5222cbe --- /dev/null +++ b/client/katex/contrib/copy-tex.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=(n.n(r),n(2));document.addEventListener("copy",function(e){var t=window.getSelection();if(!t.isCollapsed){var n=t.getRangeAt(0).cloneContents();if(n.querySelector(".katex-mathml")){for(var r=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:r,n=e.querySelectorAll(".katex-mathml + .katex-html"),o=0;o:]/, // rels - /[,;]/, // punctuation - /['\^_{}]/, // misc - /[(\[]/, // opens - /[)\]?!]/, // closes - /~/, // spacing - /&/, // horizontal alignment - /\\\\/ // line break -]; - -// These are "normal" tokens like above, but should instead be parsed in text -// mode. -var textNormals = [ - /[a-zA-Z0-9`!@*()-=+\[\]'";:?\/.,]/, // ords - /[{}]/, // grouping - /~/, // spacing - /&/, // horizontal alignment - /\\\\/ // line break -]; - -// Regexes for matching whitespace -var whitespaceRegex = /\s*/; -var whitespaceConcatRegex = / +|\\ +/; - -// This regex matches any other TeX function, which is a backslash followed by a -// word or a single symbol -var anyFunc = /\\(?:[a-zA-Z]+|.)/; - -/** - * This function lexes a single normal token. It takes a position, a list of - * "normal" tokens to try, and whether it should completely ignore whitespace or - * not. - */ -Lexer.prototype._innerLex = function(pos, normals, ignoreWhitespace) { - var input = this._input; - var whitespace; - - if (ignoreWhitespace) { - // Get rid of whitespace. - whitespace = matchAt(whitespaceRegex, input, pos)[0]; - pos += whitespace.length; - } else { - // Do the funky concatenation of whitespace that happens in text mode. - whitespace = matchAt(whitespaceConcatRegex, input, pos); - if (whitespace !== null) { - return new Token(" ", null, pos + whitespace[0].length); - } - } - - // If there's no more input to parse, return an EOF token - if (pos === input.length) { - return new Token("EOF", null, pos); - } - - var match; - if ((match = matchAt(anyFunc, input, pos))) { - // If we match a function token, return it - return new Token(match[0], null, pos + match[0].length); - } else { - // Otherwise, we look through the normal token regexes and see if it's - // one of them. - for (var i = 0; i < normals.length; i++) { - var normal = normals[i]; - - if ((match = matchAt(normal, input, pos))) { - // If it is, return it - return new Token( - match[0], null, pos + match[0].length); - } - } - } - - throw new ParseError( - "Unexpected character: '" + input[pos] + "'", - this, pos); -}; - -// A regex to match a CSS color (like #ffffff or BlueViolet) -var cssColor = /#[a-z0-9]+|[a-z]+/i; - -/** - * This function lexes a CSS color. - */ -Lexer.prototype._innerLexColor = function(pos) { - var input = this._input; - - // Ignore whitespace - var whitespace = matchAt(whitespaceRegex, input, pos)[0]; - pos += whitespace.length; - - var match; - if ((match = matchAt(cssColor, input, pos))) { - // If we look like a color, return a color - return new Token(match[0], null, pos + match[0].length); - } else { - throw new ParseError("Invalid color", this, pos); - } -}; - -// A regex to match a dimension. Dimensions look like -// "1.2em" or ".4pt" or "1 ex" -var sizeRegex = /(-?)\s*(\d+(?:\.\d*)?|\.\d+)\s*([a-z]{2})/; - -/** - * This function lexes a dimension. - */ -Lexer.prototype._innerLexSize = function(pos) { - var input = this._input; - - // Ignore whitespace - var whitespace = matchAt(whitespaceRegex, input, pos)[0]; - pos += whitespace.length; - - var match; - if ((match = matchAt(sizeRegex, input, pos))) { - var unit = match[3]; - // We only currently handle "em" and "ex" units - if (unit !== "em" && unit !== "ex") { - throw new ParseError("Invalid unit: '" + unit + "'", this, pos); - } - return new Token(match[0], { - number: +(match[1] + match[2]), - unit: unit - }, pos + match[0].length); - } - - throw new ParseError("Invalid size", this, pos); -}; - -/** - * This function lexes a string of whitespace. - */ -Lexer.prototype._innerLexWhitespace = function(pos) { - var input = this._input; - - var whitespace = matchAt(whitespaceRegex, input, pos)[0]; - pos += whitespace.length; - - return new Token(whitespace[0], null, pos); -}; - -/** - * This function lexes a single token starting at `pos` and of the given mode. - * Based on the mode, we defer to one of the `_innerLex` functions. - */ -Lexer.prototype.lex = function(pos, mode) { - if (mode === "math") { - return this._innerLex(pos, mathNormals, true); - } else if (mode === "text") { - return this._innerLex(pos, textNormals, false); - } else if (mode === "color") { - return this._innerLexColor(pos); - } else if (mode === "size") { - return this._innerLexSize(pos); - } else if (mode === "whitespace") { - return this._innerLexWhitespace(pos); - } -}; - -module.exports = Lexer; - -},{"./ParseError":5,"match-at":2}],4:[function(require,module,exports){ -/** - * This file contains information about the options that the Parser carries - * around with it while parsing. Data is held in an `Options` object, and when - * recursing, a new `Options` object can be created with the `.with*` and - * `.reset` functions. - */ - -/** - * This is the main options class. It contains the style, size, color, and font - * of the current parse level. It also contains the style and size of the parent - * parse level, so size changes can be handled efficiently. - * - * Each of the `.with*` and `.reset` functions passes its current style and size - * as the parentStyle and parentSize of the new options class, so parent - * handling is taken care of automatically. - */ -function Options(data) { - this.style = data.style; - this.color = data.color; - this.size = data.size; - this.phantom = data.phantom; - this.font = data.font; - - if (data.parentStyle === undefined) { - this.parentStyle = data.style; - } else { - this.parentStyle = data.parentStyle; - } - - if (data.parentSize === undefined) { - this.parentSize = data.size; - } else { - this.parentSize = data.parentSize; - } -} - -/** - * Returns a new options object with the same properties as "this". Properties - * from "extension" will be copied to the new options object. - */ -Options.prototype.extend = function(extension) { - var data = { - style: this.style, - size: this.size, - color: this.color, - parentStyle: this.style, - parentSize: this.size, - phantom: this.phantom, - font: this.font - }; - - for (var key in extension) { - if (extension.hasOwnProperty(key)) { - data[key] = extension[key]; - } - } - - return new Options(data); -}; - -/** - * Create a new options object with the given style. - */ -Options.prototype.withStyle = function(style) { - return this.extend({ - style: style - }); -}; - -/** - * Create a new options object with the given size. - */ -Options.prototype.withSize = function(size) { - return this.extend({ - size: size - }); -}; - -/** - * Create a new options object with the given color. - */ -Options.prototype.withColor = function(color) { - return this.extend({ - color: color - }); -}; - -/** - * Create a new options object with "phantom" set to true. - */ -Options.prototype.withPhantom = function() { - return this.extend({ - phantom: true - }); -}; - -/** - * Create a new options objects with the give font. - */ -Options.prototype.withFont = function(font) { - return this.extend({ - font: font - }); -}; - -/** - * Create a new options object with the same style, size, and color. This is - * used so that parent style and size changes are handled correctly. - */ -Options.prototype.reset = function() { - return this.extend({}); -}; - -/** - * A map of color names to CSS colors. - * TODO(emily): Remove this when we have real macros - */ -var colorMap = { - "katex-blue": "#6495ed", - "katex-orange": "#ffa500", - "katex-pink": "#ff00af", - "katex-red": "#df0030", - "katex-green": "#28ae7b", - "katex-gray": "gray", - "katex-purple": "#9d38bd", - "katex-blueA": "#c7e9f1", - "katex-blueB": "#9cdceb", - "katex-blueC": "#58c4dd", - "katex-blueD": "#29abca", - "katex-blueE": "#1c758a", - "katex-tealA": "#acead7", - "katex-tealB": "#76ddc0", - "katex-tealC": "#5cd0b3", - "katex-tealD": "#55c1a7", - "katex-tealE": "#49a88f", - "katex-greenA": "#c9e2ae", - "katex-greenB": "#a6cf8c", - "katex-greenC": "#83c167", - "katex-greenD": "#77b05d", - "katex-greenE": "#699c52", - "katex-goldA": "#f7c797", - "katex-goldB": "#f9b775", - "katex-goldC": "#f0ac5f", - "katex-goldD": "#e1a158", - "katex-goldE": "#c78d46", - "katex-redA": "#f7a1a3", - "katex-redB": "#ff8080", - "katex-redC": "#fc6255", - "katex-redD": "#e65a4c", - "katex-redE": "#cf5044", - "katex-maroonA": "#ecabc1", - "katex-maroonB": "#ec92ab", - "katex-maroonC": "#c55f73", - "katex-maroonD": "#a24d61", - "katex-maroonE": "#94424f", - "katex-purpleA": "#caa3e8", - "katex-purpleB": "#b189c6", - "katex-purpleC": "#9a72ac", - "katex-purpleD": "#715582", - "katex-purpleE": "#644172", - "katex-mintA": "#f5f9e8", - "katex-mintB": "#edf2df", - "katex-mintC": "#e0e5cc", - "katex-grayA": "#fdfdfd", - "katex-grayB": "#f7f7f7", - "katex-grayC": "#eeeeee", - "katex-grayD": "#dddddd", - "katex-grayE": "#cccccc", - "katex-grayF": "#aaaaaa", - "katex-grayG": "#999999", - "katex-grayH": "#555555", - "katex-grayI": "#333333", - "katex-kaBlue": "#314453", - "katex-kaGreen": "#639b24" -}; - -/** - * Gets the CSS color of the current options object, accounting for the - * `colorMap`. - */ -Options.prototype.getColor = function() { - if (this.phantom) { - return "transparent"; - } else { - return colorMap[this.color] || this.color; - } -}; - -module.exports = Options; - -},{}],5:[function(require,module,exports){ -/** - * This is the ParseError class, which is the main error thrown by KaTeX - * functions when something has gone wrong. This is used to distinguish internal - * errors from errors in the expression that the user provided. - */ -function ParseError(message, lexer, position) { - var error = "KaTeX parse error: " + message; - - if (lexer !== undefined && position !== undefined) { - // If we have the input and a position, make the error a bit fancier - - // Prepend some information - error += " at position " + position + ": "; - - // Get the input - var input = lexer._input; - // Insert a combining underscore at the correct position - input = input.slice(0, position) + "\u0332" + - input.slice(position); - - // Extract some context from the input and add it to the error - var begin = Math.max(0, position - 15); - var end = position + 15; - error += input.slice(begin, end); - } - - // Some hackery to make ParseError a prototype of Error - // See http://stackoverflow.com/a/8460753 - var self = new Error(error); - self.name = "ParseError"; - self.__proto__ = ParseError.prototype; - - self.position = position; - return self; -} - -// More hackery -ParseError.prototype.__proto__ = Error.prototype; - -module.exports = ParseError; - -},{}],6:[function(require,module,exports){ -var functions = require("./functions"); -var environments = require("./environments"); -var Lexer = require("./Lexer"); -var symbols = require("./symbols"); -var utils = require("./utils"); - -var parseData = require("./parseData"); -var ParseError = require("./ParseError"); - -/** - * This file contains the parser used to parse out a TeX expression from the - * input. Since TeX isn't context-free, standard parsers don't work particularly - * well. - * - * The strategy of this parser is as such: - * - * The main functions (the `.parse...` ones) take a position in the current - * parse string to parse tokens from. The lexer (found in Lexer.js, stored at - * this.lexer) also supports pulling out tokens at arbitrary places. When - * individual tokens are needed at a position, the lexer is called to pull out a - * token, which is then used. - * - * The main functions also take a mode that the parser is currently in - * (currently "math" or "text"), which denotes whether the current environment - * is a math-y one or a text-y one (e.g. inside \text). Currently, this serves - * to limit the functions which can be used in text mode. - * - * The main functions then return an object which contains the useful data that - * was parsed at its given point, and a new position at the end of the parsed - * data. The main functions can call each other and continue the parsing by - * using the returned position as a new starting point. - * - * There are also extra `.handle...` functions, which pull out some reused - * functionality into self-contained functions. - * - * The earlier functions return `ParseResult`s, which contain a ParseNode and a - * new position. - * - * The later functions (which are called deeper in the parse) sometimes return - * ParseFuncOrArgument, which contain a ParseResult as well as some data about - * whether the parsed object is a function which is missing some arguments, or a - * standalone object which can be used as an argument to another function. - */ - -/** - * Main Parser class - */ -function Parser(input, settings) { - // Make a new lexer - this.lexer = new Lexer(input); - // Store the settings for use in parsing - this.settings = settings; -} - -var ParseNode = parseData.ParseNode; -var ParseResult = parseData.ParseResult; - -/** - * An initial function (without its arguments), or an argument to a function. - * The `result` argument should be a ParseResult. - */ -function ParseFuncOrArgument(result, isFunction) { - this.result = result; - // Is this a function (i.e. is it something defined in functions.js)? - this.isFunction = isFunction; -} - -/** - * Checks a result to make sure it has the right type, and throws an - * appropriate error otherwise. - */ -Parser.prototype.expect = function(result, text) { - if (result.text !== text) { - throw new ParseError( - "Expected '" + text + "', got '" + result.text + "'", - this.lexer, result.position - ); - } -}; - -/** - * Main parsing function, which parses an entire input. - * - * @return {?Array.} - */ -Parser.prototype.parse = function(input) { - // Try to parse the input - var parse = this.parseInput(0, "math"); - return parse.result; -}; - -/** - * Parses an entire input tree. - */ -Parser.prototype.parseInput = function(pos, mode) { - // Parse an expression - var expression = this.parseExpression(pos, mode, false); - // If we succeeded, make sure there's an EOF at the end - this.expect(expression.peek, "EOF"); - return expression; -}; - -var endOfExpression = ["}", "\\end", "\\right", "&", "\\\\", "\\cr"]; - -/** - * Parses an "expression", which is a list of atoms. - * - * @param {boolean} breakOnInfix Should the parsing stop when we hit infix - * nodes? This happens when functions have higher precendence - * than infix nodes in implicit parses. - * - * @param {?string} breakOnToken The token that the expression should end with, - * or `null` if something else should end the expression. - * - * @return {ParseResult} - */ -Parser.prototype.parseExpression = function(pos, mode, breakOnInfix, breakOnToken) { - var body = []; - var lex = null; - // Keep adding atoms to the body until we can't parse any more atoms (either - // we reached the end, a }, or a \right) - while (true) { - lex = this.lexer.lex(pos, mode); - if (endOfExpression.indexOf(lex.text) !== -1) { - break; - } - if (breakOnToken && lex.text === breakOnToken) { - break; - } - var atom = this.parseAtom(pos, mode); - if (!atom) { - break; - } - if (breakOnInfix && atom.result.type === "infix") { - break; - } - body.push(atom.result); - pos = atom.position; - } - var res = new ParseResult(this.handleInfixNodes(body, mode), pos); - res.peek = lex; - return res; -}; - -/** - * Rewrites infix operators such as \over with corresponding commands such - * as \frac. - * - * There can only be one infix operator per group. If there's more than one - * then the expression is ambiguous. This can be resolved by adding {}. - * - * @returns {Array} - */ -Parser.prototype.handleInfixNodes = function (body, mode) { - var overIndex = -1; - var func; - var funcName; - - for (var i = 0; i < body.length; i++) { - var node = body[i]; - if (node.type === "infix") { - if (overIndex !== -1) { - throw new ParseError("only one infix operator per group", - this.lexer, -1); - } - overIndex = i; - funcName = node.value.replaceWith; - func = functions.funcs[funcName]; - } - } - - if (overIndex !== -1) { - var numerNode, denomNode; - - var numerBody = body.slice(0, overIndex); - var denomBody = body.slice(overIndex + 1); - - if (numerBody.length === 1 && numerBody[0].type === "ordgroup") { - numerNode = numerBody[0]; - } else { - numerNode = new ParseNode("ordgroup", numerBody, mode); - } - - if (denomBody.length === 1 && denomBody[0].type === "ordgroup") { - denomNode = denomBody[0]; - } else { - denomNode = new ParseNode("ordgroup", denomBody, mode); - } - - var value = func.handler(funcName, numerNode, denomNode); - return [new ParseNode(value.type, value, mode)]; - } else { - return body; - } -}; - -// The greediness of a superscript or subscript -var SUPSUB_GREEDINESS = 1; - -/** - * Handle a subscript or superscript with nice errors. - */ -Parser.prototype.handleSupSubscript = function(pos, mode, symbol, name) { - var group = this.parseGroup(pos, mode); - - if (!group) { - throw new ParseError( - "Expected group after '" + symbol + "'", this.lexer, pos); - } else if (group.isFunction) { - // ^ and _ have a greediness, so handle interactions with functions' - // greediness - var funcGreediness = functions.funcs[group.result.result].greediness; - if (funcGreediness > SUPSUB_GREEDINESS) { - return this.parseFunction(pos, mode); - } else { - throw new ParseError( - "Got function '" + group.result.result + "' with no arguments " + - "as " + name, - this.lexer, pos); - } - } else { - return group.result; - } -}; - -/** - * Parses a group with optional super/subscripts. - * - * @return {?ParseResult} - */ -Parser.prototype.parseAtom = function(pos, mode) { - // The body of an atom is an implicit group, so that things like - // \left(x\right)^2 work correctly. - var base = this.parseImplicitGroup(pos, mode); - - // In text mode, we don't have superscripts or subscripts - if (mode === "text") { - return base; - } - - // Handle an empty base - var currPos; - if (!base) { - currPos = pos; - base = undefined; - } else { - currPos = base.position; - } - - var superscript; - var subscript; - var result; - while (true) { - // Lex the first token - var lex = this.lexer.lex(currPos, mode); - - if (lex.text === "^") { - // We got a superscript start - if (superscript) { - throw new ParseError( - "Double superscript", this.lexer, currPos); - } - result = this.handleSupSubscript( - lex.position, mode, lex.text, "superscript"); - currPos = result.position; - superscript = result.result; - } else if (lex.text === "_") { - // We got a subscript start - if (subscript) { - throw new ParseError( - "Double subscript", this.lexer, currPos); - } - result = this.handleSupSubscript( - lex.position, mode, lex.text, "subscript"); - currPos = result.position; - subscript = result.result; - } else if (lex.text === "'") { - // We got a prime - var prime = new ParseNode("textord", "\\prime", mode); - - // Many primes can be grouped together, so we handle this here - var primes = [prime]; - currPos = lex.position; - // Keep lexing tokens until we get something that's not a prime - while ((lex = this.lexer.lex(currPos, mode)).text === "'") { - // For each one, add another prime to the list - primes.push(prime); - currPos = lex.position; - } - // Put them into an ordgroup as the superscript - superscript = new ParseNode("ordgroup", primes, mode); - } else { - // If it wasn't ^, _, or ', stop parsing super/subscripts - break; - } - } - - if (superscript || subscript) { - // If we got either a superscript or subscript, create a supsub - return new ParseResult( - new ParseNode("supsub", { - base: base && base.result, - sup: superscript, - sub: subscript - }, mode), - currPos); - } else { - // Otherwise return the original body - return base; - } -}; - -// A list of the size-changing functions, for use in parseImplicitGroup -var sizeFuncs = [ - "\\tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", - "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge" -]; - -// A list of the style-changing functions, for use in parseImplicitGroup -var styleFuncs = [ - "\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle" -]; - -/** - * Parses an implicit group, which is a group that starts at the end of a - * specified, and ends right before a higher explicit group ends, or at EOL. It - * is used for functions that appear to affect the current style, like \Large or - * \textrm, where instead of keeping a style we just pretend that there is an - * implicit grouping after it until the end of the group. E.g. - * small text {\Large large text} small text again - * It is also used for \left and \right to get the correct grouping. - * - * @return {?ParseResult} - */ -Parser.prototype.parseImplicitGroup = function(pos, mode) { - var start = this.parseSymbol(pos, mode); - - if (!start || !start.result) { - // If we didn't get anything we handle, fall back to parseFunction - return this.parseFunction(pos, mode); - } - - var func = start.result.result; - var body; - - if (func === "\\left") { - // If we see a left: - // Parse the entire left function (including the delimiter) - var left = this.parseFunction(pos, mode); - // Parse out the implicit body - body = this.parseExpression(left.position, mode, false); - // Check the next token - this.expect(body.peek, "\\right"); - var right = this.parseFunction(body.position, mode); - return new ParseResult( - new ParseNode("leftright", { - body: body.result, - left: left.result.value.value, - right: right.result.value.value - }, mode), - right.position); - } else if (func === "\\begin") { - // begin...end is similar to left...right - var begin = this.parseFunction(pos, mode); - var envName = begin.result.value.name; - if (!environments.hasOwnProperty(envName)) { - throw new ParseError( - "No such environment: " + envName, - this.lexer, begin.result.value.namepos); - } - // Build the environment object. Arguments and other information will - // be made available to the begin and end methods using properties. - var env = environments[envName]; - var args = [null, mode, envName]; - var newPos = this.parseArguments( - begin.position, mode, "\\begin{" + envName + "}", env, args); - args[0] = newPos; - var result = env.handler.apply(this, args); - var endLex = this.lexer.lex(result.position, mode); - this.expect(endLex, "\\end"); - var end = this.parseFunction(result.position, mode); - if (end.result.value.name !== envName) { - throw new ParseError( - "Mismatch: \\begin{" + envName + "} matched " + - "by \\end{" + end.result.value.name + "}", - this.lexer, end.namepos); - } - result.position = end.position; - return result; - } else if (utils.contains(sizeFuncs, func)) { - // If we see a sizing function, parse out the implict body - body = this.parseExpression(start.result.position, mode, false); - return new ParseResult( - new ParseNode("sizing", { - // Figure out what size to use based on the list of functions above - size: "size" + (utils.indexOf(sizeFuncs, func) + 1), - value: body.result - }, mode), - body.position); - } else if (utils.contains(styleFuncs, func)) { - // If we see a styling function, parse out the implict body - body = this.parseExpression(start.result.position, mode, true); - return new ParseResult( - new ParseNode("styling", { - // Figure out what style to use by pulling out the style from - // the function name - style: func.slice(1, func.length - 5), - value: body.result - }, mode), - body.position); - } else { - // Defer to parseFunction if it's not a function we handle - return this.parseFunction(pos, mode); - } -}; - -/** - * Parses an entire function, including its base and all of its arguments - * - * @return {?ParseResult} - */ -Parser.prototype.parseFunction = function(pos, mode) { - var baseGroup = this.parseGroup(pos, mode); - - if (baseGroup) { - if (baseGroup.isFunction) { - var func = baseGroup.result.result; - var funcData = functions.funcs[func]; - if (mode === "text" && !funcData.allowedInText) { - throw new ParseError( - "Can't use function '" + func + "' in text mode", - this.lexer, baseGroup.position); - } - - var args = [func]; - var newPos = this.parseArguments( - baseGroup.result.position, mode, func, funcData, args); - var result = functions.funcs[func].handler.apply(this, args); - return new ParseResult( - new ParseNode(result.type, result, mode), - newPos); - } else { - return baseGroup.result; - } - } else { - return null; - } -}; - - -/** - * Parses the arguments of a function or environment - * - * @param {string} func "\name" or "\begin{name}" - * @param {{numArgs:number,numOptionalArgs:number|undefined}} funcData - * @param {Array} args list of arguments to which new ones will be pushed - * @return the position after all arguments have been parsed - */ -Parser.prototype.parseArguments = function(pos, mode, func, funcData, args) { - var totalArgs = funcData.numArgs + funcData.numOptionalArgs; - if (totalArgs === 0) { - return pos; - } - - var newPos = pos; - var baseGreediness = funcData.greediness; - var positions = [newPos]; - - for (var i = 0; i < totalArgs; i++) { - var argType = funcData.argTypes && funcData.argTypes[i]; - var arg; - if (i < funcData.numOptionalArgs) { - if (argType) { - arg = this.parseSpecialGroup(newPos, argType, mode, true); - } else { - arg = this.parseOptionalGroup(newPos, mode); - } - if (!arg) { - args.push(null); - positions.push(newPos); - continue; - } - } else { - if (argType) { - arg = this.parseSpecialGroup(newPos, argType, mode); - } else { - arg = this.parseGroup(newPos, mode); - } - if (!arg) { - throw new ParseError( - "Expected group after '" + func + "'", - this.lexer, newPos); - } - } - var argNode; - if (arg.isFunction) { - var argGreediness = - functions.funcs[arg.result.result].greediness; - if (argGreediness > baseGreediness) { - argNode = this.parseFunction(newPos, mode); - } else { - throw new ParseError( - "Got function '" + arg.result.result + "' as " + - "argument to '" + func + "'", - this.lexer, arg.result.position - 1); - } - } else { - argNode = arg.result; - } - args.push(argNode.result); - positions.push(argNode.position); - newPos = argNode.position; - } - - args.push(positions); - - return newPos; -}; - - -/** - * Parses a group when the mode is changing. Takes a position, a new mode, and - * an outer mode that is used to parse the outside. - * - * @return {?ParseFuncOrArgument} - */ -Parser.prototype.parseSpecialGroup = function(pos, mode, outerMode, optional) { - // Handle `original` argTypes - if (mode === "original") { - mode = outerMode; - } - - if (mode === "color" || mode === "size") { - // color and size modes are special because they should have braces and - // should only lex a single symbol inside - var openBrace = this.lexer.lex(pos, outerMode); - if (optional && openBrace.text !== "[") { - // optional arguments should return null if they don't exist - return null; - } - this.expect(openBrace, optional ? "[" : "{"); - var inner = this.lexer.lex(openBrace.position, mode); - var data; - if (mode === "color") { - data = inner.text; - } else { - data = inner.data; - } - var closeBrace = this.lexer.lex(inner.position, outerMode); - this.expect(closeBrace, optional ? "]" : "}"); - return new ParseFuncOrArgument( - new ParseResult( - new ParseNode(mode, data, outerMode), - closeBrace.position), - false); - } else if (mode === "text") { - // text mode is special because it should ignore the whitespace before - // it - var whitespace = this.lexer.lex(pos, "whitespace"); - pos = whitespace.position; - } - - if (optional) { - return this.parseOptionalGroup(pos, mode); - } else { - return this.parseGroup(pos, mode); - } -}; - -/** - * Parses a group, which is either a single nucleus (like "x") or an expression - * in braces (like "{x+y}") - * - * @return {?ParseFuncOrArgument} - */ -Parser.prototype.parseGroup = function(pos, mode) { - var start = this.lexer.lex(pos, mode); - // Try to parse an open brace - if (start.text === "{") { - // If we get a brace, parse an expression - var expression = this.parseExpression(start.position, mode, false); - // Make sure we get a close brace - var closeBrace = this.lexer.lex(expression.position, mode); - this.expect(closeBrace, "}"); - return new ParseFuncOrArgument( - new ParseResult( - new ParseNode("ordgroup", expression.result, mode), - closeBrace.position), - false); - } else { - // Otherwise, just return a nucleus - return this.parseSymbol(pos, mode); - } -}; - -/** - * Parses a group, which is an expression in brackets (like "[x+y]") - * - * @return {?ParseFuncOrArgument} - */ -Parser.prototype.parseOptionalGroup = function(pos, mode) { - var start = this.lexer.lex(pos, mode); - // Try to parse an open bracket - if (start.text === "[") { - // If we get a brace, parse an expression - var expression = this.parseExpression(start.position, mode, false, "]"); - // Make sure we get a close bracket - var closeBracket = this.lexer.lex(expression.position, mode); - this.expect(closeBracket, "]"); - return new ParseFuncOrArgument( - new ParseResult( - new ParseNode("ordgroup", expression.result, mode), - closeBracket.position), - false); - } else { - // Otherwise, return null, - return null; - } -}; - -/** - * Parse a single symbol out of the string. Here, we handle both the functions - * we have defined, as well as the single character symbols - * - * @return {?ParseFuncOrArgument} - */ -Parser.prototype.parseSymbol = function(pos, mode) { - var nucleus = this.lexer.lex(pos, mode); - - if (functions.funcs[nucleus.text]) { - // If there exists a function with this name, we return the function and - // say that it is a function. - return new ParseFuncOrArgument( - new ParseResult(nucleus.text, nucleus.position), - true); - } else if (symbols[mode][nucleus.text]) { - // Otherwise if this is a no-argument function, find the type it - // corresponds to in the symbols map - return new ParseFuncOrArgument( - new ParseResult( - new ParseNode(symbols[mode][nucleus.text].group, - nucleus.text, mode), - nucleus.position), - false); - } else { - return null; - } -}; - -Parser.prototype.ParseNode = ParseNode; - -module.exports = Parser; - -},{"./Lexer":3,"./ParseError":5,"./environments":15,"./functions":17,"./parseData":19,"./symbols":21,"./utils":22}],7:[function(require,module,exports){ -/** - * This is a module for storing settings passed into KaTeX. It correctly handles - * default settings. - */ - -/** - * Helper function for getting a default value if the value is undefined - */ -function get(option, defaultValue) { - return option === undefined ? defaultValue : option; -} - -/** - * The main Settings object - * - * The current options stored are: - * - displayMode: Whether the expression should be typeset by default in - * textstyle or displaystyle (default false) - */ -function Settings(options) { - // allow null options - options = options || {}; - this.displayMode = get(options.displayMode, false); -} - -module.exports = Settings; - -},{}],8:[function(require,module,exports){ -/** - * This file contains information and classes for the various kinds of styles - * used in TeX. It provides a generic `Style` class, which holds information - * about a specific style. It then provides instances of all the different kinds - * of styles possible, and provides functions to move between them and get - * information about them. - */ - -/** - * The main style class. Contains a unique id for the style, a size (which is - * the same for cramped and uncramped version of a style), a cramped flag, and a - * size multiplier, which gives the size difference between a style and - * textstyle. - */ -function Style(id, size, multiplier, cramped) { - this.id = id; - this.size = size; - this.cramped = cramped; - this.sizeMultiplier = multiplier; -} - -/** - * Get the style of a superscript given a base in the current style. - */ -Style.prototype.sup = function() { - return styles[sup[this.id]]; -}; - -/** - * Get the style of a subscript given a base in the current style. - */ -Style.prototype.sub = function() { - return styles[sub[this.id]]; -}; - -/** - * Get the style of a fraction numerator given the fraction in the current - * style. - */ -Style.prototype.fracNum = function() { - return styles[fracNum[this.id]]; -}; - -/** - * Get the style of a fraction denominator given the fraction in the current - * style. - */ -Style.prototype.fracDen = function() { - return styles[fracDen[this.id]]; -}; - -/** - * Get the cramped version of a style (in particular, cramping a cramped style - * doesn't change the style). - */ -Style.prototype.cramp = function() { - return styles[cramp[this.id]]; -}; - -/** - * HTML class name, like "displaystyle cramped" - */ -Style.prototype.cls = function() { - return sizeNames[this.size] + (this.cramped ? " cramped" : " uncramped"); -}; - -/** - * HTML Reset class name, like "reset-textstyle" - */ -Style.prototype.reset = function() { - return resetNames[this.size]; -}; - -// IDs of the different styles -var D = 0; -var Dc = 1; -var T = 2; -var Tc = 3; -var S = 4; -var Sc = 5; -var SS = 6; -var SSc = 7; - -// String names for the different sizes -var sizeNames = [ - "displaystyle textstyle", - "textstyle", - "scriptstyle", - "scriptscriptstyle" -]; - -// Reset names for the different sizes -var resetNames = [ - "reset-textstyle", - "reset-textstyle", - "reset-scriptstyle", - "reset-scriptscriptstyle" -]; - -// Instances of the different styles -var styles = [ - new Style(D, 0, 1.0, false), - new Style(Dc, 0, 1.0, true), - new Style(T, 1, 1.0, false), - new Style(Tc, 1, 1.0, true), - new Style(S, 2, 0.7, false), - new Style(Sc, 2, 0.7, true), - new Style(SS, 3, 0.5, false), - new Style(SSc, 3, 0.5, true) -]; - -// Lookup tables for switching from one style to another -var sup = [S, Sc, S, Sc, SS, SSc, SS, SSc]; -var sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc]; -var fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc]; -var fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc]; -var cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc]; - -// We only export some of the styles. Also, we don't export the `Style` class so -// no more styles can be generated. -module.exports = { - DISPLAY: styles[D], - TEXT: styles[T], - SCRIPT: styles[S], - SCRIPTSCRIPT: styles[SS] -}; - -},{}],9:[function(require,module,exports){ -/** - * This module contains general functions that can be used for building - * different kinds of domTree nodes in a consistent manner. - */ - -var domTree = require("./domTree"); -var fontMetrics = require("./fontMetrics"); -var symbols = require("./symbols"); -var utils = require("./utils"); - -/** - * Makes a symbolNode after translation via the list of symbols in symbols.js. - * Correctly pulls out metrics for the character, and optionally takes a list of - * classes to be attached to the node. - */ -var makeSymbol = function(value, style, mode, color, classes) { - // Replace the value with its replaced value from symbol.js - if (symbols[mode][value] && symbols[mode][value].replace) { - value = symbols[mode][value].replace; - } - - var metrics = fontMetrics.getCharacterMetrics(value, style); - - var symbolNode; - if (metrics) { - symbolNode = new domTree.symbolNode( - value, metrics.height, metrics.depth, metrics.italic, metrics.skew, - classes); - } else { - // TODO(emily): Figure out a good way to only print this in development - typeof console !== "undefined" && console.warn( - "No character metrics for '" + value + "' in style '" + - style + "'"); - symbolNode = new domTree.symbolNode(value, 0, 0, 0, 0, classes); - } - - if (color) { - symbolNode.style.color = color; - } - - return symbolNode; -}; - -/** - * Makes a symbol in Main-Regular or AMS-Regular. - * Used for rel, bin, open, close, inner, and punct. - */ -var mathsym = function(value, mode, color, classes) { - // Decide what font to render the symbol in by its entry in the symbols - // table. - if (symbols[mode][value].font === "main") { - return makeSymbol(value, "Main-Regular", mode, color, classes); - } else { - return makeSymbol( - value, "AMS-Regular", mode, color, classes.concat(["amsrm"])); - } -}; - -/** - * Makes a symbol in the default font for mathords and textords. - */ -var mathDefault = function(value, mode, color, classes, type) { - if (type === "mathord") { - return mathit(value, mode, color, classes); - } else if (type === "textord") { - return makeSymbol( - value, "Main-Regular", mode, color, classes.concat(["mathrm"])); - } else { - throw new Error("unexpected type: " + type + " in mathDefault"); - } -}; - -/** - * Makes a symbol in the italic math font. - */ -var mathit = function(value, mode, color, classes) { - if (/[0-9]/.test(value.charAt(0)) || - utils.contains(["\u0131", "\u0237"], value) || - utils.contains(greekCapitals, value)) { - return makeSymbol( - value, "Main-Italic", mode, color, classes.concat(["mainit"])); - } else { - return makeSymbol( - value, "Math-Italic", mode, color, classes.concat(["mathit"])); - } -}; - -/** - * Makes either a mathord or textord in the correct font and color. - */ -var makeOrd = function(group, options, type) { - var mode = group.mode; - var value = group.value; - if (symbols[mode][value] && symbols[mode][value].replace) { - value = symbols[mode][value].replace; - } - - var classes = ["mord"]; - var color = options.getColor(); - - var font = options.font; - if (font) { - if (font === "mathit" || utils.contains(["\u0131", "\u0237"], value)) { - return mathit(value, mode, color, classes.concat(["mathit"])); - } else { - var fontName = fontMap[font].fontName; - if (fontMetrics.getCharacterMetrics(value, fontName)) { - return makeSymbol(value, fontName, mode, color, classes.concat([font])); - } else { - return mathDefault(value, mode, color, classes, type); - } - } - } else { - return mathDefault(value, mode, color, classes, type); - } -}; - -/** - * Calculate the height, depth, and maxFontSize of an element based on its - * children. - */ -var sizeElementFromChildren = function(elem) { - var height = 0; - var depth = 0; - var maxFontSize = 0; - - if (elem.children) { - for (var i = 0; i < elem.children.length; i++) { - if (elem.children[i].height > height) { - height = elem.children[i].height; - } - if (elem.children[i].depth > depth) { - depth = elem.children[i].depth; - } - if (elem.children[i].maxFontSize > maxFontSize) { - maxFontSize = elem.children[i].maxFontSize; - } - } - } - - elem.height = height; - elem.depth = depth; - elem.maxFontSize = maxFontSize; -}; - -/** - * Makes a span with the given list of classes, list of children, and color. - */ -var makeSpan = function(classes, children, color) { - var span = new domTree.span(classes, children); - - sizeElementFromChildren(span); - - if (color) { - span.style.color = color; - } - - return span; -}; - -/** - * Makes a document fragment with the given list of children. - */ -var makeFragment = function(children) { - var fragment = new domTree.documentFragment(children); - - sizeElementFromChildren(fragment); - - return fragment; -}; - -/** - * Makes an element placed in each of the vlist elements to ensure that each - * element has the same max font size. To do this, we create a zero-width space - * with the correct font size. - */ -var makeFontSizer = function(options, fontSize) { - var fontSizeInner = makeSpan([], [new domTree.symbolNode("\u200b")]); - fontSizeInner.style.fontSize = (fontSize / options.style.sizeMultiplier) + "em"; - - var fontSizer = makeSpan( - ["fontsize-ensurer", "reset-" + options.size, "size5"], - [fontSizeInner]); - - return fontSizer; -}; - -/** - * Makes a vertical list by stacking elements and kerns on top of each other. - * Allows for many different ways of specifying the positioning method. - * - * Arguments: - * - children: A list of child or kern nodes to be stacked on top of each other - * (i.e. the first element will be at the bottom, and the last at - * the top). Element nodes are specified as - * {type: "elem", elem: node} - * while kern nodes are specified as - * {type: "kern", size: size} - * - positionType: The method by which the vlist should be positioned. Valid - * values are: - * - "individualShift": The children list only contains elem - * nodes, and each node contains an extra - * "shift" value of how much it should be - * shifted (note that shifting is always - * moving downwards). positionData is - * ignored. - * - "top": The positionData specifies the topmost point of - * the vlist (note this is expected to be a height, - * so positive values move up) - * - "bottom": The positionData specifies the bottommost point - * of the vlist (note this is expected to be a - * depth, so positive values move down - * - "shift": The vlist will be positioned such that its - * baseline is positionData away from the baseline - * of the first child. Positive values move - * downwards. - * - "firstBaseline": The vlist will be positioned such that - * its baseline is aligned with the - * baseline of the first child. - * positionData is ignored. (this is - * equivalent to "shift" with - * positionData=0) - * - positionData: Data used in different ways depending on positionType - * - options: An Options object - * - */ -var makeVList = function(children, positionType, positionData, options) { - var depth; - var currPos; - var i; - if (positionType === "individualShift") { - var oldChildren = children; - children = [oldChildren[0]]; - - // Add in kerns to the list of children to get each element to be - // shifted to the correct specified shift - depth = -oldChildren[0].shift - oldChildren[0].elem.depth; - currPos = depth; - for (i = 1; i < oldChildren.length; i++) { - var diff = -oldChildren[i].shift - currPos - - oldChildren[i].elem.depth; - var size = diff - - (oldChildren[i - 1].elem.height + - oldChildren[i - 1].elem.depth); - - currPos = currPos + diff; - - children.push({type: "kern", size: size}); - children.push(oldChildren[i]); - } - } else if (positionType === "top") { - // We always start at the bottom, so calculate the bottom by adding up - // all the sizes - var bottom = positionData; - for (i = 0; i < children.length; i++) { - if (children[i].type === "kern") { - bottom -= children[i].size; - } else { - bottom -= children[i].elem.height + children[i].elem.depth; - } - } - depth = bottom; - } else if (positionType === "bottom") { - depth = -positionData; - } else if (positionType === "shift") { - depth = -children[0].elem.depth - positionData; - } else if (positionType === "firstBaseline") { - depth = -children[0].elem.depth; - } else { - depth = 0; - } - - // Make the fontSizer - var maxFontSize = 0; - for (i = 0; i < children.length; i++) { - if (children[i].type === "elem") { - maxFontSize = Math.max(maxFontSize, children[i].elem.maxFontSize); - } - } - var fontSizer = makeFontSizer(options, maxFontSize); - - // Create a new list of actual children at the correct offsets - var realChildren = []; - currPos = depth; - for (i = 0; i < children.length; i++) { - if (children[i].type === "kern") { - currPos += children[i].size; - } else { - var child = children[i].elem; - - var shift = -child.depth - currPos; - currPos += child.height + child.depth; - - var childWrap = makeSpan([], [fontSizer, child]); - childWrap.height -= shift; - childWrap.depth += shift; - childWrap.style.top = shift + "em"; - - realChildren.push(childWrap); - } - } - - // Add in an element at the end with no offset to fix the calculation of - // baselines in some browsers (namely IE, sometimes safari) - var baselineFix = makeSpan( - ["baseline-fix"], [fontSizer, new domTree.symbolNode("\u200b")]); - realChildren.push(baselineFix); - - var vlist = makeSpan(["vlist"], realChildren); - // Fix the final height and depth, in case there were kerns at the ends - // since the makeSpan calculation won't take that in to account. - vlist.height = Math.max(currPos, vlist.height); - vlist.depth = Math.max(-depth, vlist.depth); - return vlist; -}; - -// A table of size -> font size for the different sizing functions -var sizingMultiplier = { - size1: 0.5, - size2: 0.7, - size3: 0.8, - size4: 0.9, - size5: 1.0, - size6: 1.2, - size7: 1.44, - size8: 1.73, - size9: 2.07, - size10: 2.49 -}; - -// A map of spacing functions to their attributes, like size and corresponding -// CSS class -var spacingFunctions = { - "\\qquad": { - size: "2em", - className: "qquad" - }, - "\\quad": { - size: "1em", - className: "quad" - }, - "\\enspace": { - size: "0.5em", - className: "enspace" - }, - "\\;": { - size: "0.277778em", - className: "thickspace" - }, - "\\:": { - size: "0.22222em", - className: "mediumspace" - }, - "\\,": { - size: "0.16667em", - className: "thinspace" - }, - "\\!": { - size: "-0.16667em", - className: "negativethinspace" - } -}; - -var greekCapitals = [ - "\\Gamma", - "\\Delta", - "\\Theta", - "\\Lambda", - "\\Xi", - "\\Pi", - "\\Sigma", - "\\Upsilon", - "\\Phi", - "\\Psi", - "\\Omega" -]; - -/** - * Maps TeX font commands to objects containing: - * - variant: string used for "mathvariant" attribute in buildMathML.js - * - fontName: the "style" parameter to fontMetrics.getCharacterMetrics - */ -// A map between tex font commands an MathML mathvariant attribute values -var fontMap = { - // styles - "mathbf": { - variant: "bold", - fontName: "Main-Bold" - }, - "mathrm": { - variant: "normal", - fontName: "Main-Regular" - }, - - // families - "mathbb": { - variant: "double-struck", - fontName: "AMS-Regular" - }, - "mathcal": { - variant: "script", - fontName: "Caligraphic-Regular" - }, - "mathfrak": { - variant: "fraktur", - fontName: "Fraktur-Regular" - }, - "mathscr": { - variant: "script", - fontName: "Script-Regular" - }, - "mathsf": { - variant: "sans-serif", - fontName: "SansSerif-Regular" - }, - "mathtt": { - variant: "monospace", - fontName: "Typewriter-Regular" - } -}; - -module.exports = { - makeSymbol: makeSymbol, - fontMap: fontMap, - mathsym: mathsym, - makeSpan: makeSpan, - makeFragment: makeFragment, - makeVList: makeVList, - makeOrd: makeOrd, - sizingMultiplier: sizingMultiplier, - spacingFunctions: spacingFunctions -}; - -},{"./domTree":14,"./fontMetrics":16,"./symbols":21,"./utils":22}],10:[function(require,module,exports){ -/** - * This file does the main work of building a domTree structure from a parse - * tree. The entry point is the `buildHTML` function, which takes a parse tree. - * Then, the buildExpression, buildGroup, and various groupTypes functions are - * called, to produce a final HTML tree. - */ - -var Options = require("./Options"); -var ParseError = require("./ParseError"); -var Style = require("./Style"); - -var buildCommon = require("./buildCommon"); -var delimiter = require("./delimiter"); -var domTree = require("./domTree"); -var fontMetrics = require("./fontMetrics"); -var utils = require("./utils"); - -var makeSpan = buildCommon.makeSpan; - -/** - * Take a list of nodes, build them in order, and return a list of the built - * nodes. This function handles the `prev` node correctly, and passes the - * previous element from the list as the prev of the next element. - */ -var buildExpression = function(expression, options, prev) { - var groups = []; - for (var i = 0; i < expression.length; i++) { - var group = expression[i]; - groups.push(buildGroup(group, options, prev)); - prev = group; - } - return groups; -}; - -// List of types used by getTypeOfGroup -var groupToType = { - mathord: "mord", - textord: "mord", - bin: "mbin", - rel: "mrel", - text: "mord", - open: "mopen", - close: "mclose", - inner: "minner", - genfrac: "mord", - array: "minner", - spacing: "mord", - punct: "mpunct", - ordgroup: "mord", - op: "mop", - katex: "mord", - overline: "mord", - rule: "mord", - leftright: "minner", - sqrt: "mord", - accent: "mord" -}; - -/** - * Gets the final math type of an expression, given its group type. This type is - * used to determine spacing between elements, and affects bin elements by - * causing them to change depending on what types are around them. This type - * must be attached to the outermost node of an element as a CSS class so that - * spacing with its surrounding elements works correctly. - * - * Some elements can be mapped one-to-one from group type to math type, and - * those are listed in the `groupToType` table. - * - * Others (usually elements that wrap around other elements) often have - * recursive definitions, and thus call `getTypeOfGroup` on their inner - * elements. - */ -var getTypeOfGroup = function(group) { - if (group == null) { - // Like when typesetting $^3$ - return groupToType.mathord; - } else if (group.type === "supsub") { - return getTypeOfGroup(group.value.base); - } else if (group.type === "llap" || group.type === "rlap") { - return getTypeOfGroup(group.value); - } else if (group.type === "color") { - return getTypeOfGroup(group.value.value); - } else if (group.type === "sizing") { - return getTypeOfGroup(group.value.value); - } else if (group.type === "styling") { - return getTypeOfGroup(group.value.value); - } else if (group.type === "delimsizing") { - return groupToType[group.value.delimType]; - } else { - return groupToType[group.type]; - } -}; - -/** - * Sometimes, groups perform special rules when they have superscripts or - * subscripts attached to them. This function lets the `supsub` group know that - * its inner element should handle the superscripts and subscripts instead of - * handling them itself. - */ -var shouldHandleSupSub = function(group, options) { - if (!group) { - return false; - } else if (group.type === "op") { - // Operators handle supsubs differently when they have limits - // (e.g. `\displaystyle\sum_2^3`) - return group.value.limits && options.style.size === Style.DISPLAY.size; - } else if (group.type === "accent") { - return isCharacterBox(group.value.base); - } else { - return null; - } -}; - -/** - * Sometimes we want to pull out the innermost element of a group. In most - * cases, this will just be the group itself, but when ordgroups and colors have - * a single element, we want to pull that out. - */ -var getBaseElem = function(group) { - if (!group) { - return false; - } else if (group.type === "ordgroup") { - if (group.value.length === 1) { - return getBaseElem(group.value[0]); - } else { - return group; - } - } else if (group.type === "color") { - if (group.value.value.length === 1) { - return getBaseElem(group.value.value[0]); - } else { - return group; - } - } else { - return group; - } -}; - -/** - * TeXbook algorithms often reference "character boxes", which are simply groups - * with a single character in them. To decide if something is a character box, - * we find its innermost group, and see if it is a single character. - */ -var isCharacterBox = function(group) { - var baseElem = getBaseElem(group); - - // These are all they types of groups which hold single characters - return baseElem.type === "mathord" || - baseElem.type === "textord" || - baseElem.type === "bin" || - baseElem.type === "rel" || - baseElem.type === "inner" || - baseElem.type === "open" || - baseElem.type === "close" || - baseElem.type === "punct"; -}; - -var makeNullDelimiter = function(options) { - return makeSpan([ - "sizing", "reset-" + options.size, "size5", - options.style.reset(), Style.TEXT.cls(), - "nulldelimiter" - ]); -}; - -/** - * This is a map of group types to the function used to handle that type. - * Simpler types come at the beginning, while complicated types come afterwards. - */ -var groupTypes = { - mathord: function(group, options, prev) { - return buildCommon.makeOrd(group, options, "mathord"); - }, - - textord: function(group, options, prev) { - return buildCommon.makeOrd(group, options, "textord"); - }, - - bin: function(group, options, prev) { - var className = "mbin"; - // Pull out the most recent element. Do some special handling to find - // things at the end of a \color group. Note that we don't use the same - // logic for ordgroups (which count as ords). - var prevAtom = prev; - while (prevAtom && prevAtom.type === "color") { - var atoms = prevAtom.value.value; - prevAtom = atoms[atoms.length - 1]; - } - // See TeXbook pg. 442-446, Rules 5 and 6, and the text before Rule 19. - // Here, we determine whether the bin should turn into an ord. We - // currently only apply Rule 5. - if (!prev || utils.contains(["mbin", "mopen", "mrel", "mop", "mpunct"], - getTypeOfGroup(prevAtom))) { - group.type = "textord"; - className = "mord"; - } - - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), [className]); - }, - - rel: function(group, options, prev) { - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), ["mrel"]); - }, - - open: function(group, options, prev) { - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), ["mopen"]); - }, - - close: function(group, options, prev) { - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), ["mclose"]); - }, - - inner: function(group, options, prev) { - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), ["minner"]); - }, - - punct: function(group, options, prev) { - return buildCommon.mathsym( - group.value, group.mode, options.getColor(), ["mpunct"]); - }, - - ordgroup: function(group, options, prev) { - return makeSpan( - ["mord", options.style.cls()], - buildExpression(group.value, options.reset()) - ); - }, - - text: function(group, options, prev) { - return makeSpan(["text", "mord", options.style.cls()], - buildExpression(group.value.body, options.reset())); - }, - - color: function(group, options, prev) { - var elements = buildExpression( - group.value.value, - options.withColor(group.value.color), - prev - ); - - // \color isn't supposed to affect the type of the elements it contains. - // To accomplish this, we wrap the results in a fragment, so the inner - // elements will be able to directly interact with their neighbors. For - // example, `\color{red}{2 +} 3` has the same spacing as `2 + 3` - return new buildCommon.makeFragment(elements); - }, - - supsub: function(group, options, prev) { - // Superscript and subscripts are handled in the TeXbook on page - // 445-446, rules 18(a-f). - - // Here is where we defer to the inner group if it should handle - // superscripts and subscripts itself. - if (shouldHandleSupSub(group.value.base, options)) { - return groupTypes[group.value.base.type](group, options, prev); - } - - var base = buildGroup(group.value.base, options.reset()); - var supmid, submid, sup, sub; - - if (group.value.sup) { - sup = buildGroup(group.value.sup, - options.withStyle(options.style.sup())); - supmid = makeSpan( - [options.style.reset(), options.style.sup().cls()], [sup]); - } - - if (group.value.sub) { - sub = buildGroup(group.value.sub, - options.withStyle(options.style.sub())); - submid = makeSpan( - [options.style.reset(), options.style.sub().cls()], [sub]); - } - - // Rule 18a - var supShift, subShift; - if (isCharacterBox(group.value.base)) { - supShift = 0; - subShift = 0; - } else { - supShift = base.height - fontMetrics.metrics.supDrop; - subShift = base.depth + fontMetrics.metrics.subDrop; - } - - // Rule 18c - var minSupShift; - if (options.style === Style.DISPLAY) { - minSupShift = fontMetrics.metrics.sup1; - } else if (options.style.cramped) { - minSupShift = fontMetrics.metrics.sup3; - } else { - minSupShift = fontMetrics.metrics.sup2; - } - - // scriptspace is a font-size-independent size, so scale it - // appropriately - var multiplier = Style.TEXT.sizeMultiplier * - options.style.sizeMultiplier; - var scriptspace = - (0.5 / fontMetrics.metrics.ptPerEm) / multiplier + "em"; - - var supsub; - if (!group.value.sup) { - // Rule 18b - subShift = Math.max( - subShift, fontMetrics.metrics.sub1, - sub.height - 0.8 * fontMetrics.metrics.xHeight); - - supsub = buildCommon.makeVList([ - {type: "elem", elem: submid} - ], "shift", subShift, options); - - supsub.children[0].style.marginRight = scriptspace; - - // Subscripts shouldn't be shifted by the base's italic correction. - // Account for that by shifting the subscript back the appropriate - // amount. Note we only do this when the base is a single symbol. - if (base instanceof domTree.symbolNode) { - supsub.children[0].style.marginLeft = -base.italic + "em"; - } - } else if (!group.value.sub) { - // Rule 18c, d - supShift = Math.max(supShift, minSupShift, - sup.depth + 0.25 * fontMetrics.metrics.xHeight); - - supsub = buildCommon.makeVList([ - {type: "elem", elem: supmid} - ], "shift", -supShift, options); - - supsub.children[0].style.marginRight = scriptspace; - } else { - supShift = Math.max( - supShift, minSupShift, - sup.depth + 0.25 * fontMetrics.metrics.xHeight); - subShift = Math.max(subShift, fontMetrics.metrics.sub2); - - var ruleWidth = fontMetrics.metrics.defaultRuleThickness; - - // Rule 18e - if ((supShift - sup.depth) - (sub.height - subShift) < - 4 * ruleWidth) { - subShift = 4 * ruleWidth - (supShift - sup.depth) + sub.height; - var psi = 0.8 * fontMetrics.metrics.xHeight - - (supShift - sup.depth); - if (psi > 0) { - supShift += psi; - subShift -= psi; - } - } - - supsub = buildCommon.makeVList([ - {type: "elem", elem: submid, shift: subShift}, - {type: "elem", elem: supmid, shift: -supShift} - ], "individualShift", null, options); - - // See comment above about subscripts not being shifted - if (base instanceof domTree.symbolNode) { - supsub.children[0].style.marginLeft = -base.italic + "em"; - } - - supsub.children[0].style.marginRight = scriptspace; - supsub.children[1].style.marginRight = scriptspace; - } - - return makeSpan([getTypeOfGroup(group.value.base)], - [base, supsub]); - }, - - genfrac: function(group, options, prev) { - // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e). - // Figure out what style this fraction should be in based on the - // function used - var fstyle = options.style; - if (group.value.size === "display") { - fstyle = Style.DISPLAY; - } else if (group.value.size === "text") { - fstyle = Style.TEXT; - } - - var nstyle = fstyle.fracNum(); - var dstyle = fstyle.fracDen(); - - var numer = buildGroup(group.value.numer, options.withStyle(nstyle)); - var numerreset = makeSpan([fstyle.reset(), nstyle.cls()], [numer]); - - var denom = buildGroup(group.value.denom, options.withStyle(dstyle)); - var denomreset = makeSpan([fstyle.reset(), dstyle.cls()], [denom]); - - var ruleWidth; - if (group.value.hasBarLine) { - ruleWidth = fontMetrics.metrics.defaultRuleThickness / - options.style.sizeMultiplier; - } else { - ruleWidth = 0; - } - - // Rule 15b - var numShift; - var clearance; - var denomShift; - if (fstyle.size === Style.DISPLAY.size) { - numShift = fontMetrics.metrics.num1; - if (ruleWidth > 0) { - clearance = 3 * ruleWidth; - } else { - clearance = 7 * fontMetrics.metrics.defaultRuleThickness; - } - denomShift = fontMetrics.metrics.denom1; - } else { - if (ruleWidth > 0) { - numShift = fontMetrics.metrics.num2; - clearance = ruleWidth; - } else { - numShift = fontMetrics.metrics.num3; - clearance = 3 * fontMetrics.metrics.defaultRuleThickness; - } - denomShift = fontMetrics.metrics.denom2; - } - - var frac; - if (ruleWidth === 0) { - // Rule 15c - var candiateClearance = - (numShift - numer.depth) - (denom.height - denomShift); - if (candiateClearance < clearance) { - numShift += 0.5 * (clearance - candiateClearance); - denomShift += 0.5 * (clearance - candiateClearance); - } - - frac = buildCommon.makeVList([ - {type: "elem", elem: denomreset, shift: denomShift}, - {type: "elem", elem: numerreset, shift: -numShift} - ], "individualShift", null, options); - } else { - // Rule 15d - var axisHeight = fontMetrics.metrics.axisHeight; - - if ((numShift - numer.depth) - (axisHeight + 0.5 * ruleWidth) < - clearance) { - numShift += - clearance - ((numShift - numer.depth) - - (axisHeight + 0.5 * ruleWidth)); - } - - if ((axisHeight - 0.5 * ruleWidth) - (denom.height - denomShift) < - clearance) { - denomShift += - clearance - ((axisHeight - 0.5 * ruleWidth) - - (denom.height - denomShift)); - } - - var mid = makeSpan( - [options.style.reset(), Style.TEXT.cls(), "frac-line"]); - // Manually set the height of the line because its height is - // created in CSS - mid.height = ruleWidth; - - var midShift = -(axisHeight - 0.5 * ruleWidth); - - frac = buildCommon.makeVList([ - {type: "elem", elem: denomreset, shift: denomShift}, - {type: "elem", elem: mid, shift: midShift}, - {type: "elem", elem: numerreset, shift: -numShift} - ], "individualShift", null, options); - } - - // Since we manually change the style sometimes (with \dfrac or \tfrac), - // account for the possible size change here. - frac.height *= fstyle.sizeMultiplier / options.style.sizeMultiplier; - frac.depth *= fstyle.sizeMultiplier / options.style.sizeMultiplier; - - // Rule 15e - var delimSize; - if (fstyle.size === Style.DISPLAY.size) { - delimSize = fontMetrics.metrics.delim1; - } else { - delimSize = fontMetrics.metrics.getDelim2(fstyle); - } - - var leftDelim, rightDelim; - if (group.value.leftDelim == null) { - leftDelim = makeNullDelimiter(options); - } else { - leftDelim = delimiter.customSizedDelim( - group.value.leftDelim, delimSize, true, - options.withStyle(fstyle), group.mode); - } - if (group.value.rightDelim == null) { - rightDelim = makeNullDelimiter(options); - } else { - rightDelim = delimiter.customSizedDelim( - group.value.rightDelim, delimSize, true, - options.withStyle(fstyle), group.mode); - } - - return makeSpan( - ["mord", options.style.reset(), fstyle.cls()], - [leftDelim, makeSpan(["mfrac"], [frac]), rightDelim], - options.getColor()); - }, - - array: function(group, options, prev) { - var r, c; - var nr = group.value.body.length; - var nc = 0; - var body = new Array(nr); - - // Horizontal spacing - var pt = 1 / fontMetrics.metrics.ptPerEm; - var arraycolsep = 5 * pt; // \arraycolsep in article.cls - - // Vertical spacing - var baselineskip = 12 * pt; // see size10.clo - // Default \arraystretch from lttab.dtx - // TODO(gagern): may get redefined once we have user-defined macros - var arraystretch = utils.deflt(group.value.arraystretch, 1); - var arrayskip = arraystretch * baselineskip; - var arstrutHeight = 0.7 * arrayskip; // \strutbox in ltfsstrc.dtx and - var arstrutDepth = 0.3 * arrayskip; // \@arstrutbox in lttab.dtx - - var totalHeight = 0; - for (r = 0; r < group.value.body.length; ++r) { - var inrow = group.value.body[r]; - var height = arstrutHeight; // \@array adds an \@arstrut - var depth = arstrutDepth; // to each tow (via the template) - if (nc < inrow.length) { - nc = inrow.length; - } - var outrow = new Array(inrow.length); - for (c = 0; c < inrow.length; ++c) { - var elt = buildGroup(inrow[c], options); - if (depth < elt.depth) { - depth = elt.depth; - } - if (height < elt.height) { - height = elt.height; - } - outrow[c] = elt; - } - var gap = 0; - if (group.value.rowGaps[r]) { - gap = group.value.rowGaps[r].value; - switch (gap.unit) { - case "em": - gap = gap.number; - break; - case "ex": - gap = gap.number * fontMetrics.metrics.emPerEx; - break; - default: - console.error("Can't handle unit " + gap.unit); - gap = 0; - } - if (gap > 0) { // \@argarraycr - gap += arstrutDepth; - if (depth < gap) { - depth = gap; // \@xargarraycr - } - gap = 0; - } - } - outrow.height = height; - outrow.depth = depth; - totalHeight += height; - outrow.pos = totalHeight; - totalHeight += depth + gap; // \@yargarraycr - body[r] = outrow; - } - var offset = totalHeight / 2 + fontMetrics.metrics.axisHeight; - var coldescriptions = group.value.cols || []; - var cols = []; - var colsep; - for (c = 0; c < nc; ++c) { - var coldescr = coldescriptions[c] || {}; - var sepwidth; - if (c > 0 || group.value.hskipBeforeAndAfter) { - sepwidth = utils.deflt(coldescr.pregap, arraycolsep); - if (sepwidth !== 0) { - colsep = makeSpan(["arraycolsep"], []); - colsep.style.width = sepwidth + "em"; - cols.push(colsep); - } - } - var col = []; - for (r = 0; r < nr; ++r) { - var row = body[r]; - var elem = row[c]; - if (!elem) { - continue; - } - var shift = row.pos - offset; - elem.depth = row.depth; - elem.height = row.height; - col.push({type: "elem", elem: elem, shift: shift}); - } - col = buildCommon.makeVList(col, "individualShift", null, options); - col = makeSpan( - ["col-align-" + (coldescr.align || "c")], - [col]); - cols.push(col); - if (c < nc - 1 || group.value.hskipBeforeAndAfter) { - sepwidth = utils.deflt(coldescr.postgap, arraycolsep); - if (sepwidth !== 0) { - colsep = makeSpan(["arraycolsep"], []); - colsep.style.width = sepwidth + "em"; - cols.push(colsep); - } - } - } - body = makeSpan(["mtable"], cols); - return makeSpan(["minner"], [body], options.getColor()); - }, - - spacing: function(group, options, prev) { - if (group.value === "\\ " || group.value === "\\space" || - group.value === " " || group.value === "~") { - // Spaces are generated by adding an actual space. Each of these - // things has an entry in the symbols table, so these will be turned - // into appropriate outputs. - return makeSpan( - ["mord", "mspace"], - [buildCommon.mathsym(group.value, group.mode)] - ); - } else { - // Other kinds of spaces are of arbitrary width. We use CSS to - // generate these. - return makeSpan( - ["mord", "mspace", - buildCommon.spacingFunctions[group.value].className]); - } - }, - - llap: function(group, options, prev) { - var inner = makeSpan( - ["inner"], [buildGroup(group.value.body, options.reset())]); - var fix = makeSpan(["fix"], []); - return makeSpan( - ["llap", options.style.cls()], [inner, fix]); - }, - - rlap: function(group, options, prev) { - var inner = makeSpan( - ["inner"], [buildGroup(group.value.body, options.reset())]); - var fix = makeSpan(["fix"], []); - return makeSpan( - ["rlap", options.style.cls()], [inner, fix]); - }, - - op: function(group, options, prev) { - // Operators are handled in the TeXbook pg. 443-444, rule 13(a). - var supGroup; - var subGroup; - var hasLimits = false; - if (group.type === "supsub" ) { - // If we have limits, supsub will pass us its group to handle. Pull - // out the superscript and subscript and set the group to the op in - // its base. - supGroup = group.value.sup; - subGroup = group.value.sub; - group = group.value.base; - hasLimits = true; - } - - // Most operators have a large successor symbol, but these don't. - var noSuccessor = [ - "\\smallint" - ]; - - var large = false; - if (options.style.size === Style.DISPLAY.size && - group.value.symbol && - !utils.contains(noSuccessor, group.value.body)) { - - // Most symbol operators get larger in displaystyle (rule 13) - large = true; - } - - var base; - var baseShift = 0; - var slant = 0; - if (group.value.symbol) { - // If this is a symbol, create the symbol. - var style = large ? "Size2-Regular" : "Size1-Regular"; - base = buildCommon.makeSymbol( - group.value.body, style, "math", options.getColor(), - ["op-symbol", large ? "large-op" : "small-op", "mop"]); - - // Shift the symbol so its center lies on the axis (rule 13). It - // appears that our fonts have the centers of the symbols already - // almost on the axis, so these numbers are very small. Note we - // don't actually apply this here, but instead it is used either in - // the vlist creation or separately when there are no limits. - baseShift = (base.height - base.depth) / 2 - - fontMetrics.metrics.axisHeight * - options.style.sizeMultiplier; - - // The slant of the symbol is just its italic correction. - slant = base.italic; - } else { - // Otherwise, this is a text operator. Build the text from the - // operator's name. - // TODO(emily): Add a space in the middle of some of these - // operators, like \limsup - var output = []; - for (var i = 1; i < group.value.body.length; i++) { - output.push(buildCommon.mathsym(group.value.body[i], group.mode)); - } - base = makeSpan(["mop"], output, options.getColor()); - } - - if (hasLimits) { - // IE 8 clips \int if it is in a display: inline-block. We wrap it - // in a new span so it is an inline, and works. - base = makeSpan([], [base]); - - var supmid, supKern, submid, subKern; - // We manually have to handle the superscripts and subscripts. This, - // aside from the kern calculations, is copied from supsub. - if (supGroup) { - var sup = buildGroup( - supGroup, options.withStyle(options.style.sup())); - supmid = makeSpan( - [options.style.reset(), options.style.sup().cls()], [sup]); - - supKern = Math.max( - fontMetrics.metrics.bigOpSpacing1, - fontMetrics.metrics.bigOpSpacing3 - sup.depth); - } - - if (subGroup) { - var sub = buildGroup( - subGroup, options.withStyle(options.style.sub())); - submid = makeSpan( - [options.style.reset(), options.style.sub().cls()], - [sub]); - - subKern = Math.max( - fontMetrics.metrics.bigOpSpacing2, - fontMetrics.metrics.bigOpSpacing4 - sub.height); - } - - // Build the final group as a vlist of the possible subscript, base, - // and possible superscript. - var finalGroup, top, bottom; - if (!supGroup) { - top = base.height - baseShift; - - finalGroup = buildCommon.makeVList([ - {type: "kern", size: fontMetrics.metrics.bigOpSpacing5}, - {type: "elem", elem: submid}, - {type: "kern", size: subKern}, - {type: "elem", elem: base} - ], "top", top, options); - - // Here, we shift the limits by the slant of the symbol. Note - // that we are supposed to shift the limits by 1/2 of the slant, - // but since we are centering the limits adding a full slant of - // margin will shift by 1/2 that. - finalGroup.children[0].style.marginLeft = -slant + "em"; - } else if (!subGroup) { - bottom = base.depth + baseShift; - - finalGroup = buildCommon.makeVList([ - {type: "elem", elem: base}, - {type: "kern", size: supKern}, - {type: "elem", elem: supmid}, - {type: "kern", size: fontMetrics.metrics.bigOpSpacing5} - ], "bottom", bottom, options); - - // See comment above about slants - finalGroup.children[1].style.marginLeft = slant + "em"; - } else if (!supGroup && !subGroup) { - // This case probably shouldn't occur (this would mean the - // supsub was sending us a group with no superscript or - // subscript) but be safe. - return base; - } else { - bottom = fontMetrics.metrics.bigOpSpacing5 + - submid.height + submid.depth + - subKern + - base.depth + baseShift; - - finalGroup = buildCommon.makeVList([ - {type: "kern", size: fontMetrics.metrics.bigOpSpacing5}, - {type: "elem", elem: submid}, - {type: "kern", size: subKern}, - {type: "elem", elem: base}, - {type: "kern", size: supKern}, - {type: "elem", elem: supmid}, - {type: "kern", size: fontMetrics.metrics.bigOpSpacing5} - ], "bottom", bottom, options); - - // See comment above about slants - finalGroup.children[0].style.marginLeft = -slant + "em"; - finalGroup.children[2].style.marginLeft = slant + "em"; - } - - return makeSpan(["mop", "op-limits"], [finalGroup]); - } else { - if (group.value.symbol) { - base.style.top = baseShift + "em"; - } - - return base; - } - }, - - katex: function(group, options, prev) { - // The KaTeX logo. The offsets for the K and a were chosen to look - // good, but the offsets for the T, E, and X were taken from the - // definition of \TeX in TeX (see TeXbook pg. 356) - var k = makeSpan( - ["k"], [buildCommon.mathsym("K", group.mode)]); - var a = makeSpan( - ["a"], [buildCommon.mathsym("A", group.mode)]); - - a.height = (a.height + 0.2) * 0.75; - a.depth = (a.height - 0.2) * 0.75; - - var t = makeSpan( - ["t"], [buildCommon.mathsym("T", group.mode)]); - var e = makeSpan( - ["e"], [buildCommon.mathsym("E", group.mode)]); - - e.height = (e.height - 0.2155); - e.depth = (e.depth + 0.2155); - - var x = makeSpan( - ["x"], [buildCommon.mathsym("X", group.mode)]); - - return makeSpan( - ["katex-logo"], [k, a, t, e, x], options.getColor()); - }, - - overline: function(group, options, prev) { - // Overlines are handled in the TeXbook pg 443, Rule 9. - - // Build the inner group in the cramped style. - var innerGroup = buildGroup(group.value.body, - options.withStyle(options.style.cramp())); - - var ruleWidth = fontMetrics.metrics.defaultRuleThickness / - options.style.sizeMultiplier; - - // Create the line above the body - var line = makeSpan( - [options.style.reset(), Style.TEXT.cls(), "overline-line"]); - line.height = ruleWidth; - line.maxFontSize = 1.0; - - // Generate the vlist, with the appropriate kerns - var vlist = buildCommon.makeVList([ - {type: "elem", elem: innerGroup}, - {type: "kern", size: 3 * ruleWidth}, - {type: "elem", elem: line}, - {type: "kern", size: ruleWidth} - ], "firstBaseline", null, options); - - return makeSpan(["overline", "mord"], [vlist], options.getColor()); - }, - - sqrt: function(group, options, prev) { - // Square roots are handled in the TeXbook pg. 443, Rule 11. - - // First, we do the same steps as in overline to build the inner group - // and line - var inner = buildGroup(group.value.body, - options.withStyle(options.style.cramp())); - - var ruleWidth = fontMetrics.metrics.defaultRuleThickness / - options.style.sizeMultiplier; - - var line = makeSpan( - [options.style.reset(), Style.TEXT.cls(), "sqrt-line"], [], - options.getColor()); - line.height = ruleWidth; - line.maxFontSize = 1.0; - - var phi = ruleWidth; - if (options.style.id < Style.TEXT.id) { - phi = fontMetrics.metrics.xHeight; - } - - // Calculate the clearance between the body and line - var lineClearance = ruleWidth + phi / 4; - - var innerHeight = - (inner.height + inner.depth) * options.style.sizeMultiplier; - var minDelimiterHeight = innerHeight + lineClearance + ruleWidth; - - // Create a \surd delimiter of the required minimum size - var delim = makeSpan(["sqrt-sign"], [ - delimiter.customSizedDelim("\\surd", minDelimiterHeight, - false, options, group.mode)], - options.getColor()); - - var delimDepth = (delim.height + delim.depth) - ruleWidth; - - // Adjust the clearance based on the delimiter size - if (delimDepth > inner.height + inner.depth + lineClearance) { - lineClearance = - (lineClearance + delimDepth - inner.height - inner.depth) / 2; - } - - // Shift the delimiter so that its top lines up with the top of the line - var delimShift = -(inner.height + lineClearance + ruleWidth) + delim.height; - delim.style.top = delimShift + "em"; - delim.height -= delimShift; - delim.depth += delimShift; - - // We add a special case here, because even when `inner` is empty, we - // still get a line. So, we use a simple heuristic to decide if we - // should omit the body entirely. (note this doesn't work for something - // like `\sqrt{\rlap{x}}`, but if someone is doing that they deserve for - // it not to work. - var body; - if (inner.height === 0 && inner.depth === 0) { - body = makeSpan(); - } else { - body = buildCommon.makeVList([ - {type: "elem", elem: inner}, - {type: "kern", size: lineClearance}, - {type: "elem", elem: line}, - {type: "kern", size: ruleWidth} - ], "firstBaseline", null, options); - } - - if (!group.value.index) { - return makeSpan(["sqrt", "mord"], [delim, body]); - } else { - // Handle the optional root index - - // The index is always in scriptscript style - var root = buildGroup( - group.value.index, - options.withStyle(Style.SCRIPTSCRIPT)); - var rootWrap = makeSpan( - [options.style.reset(), Style.SCRIPTSCRIPT.cls()], - [root]); - - // Figure out the height and depth of the inner part - var innerRootHeight = Math.max(delim.height, body.height); - var innerRootDepth = Math.max(delim.depth, body.depth); - - // The amount the index is shifted by. This is taken from the TeX - // source, in the definition of `\r@@t`. - var toShift = 0.6 * (innerRootHeight - innerRootDepth); - - // Build a VList with the superscript shifted up correctly - var rootVList = buildCommon.makeVList( - [{type: "elem", elem: rootWrap}], - "shift", -toShift, options); - // Add a class surrounding it so we can add on the appropriate - // kerning - var rootVListWrap = makeSpan(["root"], [rootVList]); - - return makeSpan(["sqrt", "mord"], [rootVListWrap, delim, body]); - } - }, - - sizing: function(group, options, prev) { - // Handle sizing operators like \Huge. Real TeX doesn't actually allow - // these functions inside of math expressions, so we do some special - // handling. - var inner = buildExpression(group.value.value, - options.withSize(group.value.size), prev); - - var span = makeSpan(["mord"], - [makeSpan(["sizing", "reset-" + options.size, group.value.size, - options.style.cls()], - inner)]); - - // Calculate the correct maxFontSize manually - var fontSize = buildCommon.sizingMultiplier[group.value.size]; - span.maxFontSize = fontSize * options.style.sizeMultiplier; - - return span; - }, - - styling: function(group, options, prev) { - // Style changes are handled in the TeXbook on pg. 442, Rule 3. - - // Figure out what style we're changing to. - var style = { - "display": Style.DISPLAY, - "text": Style.TEXT, - "script": Style.SCRIPT, - "scriptscript": Style.SCRIPTSCRIPT - }; - - var newStyle = style[group.value.style]; - - // Build the inner expression in the new style. - var inner = buildExpression( - group.value.value, options.withStyle(newStyle), prev); - - return makeSpan([options.style.reset(), newStyle.cls()], inner); - }, - - font: function(group, options, prev) { - var font = group.value.font; - return buildGroup(group.value.body, options.withFont(font), prev); - }, - - delimsizing: function(group, options, prev) { - var delim = group.value.value; - - if (delim === ".") { - // Empty delimiters still count as elements, even though they don't - // show anything. - return makeSpan([groupToType[group.value.delimType]]); - } - - // Use delimiter.sizedDelim to generate the delimiter. - return makeSpan( - [groupToType[group.value.delimType]], - [delimiter.sizedDelim( - delim, group.value.size, options, group.mode)]); - }, - - leftright: function(group, options, prev) { - // Build the inner expression - var inner = buildExpression(group.value.body, options.reset()); - - var innerHeight = 0; - var innerDepth = 0; - - // Calculate its height and depth - for (var i = 0; i < inner.length; i++) { - innerHeight = Math.max(inner[i].height, innerHeight); - innerDepth = Math.max(inner[i].depth, innerDepth); - } - - // The size of delimiters is the same, regardless of what style we are - // in. Thus, to correctly calculate the size of delimiter we need around - // a group, we scale down the inner size based on the size. - innerHeight *= options.style.sizeMultiplier; - innerDepth *= options.style.sizeMultiplier; - - var leftDelim; - if (group.value.left === ".") { - // Empty delimiters in \left and \right make null delimiter spaces. - leftDelim = makeNullDelimiter(options); - } else { - // Otherwise, use leftRightDelim to generate the correct sized - // delimiter. - leftDelim = delimiter.leftRightDelim( - group.value.left, innerHeight, innerDepth, options, - group.mode); - } - // Add it to the beginning of the expression - inner.unshift(leftDelim); - - var rightDelim; - // Same for the right delimiter - if (group.value.right === ".") { - rightDelim = makeNullDelimiter(options); - } else { - rightDelim = delimiter.leftRightDelim( - group.value.right, innerHeight, innerDepth, options, - group.mode); - } - // Add it to the end of the expression. - inner.push(rightDelim); - - return makeSpan( - ["minner", options.style.cls()], inner, options.getColor()); - }, - - rule: function(group, options, prev) { - // Make an empty span for the rule - var rule = makeSpan(["mord", "rule"], [], options.getColor()); - - // Calculate the shift, width, and height of the rule, and account for units - var shift = 0; - if (group.value.shift) { - shift = group.value.shift.number; - if (group.value.shift.unit === "ex") { - shift *= fontMetrics.metrics.xHeight; - } - } - - var width = group.value.width.number; - if (group.value.width.unit === "ex") { - width *= fontMetrics.metrics.xHeight; - } - - var height = group.value.height.number; - if (group.value.height.unit === "ex") { - height *= fontMetrics.metrics.xHeight; - } - - // The sizes of rules are absolute, so make it larger if we are in a - // smaller style. - shift /= options.style.sizeMultiplier; - width /= options.style.sizeMultiplier; - height /= options.style.sizeMultiplier; - - // Style the rule to the right size - rule.style.borderRightWidth = width + "em"; - rule.style.borderTopWidth = height + "em"; - rule.style.bottom = shift + "em"; - - // Record the height and width - rule.width = width; - rule.height = height + shift; - rule.depth = -shift; - - return rule; - }, - - accent: function(group, options, prev) { - // Accents are handled in the TeXbook pg. 443, rule 12. - var base = group.value.base; - - var supsubGroup; - if (group.type === "supsub") { - // If our base is a character box, and we have superscripts and - // subscripts, the supsub will defer to us. In particular, we want - // to attach the superscripts and subscripts to the inner body (so - // that the position of the superscripts and subscripts won't be - // affected by the height of the accent). We accomplish this by - // sticking the base of the accent into the base of the supsub, and - // rendering that, while keeping track of where the accent is. - - // The supsub group is the group that was passed in - var supsub = group; - // The real accent group is the base of the supsub group - group = supsub.value.base; - // The character box is the base of the accent group - base = group.value.base; - // Stick the character box into the base of the supsub group - supsub.value.base = base; - - // Rerender the supsub group with its new base, and store that - // result. - supsubGroup = buildGroup( - supsub, options.reset(), prev); - } - - // Build the base group - var body = buildGroup( - base, options.withStyle(options.style.cramp())); - - // Calculate the skew of the accent. This is based on the line "If the - // nucleus is not a single character, let s = 0; otherwise set s to the - // kern amount for the nucleus followed by the \skewchar of its font." - // Note that our skew metrics are just the kern between each character - // and the skewchar. - var skew; - if (isCharacterBox(base)) { - // If the base is a character box, then we want the skew of the - // innermost character. To do that, we find the innermost character: - var baseChar = getBaseElem(base); - // Then, we render its group to get the symbol inside it - var baseGroup = buildGroup( - baseChar, options.withStyle(options.style.cramp())); - // Finally, we pull the skew off of the symbol. - skew = baseGroup.skew; - // Note that we now throw away baseGroup, because the layers we - // removed with getBaseElem might contain things like \color which - // we can't get rid of. - // TODO(emily): Find a better way to get the skew - } else { - skew = 0; - } - - // calculate the amount of space between the body and the accent - var clearance = Math.min(body.height, fontMetrics.metrics.xHeight); - - // Build the accent - var accent = buildCommon.makeSymbol( - group.value.accent, "Main-Regular", "math", options.getColor()); - // Remove the italic correction of the accent, because it only serves to - // shift the accent over to a place we don't want. - accent.italic = 0; - - // The \vec character that the fonts use is a combining character, and - // thus shows up much too far to the left. To account for this, we add a - // specific class which shifts the accent over to where we want it. - // TODO(emily): Fix this in a better way, like by changing the font - var vecClass = group.value.accent === "\\vec" ? "accent-vec" : null; - - var accentBody = makeSpan(["accent-body", vecClass], [ - makeSpan([], [accent])]); - - accentBody = buildCommon.makeVList([ - {type: "elem", elem: body}, - {type: "kern", size: -clearance}, - {type: "elem", elem: accentBody} - ], "firstBaseline", null, options); - - // Shift the accent over by the skew. Note we shift by twice the skew - // because we are centering the accent, so by adding 2*skew to the left, - // we shift it to the right by 1*skew. - accentBody.children[1].style.marginLeft = 2 * skew + "em"; - - var accentWrap = makeSpan(["mord", "accent"], [accentBody]); - - if (supsubGroup) { - // Here, we replace the "base" child of the supsub with our newly - // generated accent. - supsubGroup.children[0] = accentWrap; - - // Since we don't rerun the height calculation after replacing the - // accent, we manually recalculate height. - supsubGroup.height = Math.max(accentWrap.height, supsubGroup.height); - - // Accents should always be ords, even when their innards are not. - supsubGroup.classes[0] = "mord"; - - return supsubGroup; - } else { - return accentWrap; - } - }, - - phantom: function(group, options, prev) { - var elements = buildExpression( - group.value.value, - options.withPhantom(), - prev - ); - - // \phantom isn't supposed to affect the elements it contains. - // See "color" for more details. - return new buildCommon.makeFragment(elements); - } -}; - -/** - * buildGroup is the function that takes a group and calls the correct groupType - * function for it. It also handles the interaction of size and style changes - * between parents and children. - */ -var buildGroup = function(group, options, prev) { - if (!group) { - return makeSpan(); - } - - if (groupTypes[group.type]) { - // Call the groupTypes function - var groupNode = groupTypes[group.type](group, options, prev); - var multiplier; - - // If the style changed between the parent and the current group, - // account for the size difference - if (options.style !== options.parentStyle) { - multiplier = options.style.sizeMultiplier / - options.parentStyle.sizeMultiplier; - - groupNode.height *= multiplier; - groupNode.depth *= multiplier; - } - - // If the size changed between the parent and the current group, account - // for that size difference. - if (options.size !== options.parentSize) { - multiplier = buildCommon.sizingMultiplier[options.size] / - buildCommon.sizingMultiplier[options.parentSize]; - - groupNode.height *= multiplier; - groupNode.depth *= multiplier; - } - - return groupNode; - } else { - throw new ParseError( - "Got group of unknown type: '" + group.type + "'"); - } -}; - -/** - * Take an entire parse tree, and build it into an appropriate set of HTML - * nodes. - */ -var buildHTML = function(tree, settings) { - // buildExpression is destructive, so we need to make a clone - // of the incoming tree so that it isn't accidentally changed - tree = JSON.parse(JSON.stringify(tree)); - - var startStyle = Style.TEXT; - if (settings.displayMode) { - startStyle = Style.DISPLAY; - } - - // Setup the default options - var options = new Options({ - style: startStyle, - size: "size5" - }); - - // Build the expression contained in the tree - var expression = buildExpression(tree, options); - var body = makeSpan(["base", options.style.cls()], expression); - - // Add struts, which ensure that the top of the HTML element falls at the - // height of the expression, and the bottom of the HTML element falls at the - // depth of the expression. - var topStrut = makeSpan(["strut"]); - var bottomStrut = makeSpan(["strut", "bottom"]); - - topStrut.style.height = body.height + "em"; - bottomStrut.style.height = (body.height + body.depth) + "em"; - // We'd like to use `vertical-align: top` but in IE 9 this lowers the - // baseline of the box to the bottom of this strut (instead staying in the - // normal place) so we use an absolute value for vertical-align instead - bottomStrut.style.verticalAlign = -body.depth + "em"; - - // Wrap the struts and body together - var htmlNode = makeSpan(["katex-html"], [topStrut, bottomStrut, body]); - - htmlNode.setAttribute("aria-hidden", "true"); - - return htmlNode; -}; - -module.exports = buildHTML; - -},{"./Options":4,"./ParseError":5,"./Style":8,"./buildCommon":9,"./delimiter":13,"./domTree":14,"./fontMetrics":16,"./utils":22}],11:[function(require,module,exports){ -/** - * This file converts a parse tree into a cooresponding MathML tree. The main - * entry point is the `buildMathML` function, which takes a parse tree from the - * parser. - */ - -var buildCommon = require("./buildCommon"); -var fontMetrics = require("./fontMetrics"); -var mathMLTree = require("./mathMLTree"); -var Options = require("./Options"); -var ParseError = require("./ParseError"); -var Settings = require("../src/Settings"); -var Style = require("./Style"); -var symbols = require("./symbols"); -var utils = require("./utils"); - -var makeSpan = buildCommon.makeSpan; -var fontMap = buildCommon.fontMap; - -/** - * Takes a symbol and converts it into a MathML text node after performing - * optional replacement from symbols.js. - */ -var makeText = function(text, mode) { - if (symbols[mode][text] && symbols[mode][text].replace) { - text = symbols[mode][text].replace; - } - - return new mathMLTree.TextNode(text); -}; - -/** - * Returns the math variant as a string or null if none is required. - */ -var getVariant = function(group, options) { - var font = options.font; - if (!font) { - return null; - } - - var mode = group.mode; - if (font === "mathit") { - return "italic"; - } - - var value = group.value; - if (utils.contains(["\\imath", "\\jmath"], value)) { - return null; - } - - if (symbols[mode][value] && symbols[mode][value].replace) { - value = symbols[mode][value].replace; - } - - var fontName = fontMap[font].fontName; - if (fontMetrics.getCharacterMetrics(value, fontName)) { - return fontMap[options.font].variant; - } - - return null; -}; - -/** - * Functions for handling the different types of groups found in the parse - * tree. Each function should take a parse group and return a MathML node. - */ -var groupTypes = { - mathord: function(group, options) { - var node = new mathMLTree.MathNode( - "mi", - [makeText(group.value, group.mode)]); - - var variant = getVariant(group, options); - if (variant) { - node.setAttribute("mathvariant", variant); - } - return node; - }, - - textord: function(group, options) { - var text = makeText(group.value, group.mode); - - var variant = getVariant(group, options) || "normal"; - - var node; - if (/[0-9]/.test(group.value)) { - // TODO(kevinb) merge adjacent nodes - // do it as a post processing step - node = new mathMLTree.MathNode("mn", [text]); - if (options.font) { - node.setAttribute("mathvariant", variant); - } - } else { - node = new mathMLTree.MathNode("mi", [text]); - node.setAttribute("mathvariant", variant); - } - - return node; - }, - - bin: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - return node; - }, - - rel: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - return node; - }, - - open: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - return node; - }, - - close: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - return node; - }, - - inner: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - return node; - }, - - punct: function(group) { - var node = new mathMLTree.MathNode( - "mo", [makeText(group.value, group.mode)]); - - node.setAttribute("separator", "true"); - - return node; - }, - - ordgroup: function(group, options) { - var inner = buildExpression(group.value, options); - - var node = new mathMLTree.MathNode("mrow", inner); - - return node; - }, - - text: function(group, options) { - var inner = buildExpression(group.value.body, options); - - var node = new mathMLTree.MathNode("mtext", inner); - - return node; - }, - - color: function(group, options) { - var inner = buildExpression(group.value.value, options); - - var node = new mathMLTree.MathNode("mstyle", inner); - - node.setAttribute("mathcolor", group.value.color); - - return node; - }, - - supsub: function(group, options) { - var children = [buildGroup(group.value.base, options)]; - - if (group.value.sub) { - children.push(buildGroup(group.value.sub, options)); - } - - if (group.value.sup) { - children.push(buildGroup(group.value.sup, options)); - } - - var nodeType; - if (!group.value.sub) { - nodeType = "msup"; - } else if (!group.value.sup) { - nodeType = "msub"; - } else { - nodeType = "msubsup"; - } - - var node = new mathMLTree.MathNode(nodeType, children); - - return node; - }, - - genfrac: function(group, options) { - var node = new mathMLTree.MathNode( - "mfrac", - [buildGroup(group.value.numer, options), - buildGroup(group.value.denom, options)]); - - if (!group.value.hasBarLine) { - node.setAttribute("linethickness", "0px"); - } - - if (group.value.leftDelim != null || group.value.rightDelim != null) { - var withDelims = []; - - if (group.value.leftDelim != null) { - var leftOp = new mathMLTree.MathNode( - "mo", [new mathMLTree.TextNode(group.value.leftDelim)]); - - leftOp.setAttribute("fence", "true"); - - withDelims.push(leftOp); - } - - withDelims.push(node); - - if (group.value.rightDelim != null) { - var rightOp = new mathMLTree.MathNode( - "mo", [new mathMLTree.TextNode(group.value.rightDelim)]); - - rightOp.setAttribute("fence", "true"); - - withDelims.push(rightOp); - } - - var outerNode = new mathMLTree.MathNode("mrow", withDelims); - - return outerNode; - } - - return node; - }, - - array: function(group, options) { - return new mathMLTree.MathNode( - "mtable", group.value.body.map(function(row) { - return new mathMLTree.MathNode( - "mtr", row.map(function(cell) { - return new mathMLTree.MathNode( - "mtd", [buildGroup(cell, options)]); - })); - })); - }, - - sqrt: function(group, options) { - var node; - if (group.value.index) { - node = new mathMLTree.MathNode( - "mroot", [ - buildGroup(group.value.body, options), - buildGroup(group.value.index, options) - ]); - } else { - node = new mathMLTree.MathNode( - "msqrt", [buildGroup(group.value.body, options)]); - } - - return node; - }, - - leftright: function(group, options) { - var inner = buildExpression(group.value.body, options); - - if (group.value.left !== ".") { - var leftNode = new mathMLTree.MathNode( - "mo", [makeText(group.value.left, group.mode)]); - - leftNode.setAttribute("fence", "true"); - - inner.unshift(leftNode); - } - - if (group.value.right !== ".") { - var rightNode = new mathMLTree.MathNode( - "mo", [makeText(group.value.right, group.mode)]); - - rightNode.setAttribute("fence", "true"); - - inner.push(rightNode); - } - - var outerNode = new mathMLTree.MathNode("mrow", inner); - - return outerNode; - }, - - accent: function(group, options) { - var accentNode = new mathMLTree.MathNode( - "mo", [makeText(group.value.accent, group.mode)]); - - var node = new mathMLTree.MathNode( - "mover", - [buildGroup(group.value.base, options), - accentNode]); - - node.setAttribute("accent", "true"); - - return node; - }, - - spacing: function(group) { - var node; - - if (group.value === "\\ " || group.value === "\\space" || - group.value === " " || group.value === "~") { - node = new mathMLTree.MathNode( - "mtext", [new mathMLTree.TextNode("\u00a0")]); - } else { - node = new mathMLTree.MathNode("mspace"); - - node.setAttribute( - "width", buildCommon.spacingFunctions[group.value].size); - } - - return node; - }, - - op: function(group) { - var node; - - // TODO(emily): handle big operators using the `largeop` attribute - - if (group.value.symbol) { - // This is a symbol. Just add the symbol. - node = new mathMLTree.MathNode( - "mo", [makeText(group.value.body, group.mode)]); - } else { - // This is a text operator. Add all of the characters from the - // operator's name. - // TODO(emily): Add a space in the middle of some of these - // operators, like \limsup. - node = new mathMLTree.MathNode( - "mi", [new mathMLTree.TextNode(group.value.body.slice(1))]); - } - - return node; - }, - - katex: function(group) { - var node = new mathMLTree.MathNode( - "mtext", [new mathMLTree.TextNode("KaTeX")]); - - return node; - }, - - font: function(group, options) { - var font = group.value.font; - var node = buildGroup(group.value.body, options.withFont(font)); - return node; - }, - - delimsizing: function(group) { - var children = []; - - if (group.value.value !== ".") { - children.push(makeText(group.value.value, group.mode)); - } - - var node = new mathMLTree.MathNode("mo", children); - - if (group.value.delimType === "open" || - group.value.delimType === "close") { - // Only some of the delimsizing functions act as fences, and they - // return "open" or "close" delimTypes. - node.setAttribute("fence", "true"); - } else { - // Explicitly disable fencing if it's not a fence, to override the - // defaults. - node.setAttribute("fence", "false"); - } - - return node; - }, - - styling: function(group, options) { - var inner = buildExpression(group.value.value, options); - - var node = new mathMLTree.MathNode("mstyle", inner); - - var styleAttributes = { - "display": ["0", "true"], - "text": ["0", "false"], - "script": ["1", "false"], - "scriptscript": ["2", "false"] - }; - - var attr = styleAttributes[group.value.style]; - - node.setAttribute("scriptlevel", attr[0]); - node.setAttribute("displaystyle", attr[1]); - - return node; - }, - - sizing: function(group, options) { - var inner = buildExpression(group.value.value, options); - - var node = new mathMLTree.MathNode("mstyle", inner); - - // TODO(emily): This doesn't produce the correct size for nested size - // changes, because we don't keep state of what style we're currently - // in, so we can't reset the size to normal before changing it. Now - // that we're passing an options parameter we should be able to fix - // this. - node.setAttribute( - "mathsize", buildCommon.sizingMultiplier[group.value.size] + "em"); - - return node; - }, - - overline: function(group, options) { - var operator = new mathMLTree.MathNode( - "mo", [new mathMLTree.TextNode("\u203e")]); - operator.setAttribute("stretchy", "true"); - - var node = new mathMLTree.MathNode( - "mover", - [buildGroup(group.value.body, options), - operator]); - node.setAttribute("accent", "true"); - - return node; - }, - - rule: function(group) { - // TODO(emily): Figure out if there's an actual way to draw black boxes - // in MathML. - var node = new mathMLTree.MathNode("mrow"); - - return node; - }, - - llap: function(group, options) { - var node = new mathMLTree.MathNode( - "mpadded", [buildGroup(group.value.body, options)]); - - node.setAttribute("lspace", "-1width"); - node.setAttribute("width", "0px"); - - return node; - }, - - rlap: function(group, options) { - var node = new mathMLTree.MathNode( - "mpadded", [buildGroup(group.value.body, options)]); - - node.setAttribute("width", "0px"); - - return node; - }, - - phantom: function(group, options, prev) { - var inner = buildExpression(group.value.value, options); - return new mathMLTree.MathNode("mphantom", inner); - } -}; - -/** - * Takes a list of nodes, builds them, and returns a list of the generated - * MathML nodes. A little simpler than the HTML version because we don't do any - * previous-node handling. - */ -var buildExpression = function(expression, options) { - var groups = []; - for (var i = 0; i < expression.length; i++) { - var group = expression[i]; - groups.push(buildGroup(group, options)); - } - return groups; -}; - -/** - * Takes a group from the parser and calls the appropriate groupTypes function - * on it to produce a MathML node. - */ -var buildGroup = function(group, options) { - if (!group) { - return new mathMLTree.MathNode("mrow"); - } - - if (groupTypes[group.type]) { - // Call the groupTypes function - return groupTypes[group.type](group, options); - } else { - throw new ParseError( - "Got group of unknown type: '" + group.type + "'"); - } -}; - -/** - * Takes a full parse tree and settings and builds a MathML representation of - * it. In particular, we put the elements from building the parse tree into a - * tag so we can also include that TeX source as an annotation. - * - * Note that we actually return a domTree element with a `` inside it so - * we can do appropriate styling. - */ -var buildMathML = function(tree, texExpression, settings) { - settings = settings || new Settings({}); - - var startStyle = Style.TEXT; - if (settings.displayMode) { - startStyle = Style.DISPLAY; - } - - // Setup the default options - var options = new Options({ - style: startStyle, - size: "size5" - }); - - var expression = buildExpression(tree, options); - - // Wrap up the expression in an mrow so it is presented in the semantics - // tag correctly. - var wrapper = new mathMLTree.MathNode("mrow", expression); - - // Build a TeX annotation of the source - var annotation = new mathMLTree.MathNode( - "annotation", [new mathMLTree.TextNode(texExpression)]); - - annotation.setAttribute("encoding", "application/x-tex"); - - var semantics = new mathMLTree.MathNode( - "semantics", [wrapper, annotation]); - - var math = new mathMLTree.MathNode("math", [semantics]); - - // You can't style nodes, so we wrap the node in a span. - return makeSpan(["katex-mathml"], [math]); -}; - -module.exports = buildMathML; - -},{"../src/Settings":7,"./Options":4,"./ParseError":5,"./Style":8,"./buildCommon":9,"./fontMetrics":16,"./mathMLTree":18,"./symbols":21,"./utils":22}],12:[function(require,module,exports){ - -var buildHTML = require("./buildHTML"); -var buildMathML = require("./buildMathML"); -var buildCommon = require("./buildCommon"); - -var makeSpan = buildCommon.makeSpan; - -var buildTree = function(tree, expression, settings) { - // `buildHTML` sometimes messes with the parse tree (like turning bins -> - // ords), so we build the MathML version first. - var mathMLNode = buildMathML(tree, expression, settings); - var htmlNode = buildHTML(tree, settings); - - var katexNode = makeSpan(["katex"], [ - mathMLNode, htmlNode - ]); - - if (settings.displayMode) { - return makeSpan(["katex-display"], [katexNode]); - } else { - return katexNode; - } -}; - -module.exports = buildTree; - -},{"./buildCommon":9,"./buildHTML":10,"./buildMathML":11}],13:[function(require,module,exports){ -/** - * This file deals with creating delimiters of various sizes. The TeXbook - * discusses these routines on page 441-442, in the "Another subroutine sets box - * x to a specified variable delimiter" paragraph. - * - * There are three main routines here. `makeSmallDelim` makes a delimiter in the - * normal font, but in either text, script, or scriptscript style. - * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1, - * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of - * smaller pieces that are stacked on top of one another. - * - * The functions take a parameter `center`, which determines if the delimiter - * should be centered around the axis. - * - * Then, there are three exposed functions. `sizedDelim` makes a delimiter in - * one of the given sizes. This is used for things like `\bigl`. - * `customSizedDelim` makes a delimiter with a given total height+depth. It is - * called in places like `\sqrt`. `leftRightDelim` makes an appropriate - * delimiter which surrounds an expression of a given height an depth. It is - * used in `\left` and `\right`. - */ - -var ParseError = require("./ParseError"); -var Style = require("./Style"); - -var buildCommon = require("./buildCommon"); -var fontMetrics = require("./fontMetrics"); -var symbols = require("./symbols"); -var utils = require("./utils"); - -var makeSpan = buildCommon.makeSpan; - -/** - * Get the metrics for a given symbol and font, after transformation (i.e. - * after following replacement from symbols.js) - */ -var getMetrics = function(symbol, font) { - if (symbols.math[symbol] && symbols.math[symbol].replace) { - return fontMetrics.getCharacterMetrics( - symbols.math[symbol].replace, font); - } else { - return fontMetrics.getCharacterMetrics( - symbol, font); - } -}; - -/** - * Builds a symbol in the given font size (note size is an integer) - */ -var mathrmSize = function(value, size, mode) { - return buildCommon.makeSymbol(value, "Size" + size + "-Regular", mode); -}; - -/** - * Puts a delimiter span in a given style, and adds appropriate height, depth, - * and maxFontSizes. - */ -var styleWrap = function(delim, toStyle, options) { - var span = makeSpan( - ["style-wrap", options.style.reset(), toStyle.cls()], [delim]); - - var multiplier = toStyle.sizeMultiplier / options.style.sizeMultiplier; - - span.height *= multiplier; - span.depth *= multiplier; - span.maxFontSize = toStyle.sizeMultiplier; - - return span; -}; - -/** - * Makes a small delimiter. This is a delimiter that comes in the Main-Regular - * font, but is restyled to either be in textstyle, scriptstyle, or - * scriptscriptstyle. - */ -var makeSmallDelim = function(delim, style, center, options, mode) { - var text = buildCommon.makeSymbol(delim, "Main-Regular", mode); - - var span = styleWrap(text, style, options); - - if (center) { - var shift = - (1 - options.style.sizeMultiplier / style.sizeMultiplier) * - fontMetrics.metrics.axisHeight; - - span.style.top = shift + "em"; - span.height -= shift; - span.depth += shift; - } - - return span; -}; - -/** - * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2, - * Size3, or Size4 fonts. It is always rendered in textstyle. - */ -var makeLargeDelim = function(delim, size, center, options, mode) { - var inner = mathrmSize(delim, size, mode); - - var span = styleWrap( - makeSpan(["delimsizing", "size" + size], - [inner], options.getColor()), - Style.TEXT, options); - - if (center) { - var shift = (1 - options.style.sizeMultiplier) * - fontMetrics.metrics.axisHeight; - - span.style.top = shift + "em"; - span.height -= shift; - span.depth += shift; - } - - return span; -}; - -/** - * Make an inner span with the given offset and in the given font. This is used - * in `makeStackedDelim` to make the stacking pieces for the delimiter. - */ -var makeInner = function(symbol, font, mode) { - var sizeClass; - // Apply the correct CSS class to choose the right font. - if (font === "Size1-Regular") { - sizeClass = "delim-size1"; - } else if (font === "Size4-Regular") { - sizeClass = "delim-size4"; - } - - var inner = makeSpan( - ["delimsizinginner", sizeClass], - [makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); - - // Since this will be passed into `makeVList` in the end, wrap the element - // in the appropriate tag that VList uses. - return {type: "elem", elem: inner}; -}; - -/** - * Make a stacked delimiter out of a given delimiter, with the total height at - * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook. - */ -var makeStackedDelim = function(delim, heightTotal, center, options, mode) { - // There are four parts, the top, an optional middle, a repeated part, and a - // bottom. - var top, middle, repeat, bottom; - top = repeat = bottom = delim; - middle = null; - // Also keep track of what font the delimiters are in - var font = "Size1-Regular"; - - // We set the parts and font based on the symbol. Note that we use - // '\u23d0' instead of '|' and '\u2016' instead of '\\|' for the - // repeats of the arrows - if (delim === "\\uparrow") { - repeat = bottom = "\u23d0"; - } else if (delim === "\\Uparrow") { - repeat = bottom = "\u2016"; - } else if (delim === "\\downarrow") { - top = repeat = "\u23d0"; - } else if (delim === "\\Downarrow") { - top = repeat = "\u2016"; - } else if (delim === "\\updownarrow") { - top = "\\uparrow"; - repeat = "\u23d0"; - bottom = "\\downarrow"; - } else if (delim === "\\Updownarrow") { - top = "\\Uparrow"; - repeat = "\u2016"; - bottom = "\\Downarrow"; - } else if (delim === "[" || delim === "\\lbrack") { - top = "\u23a1"; - repeat = "\u23a2"; - bottom = "\u23a3"; - font = "Size4-Regular"; - } else if (delim === "]" || delim === "\\rbrack") { - top = "\u23a4"; - repeat = "\u23a5"; - bottom = "\u23a6"; - font = "Size4-Regular"; - } else if (delim === "\\lfloor") { - repeat = top = "\u23a2"; - bottom = "\u23a3"; - font = "Size4-Regular"; - } else if (delim === "\\lceil") { - top = "\u23a1"; - repeat = bottom = "\u23a2"; - font = "Size4-Regular"; - } else if (delim === "\\rfloor") { - repeat = top = "\u23a5"; - bottom = "\u23a6"; - font = "Size4-Regular"; - } else if (delim === "\\rceil") { - top = "\u23a4"; - repeat = bottom = "\u23a5"; - font = "Size4-Regular"; - } else if (delim === "(") { - top = "\u239b"; - repeat = "\u239c"; - bottom = "\u239d"; - font = "Size4-Regular"; - } else if (delim === ")") { - top = "\u239e"; - repeat = "\u239f"; - bottom = "\u23a0"; - font = "Size4-Regular"; - } else if (delim === "\\{" || delim === "\\lbrace") { - top = "\u23a7"; - middle = "\u23a8"; - bottom = "\u23a9"; - repeat = "\u23aa"; - font = "Size4-Regular"; - } else if (delim === "\\}" || delim === "\\rbrace") { - top = "\u23ab"; - middle = "\u23ac"; - bottom = "\u23ad"; - repeat = "\u23aa"; - font = "Size4-Regular"; - } else if (delim === "\\surd") { - top = "\ue001"; - bottom = "\u23b7"; - repeat = "\ue000"; - font = "Size4-Regular"; - } - - // Get the metrics of the four sections - var topMetrics = getMetrics(top, font); - var topHeightTotal = topMetrics.height + topMetrics.depth; - var repeatMetrics = getMetrics(repeat, font); - var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth; - var bottomMetrics = getMetrics(bottom, font); - var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth; - var middleHeightTotal = 0; - var middleFactor = 1; - if (middle !== null) { - var middleMetrics = getMetrics(middle, font); - middleHeightTotal = middleMetrics.height + middleMetrics.depth; - middleFactor = 2; // repeat symmetrically above and below middle - } - - // Calcuate the minimal height that the delimiter can have. - // It is at least the size of the top, bottom, and optional middle combined. - var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; - - // Compute the number of copies of the repeat symbol we will need - var repeatCount = Math.ceil( - (heightTotal - minHeight) / (middleFactor * repeatHeightTotal)); - - // Compute the total height of the delimiter including all the symbols - var realHeightTotal = - minHeight + repeatCount * middleFactor * repeatHeightTotal; - - // The center of the delimiter is placed at the center of the axis. Note - // that in this context, "center" means that the delimiter should be - // centered around the axis in the current style, while normally it is - // centered around the axis in textstyle. - var axisHeight = fontMetrics.metrics.axisHeight; - if (center) { - axisHeight *= options.style.sizeMultiplier; - } - // Calculate the depth - var depth = realHeightTotal / 2 - axisHeight; - - // Now, we start building the pieces that will go into the vlist - - // Keep a list of the inner pieces - var inners = []; - - // Add the bottom symbol - inners.push(makeInner(bottom, font, mode)); - - var i; - if (middle === null) { - // Add that many symbols - for (i = 0; i < repeatCount; i++) { - inners.push(makeInner(repeat, font, mode)); - } - } else { - // When there is a middle bit, we need the middle part and two repeated - // sections - for (i = 0; i < repeatCount; i++) { - inners.push(makeInner(repeat, font, mode)); - } - inners.push(makeInner(middle, font, mode)); - for (i = 0; i < repeatCount; i++) { - inners.push(makeInner(repeat, font, mode)); - } - } - - // Add the top symbol - inners.push(makeInner(top, font, mode)); - - // Finally, build the vlist - var inner = buildCommon.makeVList(inners, "bottom", depth, options); - - return styleWrap( - makeSpan(["delimsizing", "mult"], [inner], options.getColor()), - Style.TEXT, options); -}; - -// There are three kinds of delimiters, delimiters that stack when they become -// too large -var stackLargeDelimiters = [ - "(", ")", "[", "\\lbrack", "]", "\\rbrack", - "\\{", "\\lbrace", "\\}", "\\rbrace", - "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", - "\\surd" -]; - -// delimiters that always stack -var stackAlwaysDelimiters = [ - "\\uparrow", "\\downarrow", "\\updownarrow", - "\\Uparrow", "\\Downarrow", "\\Updownarrow", - "|", "\\|", "\\vert", "\\Vert" -]; - -// and delimiters that never stack -var stackNeverDelimiters = [ - "<", ">", "\\langle", "\\rangle", "/", "\\backslash" -]; - -// Metrics of the different sizes. Found by looking at TeX's output of -// $\bigl| // \Bigl| \biggl| \Biggl| \showlists$ -// Used to create stacked delimiters of appropriate sizes in makeSizedDelim. -var sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0]; - -/** - * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4. - */ -var makeSizedDelim = function(delim, size, options, mode) { - // < and > turn into \langle and \rangle in delimiters - if (delim === "<") { - delim = "\\langle"; - } else if (delim === ">") { - delim = "\\rangle"; - } - - // Sized delimiters are never centered. - if (utils.contains(stackLargeDelimiters, delim) || - utils.contains(stackNeverDelimiters, delim)) { - return makeLargeDelim(delim, size, false, options, mode); - } else if (utils.contains(stackAlwaysDelimiters, delim)) { - return makeStackedDelim( - delim, sizeToMaxHeight[size], false, options, mode); - } else { - throw new ParseError("Illegal delimiter: '" + delim + "'"); - } -}; - -/** - * There are three different sequences of delimiter sizes that the delimiters - * follow depending on the kind of delimiter. This is used when creating custom - * sized delimiters to decide whether to create a small, large, or stacked - * delimiter. - * - * In real TeX, these sequences aren't explicitly defined, but are instead - * defined inside the font metrics. Since there are only three sequences that - * are possible for the delimiters that TeX defines, it is easier to just encode - * them explicitly here. - */ - -// Delimiters that never stack try small delimiters and large delimiters only -var stackNeverDelimiterSequence = [ - {type: "small", style: Style.SCRIPTSCRIPT}, - {type: "small", style: Style.SCRIPT}, - {type: "small", style: Style.TEXT}, - {type: "large", size: 1}, - {type: "large", size: 2}, - {type: "large", size: 3}, - {type: "large", size: 4} -]; - -// Delimiters that always stack try the small delimiters first, then stack -var stackAlwaysDelimiterSequence = [ - {type: "small", style: Style.SCRIPTSCRIPT}, - {type: "small", style: Style.SCRIPT}, - {type: "small", style: Style.TEXT}, - {type: "stack"} -]; - -// Delimiters that stack when large try the small and then large delimiters, and -// stack afterwards -var stackLargeDelimiterSequence = [ - {type: "small", style: Style.SCRIPTSCRIPT}, - {type: "small", style: Style.SCRIPT}, - {type: "small", style: Style.TEXT}, - {type: "large", size: 1}, - {type: "large", size: 2}, - {type: "large", size: 3}, - {type: "large", size: 4}, - {type: "stack"} -]; - -/** - * Get the font used in a delimiter based on what kind of delimiter it is. - */ -var delimTypeToFont = function(type) { - if (type.type === "small") { - return "Main-Regular"; - } else if (type.type === "large") { - return "Size" + type.size + "-Regular"; - } else if (type.type === "stack") { - return "Size4-Regular"; - } -}; - -/** - * Traverse a sequence of types of delimiters to decide what kind of delimiter - * should be used to create a delimiter of the given height+depth. - */ -var traverseSequence = function(delim, height, sequence, options) { - // Here, we choose the index we should start at in the sequences. In smaller - // sizes (which correspond to larger numbers in style.size) we start earlier - // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts - // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2 - var start = Math.min(2, 3 - options.style.size); - for (var i = start; i < sequence.length; i++) { - if (sequence[i].type === "stack") { - // This is always the last delimiter, so we just break the loop now. - break; - } - - var metrics = getMetrics(delim, delimTypeToFont(sequence[i])); - var heightDepth = metrics.height + metrics.depth; - - // Small delimiters are scaled down versions of the same font, so we - // account for the style change size. - - if (sequence[i].type === "small") { - heightDepth *= sequence[i].style.sizeMultiplier; - } - - // Check if the delimiter at this size works for the given height. - if (heightDepth > height) { - return sequence[i]; - } - } - - // If we reached the end of the sequence, return the last sequence element. - return sequence[sequence.length - 1]; -}; - -/** - * Make a delimiter of a given height+depth, with optional centering. Here, we - * traverse the sequences, and create a delimiter that the sequence tells us to. - */ -var makeCustomSizedDelim = function(delim, height, center, options, mode) { - if (delim === "<") { - delim = "\\langle"; - } else if (delim === ">") { - delim = "\\rangle"; - } - - // Decide what sequence to use - var sequence; - if (utils.contains(stackNeverDelimiters, delim)) { - sequence = stackNeverDelimiterSequence; - } else if (utils.contains(stackLargeDelimiters, delim)) { - sequence = stackLargeDelimiterSequence; - } else { - sequence = stackAlwaysDelimiterSequence; - } - - // Look through the sequence - var delimType = traverseSequence(delim, height, sequence, options); - - // Depending on the sequence element we decided on, call the appropriate - // function. - if (delimType.type === "small") { - return makeSmallDelim(delim, delimType.style, center, options, mode); - } else if (delimType.type === "large") { - return makeLargeDelim(delim, delimType.size, center, options, mode); - } else if (delimType.type === "stack") { - return makeStackedDelim(delim, height, center, options, mode); - } -}; - -/** - * Make a delimiter for use with `\left` and `\right`, given a height and depth - * of an expression that the delimiters surround. - */ -var makeLeftRightDelim = function(delim, height, depth, options, mode) { - // We always center \left/\right delimiters, so the axis is always shifted - var axisHeight = - fontMetrics.metrics.axisHeight * options.style.sizeMultiplier; - - // Taken from TeX source, tex.web, function make_left_right - var delimiterFactor = 901; - var delimiterExtend = 5.0 / fontMetrics.metrics.ptPerEm; - - var maxDistFromAxis = Math.max( - height - axisHeight, depth + axisHeight); - - var totalHeight = Math.max( - // In real TeX, calculations are done using integral values which are - // 65536 per pt, or 655360 per em. So, the division here truncates in - // TeX but doesn't here, producing different results. If we wanted to - // exactly match TeX's calculation, we could do - // Math.floor(655360 * maxDistFromAxis / 500) * - // delimiterFactor / 655360 - // (To see the difference, compare - // x^{x^{\left(\rule{0.1em}{0.68em}\right)}} - // in TeX and KaTeX) - maxDistFromAxis / 500 * delimiterFactor, - 2 * maxDistFromAxis - delimiterExtend); - - // Finally, we defer to `makeCustomSizedDelim` with our calculated total - // height - return makeCustomSizedDelim(delim, totalHeight, true, options, mode); -}; - -module.exports = { - sizedDelim: makeSizedDelim, - customSizedDelim: makeCustomSizedDelim, - leftRightDelim: makeLeftRightDelim -}; - -},{"./ParseError":5,"./Style":8,"./buildCommon":9,"./fontMetrics":16,"./symbols":21,"./utils":22}],14:[function(require,module,exports){ -/** - * These objects store the data about the DOM nodes we create, as well as some - * extra data. They can then be transformed into real DOM nodes with the - * `toNode` function or HTML markup using `toMarkup`. They are useful for both - * storing extra properties on the nodes, as well as providing a way to easily - * work with the DOM. - * - * Similar functions for working with MathML nodes exist in mathMLTree.js. - */ - -var utils = require("./utils"); - -/** - * Create an HTML className based on a list of classes. In addition to joining - * with spaces, we also remove null or empty classes. - */ -var createClass = function(classes) { - classes = classes.slice(); - for (var i = classes.length - 1; i >= 0; i--) { - if (!classes[i]) { - classes.splice(i, 1); - } - } - - return classes.join(" "); -}; - -/** - * This node represents a span node, with a className, a list of children, and - * an inline style. It also contains information about its height, depth, and - * maxFontSize. - */ -function span(classes, children, height, depth, maxFontSize, style) { - this.classes = classes || []; - this.children = children || []; - this.height = height || 0; - this.depth = depth || 0; - this.maxFontSize = maxFontSize || 0; - this.style = style || {}; - this.attributes = {}; -} - -/** - * Sets an arbitrary attribute on the span. Warning: use this wisely. Not all - * browsers support attributes the same, and having too many custom attributes - * is probably bad. - */ -span.prototype.setAttribute = function(attribute, value) { - this.attributes[attribute] = value; -}; - -/** - * Convert the span into an HTML node - */ -span.prototype.toNode = function() { - var span = document.createElement("span"); - - // Apply the class - span.className = createClass(this.classes); - - // Apply inline styles - for (var style in this.style) { - if (Object.prototype.hasOwnProperty.call(this.style, style)) { - span.style[style] = this.style[style]; - } - } - - // Apply attributes - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - span.setAttribute(attr, this.attributes[attr]); - } - } - - // Append the children, also as HTML nodes - for (var i = 0; i < this.children.length; i++) { - span.appendChild(this.children[i].toNode()); - } - - return span; -}; - -/** - * Convert the span into an HTML markup string - */ -span.prototype.toMarkup = function() { - var markup = " 0) { - span = document.createElement("span"); - span.style.marginRight = this.italic + "em"; - } - - if (this.classes.length > 0) { - span = span || document.createElement("span"); - span.className = createClass(this.classes); - } - - for (var style in this.style) { - if (this.style.hasOwnProperty(style)) { - span = span || document.createElement("span"); - span.style[style] = this.style[style]; - } - } - - if (span) { - span.appendChild(node); - return span; - } else { - return node; - } -}; - -/** - * Creates markup for a symbol node. - */ -symbolNode.prototype.toMarkup = function() { - // TODO(alpert): More duplication than I'd like from - // span.prototype.toMarkup and symbolNode.prototype.toNode... - var needsSpan = false; - - var markup = " 0) { - styles += "margin-right:" + this.italic + "em;"; - } - for (var style in this.style) { - if (this.style.hasOwnProperty(style)) { - styles += utils.hyphenate(style) + ":" + this.style[style] + ";"; - } - } - - if (styles) { - needsSpan = true; - markup += " style=\"" + utils.escape(styles) + "\""; - } - - var escaped = utils.escape(this.value); - if (needsSpan) { - markup += ">"; - markup += escaped; - markup += ""; - return markup; - } else { - return escaped; - } -}; - -module.exports = { - span: span, - documentFragment: documentFragment, - symbolNode: symbolNode -}; - -},{"./utils":22}],15:[function(require,module,exports){ -var fontMetrics = require("./fontMetrics"); -var parseData = require("./parseData"); -var ParseError = require("./ParseError"); - -var ParseNode = parseData.ParseNode; -var ParseResult = parseData.ParseResult; - -/** - * Parse the body of the environment, with rows delimited by \\ and - * columns delimited by &, and create a nested list in row-major order - * with one group per cell. - */ -function parseArray(parser, pos, mode, result) { - var row = [], body = [row], rowGaps = []; - while (true) { - var cell = parser.parseExpression(pos, mode, false, null); - row.push(new ParseNode("ordgroup", cell.result, mode)); - pos = cell.position; - var next = cell.peek.text; - if (next === "&") { - pos = cell.peek.position; - } else if (next === "\\end") { - break; - } else if (next === "\\\\" || next === "\\cr") { - var cr = parser.parseFunction(pos, mode); - rowGaps.push(cr.result.value.size); - pos = cr.position; - row = []; - body.push(row); - } else { - throw new ParseError("Expected & or \\\\ or \\end", - parser.lexer, cell.peek.position); - } - } - result.body = body; - result.rowGaps = rowGaps; - return new ParseResult(new ParseNode(result.type, result, mode), pos); -} - -/* - * An environment definition is very similar to a function definition. - * Each element of the following array may contain - * - names: The names associated with a function. This can be used to - * share one implementation between several similar environments. - * - numArgs: The number of arguments after the \begin{name} function. - * - argTypes: (optional) Just like for a function - * - allowedInText: (optional) Whether or not the environment is allowed inside - * text mode (default false) (not enforced yet) - * - numOptionalArgs: (optional) Just like for a function - * - handler: The function that is called to handle this environment. - * It will receive the following arguments: - * - pos: the current position of the parser. - * - mode: the current parsing mode. - * - envName: the name of the environment, one of the listed names. - * - [args]: the arguments passed to \begin. - * - positions: the positions associated with these arguments. - */ - -var environmentDefinitions = [ - - // Arrays are part of LaTeX, defined in lttab.dtx so its documentation - // is part of the source2e.pdf file of LaTeX2e source documentation. - { - names: ["array"], - numArgs: 1, - handler: function(pos, mode, envName, colalign, positions) { - var parser = this; - // Currently only supports alignment, no separators like | yet. - colalign = colalign.value.map ? colalign.value : [colalign]; - var cols = colalign.map(function(node) { - var ca = node.value; - if ("lcr".indexOf(ca) !== -1) { - return { - align: ca - }; - } - throw new ParseError( - "Unknown column alignment: " + node.value, - parser.lexer, positions[1]); - }); - var res = { - type: "array", - cols: cols, - hskipBeforeAndAfter: true // \@preamble in lttab.dtx - }; - res = parseArray(parser, pos, mode, res); - return res; - } - }, - - // The matrix environments of amsmath builds on the array environment - // of LaTeX, which is discussed above. - { - names: [ - "matrix", - "pmatrix", - "bmatrix", - "Bmatrix", - "vmatrix", - "Vmatrix" - ], - handler: function(pos, mode, envName) { - var delimiters = { - "matrix": null, - "pmatrix": ["(", ")"], - "bmatrix": ["[", "]"], - "Bmatrix": ["\\{", "\\}"], - "vmatrix": ["|", "|"], - "Vmatrix": ["\\Vert", "\\Vert"] - }[envName]; - var res = { - type: "array", - hskipBeforeAndAfter: false // \hskip -\arraycolsep in amsmath - }; - res = parseArray(this, pos, mode, res); - if (delimiters) { - res.result = new ParseNode("leftright", { - body: [res.result], - left: delimiters[0], - right: delimiters[1] - }, mode); - } - return res; - } - }, - - // A cases environment (in amsmath.sty) is almost equivalent to - // \def\arraystretch{1.2}% - // \left\{\begin{array}{@{}l@{\quad}l@{}} … \end{array}\right. - { - names: ["cases"], - handler: function(pos, mode, envName) { - var res = { - type: "array", - arraystretch: 1.2, - cols: [{ - align: "l", - pregap: 0, - postgap: fontMetrics.metrics.quad - }, { - align: "l", - pregap: 0, - postgap: 0 - }] - }; - res = parseArray(this, pos, mode, res); - res.result = new ParseNode("leftright", { - body: [res.result], - left: "\\{", - right: "." - }, mode); - return res; - } - } -]; - -module.exports = (function() { - // nested function so we don't leak i and j into the module scope - var exports = {}; - for (var i = 0; i < environmentDefinitions.length; ++i) { - var def = environmentDefinitions[i]; - def.greediness = 1; - def.allowedInText = !!def.allowedInText; - def.numArgs = def.numArgs || 0; - def.numOptionalArgs = def.numOptionalArgs || 0; - for (var j = 0; j < def.names.length; ++j) { - exports[def.names[j]] = def; - } - } - return exports; -})(); - -},{"./ParseError":5,"./fontMetrics":16,"./parseData":19}],16:[function(require,module,exports){ -/* jshint unused:false */ - -var Style = require("./Style"); - -/** - * This file contains metrics regarding fonts and individual symbols. The sigma - * and xi variables, as well as the metricMap map contain data extracted from - * TeX, TeX font metrics, and the TTF files. These data are then exposed via the - * `metrics` variable and the getCharacterMetrics function. - */ - -// These font metrics are extracted from TeX by using -// \font\a=cmmi10 -// \showthe\fontdimenX\a -// where X is the corresponding variable number. These correspond to the font -// parameters of the symbol fonts. In TeX, there are actually three sets of -// dimensions, one for each of textstyle, scriptstyle, and scriptscriptstyle, -// but we only use the textstyle ones, and scale certain dimensions accordingly. -// See the TeXbook, page 441. -var sigma1 = 0.025; -var sigma2 = 0; -var sigma3 = 0; -var sigma4 = 0; -var sigma5 = 0.431; -var sigma6 = 1; -var sigma7 = 0; -var sigma8 = 0.677; -var sigma9 = 0.394; -var sigma10 = 0.444; -var sigma11 = 0.686; -var sigma12 = 0.345; -var sigma13 = 0.413; -var sigma14 = 0.363; -var sigma15 = 0.289; -var sigma16 = 0.150; -var sigma17 = 0.247; -var sigma18 = 0.386; -var sigma19 = 0.050; -var sigma20 = 2.390; -var sigma21 = 1.01; -var sigma21Script = 0.81; -var sigma21ScriptScript = 0.71; -var sigma22 = 0.250; - -// These font metrics are extracted from TeX by using -// \font\a=cmex10 -// \showthe\fontdimenX\a -// where X is the corresponding variable number. These correspond to the font -// parameters of the extension fonts (family 3). See the TeXbook, page 441. -var xi1 = 0; -var xi2 = 0; -var xi3 = 0; -var xi4 = 0; -var xi5 = 0.431; -var xi6 = 1; -var xi7 = 0; -var xi8 = 0.04; -var xi9 = 0.111; -var xi10 = 0.166; -var xi11 = 0.2; -var xi12 = 0.6; -var xi13 = 0.1; - -// This value determines how large a pt is, for metrics which are defined in -// terms of pts. -// This value is also used in katex.less; if you change it make sure the values -// match. -var ptPerEm = 10.0; - -/** - * This is just a mapping from common names to real metrics - */ -var metrics = { - xHeight: sigma5, - quad: sigma6, - num1: sigma8, - num2: sigma9, - num3: sigma10, - denom1: sigma11, - denom2: sigma12, - sup1: sigma13, - sup2: sigma14, - sup3: sigma15, - sub1: sigma16, - sub2: sigma17, - supDrop: sigma18, - subDrop: sigma19, - axisHeight: sigma22, - defaultRuleThickness: xi8, - bigOpSpacing1: xi9, - bigOpSpacing2: xi10, - bigOpSpacing3: xi11, - bigOpSpacing4: xi12, - bigOpSpacing5: xi13, - ptPerEm: ptPerEm, - emPerEx: sigma5 / sigma6, - - // TODO(alpert): Missing parallel structure here. We should probably add - // style-specific metrics for all of these. - delim1: sigma20, - getDelim2: function(style) { - if (style.size === Style.TEXT.size) { - return sigma21; - } else if (style.size === Style.SCRIPT.size) { - return sigma21Script; - } else if (style.size === Style.SCRIPTSCRIPT.size) { - return sigma21ScriptScript; - } - throw new Error("Unexpected style size: " + style.size); - } -}; - -// This map contains a mapping from font name and character code to character -// metrics, including height, depth, italic correction, and skew (kern from the -// character to the corresponding \skewchar) -// This map is generated via `make metrics`. It should not be changed manually. -var metricMap = {"AMS-Regular":{"8672":{"depth":-0.064,"height":0.437,"italic":0,"skew":0},"8674":{"depth":-0.064,"height":0.437,"italic":0,"skew":0},"10003":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"10016":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"1008":{"depth":0.0,"height":0.43056,"italic":0.04028,"skew":0.0},"107":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"10731":{"depth":0.11111,"height":0.69224,"italic":0.0,"skew":0.0},"10846":{"depth":0.19444,"height":0.75583,"italic":0.0,"skew":0.0},"10877":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"10878":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"10885":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"10886":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"10887":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"10888":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"10889":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10890":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10891":{"depth":0.48256,"height":0.98256,"italic":0.0,"skew":0.0},"10892":{"depth":0.48256,"height":0.98256,"italic":0.0,"skew":0.0},"10901":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"10902":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"10933":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"10934":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"10935":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10936":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10937":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10938":{"depth":0.26167,"height":0.75726,"italic":0.0,"skew":0.0},"10949":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"10950":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"10955":{"depth":0.28481,"height":0.79383,"italic":0.0,"skew":0.0},"10956":{"depth":0.28481,"height":0.79383,"italic":0.0,"skew":0.0},"165":{"depth":0.0,"height":0.675,"italic":0.025,"skew":0.0},"174":{"depth":0.15559,"height":0.69224,"italic":0.0,"skew":0.0},"240":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"295":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"57350":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"57351":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"57352":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"57353":{"depth":0.0,"height":0.43056,"italic":0.04028,"skew":0.0},"57356":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57357":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57358":{"depth":0.41951,"height":0.91951,"italic":0.0,"skew":0.0},"57359":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"57360":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"57361":{"depth":0.41951,"height":0.91951,"italic":0.0,"skew":0.0},"57366":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57367":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57368":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57369":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"57370":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"57371":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"70":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.9,"italic":0.0,"skew":0.0},"74":{"depth":0.16667,"height":0.68889,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.9,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"79":{"depth":0.16667,"height":0.68889,"italic":0.0,"skew":0.0},"80":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"81":{"depth":0.16667,"height":0.68889,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8245":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8463":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8487":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8498":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8502":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8503":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8504":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8513":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8592":{"depth":-0.03598,"height":0.46402,"italic":0.0,"skew":0.0},"8594":{"depth":-0.03598,"height":0.46402,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8602":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8603":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8606":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8608":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8610":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8611":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8619":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8620":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8621":{"depth":-0.13313,"height":0.37788,"italic":0.0,"skew":0.0},"8622":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8624":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8625":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8630":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"8631":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"8634":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8635":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8638":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8639":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8642":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8643":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8644":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8646":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8647":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8648":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8649":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8650":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8651":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8652":{"depth":0.01354,"height":0.52239,"italic":0.0,"skew":0.0},"8653":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8654":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8655":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8666":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8667":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8669":{"depth":-0.13313,"height":0.37788,"italic":0.0,"skew":0.0},"87":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8705":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"8708":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8709":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8717":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"8722":{"depth":-0.03598,"height":0.46402,"italic":0.0,"skew":0.0},"8724":{"depth":0.08198,"height":0.69224,"italic":0.0,"skew":0.0},"8726":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8733":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8736":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8737":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8738":{"depth":0.03517,"height":0.52239,"italic":0.0,"skew":0.0},"8739":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8740":{"depth":0.25142,"height":0.74111,"italic":0.0,"skew":0.0},"8741":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8742":{"depth":0.25142,"height":0.74111,"italic":0.0,"skew":0.0},"8756":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8757":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8764":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8765":{"depth":-0.13313,"height":0.37788,"italic":0.0,"skew":0.0},"8769":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8770":{"depth":-0.03625,"height":0.46375,"italic":0.0,"skew":0.0},"8774":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8776":{"depth":-0.01688,"height":0.48312,"italic":0.0,"skew":0.0},"8778":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8782":{"depth":0.06062,"height":0.54986,"italic":0.0,"skew":0.0},"8783":{"depth":0.06062,"height":0.54986,"italic":0.0,"skew":0.0},"8785":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8786":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8787":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8790":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8791":{"depth":0.22958,"height":0.72958,"italic":0.0,"skew":0.0},"8796":{"depth":0.08198,"height":0.91667,"italic":0.0,"skew":0.0},"88":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8806":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"8807":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"8808":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"8809":{"depth":0.25142,"height":0.75726,"italic":0.0,"skew":0.0},"8812":{"depth":0.25583,"height":0.75583,"italic":0.0,"skew":0.0},"8814":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8815":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8816":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8817":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8818":{"depth":0.22958,"height":0.72958,"italic":0.0,"skew":0.0},"8819":{"depth":0.22958,"height":0.72958,"italic":0.0,"skew":0.0},"8822":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8823":{"depth":0.1808,"height":0.675,"italic":0.0,"skew":0.0},"8828":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8829":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8830":{"depth":0.22958,"height":0.72958,"italic":0.0,"skew":0.0},"8831":{"depth":0.22958,"height":0.72958,"italic":0.0,"skew":0.0},"8832":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8833":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8840":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8841":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8842":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8843":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8847":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8848":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8858":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8859":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8861":{"depth":0.08198,"height":0.58198,"italic":0.0,"skew":0.0},"8862":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"8863":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"8864":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"8865":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"8872":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8873":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8874":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8876":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8877":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8878":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8879":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8882":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8883":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8884":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8885":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8888":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8890":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"8891":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8892":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"89":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8901":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8903":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8905":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8906":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0},"8907":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8908":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8909":{"depth":-0.03598,"height":0.46402,"italic":0.0,"skew":0.0},"8910":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8911":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8912":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8913":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8914":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8915":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"8916":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8918":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8919":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8920":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8921":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"8922":{"depth":0.38569,"height":0.88569,"italic":0.0,"skew":0.0},"8923":{"depth":0.38569,"height":0.88569,"italic":0.0,"skew":0.0},"8926":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8927":{"depth":0.13667,"height":0.63667,"italic":0.0,"skew":0.0},"8928":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8929":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8934":{"depth":0.23222,"height":0.74111,"italic":0.0,"skew":0.0},"8935":{"depth":0.23222,"height":0.74111,"italic":0.0,"skew":0.0},"8936":{"depth":0.23222,"height":0.74111,"italic":0.0,"skew":0.0},"8937":{"depth":0.23222,"height":0.74111,"italic":0.0,"skew":0.0},"8938":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8939":{"depth":0.20576,"height":0.70576,"italic":0.0,"skew":0.0},"8940":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8941":{"depth":0.30274,"height":0.79383,"italic":0.0,"skew":0.0},"8994":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"8995":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"90":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"9416":{"depth":0.15559,"height":0.69224,"italic":0.0,"skew":0.0},"9484":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"9488":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"9492":{"depth":0.0,"height":0.37788,"italic":0.0,"skew":0.0},"9496":{"depth":0.0,"height":0.37788,"italic":0.0,"skew":0.0},"9585":{"depth":0.19444,"height":0.68889,"italic":0.0,"skew":0.0},"9586":{"depth":0.19444,"height":0.74111,"italic":0.0,"skew":0.0},"9632":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"9633":{"depth":0.0,"height":0.675,"italic":0.0,"skew":0.0},"9650":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"9651":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"9654":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"9660":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"9661":{"depth":0.0,"height":0.54986,"italic":0.0,"skew":0.0},"9664":{"depth":0.03517,"height":0.54986,"italic":0.0,"skew":0.0},"9674":{"depth":0.11111,"height":0.69224,"italic":0.0,"skew":0.0},"9733":{"depth":0.19444,"height":0.69224,"italic":0.0,"skew":0.0},"989":{"depth":0.08167,"height":0.58167,"italic":0.0,"skew":0.0}},"Caligraphic-Regular":{"48":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"51":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"52":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"53":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"55":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"57":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.19445},"66":{"depth":0.0,"height":0.68333,"italic":0.03041,"skew":0.13889},"67":{"depth":0.0,"height":0.68333,"italic":0.05834,"skew":0.13889},"68":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.08334},"69":{"depth":0.0,"height":0.68333,"italic":0.08944,"skew":0.11111},"70":{"depth":0.0,"height":0.68333,"italic":0.09931,"skew":0.11111},"71":{"depth":0.09722,"height":0.68333,"italic":0.0593,"skew":0.11111},"72":{"depth":0.0,"height":0.68333,"italic":0.00965,"skew":0.11111},"73":{"depth":0.0,"height":0.68333,"italic":0.07382,"skew":0.0},"74":{"depth":0.09722,"height":0.68333,"italic":0.18472,"skew":0.16667},"75":{"depth":0.0,"height":0.68333,"italic":0.01445,"skew":0.05556},"76":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.13889},"77":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.13889},"78":{"depth":0.0,"height":0.68333,"italic":0.14736,"skew":0.08334},"79":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.11111},"80":{"depth":0.0,"height":0.68333,"italic":0.08222,"skew":0.08334},"81":{"depth":0.09722,"height":0.68333,"italic":0.0,"skew":0.11111},"82":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.08334},"83":{"depth":0.0,"height":0.68333,"italic":0.075,"skew":0.13889},"84":{"depth":0.0,"height":0.68333,"italic":0.25417,"skew":0.0},"85":{"depth":0.0,"height":0.68333,"italic":0.09931,"skew":0.08334},"86":{"depth":0.0,"height":0.68333,"italic":0.08222,"skew":0.0},"87":{"depth":0.0,"height":0.68333,"italic":0.08222,"skew":0.08334},"88":{"depth":0.0,"height":0.68333,"italic":0.14643,"skew":0.13889},"89":{"depth":0.09722,"height":0.68333,"italic":0.08222,"skew":0.08334},"90":{"depth":0.0,"height":0.68333,"italic":0.07944,"skew":0.13889}},"Fraktur-Regular":{"100":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"102":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"103":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"104":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"106":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"107":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"108":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"109":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"112":{"depth":0.18906,"height":0.52396,"italic":0.0,"skew":0.0},"113":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"114":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"115":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.52396,"italic":0.0,"skew":0.0},"119":{"depth":0.0,"height":0.52396,"italic":0.0,"skew":0.0},"120":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"121":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"122":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"33":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"34":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"38":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"39":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"40":{"depth":0.24982,"height":0.74947,"italic":0.0,"skew":0.0},"41":{"depth":0.24982,"height":0.74947,"italic":0.0,"skew":0.0},"42":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"43":{"depth":0.08319,"height":0.58283,"italic":0.0,"skew":0.0},"44":{"depth":0.0,"height":0.10803,"italic":0.0,"skew":0.0},"45":{"depth":0.08319,"height":0.58283,"italic":0.0,"skew":0.0},"46":{"depth":0.0,"height":0.10803,"italic":0.0,"skew":0.0},"47":{"depth":0.24982,"height":0.74947,"italic":0.0,"skew":0.0},"48":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"51":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"52":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"53":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"55":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"57":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"58":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"58112":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"58113":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"58114":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"58115":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"58116":{"depth":0.18906,"height":0.47534,"italic":0.0,"skew":0.0},"58117":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"58118":{"depth":0.0,"height":0.62119,"italic":0.0,"skew":0.0},"58119":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"59":{"depth":0.12604,"height":0.47534,"italic":0.0,"skew":0.0},"61":{"depth":-0.13099,"height":0.36866,"italic":0.0,"skew":0.0},"63":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"70":{"depth":0.12604,"height":0.69141,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"72":{"depth":0.06302,"height":0.69141,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"74":{"depth":0.12604,"height":0.69141,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"79":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"80":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"81":{"depth":0.03781,"height":0.69141,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"8216":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"8217":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"87":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"88":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"89":{"depth":0.18906,"height":0.69141,"italic":0.0,"skew":0.0},"90":{"depth":0.12604,"height":0.69141,"italic":0.0,"skew":0.0},"91":{"depth":0.24982,"height":0.74947,"italic":0.0,"skew":0.0},"93":{"depth":0.24982,"height":0.74947,"italic":0.0,"skew":0.0},"94":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"97":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.69141,"italic":0.0,"skew":0.0},"99":{"depth":0.0,"height":0.47534,"italic":0.0,"skew":0.0}},"Main-Bold":{"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"102":{"depth":0.0,"height":0.69444,"italic":0.10903,"skew":0.0},"10216":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"10217":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"103":{"depth":0.19444,"height":0.44444,"italic":0.01597,"skew":0.0},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"10815":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"109":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"10927":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"10928":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"112":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"113":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"114":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"115":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.63492,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.44444,"italic":0.01597,"skew":0.0},"119":{"depth":0.0,"height":0.44444,"italic":0.01597,"skew":0.0},"120":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"121":{"depth":0.19444,"height":0.44444,"italic":0.01597,"skew":0.0},"122":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"123":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"124":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"125":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"126":{"depth":0.35,"height":0.34444,"italic":0.0,"skew":0.0},"168":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"172":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"175":{"depth":0.0,"height":0.59611,"italic":0.0,"skew":0.0},"176":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"177":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"180":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"215":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"247":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"305":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"33":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"34":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"35":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"36":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"37":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"38":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"39":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"40":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"41":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"42":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"43":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"44":{"depth":0.19444,"height":0.15556,"italic":0.0,"skew":0.0},"45":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"46":{"depth":0.0,"height":0.15556,"italic":0.0,"skew":0.0},"47":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"48":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"51":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"52":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"53":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"55":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"567":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"57":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"58":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"59":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"60":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"61":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"62":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"63":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"64":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"70":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"711":{"depth":0.0,"height":0.63194,"italic":0.0,"skew":0.0},"713":{"depth":0.0,"height":0.59611,"italic":0.0,"skew":0.0},"714":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"715":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"728":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"729":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"730":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"74":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"768":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"769":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"772":{"depth":0.0,"height":0.59611,"italic":0.0,"skew":0.0},"774":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"775":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"776":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"778":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"779":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"780":{"depth":0.0,"height":0.63194,"italic":0.0,"skew":0.0},"79":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"80":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"81":{"depth":0.19444,"height":0.68611,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"8211":{"depth":0.0,"height":0.44444,"italic":0.03194,"skew":0.0},"8212":{"depth":0.0,"height":0.44444,"italic":0.03194,"skew":0.0},"8216":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8217":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8220":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8221":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8224":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8225":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"824":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8242":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"8407":{"depth":0.0,"height":0.72444,"italic":0.15486,"skew":0.0},"8463":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8465":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8467":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8472":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"8476":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"8501":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8592":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8593":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8594":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8595":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8596":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8597":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8598":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8599":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.68611,"italic":0.01597,"skew":0.0},"8600":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8601":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8636":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8637":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8640":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8641":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8656":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8657":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8658":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8659":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8660":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8661":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"87":{"depth":0.0,"height":0.68611,"italic":0.01597,"skew":0.0},"8704":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8706":{"depth":0.0,"height":0.69444,"italic":0.06389,"skew":0.0},"8707":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8709":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"8711":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"8712":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8715":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8722":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8723":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8725":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8726":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8727":{"depth":-0.02778,"height":0.47222,"italic":0.0,"skew":0.0},"8728":{"depth":-0.02639,"height":0.47361,"italic":0.0,"skew":0.0},"8729":{"depth":-0.02639,"height":0.47361,"italic":0.0,"skew":0.0},"8730":{"depth":0.18,"height":0.82,"italic":0.0,"skew":0.0},"8733":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"8734":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"8736":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8739":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8741":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8743":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8744":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8745":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8746":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8747":{"depth":0.19444,"height":0.69444,"italic":0.12778,"skew":0.0},"8764":{"depth":-0.10889,"height":0.39111,"italic":0.0,"skew":0.0},"8768":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8771":{"depth":0.00222,"height":0.50222,"italic":0.0,"skew":0.0},"8776":{"depth":0.02444,"height":0.52444,"italic":0.0,"skew":0.0},"8781":{"depth":0.00222,"height":0.50222,"italic":0.0,"skew":0.0},"88":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"8801":{"depth":0.00222,"height":0.50222,"italic":0.0,"skew":0.0},"8804":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8805":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8810":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8811":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8826":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8827":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8834":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8835":{"depth":0.08556,"height":0.58556,"italic":0.0,"skew":0.0},"8838":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8839":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8846":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8849":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8850":{"depth":0.19667,"height":0.69667,"italic":0.0,"skew":0.0},"8851":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8852":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8853":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8854":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8855":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8856":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8857":{"depth":0.13333,"height":0.63333,"italic":0.0,"skew":0.0},"8866":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8867":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8868":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8869":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"89":{"depth":0.0,"height":0.68611,"italic":0.02875,"skew":0.0},"8900":{"depth":-0.02639,"height":0.47361,"italic":0.0,"skew":0.0},"8901":{"depth":-0.02639,"height":0.47361,"italic":0.0,"skew":0.0},"8902":{"depth":-0.02778,"height":0.47222,"italic":0.0,"skew":0.0},"8968":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8969":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8970":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8971":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8994":{"depth":-0.13889,"height":0.36111,"italic":0.0,"skew":0.0},"8995":{"depth":-0.13889,"height":0.36111,"italic":0.0,"skew":0.0},"90":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"91":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"915":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"916":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"92":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"923":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"928":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"93":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"931":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"933":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"934":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"936":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"937":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"94":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"95":{"depth":0.31,"height":0.13444,"italic":0.03194,"skew":0.0},"96":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"9651":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9657":{"depth":-0.02778,"height":0.47222,"italic":0.0,"skew":0.0},"9661":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9667":{"depth":-0.02778,"height":0.47222,"italic":0.0,"skew":0.0},"97":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"9711":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"9824":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9825":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9826":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9827":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9837":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"9838":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9839":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"99":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0}},"Main-Italic":{"100":{"depth":0.0,"height":0.69444,"italic":0.10333,"skew":0.0},"101":{"depth":0.0,"height":0.43056,"italic":0.07514,"skew":0.0},"102":{"depth":0.19444,"height":0.69444,"italic":0.21194,"skew":0.0},"103":{"depth":0.19444,"height":0.43056,"italic":0.08847,"skew":0.0},"104":{"depth":0.0,"height":0.69444,"italic":0.07671,"skew":0.0},"105":{"depth":0.0,"height":0.65536,"italic":0.1019,"skew":0.0},"106":{"depth":0.19444,"height":0.65536,"italic":0.14467,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.10764,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.10333,"skew":0.0},"109":{"depth":0.0,"height":0.43056,"italic":0.07671,"skew":0.0},"110":{"depth":0.0,"height":0.43056,"italic":0.07671,"skew":0.0},"111":{"depth":0.0,"height":0.43056,"italic":0.06312,"skew":0.0},"112":{"depth":0.19444,"height":0.43056,"italic":0.06312,"skew":0.0},"113":{"depth":0.19444,"height":0.43056,"italic":0.08847,"skew":0.0},"114":{"depth":0.0,"height":0.43056,"italic":0.10764,"skew":0.0},"115":{"depth":0.0,"height":0.43056,"italic":0.08208,"skew":0.0},"116":{"depth":0.0,"height":0.61508,"italic":0.09486,"skew":0.0},"117":{"depth":0.0,"height":0.43056,"italic":0.07671,"skew":0.0},"118":{"depth":0.0,"height":0.43056,"italic":0.10764,"skew":0.0},"119":{"depth":0.0,"height":0.43056,"italic":0.10764,"skew":0.0},"120":{"depth":0.0,"height":0.43056,"italic":0.12042,"skew":0.0},"121":{"depth":0.19444,"height":0.43056,"italic":0.08847,"skew":0.0},"122":{"depth":0.0,"height":0.43056,"italic":0.12292,"skew":0.0},"126":{"depth":0.35,"height":0.31786,"italic":0.11585,"skew":0.0},"163":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"305":{"depth":0.0,"height":0.43056,"italic":0.07671,"skew":0.0},"33":{"depth":0.0,"height":0.69444,"italic":0.12417,"skew":0.0},"34":{"depth":0.0,"height":0.69444,"italic":0.06961,"skew":0.0},"35":{"depth":0.19444,"height":0.69444,"italic":0.06616,"skew":0.0},"37":{"depth":0.05556,"height":0.75,"italic":0.13639,"skew":0.0},"38":{"depth":0.0,"height":0.69444,"italic":0.09694,"skew":0.0},"39":{"depth":0.0,"height":0.69444,"italic":0.12417,"skew":0.0},"40":{"depth":0.25,"height":0.75,"italic":0.16194,"skew":0.0},"41":{"depth":0.25,"height":0.75,"italic":0.03694,"skew":0.0},"42":{"depth":0.0,"height":0.75,"italic":0.14917,"skew":0.0},"43":{"depth":0.05667,"height":0.56167,"italic":0.03694,"skew":0.0},"44":{"depth":0.19444,"height":0.10556,"italic":0.0,"skew":0.0},"45":{"depth":0.0,"height":0.43056,"italic":0.02826,"skew":0.0},"46":{"depth":0.0,"height":0.10556,"italic":0.0,"skew":0.0},"47":{"depth":0.25,"height":0.75,"italic":0.16194,"skew":0.0},"48":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"49":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"50":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"51":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"52":{"depth":0.19444,"height":0.64444,"italic":0.13556,"skew":0.0},"53":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"54":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"55":{"depth":0.19444,"height":0.64444,"italic":0.13556,"skew":0.0},"56":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"567":{"depth":0.19444,"height":0.43056,"italic":0.03736,"skew":0.0},"57":{"depth":0.0,"height":0.64444,"italic":0.13556,"skew":0.0},"58":{"depth":0.0,"height":0.43056,"italic":0.0582,"skew":0.0},"59":{"depth":0.19444,"height":0.43056,"italic":0.0582,"skew":0.0},"61":{"depth":-0.13313,"height":0.36687,"italic":0.06616,"skew":0.0},"63":{"depth":0.0,"height":0.69444,"italic":0.1225,"skew":0.0},"64":{"depth":0.0,"height":0.69444,"italic":0.09597,"skew":0.0},"65":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.68333,"italic":0.10257,"skew":0.0},"67":{"depth":0.0,"height":0.68333,"italic":0.14528,"skew":0.0},"68":{"depth":0.0,"height":0.68333,"italic":0.09403,"skew":0.0},"69":{"depth":0.0,"height":0.68333,"italic":0.12028,"skew":0.0},"70":{"depth":0.0,"height":0.68333,"italic":0.13305,"skew":0.0},"71":{"depth":0.0,"height":0.68333,"italic":0.08722,"skew":0.0},"72":{"depth":0.0,"height":0.68333,"italic":0.16389,"skew":0.0},"73":{"depth":0.0,"height":0.68333,"italic":0.15806,"skew":0.0},"74":{"depth":0.0,"height":0.68333,"italic":0.14028,"skew":0.0},"75":{"depth":0.0,"height":0.68333,"italic":0.14528,"skew":0.0},"76":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"768":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"769":{"depth":0.0,"height":0.69444,"italic":0.09694,"skew":0.0},"77":{"depth":0.0,"height":0.68333,"italic":0.16389,"skew":0.0},"770":{"depth":0.0,"height":0.69444,"italic":0.06646,"skew":0.0},"771":{"depth":0.0,"height":0.66786,"italic":0.11585,"skew":0.0},"772":{"depth":0.0,"height":0.56167,"italic":0.10333,"skew":0.0},"774":{"depth":0.0,"height":0.69444,"italic":0.10806,"skew":0.0},"775":{"depth":0.0,"height":0.66786,"italic":0.11752,"skew":0.0},"776":{"depth":0.0,"height":0.66786,"italic":0.10474,"skew":0.0},"778":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"779":{"depth":0.0,"height":0.69444,"italic":0.1225,"skew":0.0},"78":{"depth":0.0,"height":0.68333,"italic":0.16389,"skew":0.0},"780":{"depth":0.0,"height":0.62847,"italic":0.08295,"skew":0.0},"79":{"depth":0.0,"height":0.68333,"italic":0.09403,"skew":0.0},"80":{"depth":0.0,"height":0.68333,"italic":0.10257,"skew":0.0},"81":{"depth":0.19444,"height":0.68333,"italic":0.09403,"skew":0.0},"82":{"depth":0.0,"height":0.68333,"italic":0.03868,"skew":0.0},"8211":{"depth":0.0,"height":0.43056,"italic":0.09208,"skew":0.0},"8212":{"depth":0.0,"height":0.43056,"italic":0.09208,"skew":0.0},"8216":{"depth":0.0,"height":0.69444,"italic":0.12417,"skew":0.0},"8217":{"depth":0.0,"height":0.69444,"italic":0.12417,"skew":0.0},"8220":{"depth":0.0,"height":0.69444,"italic":0.1685,"skew":0.0},"8221":{"depth":0.0,"height":0.69444,"italic":0.06961,"skew":0.0},"83":{"depth":0.0,"height":0.68333,"italic":0.11972,"skew":0.0},"84":{"depth":0.0,"height":0.68333,"italic":0.13305,"skew":0.0},"8463":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.68333,"italic":0.16389,"skew":0.0},"86":{"depth":0.0,"height":0.68333,"italic":0.18361,"skew":0.0},"87":{"depth":0.0,"height":0.68333,"italic":0.18361,"skew":0.0},"88":{"depth":0.0,"height":0.68333,"italic":0.15806,"skew":0.0},"89":{"depth":0.0,"height":0.68333,"italic":0.19383,"skew":0.0},"90":{"depth":0.0,"height":0.68333,"italic":0.14528,"skew":0.0},"91":{"depth":0.25,"height":0.75,"italic":0.1875,"skew":0.0},"915":{"depth":0.0,"height":0.68333,"italic":0.13305,"skew":0.0},"916":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.68333,"italic":0.09403,"skew":0.0},"923":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.68333,"italic":0.15294,"skew":0.0},"928":{"depth":0.0,"height":0.68333,"italic":0.16389,"skew":0.0},"93":{"depth":0.25,"height":0.75,"italic":0.10528,"skew":0.0},"931":{"depth":0.0,"height":0.68333,"italic":0.12028,"skew":0.0},"933":{"depth":0.0,"height":0.68333,"italic":0.11111,"skew":0.0},"934":{"depth":0.0,"height":0.68333,"italic":0.05986,"skew":0.0},"936":{"depth":0.0,"height":0.68333,"italic":0.11111,"skew":0.0},"937":{"depth":0.0,"height":0.68333,"italic":0.10257,"skew":0.0},"94":{"depth":0.0,"height":0.69444,"italic":0.06646,"skew":0.0},"95":{"depth":0.31,"height":0.12056,"italic":0.09208,"skew":0.0},"97":{"depth":0.0,"height":0.43056,"italic":0.07671,"skew":0.0},"98":{"depth":0.0,"height":0.69444,"italic":0.06312,"skew":0.0},"99":{"depth":0.0,"height":0.43056,"italic":0.05653,"skew":0.0}},"Main-Regular":{"32":{"depth":-0.0,"height":0.0,"italic":0,"skew":0},"160":{"depth":-0.0,"height":0.0,"italic":0,"skew":0},"8230":{"depth":-0.0,"height":0.12,"italic":0,"skew":0},"8614":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"8617":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"8618":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"8652":{"depth":0.011,"height":0.671,"italic":0,"skew":0},"8773":{"depth":-0.022,"height":0.589,"italic":0,"skew":0},"8784":{"depth":-0.133,"height":0.67,"italic":0,"skew":0},"8800":{"depth":0.215,"height":0.716,"italic":0,"skew":0},"8872":{"depth":0.249,"height":0.75,"italic":0,"skew":0},"8904":{"depth":0.005,"height":0.505,"italic":0,"skew":0},"8942":{"depth":0.03,"height":0.9,"italic":0,"skew":0},"8943":{"depth":-0.19,"height":0.31,"italic":0,"skew":0},"8945":{"depth":-0.1,"height":0.82,"italic":0,"skew":0},"9136":{"depth":0.244,"height":0.744,"italic":0,"skew":0},"9137":{"depth":0.244,"height":0.744,"italic":0,"skew":0},"10222":{"depth":0.244,"height":0.744,"italic":0,"skew":0},"10223":{"depth":0.244,"height":0.744,"italic":0,"skew":0},"10229":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"10230":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"10231":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"10232":{"depth":0.024,"height":0.525,"italic":0,"skew":0},"10233":{"depth":0.024,"height":0.525,"italic":0,"skew":0},"10234":{"depth":0.024,"height":0.525,"italic":0,"skew":0},"10236":{"depth":0.011,"height":0.511,"italic":0,"skew":0},"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"102":{"depth":0.0,"height":0.69444,"italic":0.07778,"skew":0.0},"10216":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"10217":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"103":{"depth":0.19444,"height":0.43056,"italic":0.01389,"skew":0.0},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.66786,"italic":0.0,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"10815":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"109":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"10927":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"10928":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"112":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"113":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"114":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"115":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.61508,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.43056,"italic":0.01389,"skew":0.0},"119":{"depth":0.0,"height":0.43056,"italic":0.01389,"skew":0.0},"120":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"121":{"depth":0.19444,"height":0.43056,"italic":0.01389,"skew":0.0},"122":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"123":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"124":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"125":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"126":{"depth":0.35,"height":0.31786,"italic":0.0,"skew":0.0},"168":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"172":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"175":{"depth":0.0,"height":0.56778,"italic":0.0,"skew":0.0},"176":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"177":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"180":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"215":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"247":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"305":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"33":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"34":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"35":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"36":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"37":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"38":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"39":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"40":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"41":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"42":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"43":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"44":{"depth":0.19444,"height":0.10556,"italic":0.0,"skew":0.0},"45":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"46":{"depth":0.0,"height":0.10556,"italic":0.0,"skew":0.0},"47":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"48":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"51":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"52":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"53":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"55":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"567":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"57":{"depth":0.0,"height":0.64444,"italic":0.0,"skew":0.0},"58":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"59":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.0},"60":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"61":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"62":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"63":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"64":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"70":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"711":{"depth":0.0,"height":0.62847,"italic":0.0,"skew":0.0},"713":{"depth":0.0,"height":0.56778,"italic":0.0,"skew":0.0},"714":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"715":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"728":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"729":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"730":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"74":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"768":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"769":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"772":{"depth":0.0,"height":0.56778,"italic":0.0,"skew":0.0},"774":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"775":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"776":{"depth":0.0,"height":0.66786,"italic":0.0,"skew":0.0},"778":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"779":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"780":{"depth":0.0,"height":0.62847,"italic":0.0,"skew":0.0},"79":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"80":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"81":{"depth":0.19444,"height":0.68333,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"8211":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.0},"8212":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.0},"8216":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8217":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8220":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8221":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8224":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8225":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"824":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8242":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"8407":{"depth":0.0,"height":0.71444,"italic":0.15382,"skew":0.0},"8463":{"depth":0.0,"height":0.68889,"italic":0.0,"skew":0.0},"8465":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8467":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.11111},"8472":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.11111},"8476":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"8501":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8592":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8593":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8594":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8595":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8596":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8597":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8598":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8599":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.68333,"italic":0.01389,"skew":0.0},"8600":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8601":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8636":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8637":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8640":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8641":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8656":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8657":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8658":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8659":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8660":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8661":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"87":{"depth":0.0,"height":0.68333,"italic":0.01389,"skew":0.0},"8704":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8706":{"depth":0.0,"height":0.69444,"italic":0.05556,"skew":0.08334},"8707":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8709":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"8711":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"8712":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8715":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8722":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8723":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8725":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8726":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8727":{"depth":-0.03472,"height":0.46528,"italic":0.0,"skew":0.0},"8728":{"depth":-0.05555,"height":0.44445,"italic":0.0,"skew":0.0},"8729":{"depth":-0.05555,"height":0.44445,"italic":0.0,"skew":0.0},"8730":{"depth":0.2,"height":0.8,"italic":0.0,"skew":0.0},"8733":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"8734":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"8736":{"depth":0.0,"height":0.69224,"italic":0.0,"skew":0.0},"8739":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8741":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8743":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8744":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8745":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8746":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8747":{"depth":0.19444,"height":0.69444,"italic":0.11111,"skew":0.0},"8764":{"depth":-0.13313,"height":0.36687,"italic":0.0,"skew":0.0},"8768":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"8771":{"depth":-0.03625,"height":0.46375,"italic":0.0,"skew":0.0},"8776":{"depth":-0.01688,"height":0.48312,"italic":0.0,"skew":0.0},"8781":{"depth":-0.03625,"height":0.46375,"italic":0.0,"skew":0.0},"88":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"8801":{"depth":-0.03625,"height":0.46375,"italic":0.0,"skew":0.0},"8804":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8805":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8810":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8811":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8826":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8827":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8834":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8835":{"depth":0.0391,"height":0.5391,"italic":0.0,"skew":0.0},"8838":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8839":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8846":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8849":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8850":{"depth":0.13597,"height":0.63597,"italic":0.0,"skew":0.0},"8851":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8852":{"depth":0.0,"height":0.55556,"italic":0.0,"skew":0.0},"8853":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8854":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8855":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8856":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8857":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"8866":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8867":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8868":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8869":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"89":{"depth":0.0,"height":0.68333,"italic":0.025,"skew":0.0},"8900":{"depth":-0.05555,"height":0.44445,"italic":0.0,"skew":0.0},"8901":{"depth":-0.05555,"height":0.44445,"italic":0.0,"skew":0.0},"8902":{"depth":-0.03472,"height":0.46528,"italic":0.0,"skew":0.0},"8968":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8969":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8970":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8971":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"8994":{"depth":-0.14236,"height":0.35764,"italic":0.0,"skew":0.0},"8995":{"depth":-0.14236,"height":0.35764,"italic":0.0,"skew":0.0},"90":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"91":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"915":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"916":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"92":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"923":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"928":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"93":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"931":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"933":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"934":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"936":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"937":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.0},"94":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"95":{"depth":0.31,"height":0.12056,"italic":0.02778,"skew":0.0},"96":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"9651":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9657":{"depth":-0.03472,"height":0.46528,"italic":0.0,"skew":0.0},"9661":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9667":{"depth":-0.03472,"height":0.46528,"italic":0.0,"skew":0.0},"97":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"9711":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"9824":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9825":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9826":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9827":{"depth":0.12963,"height":0.69444,"italic":0.0,"skew":0.0},"9837":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"9838":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"9839":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"99":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0}},"Math-BoldItalic":{"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"1009":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"1013":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"102":{"depth":0.19444,"height":0.69444,"italic":0.11042,"skew":0.0},"103":{"depth":0.19444,"height":0.44444,"italic":0.03704,"skew":0.0},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.69326,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.69326,"italic":0.0622,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.01852,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.0088,"skew":0.0},"109":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"112":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"113":{"depth":0.19444,"height":0.44444,"italic":0.03704,"skew":0.0},"114":{"depth":0.0,"height":0.44444,"italic":0.03194,"skew":0.0},"115":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.63492,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.44444,"italic":0.03704,"skew":0.0},"119":{"depth":0.0,"height":0.44444,"italic":0.02778,"skew":0.0},"120":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"121":{"depth":0.19444,"height":0.44444,"italic":0.03704,"skew":0.0},"122":{"depth":0.0,"height":0.44444,"italic":0.04213,"skew":0.0},"47":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.68611,"italic":0.04835,"skew":0.0},"67":{"depth":0.0,"height":0.68611,"italic":0.06979,"skew":0.0},"68":{"depth":0.0,"height":0.68611,"italic":0.03194,"skew":0.0},"69":{"depth":0.0,"height":0.68611,"italic":0.05451,"skew":0.0},"70":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"71":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.68611,"italic":0.08229,"skew":0.0},"73":{"depth":0.0,"height":0.68611,"italic":0.07778,"skew":0.0},"74":{"depth":0.0,"height":0.68611,"italic":0.10069,"skew":0.0},"75":{"depth":0.0,"height":0.68611,"italic":0.06979,"skew":0.0},"76":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.68611,"italic":0.11424,"skew":0.0},"78":{"depth":0.0,"height":0.68611,"italic":0.11424,"skew":0.0},"79":{"depth":0.0,"height":0.68611,"italic":0.03194,"skew":0.0},"80":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"81":{"depth":0.19444,"height":0.68611,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.68611,"italic":0.00421,"skew":0.0},"83":{"depth":0.0,"height":0.68611,"italic":0.05382,"skew":0.0},"84":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"85":{"depth":0.0,"height":0.68611,"italic":0.11424,"skew":0.0},"86":{"depth":0.0,"height":0.68611,"italic":0.25555,"skew":0.0},"87":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"88":{"depth":0.0,"height":0.68611,"italic":0.07778,"skew":0.0},"89":{"depth":0.0,"height":0.68611,"italic":0.25555,"skew":0.0},"90":{"depth":0.0,"height":0.68611,"italic":0.06979,"skew":0.0},"915":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"916":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.68611,"italic":0.03194,"skew":0.0},"923":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.68611,"italic":0.07458,"skew":0.0},"928":{"depth":0.0,"height":0.68611,"italic":0.08229,"skew":0.0},"931":{"depth":0.0,"height":0.68611,"italic":0.05451,"skew":0.0},"933":{"depth":0.0,"height":0.68611,"italic":0.15972,"skew":0.0},"934":{"depth":0.0,"height":0.68611,"italic":0.0,"skew":0.0},"936":{"depth":0.0,"height":0.68611,"italic":0.11653,"skew":0.0},"937":{"depth":0.0,"height":0.68611,"italic":0.04835,"skew":0.0},"945":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"946":{"depth":0.19444,"height":0.69444,"italic":0.03403,"skew":0.0},"947":{"depth":0.19444,"height":0.44444,"italic":0.06389,"skew":0.0},"948":{"depth":0.0,"height":0.69444,"italic":0.03819,"skew":0.0},"949":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"950":{"depth":0.19444,"height":0.69444,"italic":0.06215,"skew":0.0},"951":{"depth":0.19444,"height":0.44444,"italic":0.03704,"skew":0.0},"952":{"depth":0.0,"height":0.69444,"italic":0.03194,"skew":0.0},"953":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"954":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"955":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"956":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"957":{"depth":0.0,"height":0.44444,"italic":0.06898,"skew":0.0},"958":{"depth":0.19444,"height":0.69444,"italic":0.03021,"skew":0.0},"959":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"960":{"depth":0.0,"height":0.44444,"italic":0.03704,"skew":0.0},"961":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"962":{"depth":0.09722,"height":0.44444,"italic":0.07917,"skew":0.0},"963":{"depth":0.0,"height":0.44444,"italic":0.03704,"skew":0.0},"964":{"depth":0.0,"height":0.44444,"italic":0.13472,"skew":0.0},"965":{"depth":0.0,"height":0.44444,"italic":0.03704,"skew":0.0},"966":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"967":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"968":{"depth":0.19444,"height":0.69444,"italic":0.03704,"skew":0.0},"969":{"depth":0.0,"height":0.44444,"italic":0.03704,"skew":0.0},"97":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"977":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"981":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"982":{"depth":0.0,"height":0.44444,"italic":0.03194,"skew":0.0},"99":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0}},"Math-Italic":{"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.16667},"1009":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"101":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"1013":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"102":{"depth":0.19444,"height":0.69444,"italic":0.10764,"skew":0.16667},"103":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.02778},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.65952,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.65952,"italic":0.05724,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.03148,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.01968,"skew":0.08334},"109":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"112":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"113":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.08334},"114":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.05556},"115":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"116":{"depth":0.0,"height":0.61508,"italic":0.0,"skew":0.08334},"117":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.02778},"118":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.02778},"119":{"depth":0.0,"height":0.43056,"italic":0.02691,"skew":0.08334},"120":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.02778},"121":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.05556},"122":{"depth":0.0,"height":0.43056,"italic":0.04398,"skew":0.05556},"47":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.13889},"66":{"depth":0.0,"height":0.68333,"italic":0.05017,"skew":0.08334},"67":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.08334},"68":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.05556},"69":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"70":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"71":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.08334},"72":{"depth":0.0,"height":0.68333,"italic":0.08125,"skew":0.05556},"73":{"depth":0.0,"height":0.68333,"italic":0.07847,"skew":0.11111},"74":{"depth":0.0,"height":0.68333,"italic":0.09618,"skew":0.16667},"75":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.05556},"76":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.02778},"77":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.08334},"78":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.08334},"79":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.08334},"80":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"81":{"depth":0.19444,"height":0.68333,"italic":0.0,"skew":0.08334},"82":{"depth":0.0,"height":0.68333,"italic":0.00773,"skew":0.08334},"83":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"84":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"85":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.02778},"86":{"depth":0.0,"height":0.68333,"italic":0.22222,"skew":0.0},"87":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.0},"88":{"depth":0.0,"height":0.68333,"italic":0.07847,"skew":0.08334},"89":{"depth":0.0,"height":0.68333,"italic":0.22222,"skew":0.0},"90":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.08334},"915":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"916":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.16667},"920":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.08334},"923":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.16667},"926":{"depth":0.0,"height":0.68333,"italic":0.07569,"skew":0.08334},"928":{"depth":0.0,"height":0.68333,"italic":0.08125,"skew":0.05556},"931":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"933":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.05556},"934":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.08334},"936":{"depth":0.0,"height":0.68333,"italic":0.11,"skew":0.05556},"937":{"depth":0.0,"height":0.68333,"italic":0.05017,"skew":0.08334},"945":{"depth":0.0,"height":0.43056,"italic":0.0037,"skew":0.02778},"946":{"depth":0.19444,"height":0.69444,"italic":0.05278,"skew":0.08334},"947":{"depth":0.19444,"height":0.43056,"italic":0.05556,"skew":0.0},"948":{"depth":0.0,"height":0.69444,"italic":0.03785,"skew":0.05556},"949":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.08334},"950":{"depth":0.19444,"height":0.69444,"italic":0.07378,"skew":0.08334},"951":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.05556},"952":{"depth":0.0,"height":0.69444,"italic":0.02778,"skew":0.08334},"953":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"954":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"955":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"956":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.02778},"957":{"depth":0.0,"height":0.43056,"italic":0.06366,"skew":0.02778},"958":{"depth":0.19444,"height":0.69444,"italic":0.04601,"skew":0.11111},"959":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"960":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"961":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"962":{"depth":0.09722,"height":0.43056,"italic":0.07986,"skew":0.08334},"963":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"964":{"depth":0.0,"height":0.43056,"italic":0.1132,"skew":0.02778},"965":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.02778},"966":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"967":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.05556},"968":{"depth":0.19444,"height":0.69444,"italic":0.03588,"skew":0.11111},"969":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"97":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"977":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.08334},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"981":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.08334},"982":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.0},"99":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556}},"Math-Regular":{"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.16667},"1009":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"101":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"1013":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"102":{"depth":0.19444,"height":0.69444,"italic":0.10764,"skew":0.16667},"103":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.02778},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.65952,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.65952,"italic":0.05724,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.03148,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.01968,"skew":0.08334},"109":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"112":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"113":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.08334},"114":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.05556},"115":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"116":{"depth":0.0,"height":0.61508,"italic":0.0,"skew":0.08334},"117":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.02778},"118":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.02778},"119":{"depth":0.0,"height":0.43056,"italic":0.02691,"skew":0.08334},"120":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.02778},"121":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.05556},"122":{"depth":0.0,"height":0.43056,"italic":0.04398,"skew":0.05556},"65":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.13889},"66":{"depth":0.0,"height":0.68333,"italic":0.05017,"skew":0.08334},"67":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.08334},"68":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.05556},"69":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"70":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"71":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.08334},"72":{"depth":0.0,"height":0.68333,"italic":0.08125,"skew":0.05556},"73":{"depth":0.0,"height":0.68333,"italic":0.07847,"skew":0.11111},"74":{"depth":0.0,"height":0.68333,"italic":0.09618,"skew":0.16667},"75":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.05556},"76":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.02778},"77":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.08334},"78":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.08334},"79":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.08334},"80":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"81":{"depth":0.19444,"height":0.68333,"italic":0.0,"skew":0.08334},"82":{"depth":0.0,"height":0.68333,"italic":0.00773,"skew":0.08334},"83":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"84":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"85":{"depth":0.0,"height":0.68333,"italic":0.10903,"skew":0.02778},"86":{"depth":0.0,"height":0.68333,"italic":0.22222,"skew":0.0},"87":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.0},"88":{"depth":0.0,"height":0.68333,"italic":0.07847,"skew":0.08334},"89":{"depth":0.0,"height":0.68333,"italic":0.22222,"skew":0.0},"90":{"depth":0.0,"height":0.68333,"italic":0.07153,"skew":0.08334},"915":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.08334},"916":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.16667},"920":{"depth":0.0,"height":0.68333,"italic":0.02778,"skew":0.08334},"923":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.16667},"926":{"depth":0.0,"height":0.68333,"italic":0.07569,"skew":0.08334},"928":{"depth":0.0,"height":0.68333,"italic":0.08125,"skew":0.05556},"931":{"depth":0.0,"height":0.68333,"italic":0.05764,"skew":0.08334},"933":{"depth":0.0,"height":0.68333,"italic":0.13889,"skew":0.05556},"934":{"depth":0.0,"height":0.68333,"italic":0.0,"skew":0.08334},"936":{"depth":0.0,"height":0.68333,"italic":0.11,"skew":0.05556},"937":{"depth":0.0,"height":0.68333,"italic":0.05017,"skew":0.08334},"945":{"depth":0.0,"height":0.43056,"italic":0.0037,"skew":0.02778},"946":{"depth":0.19444,"height":0.69444,"italic":0.05278,"skew":0.08334},"947":{"depth":0.19444,"height":0.43056,"italic":0.05556,"skew":0.0},"948":{"depth":0.0,"height":0.69444,"italic":0.03785,"skew":0.05556},"949":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.08334},"950":{"depth":0.19444,"height":0.69444,"italic":0.07378,"skew":0.08334},"951":{"depth":0.19444,"height":0.43056,"italic":0.03588,"skew":0.05556},"952":{"depth":0.0,"height":0.69444,"italic":0.02778,"skew":0.08334},"953":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"954":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"955":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"956":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.02778},"957":{"depth":0.0,"height":0.43056,"italic":0.06366,"skew":0.02778},"958":{"depth":0.19444,"height":0.69444,"italic":0.04601,"skew":0.11111},"959":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556},"960":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"961":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"962":{"depth":0.09722,"height":0.43056,"italic":0.07986,"skew":0.08334},"963":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"964":{"depth":0.0,"height":0.43056,"italic":0.1132,"skew":0.02778},"965":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.02778},"966":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.08334},"967":{"depth":0.19444,"height":0.43056,"italic":0.0,"skew":0.05556},"968":{"depth":0.19444,"height":0.69444,"italic":0.03588,"skew":0.11111},"969":{"depth":0.0,"height":0.43056,"italic":0.03588,"skew":0.0},"97":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"977":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.08334},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"981":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.08334},"982":{"depth":0.0,"height":0.43056,"italic":0.02778,"skew":0.0},"99":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.05556}},"SansSerif-Regular":{"100":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"102":{"depth":0.0,"height":0.69444,"italic":0.06944,"skew":0.0},"103":{"depth":0.19444,"height":0.44444,"italic":0.01389,"skew":0.0},"104":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.67937,"italic":0.0,"skew":0.0},"106":{"depth":0.19444,"height":0.67937,"italic":0.0,"skew":0.0},"107":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"108":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"109":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"112":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"113":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"114":{"depth":0.0,"height":0.44444,"italic":0.01389,"skew":0.0},"115":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.57143,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.44444,"italic":0.01389,"skew":0.0},"119":{"depth":0.0,"height":0.44444,"italic":0.01389,"skew":0.0},"120":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"121":{"depth":0.19444,"height":0.44444,"italic":0.01389,"skew":0.0},"122":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"126":{"depth":0.35,"height":0.32659,"italic":0.0,"skew":0.0},"305":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"33":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"34":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"35":{"depth":0.19444,"height":0.69444,"italic":0.0,"skew":0.0},"36":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"37":{"depth":0.05556,"height":0.75,"italic":0.0,"skew":0.0},"38":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"39":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"40":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"41":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"42":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"43":{"depth":0.08333,"height":0.58333,"italic":0.0,"skew":0.0},"44":{"depth":0.125,"height":0.08333,"italic":0.0,"skew":0.0},"45":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"46":{"depth":0.0,"height":0.08333,"italic":0.0,"skew":0.0},"47":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"48":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"51":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"52":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"53":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"55":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"567":{"depth":0.19444,"height":0.44444,"italic":0.0,"skew":0.0},"57":{"depth":0.0,"height":0.65556,"italic":0.0,"skew":0.0},"58":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"59":{"depth":0.125,"height":0.44444,"italic":0.0,"skew":0.0},"61":{"depth":-0.13,"height":0.37,"italic":0.0,"skew":0.0},"63":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"64":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"70":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"74":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"768":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"769":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.67659,"italic":0.0,"skew":0.0},"772":{"depth":0.0,"height":0.60889,"italic":0.0,"skew":0.0},"774":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"775":{"depth":0.0,"height":0.67937,"italic":0.0,"skew":0.0},"776":{"depth":0.0,"height":0.67937,"italic":0.0,"skew":0.0},"778":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"779":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"780":{"depth":0.0,"height":0.63194,"italic":0.0,"skew":0.0},"79":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"80":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"81":{"depth":0.125,"height":0.69444,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8211":{"depth":0.0,"height":0.44444,"italic":0.02778,"skew":0.0},"8212":{"depth":0.0,"height":0.44444,"italic":0.02778,"skew":0.0},"8216":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8217":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8220":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"8221":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.69444,"italic":0.01389,"skew":0.0},"87":{"depth":0.0,"height":0.69444,"italic":0.01389,"skew":0.0},"88":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"89":{"depth":0.0,"height":0.69444,"italic":0.025,"skew":0.0},"90":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"91":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"915":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"916":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"923":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"928":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"93":{"depth":0.25,"height":0.75,"italic":0.0,"skew":0.0},"931":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"933":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"934":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"936":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"937":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"94":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"95":{"depth":0.35,"height":0.09444,"italic":0.02778,"skew":0.0},"97":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.69444,"italic":0.0,"skew":0.0},"99":{"depth":0.0,"height":0.44444,"italic":0.0,"skew":0.0}},"Script-Regular":{"65":{"depth":0.0,"height":0.7,"italic":0.22925,"skew":0.0},"66":{"depth":0.0,"height":0.7,"italic":0.04087,"skew":0.0},"67":{"depth":0.0,"height":0.7,"italic":0.1689,"skew":0.0},"68":{"depth":0.0,"height":0.7,"italic":0.09371,"skew":0.0},"69":{"depth":0.0,"height":0.7,"italic":0.18583,"skew":0.0},"70":{"depth":0.0,"height":0.7,"italic":0.13634,"skew":0.0},"71":{"depth":0.0,"height":0.7,"italic":0.17322,"skew":0.0},"72":{"depth":0.0,"height":0.7,"italic":0.29694,"skew":0.0},"73":{"depth":0.0,"height":0.7,"italic":0.19189,"skew":0.0},"74":{"depth":0.27778,"height":0.7,"italic":0.19189,"skew":0.0},"75":{"depth":0.0,"height":0.7,"italic":0.31259,"skew":0.0},"76":{"depth":0.0,"height":0.7,"italic":0.19189,"skew":0.0},"77":{"depth":0.0,"height":0.7,"italic":0.15981,"skew":0.0},"78":{"depth":0.0,"height":0.7,"italic":0.3525,"skew":0.0},"79":{"depth":0.0,"height":0.7,"italic":0.08078,"skew":0.0},"80":{"depth":0.0,"height":0.7,"italic":0.08078,"skew":0.0},"81":{"depth":0.0,"height":0.7,"italic":0.03305,"skew":0.0},"82":{"depth":0.0,"height":0.7,"italic":0.06259,"skew":0.0},"83":{"depth":0.0,"height":0.7,"italic":0.19189,"skew":0.0},"84":{"depth":0.0,"height":0.7,"italic":0.29087,"skew":0.0},"85":{"depth":0.0,"height":0.7,"italic":0.25815,"skew":0.0},"86":{"depth":0.0,"height":0.7,"italic":0.27523,"skew":0.0},"87":{"depth":0.0,"height":0.7,"italic":0.27523,"skew":0.0},"88":{"depth":0.0,"height":0.7,"italic":0.26006,"skew":0.0},"89":{"depth":0.0,"height":0.7,"italic":0.2939,"skew":0.0},"90":{"depth":0.0,"height":0.7,"italic":0.24037,"skew":0.0}},"Size1-Regular":{"8748":{"depth":0.306,"height":0.805,"italic":0.19445,"skew":0.0},"8749":{"depth":0.306,"height":0.805,"italic":0.19445,"skew":0.0},"10216":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"10217":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"10752":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"10753":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"10754":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"10756":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"10758":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"123":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"125":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"40":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"41":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"47":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.72222,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.72222,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.72222,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.72222,"italic":0.0,"skew":0.0},"8214":{"depth":-0.00099,"height":0.601,"italic":0.0,"skew":0.0},"8593":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"8595":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"8657":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"8659":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"8719":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8720":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8721":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8730":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"8739":{"depth":-0.00599,"height":0.606,"italic":0.0,"skew":0.0},"8741":{"depth":-0.00599,"height":0.606,"italic":0.0,"skew":0.0},"8747":{"depth":0.30612,"height":0.805,"italic":0.19445,"skew":0.0},"8750":{"depth":0.30612,"height":0.805,"italic":0.19445,"skew":0.0},"8896":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8897":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8898":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8899":{"depth":0.25001,"height":0.75,"italic":0.0,"skew":0.0},"8968":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"8969":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"8970":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"8971":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"91":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"9168":{"depth":-0.00099,"height":0.601,"italic":0.0,"skew":0.0},"92":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0},"93":{"depth":0.35001,"height":0.85,"italic":0.0,"skew":0.0}},"Size2-Regular":{"8748":{"depth":0.862,"height":1.36,"italic":0.44445,"skew":0.0},"8749":{"depth":0.862,"height":1.36,"italic":0.44445,"skew":0.0},"10216":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"10217":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"10752":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"10753":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"10754":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"10756":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"10758":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"123":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"125":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"40":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"41":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"47":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"8719":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8720":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8721":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8730":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"8747":{"depth":0.86225,"height":1.36,"italic":0.44445,"skew":0.0},"8750":{"depth":0.86225,"height":1.36,"italic":0.44445,"skew":0.0},"8896":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8897":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8898":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8899":{"depth":0.55001,"height":1.05,"italic":0.0,"skew":0.0},"8968":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"8969":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"8970":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"8971":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"91":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"92":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"93":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0}},"Size3-Regular":{"10216":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"10217":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"123":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"125":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"40":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"41":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"47":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.75,"italic":0.0,"skew":0.0},"8730":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"8968":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"8969":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"8970":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"8971":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"91":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"92":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0},"93":{"depth":0.95003,"height":1.45,"italic":0.0,"skew":0.0}},"Size4-Regular":{"10216":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"10217":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"123":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"125":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"40":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"41":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"47":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"57344":{"depth":-0.00499,"height":0.605,"italic":0.0,"skew":0.0},"57345":{"depth":-0.00499,"height":0.605,"italic":0.0,"skew":0.0},"57680":{"depth":0.0,"height":0.12,"italic":0.0,"skew":0.0},"57681":{"depth":0.0,"height":0.12,"italic":0.0,"skew":0.0},"57682":{"depth":0.0,"height":0.12,"italic":0.0,"skew":0.0},"57683":{"depth":0.0,"height":0.12,"italic":0.0,"skew":0.0},"710":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"732":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.825,"italic":0.0,"skew":0.0},"8730":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"8968":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"8969":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"8970":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"8971":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"91":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"9115":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9116":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"9117":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9118":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9119":{"depth":1e-05,"height":0.6,"italic":0.0,"skew":0.0},"9120":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9121":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9122":{"depth":-0.00099,"height":0.601,"italic":0.0,"skew":0.0},"9123":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9124":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9125":{"depth":-0.00099,"height":0.601,"italic":0.0,"skew":0.0},"9126":{"depth":0.64502,"height":1.155,"italic":0.0,"skew":0.0},"9127":{"depth":1e-05,"height":0.9,"italic":0.0,"skew":0.0},"9128":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"9129":{"depth":0.90001,"height":0.0,"italic":0.0,"skew":0.0},"9130":{"depth":0.0,"height":0.3,"italic":0.0,"skew":0.0},"9131":{"depth":1e-05,"height":0.9,"italic":0.0,"skew":0.0},"9132":{"depth":0.65002,"height":1.15,"italic":0.0,"skew":0.0},"9133":{"depth":0.90001,"height":0.0,"italic":0.0,"skew":0.0},"9143":{"depth":0.88502,"height":0.915,"italic":0.0,"skew":0.0},"92":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0},"93":{"depth":1.25003,"height":1.75,"italic":0.0,"skew":0.0}},"Typewriter-Regular":{"100":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"101":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"102":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"103":{"depth":0.22222,"height":0.43056,"italic":0.0,"skew":0.0},"104":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"105":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"106":{"depth":0.22222,"height":0.61111,"italic":0.0,"skew":0.0},"107":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"108":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"109":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"110":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"111":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"112":{"depth":0.22222,"height":0.43056,"italic":0.0,"skew":0.0},"113":{"depth":0.22222,"height":0.43056,"italic":0.0,"skew":0.0},"114":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"115":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"116":{"depth":0.0,"height":0.55358,"italic":0.0,"skew":0.0},"117":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"118":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"119":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"120":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"121":{"depth":0.22222,"height":0.43056,"italic":0.0,"skew":0.0},"122":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"123":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"124":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"125":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"126":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"127":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"2018":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"2019":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"305":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"33":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"34":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"35":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"36":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"37":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"38":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"39":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"40":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"41":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"42":{"depth":0.0,"height":0.52083,"italic":0.0,"skew":0.0},"43":{"depth":-0.08056,"height":0.53055,"italic":0.0,"skew":0.0},"44":{"depth":0.13889,"height":0.125,"italic":0.0,"skew":0.0},"45":{"depth":-0.08056,"height":0.53055,"italic":0.0,"skew":0.0},"46":{"depth":0.0,"height":0.125,"italic":0.0,"skew":0.0},"47":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"48":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"49":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"50":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"51":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"52":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"53":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"54":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"55":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"56":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"567":{"depth":0.22222,"height":0.43056,"italic":0.0,"skew":0.0},"57":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"58":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"59":{"depth":0.13889,"height":0.43056,"italic":0.0,"skew":0.0},"60":{"depth":-0.05556,"height":0.55556,"italic":0.0,"skew":0.0},"61":{"depth":-0.19549,"height":0.41562,"italic":0.0,"skew":0.0},"62":{"depth":-0.05556,"height":0.55556,"italic":0.0,"skew":0.0},"63":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"64":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"65":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"66":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"67":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"68":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"69":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"70":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"71":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"72":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"73":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"74":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"75":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"76":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"768":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"769":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"77":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"770":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"771":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"772":{"depth":0.0,"height":0.56555,"italic":0.0,"skew":0.0},"774":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"776":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"778":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"78":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"780":{"depth":0.0,"height":0.56597,"italic":0.0,"skew":0.0},"79":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"80":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"81":{"depth":0.13889,"height":0.61111,"italic":0.0,"skew":0.0},"82":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"8242":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"83":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"84":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"85":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"86":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"87":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"88":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"89":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"90":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"91":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"915":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"916":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"92":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"920":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"923":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"926":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"928":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"93":{"depth":0.08333,"height":0.69444,"italic":0.0,"skew":0.0},"931":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"933":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"934":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"936":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"937":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"94":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"95":{"depth":0.09514,"height":0.0,"italic":0.0,"skew":0.0},"96":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"97":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0},"98":{"depth":0.0,"height":0.61111,"italic":0.0,"skew":0.0},"99":{"depth":0.0,"height":0.43056,"italic":0.0,"skew":0.0}}}; - -/** - * This function is a convience function for looking up information in the - * metricMap table. It takes a character as a string, and a style - */ -var getCharacterMetrics = function(character, style) { - return metricMap[style][character.charCodeAt(0)]; -}; - -module.exports = { - metrics: metrics, - getCharacterMetrics: getCharacterMetrics -}; - -},{"./Style":8}],17:[function(require,module,exports){ -var utils = require("./utils"); -var ParseError = require("./ParseError"); - -// This file contains a list of functions that we parse. The functions map -// contains the following data: - -/* - * Keys are the name of the functions to parse - * The data contains the following keys: - * - numArgs: The number of arguments the function takes. - * - argTypes: (optional) An array corresponding to each argument of the - * function, giving the type of argument that should be parsed. Its - * length should be equal to `numArgs + numOptionalArgs`. Valid - * types: - * - "size": A size-like thing, such as "1em" or "5ex" - * - "color": An html color, like "#abc" or "blue" - * - "original": The same type as the environment that the - * function being parsed is in (e.g. used for the - * bodies of functions like \color where the first - * argument is special and the second argument is - * parsed normally) - * Other possible types (probably shouldn't be used) - * - "text": Text-like (e.g. \text) - * - "math": Normal math - * If undefined, this will be treated as an appropriate length - * array of "original" strings - * - greediness: (optional) The greediness of the function to use ungrouped - * arguments. - * - * E.g. if you have an expression - * \sqrt \frac 1 2 - * since \frac has greediness=2 vs \sqrt's greediness=1, \frac - * will use the two arguments '1' and '2' as its two arguments, - * then that whole function will be used as the argument to - * \sqrt. On the other hand, the expressions - * \frac \frac 1 2 3 - * and - * \frac \sqrt 1 2 - * will fail because \frac and \frac have equal greediness - * and \sqrt has a lower greediness than \frac respectively. To - * make these parse, we would have to change them to: - * \frac {\frac 1 2} 3 - * and - * \frac {\sqrt 1} 2 - * - * The default value is `1` - * - allowedInText: (optional) Whether or not the function is allowed inside - * text mode (default false) - * - numOptionalArgs: (optional) The number of optional arguments the function - * should parse. If the optional arguments aren't found, - * `null` will be passed to the handler in their place. - * (default 0) - * - handler: The function that is called to handle this function and its - * arguments. The arguments are: - * - func: the text of the function - * - [args]: the next arguments are the arguments to the function, - * of which there are numArgs of them - * - positions: the positions in the overall string of the function - * and the arguments. Should only be used to produce - * error messages - * The function should return an object with the following keys: - * - type: The type of element that this is. This is then used in - * buildHTML/buildMathML to determine which function - * should be called to build this node into a DOM node - * Any other data can be added to the object, which will be passed - * in to the function in buildHTML/buildMathML as `group.value`. - */ - -var functions = { - // A normal square root - "\\sqrt": { - numArgs: 1, - numOptionalArgs: 1, - handler: function(func, index, body, positions) { - return { - type: "sqrt", - body: body, - index: index - }; - } - }, - - // Some non-mathy text - "\\text": { - numArgs: 1, - argTypes: ["text"], - greediness: 2, - handler: function(func, body) { - // Since the corresponding buildHTML/buildMathML function expects a - // list of elements, we normalize for different kinds of arguments - // TODO(emily): maybe this should be done somewhere else - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - - return { - type: "text", - body: inner - }; - } - }, - - // A two-argument custom color - "\\color": { - numArgs: 2, - allowedInText: true, - greediness: 3, - argTypes: ["color", "original"], - handler: function(func, color, body) { - // Normalize the different kinds of bodies (see \text above) - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - - return { - type: "color", - color: color.value, - value: inner - }; - } - }, - - // An overline - "\\overline": { - numArgs: 1, - handler: function(func, body) { - return { - type: "overline", - body: body - }; - } - }, - - // A box of the width and height - "\\rule": { - numArgs: 2, - numOptionalArgs: 1, - argTypes: ["size", "size", "size"], - handler: function(func, shift, width, height) { - return { - type: "rule", - shift: shift && shift.value, - width: width.value, - height: height.value - }; - } - }, - - // A KaTeX logo - "\\KaTeX": { - numArgs: 0, - handler: function(func) { - return { - type: "katex" - }; - } - }, - - "\\phantom": { - numArgs: 1, - handler: function(func, body) { - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - - return { - type: "phantom", - value: inner - }; - } - } -}; - -// Extra data needed for the delimiter handler down below -var delimiterSizes = { - "\\bigl" : {type: "open", size: 1}, - "\\Bigl" : {type: "open", size: 2}, - "\\biggl": {type: "open", size: 3}, - "\\Biggl": {type: "open", size: 4}, - "\\bigr" : {type: "close", size: 1}, - "\\Bigr" : {type: "close", size: 2}, - "\\biggr": {type: "close", size: 3}, - "\\Biggr": {type: "close", size: 4}, - "\\bigm" : {type: "rel", size: 1}, - "\\Bigm" : {type: "rel", size: 2}, - "\\biggm": {type: "rel", size: 3}, - "\\Biggm": {type: "rel", size: 4}, - "\\big" : {type: "textord", size: 1}, - "\\Big" : {type: "textord", size: 2}, - "\\bigg" : {type: "textord", size: 3}, - "\\Bigg" : {type: "textord", size: 4} -}; - -var delimiters = [ - "(", ")", "[", "\\lbrack", "]", "\\rbrack", - "\\{", "\\lbrace", "\\}", "\\rbrace", - "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", - "<", ">", "\\langle", "\\rangle", - "/", "\\backslash", - "|", "\\vert", "\\|", "\\Vert", - "\\uparrow", "\\Uparrow", - "\\downarrow", "\\Downarrow", - "\\updownarrow", "\\Updownarrow", - "." -]; - -var fontAliases = { - // amstex.sty - "\\frak": "\\mathfrak", - "\\Bbb": "\\mathbb", - "\\bold": "\\mathbf", - // article.cls - "\\rm": "\\mathrm", - "\\sf": "\\mathsf", - "\\tt": "\\mathtt", - "\\bf": "\\mathbf", - "\\it": "\\mathit", - "\\cal": "\\mathcal" -}; - -/* - * This is a list of functions which each have the same function but have - * different names so that we don't have to duplicate the data a bunch of times. - * Each element in the list is an object with the following keys: - * - funcs: A list of function names to be associated with the data - * - data: An objecty with the same data as in each value of the `function` - * table above - */ -var duplicatedFunctions = [ - // Single-argument color functions - { - funcs: [ - "\\blue", "\\orange", "\\pink", "\\red", - "\\green", "\\gray", "\\purple", - "\\blueA", "\\blueB", "\\blueC", "\\blueD", "\\blueE", - "\\tealA", "\\tealB", "\\tealC", "\\tealD", "\\tealE", - "\\greenA", "\\greenB", "\\greenC", "\\greenD", "\\greenE", - "\\goldA", "\\goldB", "\\goldC", "\\goldD", "\\goldE", - "\\redA", "\\redB", "\\redC", "\\redD", "\\redE", - "\\maroonA", "\\maroonB", "\\maroonC", "\\maroonD", "\\maroonE", - "\\purpleA", "\\purpleB", "\\purpleC", "\\purpleD", "\\purpleE", - "\\mintA", "\\mintB", "\\mintC", - "\\grayA", "\\grayB", "\\grayC", "\\grayD", "\\grayE", - "\\grayF", "\\grayG", "\\grayH", "\\grayI", - "\\kaBlue", "\\kaGreen" - ], - data: { - numArgs: 1, - allowedInText: true, - greediness: 3, - handler: function(func, body) { - var atoms; - if (body.type === "ordgroup") { - atoms = body.value; - } else { - atoms = [body]; - } - - return { - type: "color", - color: "katex-" + func.slice(1), - value: atoms - }; - } - } - }, - - // There are 2 flags for operators; whether they produce limits in - // displaystyle, and whether they are symbols and should grow in - // displaystyle. These four groups cover the four possible choices. - - // No limits, not symbols - { - funcs: [ - "\\arcsin", "\\arccos", "\\arctan", "\\arg", "\\cos", "\\cosh", - "\\cot", "\\coth", "\\csc", "\\deg", "\\dim", "\\exp", "\\hom", - "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", - "\\tan","\\tanh" - ], - data: { - numArgs: 0, - handler: function(func) { - return { - type: "op", - limits: false, - symbol: false, - body: func - }; - } - } - }, - - // Limits, not symbols - { - funcs: [ - "\\det", "\\gcd", "\\inf", "\\lim", "\\liminf", "\\limsup", "\\max", - "\\min", "\\Pr", "\\sup" - ], - data: { - numArgs: 0, - handler: function(func) { - return { - type: "op", - limits: true, - symbol: false, - body: func - }; - } - } - }, - - // No limits, symbols - { - funcs: [ - "\\int", "\\iint", "\\iiint", "\\oint" - ], - data: { - numArgs: 0, - handler: function(func) { - return { - type: "op", - limits: false, - symbol: true, - body: func - }; - } - } - }, - - // Limits, symbols - { - funcs: [ - "\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", - "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", - "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint" - ], - data: { - numArgs: 0, - handler: function(func) { - return { - type: "op", - limits: true, - symbol: true, - body: func - }; - } - } - }, - - // Fractions - { - funcs: [ - "\\dfrac", "\\frac", "\\tfrac", - "\\dbinom", "\\binom", "\\tbinom" - ], - data: { - numArgs: 2, - greediness: 2, - handler: function(func, numer, denom) { - var hasBarLine; - var leftDelim = null; - var rightDelim = null; - var size = "auto"; - - switch (func) { - case "\\dfrac": - case "\\frac": - case "\\tfrac": - hasBarLine = true; - break; - case "\\dbinom": - case "\\binom": - case "\\tbinom": - hasBarLine = false; - leftDelim = "("; - rightDelim = ")"; - break; - default: - throw new Error("Unrecognized genfrac command"); - } - - switch (func) { - case "\\dfrac": - case "\\dbinom": - size = "display"; - break; - case "\\tfrac": - case "\\tbinom": - size = "text"; - break; - } - - return { - type: "genfrac", - numer: numer, - denom: denom, - hasBarLine: hasBarLine, - leftDelim: leftDelim, - rightDelim: rightDelim, - size: size - }; - } - } - }, - - // Left and right overlap functions - { - funcs: ["\\llap", "\\rlap"], - data: { - numArgs: 1, - allowedInText: true, - handler: function(func, body) { - return { - type: func.slice(1), - body: body - }; - } - } - }, - - // Delimiter functions - { - funcs: [ - "\\bigl", "\\Bigl", "\\biggl", "\\Biggl", - "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", - "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", - "\\big", "\\Big", "\\bigg", "\\Bigg", - "\\left", "\\right" - ], - data: { - numArgs: 1, - handler: function(func, delim, positions) { - if (!utils.contains(delimiters, delim.value)) { - throw new ParseError( - "Invalid delimiter: '" + delim.value + "' after '" + - func + "'", - this.lexer, positions[1]); - } - - // \left and \right are caught somewhere in Parser.js, which is - // why this data doesn't match what is in buildHTML. - if (func === "\\left" || func === "\\right") { - return { - type: "leftright", - value: delim.value - }; - } else { - return { - type: "delimsizing", - size: delimiterSizes[func].size, - delimType: delimiterSizes[func].type, - value: delim.value - }; - } - } - } - }, - - // Sizing functions (handled in Parser.js explicitly, hence no handler) - { - funcs: [ - "\\tiny", "\\scriptsize", "\\footnotesize", "\\small", - "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge" - ], - data: { - numArgs: 0 - } - }, - - // Style changing functions (handled in Parser.js explicitly, hence no - // handler) - { - funcs: [ - "\\displaystyle", "\\textstyle", "\\scriptstyle", - "\\scriptscriptstyle" - ], - data: { - numArgs: 0 - } - }, - - { - funcs: [ - // styles - "\\mathrm", "\\mathit", "\\mathbf", - - // families - "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", - "\\mathtt" - ], - data: { - numArgs: 1, - handler: function (func, body) { - if (func in fontAliases) { - func = fontAliases[func]; - } - return { - type: "font", - font: func.slice(1), - body: body - }; - } - } - }, - - // Accents - { - funcs: [ - "\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", - "\\check", "\\hat", "\\vec", "\\dot" - // We don't support expanding accents yet - // "\\widetilde", "\\widehat" - ], - data: { - numArgs: 1, - handler: function(func, base) { - return { - type: "accent", - accent: func, - base: base - }; - } - } - }, - - // Infix generalized fractions - { - funcs: ["\\over", "\\choose"], - data: { - numArgs: 0, - handler: function (func) { - var replaceWith; - switch (func) { - case "\\over": - replaceWith = "\\frac"; - break; - case "\\choose": - replaceWith = "\\binom"; - break; - default: - throw new Error("Unrecognized infix genfrac command"); - } - return { - type: "infix", - replaceWith: replaceWith - }; - } - } - }, - - // Row breaks for aligned data - { - funcs: ["\\\\", "\\cr"], - data: { - numArgs: 0, - numOptionalArgs: 1, - argTypes: ["size"], - handler: function(func, size) { - return { - type: "cr", - size: size - }; - } - } - }, - - // Environment delimiters - { - funcs: ["\\begin", "\\end"], - data: { - numArgs: 1, - argTypes: ["text"], - handler: function(func, nameGroup, positions) { - if (nameGroup.type !== "ordgroup") { - throw new ParseError( - "Invalid environment name", - this.lexer, positions[1]); - } - var name = ""; - for (var i = 0; i < nameGroup.value.length; ++i) { - name += nameGroup.value[i].value; - } - return { - type: "environment", - name: name, - namepos: positions[1] - }; - } - } - } -]; - -var addFuncsWithData = function(funcs, data) { - for (var i = 0; i < funcs.length; i++) { - functions[funcs[i]] = data; - } -}; - -// Add all of the functions in duplicatedFunctions to the functions map -for (var i = 0; i < duplicatedFunctions.length; i++) { - addFuncsWithData(duplicatedFunctions[i].funcs, duplicatedFunctions[i].data); -} - -// Set default values of functions -for (var f in functions) { - if (functions.hasOwnProperty(f)) { - var func = functions[f]; - - functions[f] = { - numArgs: func.numArgs, - argTypes: func.argTypes, - greediness: (func.greediness === undefined) ? 1 : func.greediness, - allowedInText: func.allowedInText ? func.allowedInText : false, - numOptionalArgs: (func.numOptionalArgs === undefined) ? 0 : - func.numOptionalArgs, - handler: func.handler - }; - } -} - -module.exports = { - funcs: functions -}; - -},{"./ParseError":5,"./utils":22}],18:[function(require,module,exports){ -/** - * These objects store data about MathML nodes. This is the MathML equivalent - * of the types in domTree.js. Since MathML handles its own rendering, and - * since we're mainly using MathML to improve accessibility, we don't manage - * any of the styling state that the plain DOM nodes do. - * - * The `toNode` and `toMarkup` functions work simlarly to how they do in - * domTree.js, creating namespaced DOM nodes and HTML text markup respectively. - */ - -var utils = require("./utils"); - -/** - * This node represents a general purpose MathML node of any type. The - * constructor requires the type of node to create (for example, `"mo"` or - * `"mspace"`, corresponding to `` and `` tags). - */ -function MathNode(type, children) { - this.type = type; - this.attributes = {}; - this.children = children || []; -} - -/** - * Sets an attribute on a MathML node. MathML depends on attributes to convey a - * semantic content, so this is used heavily. - */ -MathNode.prototype.setAttribute = function(name, value) { - this.attributes[name] = value; -}; - -/** - * Converts the math node into a MathML-namespaced DOM element. - */ -MathNode.prototype.toNode = function() { - var node = document.createElementNS( - "http://www.w3.org/1998/Math/MathML", this.type); - - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - node.setAttribute(attr, this.attributes[attr]); - } - } - - for (var i = 0; i < this.children.length; i++) { - node.appendChild(this.children[i].toNode()); - } - - return node; -}; - -/** - * Converts the math node into an HTML markup string. - */ -MathNode.prototype.toMarkup = function() { - var markup = "<" + this.type; - - // Add the attributes - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - markup += " " + attr + "=\""; - markup += utils.escape(this.attributes[attr]); - markup += "\""; - } - } - - markup += ">"; - - for (var i = 0; i < this.children.length; i++) { - markup += this.children[i].toMarkup(); - } - - markup += ""; - - return markup; -}; - -/** - * This node represents a piece of text. - */ -function TextNode(text) { - this.text = text; -} - -/** - * Converts the text node into a DOM text node. - */ -TextNode.prototype.toNode = function() { - return document.createTextNode(this.text); -}; - -/** - * Converts the text node into HTML markup (which is just the text itself). - */ -TextNode.prototype.toMarkup = function() { - return utils.escape(this.text); -}; - -module.exports = { - MathNode: MathNode, - TextNode: TextNode -}; - -},{"./utils":22}],19:[function(require,module,exports){ -/** - * The resulting parse tree nodes of the parse tree. - */ -function ParseNode(type, value, mode) { - this.type = type; - this.value = value; - this.mode = mode; -} - -/** - * A result and final position returned by the `.parse...` functions. - * - */ -function ParseResult(result, newPosition, peek) { - this.result = result; - this.position = newPosition; -} - -module.exports = { - ParseNode: ParseNode, - ParseResult: ParseResult -}; - - -},{}],20:[function(require,module,exports){ -/** - * Provides a single function for parsing an expression using a Parser - * TODO(emily): Remove this - */ - -var Parser = require("./Parser"); - -/** - * Parses an expression using a Parser, then returns the parsed result. - */ -var parseTree = function(toParse, settings) { - var parser = new Parser(toParse, settings); - - return parser.parse(); -}; - -module.exports = parseTree; - -},{"./Parser":6}],21:[function(require,module,exports){ -/** - * This file holds a list of all no-argument functions and single-character - * symbols (like 'a' or ';'). - * - * For each of the symbols, there are three properties they can have: - * - font (required): the font to be used for this symbol. Either "main" (the - normal font), or "ams" (the ams fonts). - * - group (required): the ParseNode group type the symbol should have (i.e. - "textord", "mathord", etc). - * - replace (optional): the character that this symbol or function should be - * replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi - * character in the main font). - * - * The outermost map in the table indicates what mode the symbols should be - * accepted in (e.g. "math" or "text"). - */ - -var symbols = { - "math": { - // Relation Symbols - "\\equiv": { - font: "main", - group: "rel", - replace: "\u2261" - }, - "\\prec": { - font: "main", - group: "rel", - replace: "\u227a" - }, - "\\succ": { - font: "main", - group: "rel", - replace: "\u227b" - }, - "\\sim": { - font: "main", - group: "rel", - replace: "\u223c" - }, - "\\perp": { - font: "main", - group: "rel", - replace: "\u22a5" - }, - "\\preceq": { - font: "main", - group: "rel", - replace: "\u2aaf" - }, - "\\succeq": { - font: "main", - group: "rel", - replace: "\u2ab0" - }, - "\\simeq": { - font: "main", - group: "rel", - replace: "\u2243" - }, - "\\mid": { - font: "main", - group: "rel", - replace: "\u2223" - }, - "\\ll": { - font: "main", - group: "rel", - replace: "\u226a" - }, - "\\gg": { - font: "main", - group: "rel", - replace: "\u226b" - }, - "\\asymp": { - font: "main", - group: "rel", - replace: "\u224d" - }, - "\\parallel": { - font: "main", - group: "rel", - replace: "\u2225" - }, - "\\bowtie": { - font: "main", - group: "rel", - replace: "\u22c8" - }, - "\\smile": { - font: "main", - group: "rel", - replace: "\u2323" - }, - "\\sqsubseteq": { - font: "main", - group: "rel", - replace: "\u2291" - }, - "\\sqsupseteq": { - font: "main", - group: "rel", - replace: "\u2292" - }, - "\\doteq": { - font: "main", - group: "rel", - replace: "\u2250" - }, - "\\frown": { - font: "main", - group: "rel", - replace: "\u2322" - }, - "\\ni": { - font: "main", - group: "rel", - replace: "\u220b" - }, - "\\propto": { - font: "main", - group: "rel", - replace: "\u221d" - }, - "\\vdash": { - font: "main", - group: "rel", - replace: "\u22a2" - }, - "\\dashv": { - font: "main", - group: "rel", - replace: "\u22a3" - }, - "\\owns": { - font: "main", - group: "rel", - replace: "\u220b" - }, - - // Punctuation - "\\ldotp": { - font: "main", - group: "punct", - replace: "\u002e" - }, - "\\cdotp": { - font: "main", - group: "punct", - replace: "\u22c5" - }, - - // Misc Symbols - "\\#": { - font: "main", - group: "textord", - replace: "\u0023" - }, - "\\&": { - font: "main", - group: "textord", - replace: "\u0026" - }, - "\\aleph": { - font: "main", - group: "textord", - replace: "\u2135" - }, - "\\forall": { - font: "main", - group: "textord", - replace: "\u2200" - }, - "\\hbar": { - font: "main", - group: "textord", - replace: "\u210f" - }, - "\\exists": { - font: "main", - group: "textord", - replace: "\u2203" - }, - "\\nabla": { - font: "main", - group: "textord", - replace: "\u2207" - }, - "\\flat": { - font: "main", - group: "textord", - replace: "\u266d" - }, - "\\ell": { - font: "main", - group: "textord", - replace: "\u2113" - }, - "\\natural": { - font: "main", - group: "textord", - replace: "\u266e" - }, - "\\clubsuit": { - font: "main", - group: "textord", - replace: "\u2663" - }, - "\\wp": { - font: "main", - group: "textord", - replace: "\u2118" - }, - "\\sharp": { - font: "main", - group: "textord", - replace: "\u266f" - }, - "\\diamondsuit": { - font: "main", - group: "textord", - replace: "\u2662" - }, - "\\Re": { - font: "main", - group: "textord", - replace: "\u211c" - }, - "\\heartsuit": { - font: "main", - group: "textord", - replace: "\u2661" - }, - "\\Im": { - font: "main", - group: "textord", - replace: "\u2111" - }, - "\\spadesuit": { - font: "main", - group: "textord", - replace: "\u2660" - }, - - // Math and Text - "\\dag": { - font: "main", - group: "textord", - replace: "\u2020" - }, - "\\ddag": { - font: "main", - group: "textord", - replace: "\u2021" - }, - - // Large Delimiters - "\\rmoustache": { - font: "main", - group: "close", - replace: "\u23b1" - }, - "\\lmoustache": { - font: "main", - group: "open", - replace: "\u23b0" - }, - "\\rgroup": { - font: "main", - group: "close", - replace: "\u27ef" - }, - "\\lgroup": { - font: "main", - group: "open", - replace: "\u27ee" - }, - - // Binary Operators - "\\mp": { - font: "main", - group: "bin", - replace: "\u2213" - }, - "\\ominus": { - font: "main", - group: "bin", - replace: "\u2296" - }, - "\\uplus": { - font: "main", - group: "bin", - replace: "\u228e" - }, - "\\sqcap": { - font: "main", - group: "bin", - replace: "\u2293" - }, - "\\ast": { - font: "main", - group: "bin", - replace: "\u2217" - }, - "\\sqcup": { - font: "main", - group: "bin", - replace: "\u2294" - }, - "\\bigcirc": { - font: "main", - group: "bin", - replace: "\u25ef" - }, - "\\bullet": { - font: "main", - group: "bin", - replace: "\u2219" - }, - "\\ddagger": { - font: "main", - group: "bin", - replace: "\u2021" - }, - "\\wr": { - font: "main", - group: "bin", - replace: "\u2240" - }, - "\\amalg": { - font: "main", - group: "bin", - replace: "\u2a3f" - }, - - // Arrow Symbols - "\\longleftarrow": { - font: "main", - group: "rel", - replace: "\u27f5" - }, - "\\Leftarrow": { - font: "main", - group: "rel", - replace: "\u21d0" - }, - "\\Longleftarrow": { - font: "main", - group: "rel", - replace: "\u27f8" - }, - "\\longrightarrow": { - font: "main", - group: "rel", - replace: "\u27f6" - }, - "\\Rightarrow": { - font: "main", - group: "rel", - replace: "\u21d2" - }, - "\\Longrightarrow": { - font: "main", - group: "rel", - replace: "\u27f9" - }, - "\\leftrightarrow": { - font: "main", - group: "rel", - replace: "\u2194" - }, - "\\longleftrightarrow": { - font: "main", - group: "rel", - replace: "\u27f7" - }, - "\\Leftrightarrow": { - font: "main", - group: "rel", - replace: "\u21d4" - }, - "\\Longleftrightarrow": { - font: "main", - group: "rel", - replace: "\u27fa" - }, - "\\mapsto": { - font: "main", - group: "rel", - replace: "\u21a6" - }, - "\\longmapsto": { - font: "main", - group: "rel", - replace: "\u27fc" - }, - "\\nearrow": { - font: "main", - group: "rel", - replace: "\u2197" - }, - "\\hookleftarrow": { - font: "main", - group: "rel", - replace: "\u21a9" - }, - "\\hookrightarrow": { - font: "main", - group: "rel", - replace: "\u21aa" - }, - "\\searrow": { - font: "main", - group: "rel", - replace: "\u2198" - }, - "\\leftharpoonup": { - font: "main", - group: "rel", - replace: "\u21bc" - }, - "\\rightharpoonup": { - font: "main", - group: "rel", - replace: "\u21c0" - }, - "\\swarrow": { - font: "main", - group: "rel", - replace: "\u2199" - }, - "\\leftharpoondown": { - font: "main", - group: "rel", - replace: "\u21bd" - }, - "\\rightharpoondown": { - font: "main", - group: "rel", - replace: "\u21c1" - }, - "\\nwarrow": { - font: "main", - group: "rel", - replace: "\u2196" - }, - "\\rightleftharpoons": { - font: "main", - group: "rel", - replace: "\u21cc" - }, - - // AMS Negated Binary Relations - "\\nless": { - font: "ams", - group: "rel", - replace: "\u226e" - }, - "\\nleqslant": { - font: "ams", - group: "rel", - replace: "\ue010" - }, - "\\nleqq": { - font: "ams", - group: "rel", - replace: "\ue011" - }, - "\\lneq": { - font: "ams", - group: "rel", - replace: "\u2a87" - }, - "\\lneqq": { - font: "ams", - group: "rel", - replace: "\u2268" - }, - "\\lvertneqq": { - font: "ams", - group: "rel", - replace: "\ue00c" - }, - "\\lnsim": { - font: "ams", - group: "rel", - replace: "\u22e6" - }, - "\\lnapprox": { - font: "ams", - group: "rel", - replace: "\u2a89" - }, - "\\nprec": { - font: "ams", - group: "rel", - replace: "\u2280" - }, - "\\npreceq": { - font: "ams", - group: "rel", - replace: "\u22e0" - }, - "\\precnsim": { - font: "ams", - group: "rel", - replace: "\u22e8" - }, - "\\precnapprox": { - font: "ams", - group: "rel", - replace: "\u2ab9" - }, - "\\nsim": { - font: "ams", - group: "rel", - replace: "\u2241" - }, - "\\nshortmid": { - font: "ams", - group: "rel", - replace: "\ue006" - }, - "\\nmid": { - font: "ams", - group: "rel", - replace: "\u2224" - }, - "\\nvdash": { - font: "ams", - group: "rel", - replace: "\u22ac" - }, - "\\nvDash": { - font: "ams", - group: "rel", - replace: "\u22ad" - }, - "\\ntriangleleft": { - font: "ams", - group: "rel", - replace: "\u22ea" - }, - "\\ntrianglelefteq": { - font: "ams", - group: "rel", - replace: "\u22ec" - }, - "\\subsetneq": { - font: "ams", - group: "rel", - replace: "\u228a" - }, - "\\varsubsetneq": { - font: "ams", - group: "rel", - replace: "\ue01a" - }, - "\\subsetneqq": { - font: "ams", - group: "rel", - replace: "\u2acb" - }, - "\\varsubsetneqq": { - font: "ams", - group: "rel", - replace: "\ue017" - }, - "\\ngtr": { - font: "ams", - group: "rel", - replace: "\u226f" - }, - "\\ngeqslant": { - font: "ams", - group: "rel", - replace: "\ue00f" - }, - "\\ngeqq": { - font: "ams", - group: "rel", - replace: "\ue00e" - }, - "\\gneq": { - font: "ams", - group: "rel", - replace: "\u2a88" - }, - "\\gneqq": { - font: "ams", - group: "rel", - replace: "\u2269" - }, - "\\gvertneqq": { - font: "ams", - group: "rel", - replace: "\ue00d" - }, - "\\gnsim": { - font: "ams", - group: "rel", - replace: "\u22e7" - }, - "\\gnapprox": { - font: "ams", - group: "rel", - replace: "\u2a8a" - }, - "\\nsucc": { - font: "ams", - group: "rel", - replace: "\u2281" - }, - "\\nsucceq": { - font: "ams", - group: "rel", - replace: "\u22e1" - }, - "\\succnsim": { - font: "ams", - group: "rel", - replace: "\u22e9" - }, - "\\succnapprox": { - font: "ams", - group: "rel", - replace: "\u2aba" - }, - "\\ncong": { - font: "ams", - group: "rel", - replace: "\u2246" - }, - "\\nshortparallel": { - font: "ams", - group: "rel", - replace: "\ue007" - }, - "\\nparallel": { - font: "ams", - group: "rel", - replace: "\u2226" - }, - "\\nVDash": { - font: "ams", - group: "rel", - replace: "\u22af" - }, - "\\ntriangleright": { - font: "ams", - group: "rel", - replace: "\u22eb" - }, - "\\ntrianglerighteq": { - font: "ams", - group: "rel", - replace: "\u22ed" - }, - "\\nsupseteqq": { - font: "ams", - group: "rel", - replace: "\ue018" - }, - "\\supsetneq": { - font: "ams", - group: "rel", - replace: "\u228b" - }, - "\\varsupsetneq": { - font: "ams", - group: "rel", - replace: "\ue01b" - }, - "\\supsetneqq": { - font: "ams", - group: "rel", - replace: "\u2acc" - }, - "\\varsupsetneqq": { - font: "ams", - group: "rel", - replace: "\ue019" - }, - "\\nVdash": { - font: "ams", - group: "rel", - replace: "\u22ae" - }, - "\\precneqq": { - font: "ams", - group: "rel", - replace: "\u2ab5" - }, - "\\succneqq": { - font: "ams", - group: "rel", - replace: "\u2ab6" - }, - "\\nsubseteqq": { - font: "ams", - group: "rel", - replace: "\ue016" - }, - "\\unlhd": { - font: "ams", - group: "bin", - replace: "\u22b4" - }, - "\\unrhd": { - font: "ams", - group: "bin", - replace: "\u22b5" - }, - - // AMS Negated Arrows - "\\nleftarrow": { - font: "ams", - group: "rel", - replace: "\u219a" - }, - "\\nrightarrow": { - font: "ams", - group: "rel", - replace: "\u219b" - }, - "\\nLeftarrow": { - font: "ams", - group: "rel", - replace: "\u21cd" - }, - "\\nRightarrow": { - font: "ams", - group: "rel", - replace: "\u21cf" - }, - "\\nleftrightarrow": { - font: "ams", - group: "rel", - replace: "\u21ae" - }, - "\\nLeftrightarrow": { - font: "ams", - group: "rel", - replace: "\u21ce" - }, - - // AMS Misc - "\\vartriangle": { - font: "ams", - group: "rel", - replace: "\u25b3" - }, - "\\hslash": { - font: "ams", - group: "textord", - replace: "\u210f" - }, - "\\triangledown": { - font: "ams", - group: "textord", - replace: "\u25bd" - }, - "\\lozenge": { - font: "ams", - group: "textord", - replace: "\u25ca" - }, - "\\circledS": { - font: "ams", - group: "textord", - replace: "\u24c8" - }, - "\\circledR": { - font: "ams", - group: "textord", - replace: "\u00ae" - }, - "\\measuredangle": { - font: "ams", - group: "textord", - replace: "\u2221" - }, - "\\nexists": { - font: "ams", - group: "textord", - replace: "\u2204" - }, - "\\mho": { - font: "ams", - group: "textord", - replace: "\u2127" - }, - "\\Finv": { - font: "ams", - group: "textord", - replace: "\u2132" - }, - "\\Game": { - font: "ams", - group: "textord", - replace: "\u2141" - }, - "\\Bbbk": { - font: "ams", - group: "textord", - replace: "\u006b" - }, - "\\backprime": { - font: "ams", - group: "textord", - replace: "\u2035" - }, - "\\blacktriangle": { - font: "ams", - group: "textord", - replace: "\u25b2" - }, - "\\blacktriangledown": { - font: "ams", - group: "textord", - replace: "\u25bc" - }, - "\\blacksquare": { - font: "ams", - group: "textord", - replace: "\u25a0" - }, - "\\blacklozenge": { - font: "ams", - group: "textord", - replace: "\u29eb" - }, - "\\bigstar": { - font: "ams", - group: "textord", - replace: "\u2605" - }, - "\\sphericalangle": { - font: "ams", - group: "textord", - replace: "\u2222" - }, - "\\complement": { - font: "ams", - group: "textord", - replace: "\u2201" - }, - "\\eth": { - font: "ams", - group: "textord", - replace: "\u00f0" - }, - "\\diagup": { - font: "ams", - group: "textord", - replace: "\u2571" - }, - "\\diagdown": { - font: "ams", - group: "textord", - replace: "\u2572" - }, - "\\square": { - font: "ams", - group: "textord", - replace: "\u25a1" - }, - "\\Box": { - font: "ams", - group: "textord", - replace: "\u25a1" - }, - "\\Diamond": { - font: "ams", - group: "textord", - replace: "\u25ca" - }, - "\\yen": { - font: "ams", - group: "textord", - replace: "\u00a5" - }, - "\\checkmark": { - font: "ams", - group: "textord", - replace: "\u2713" - }, - - // AMS Hebrew - "\\beth": { - font: "ams", - group: "textord", - replace: "\u2136" - }, - "\\daleth": { - font: "ams", - group: "textord", - replace: "\u2138" - }, - "\\gimel": { - font: "ams", - group: "textord", - replace: "\u2137" - }, - - // AMS Greek - "\\digamma": { - font: "ams", - group: "textord", - replace: "\u03dd" - }, - "\\varkappa": { - font: "ams", - group: "textord", - replace: "\u03f0" - }, - - // AMS Delimiters - "\\ulcorner": { - font: "ams", - group: "textord", - replace: "\u250c" - }, - "\\urcorner": { - font: "ams", - group: "textord", - replace: "\u2510" - }, - "\\llcorner": { - font: "ams", - group: "textord", - replace: "\u2514" - }, - "\\lrcorner": { - font: "ams", - group: "textord", - replace: "\u2518" - }, - - // AMS Binary Relations - "\\leqq": { - font: "ams", - group: "rel", - replace: "\u2266" - }, - "\\leqslant": { - font: "ams", - group: "rel", - replace: "\u2a7d" - }, - "\\eqslantless": { - font: "ams", - group: "rel", - replace: "\u2a95" - }, - "\\lesssim": { - font: "ams", - group: "rel", - replace: "\u2272" - }, - "\\lessapprox": { - font: "ams", - group: "rel", - replace: "\u2a85" - }, - "\\approxeq": { - font: "ams", - group: "rel", - replace: "\u224a" - }, - "\\lessdot": { - font: "ams", - group: "bin", - replace: "\u22d6" - }, - "\\lll": { - font: "ams", - group: "rel", - replace: "\u22d8" - }, - "\\lessgtr": { - font: "ams", - group: "rel", - replace: "\u2276" - }, - "\\lesseqgtr": { - font: "ams", - group: "rel", - replace: "\u22da" - }, - "\\lesseqqgtr": { - font: "ams", - group: "rel", - replace: "\u2a8b" - }, - "\\doteqdot": { - font: "ams", - group: "rel", - replace: "\u2251" - }, - "\\risingdotseq": { - font: "ams", - group: "rel", - replace: "\u2253" - }, - "\\fallingdotseq": { - font: "ams", - group: "rel", - replace: "\u2252" - }, - "\\backsim": { - font: "ams", - group: "rel", - replace: "\u223d" - }, - "\\backsimeq": { - font: "ams", - group: "rel", - replace: "\u22cd" - }, - "\\subseteqq": { - font: "ams", - group: "rel", - replace: "\u2ac5" - }, - "\\Subset": { - font: "ams", - group: "rel", - replace: "\u22d0" - }, - "\\sqsubset": { - font: "ams", - group: "rel", - replace: "\u228f" - }, - "\\preccurlyeq": { - font: "ams", - group: "rel", - replace: "\u227c" - }, - "\\curlyeqprec": { - font: "ams", - group: "rel", - replace: "\u22de" - }, - "\\precsim": { - font: "ams", - group: "rel", - replace: "\u227e" - }, - "\\precapprox": { - font: "ams", - group: "rel", - replace: "\u2ab7" - }, - "\\vartriangleleft": { - font: "ams", - group: "rel", - replace: "\u22b2" - }, - "\\trianglelefteq": { - font: "ams", - group: "rel", - replace: "\u22b4" - }, - "\\vDash": { - font: "ams", - group: "rel", - replace: "\u22a8" - }, - "\\Vvdash": { - font: "ams", - group: "rel", - replace: "\u22aa" - }, - "\\smallsmile": { - font: "ams", - group: "rel", - replace: "\u2323" - }, - "\\smallfrown": { - font: "ams", - group: "rel", - replace: "\u2322" - }, - "\\bumpeq": { - font: "ams", - group: "rel", - replace: "\u224f" - }, - "\\Bumpeq": { - font: "ams", - group: "rel", - replace: "\u224e" - }, - "\\geqq": { - font: "ams", - group: "rel", - replace: "\u2267" - }, - "\\geqslant": { - font: "ams", - group: "rel", - replace: "\u2a7e" - }, - "\\eqslantgtr": { - font: "ams", - group: "rel", - replace: "\u2a96" - }, - "\\gtrsim": { - font: "ams", - group: "rel", - replace: "\u2273" - }, - "\\gtrapprox": { - font: "ams", - group: "rel", - replace: "\u2a86" - }, - "\\gtrdot": { - font: "ams", - group: "bin", - replace: "\u22d7" - }, - "\\ggg": { - font: "ams", - group: "rel", - replace: "\u22d9" - }, - "\\gtrless": { - font: "ams", - group: "rel", - replace: "\u2277" - }, - "\\gtreqless": { - font: "ams", - group: "rel", - replace: "\u22db" - }, - "\\gtreqqless": { - font: "ams", - group: "rel", - replace: "\u2a8c" - }, - "\\eqcirc": { - font: "ams", - group: "rel", - replace: "\u2256" - }, - "\\circeq": { - font: "ams", - group: "rel", - replace: "\u2257" - }, - "\\triangleq": { - font: "ams", - group: "rel", - replace: "\u225c" - }, - "\\thicksim": { - font: "ams", - group: "rel", - replace: "\u223c" - }, - "\\thickapprox": { - font: "ams", - group: "rel", - replace: "\u2248" - }, - "\\supseteqq": { - font: "ams", - group: "rel", - replace: "\u2ac6" - }, - "\\Supset": { - font: "ams", - group: "rel", - replace: "\u22d1" - }, - "\\sqsupset": { - font: "ams", - group: "rel", - replace: "\u2290" - }, - "\\succcurlyeq": { - font: "ams", - group: "rel", - replace: "\u227d" - }, - "\\curlyeqsucc": { - font: "ams", - group: "rel", - replace: "\u22df" - }, - "\\succsim": { - font: "ams", - group: "rel", - replace: "\u227f" - }, - "\\succapprox": { - font: "ams", - group: "rel", - replace: "\u2ab8" - }, - "\\vartriangleright": { - font: "ams", - group: "rel", - replace: "\u22b3" - }, - "\\trianglerighteq": { - font: "ams", - group: "rel", - replace: "\u22b5" - }, - "\\Vdash": { - font: "ams", - group: "rel", - replace: "\u22a9" - }, - "\\shortmid": { - font: "ams", - group: "rel", - replace: "\u2223" - }, - "\\shortparallel": { - font: "ams", - group: "rel", - replace: "\u2225" - }, - "\\between": { - font: "ams", - group: "rel", - replace: "\u226c" - }, - "\\pitchfork": { - font: "ams", - group: "rel", - replace: "\u22d4" - }, - "\\varpropto": { - font: "ams", - group: "rel", - replace: "\u221d" - }, - "\\blacktriangleleft": { - font: "ams", - group: "rel", - replace: "\u25c0" - }, - "\\therefore": { - font: "ams", - group: "rel", - replace: "\u2234" - }, - "\\backepsilon": { - font: "ams", - group: "rel", - replace: "\u220d" - }, - "\\blacktriangleright": { - font: "ams", - group: "rel", - replace: "\u25b6" - }, - "\\because": { - font: "ams", - group: "rel", - replace: "\u2235" - }, - "\\llless": { - font: "ams", - group: "rel", - replace: "\u22d8" - }, - "\\gggtr": { - font: "ams", - group: "rel", - replace: "\u22d9" - }, - "\\lhd": { - font: "ams", - group: "bin", - replace: "\u22b2" - }, - "\\rhd": { - font: "ams", - group: "bin", - replace: "\u22b3" - }, - "\\eqsim": { - font: "ams", - group: "rel", - replace: "\u2242" - }, - "\\Join": { - font: "main", - group: "rel", - replace: "\u22c8" - }, - "\\Doteq": { - font: "ams", - group: "rel", - replace: "\u2251" - }, - - // AMS Binary Operators - "\\dotplus": { - font: "ams", - group: "bin", - replace: "\u2214" - }, - "\\smallsetminus": { - font: "ams", - group: "bin", - replace: "\u2216" - }, - "\\Cap": { - font: "ams", - group: "bin", - replace: "\u22d2" - }, - "\\Cup": { - font: "ams", - group: "bin", - replace: "\u22d3" - }, - "\\doublebarwedge": { - font: "ams", - group: "bin", - replace: "\u2a5e" - }, - "\\boxminus": { - font: "ams", - group: "bin", - replace: "\u229f" - }, - "\\boxplus": { - font: "ams", - group: "bin", - replace: "\u229e" - }, - "\\divideontimes": { - font: "ams", - group: "bin", - replace: "\u22c7" - }, - "\\ltimes": { - font: "ams", - group: "bin", - replace: "\u22c9" - }, - "\\rtimes": { - font: "ams", - group: "bin", - replace: "\u22ca" - }, - "\\leftthreetimes": { - font: "ams", - group: "bin", - replace: "\u22cb" - }, - "\\rightthreetimes": { - font: "ams", - group: "bin", - replace: "\u22cc" - }, - "\\curlywedge": { - font: "ams", - group: "bin", - replace: "\u22cf" - }, - "\\curlyvee": { - font: "ams", - group: "bin", - replace: "\u22ce" - }, - "\\circleddash": { - font: "ams", - group: "bin", - replace: "\u229d" - }, - "\\circledast": { - font: "ams", - group: "bin", - replace: "\u229b" - }, - "\\centerdot": { - font: "ams", - group: "bin", - replace: "\u22c5" - }, - "\\intercal": { - font: "ams", - group: "bin", - replace: "\u22ba" - }, - "\\doublecap": { - font: "ams", - group: "bin", - replace: "\u22d2" - }, - "\\doublecup": { - font: "ams", - group: "bin", - replace: "\u22d3" - }, - "\\boxtimes": { - font: "ams", - group: "bin", - replace: "\u22a0" - }, - - // AMS Arrows - "\\dashrightarrow": { - font: "ams", - group: "rel", - replace: "\u21e2" - }, - "\\dashleftarrow": { - font: "ams", - group: "rel", - replace: "\u21e0" - }, - "\\leftleftarrows": { - font: "ams", - group: "rel", - replace: "\u21c7" - }, - "\\leftrightarrows": { - font: "ams", - group: "rel", - replace: "\u21c6" - }, - "\\Lleftarrow": { - font: "ams", - group: "rel", - replace: "\u21da" - }, - "\\twoheadleftarrow": { - font: "ams", - group: "rel", - replace: "\u219e" - }, - "\\leftarrowtail": { - font: "ams", - group: "rel", - replace: "\u21a2" - }, - "\\looparrowleft": { - font: "ams", - group: "rel", - replace: "\u21ab" - }, - "\\leftrightharpoons": { - font: "ams", - group: "rel", - replace: "\u21cb" - }, - "\\curvearrowleft": { - font: "ams", - group: "rel", - replace: "\u21b6" - }, - "\\circlearrowleft": { - font: "ams", - group: "rel", - replace: "\u21ba" - }, - "\\Lsh": { - font: "ams", - group: "rel", - replace: "\u21b0" - }, - "\\upuparrows": { - font: "ams", - group: "rel", - replace: "\u21c8" - }, - "\\upharpoonleft": { - font: "ams", - group: "rel", - replace: "\u21bf" - }, - "\\downharpoonleft": { - font: "ams", - group: "rel", - replace: "\u21c3" - }, - "\\multimap": { - font: "ams", - group: "rel", - replace: "\u22b8" - }, - "\\leftrightsquigarrow": { - font: "ams", - group: "rel", - replace: "\u21ad" - }, - "\\rightrightarrows": { - font: "ams", - group: "rel", - replace: "\u21c9" - }, - "\\rightleftarrows": { - font: "ams", - group: "rel", - replace: "\u21c4" - }, - "\\twoheadrightarrow": { - font: "ams", - group: "rel", - replace: "\u21a0" - }, - "\\rightarrowtail": { - font: "ams", - group: "rel", - replace: "\u21a3" - }, - "\\looparrowright": { - font: "ams", - group: "rel", - replace: "\u21ac" - }, - "\\curvearrowright": { - font: "ams", - group: "rel", - replace: "\u21b7" - }, - "\\circlearrowright": { - font: "ams", - group: "rel", - replace: "\u21bb" - }, - "\\Rsh": { - font: "ams", - group: "rel", - replace: "\u21b1" - }, - "\\downdownarrows": { - font: "ams", - group: "rel", - replace: "\u21ca" - }, - "\\upharpoonright": { - font: "ams", - group: "rel", - replace: "\u21be" - }, - "\\downharpoonright": { - font: "ams", - group: "rel", - replace: "\u21c2" - }, - "\\rightsquigarrow": { - font: "ams", - group: "rel", - replace: "\u21dd" - }, - "\\leadsto": { - font: "ams", - group: "rel", - replace: "\u21dd" - }, - "\\Rrightarrow": { - font: "ams", - group: "rel", - replace: "\u21db" - }, - "\\restriction": { - font: "ams", - group: "rel", - replace: "\u21be" - }, - - "`": { - font: "main", - group: "textord", - replace: "\u2018" - }, - "\\$": { - font: "main", - group: "textord", - replace: "$" - }, - "\\%": { - font: "main", - group: "textord", - replace: "%" - }, - "\\_": { - font: "main", - group: "textord", - replace: "_" - }, - "\\angle": { - font: "main", - group: "textord", - replace: "\u2220" - }, - "\\infty": { - font: "main", - group: "textord", - replace: "\u221e" - }, - "\\prime": { - font: "main", - group: "textord", - replace: "\u2032" - }, - "\\triangle": { - font: "main", - group: "textord", - replace: "\u25b3" - }, - "\\Gamma": { - font: "main", - group: "textord", - replace: "\u0393" - }, - "\\Delta": { - font: "main", - group: "textord", - replace: "\u0394" - }, - "\\Theta": { - font: "main", - group: "textord", - replace: "\u0398" - }, - "\\Lambda": { - font: "main", - group: "textord", - replace: "\u039b" - }, - "\\Xi": { - font: "main", - group: "textord", - replace: "\u039e" - }, - "\\Pi": { - font: "main", - group: "textord", - replace: "\u03a0" - }, - "\\Sigma": { - font: "main", - group: "textord", - replace: "\u03a3" - }, - "\\Upsilon": { - font: "main", - group: "textord", - replace: "\u03a5" - }, - "\\Phi": { - font: "main", - group: "textord", - replace: "\u03a6" - }, - "\\Psi": { - font: "main", - group: "textord", - replace: "\u03a8" - }, - "\\Omega": { - font: "main", - group: "textord", - replace: "\u03a9" - }, - "\\neg": { - font: "main", - group: "textord", - replace: "\u00ac" - }, - "\\lnot": { - font: "main", - group: "textord", - replace: "\u00ac" - }, - "\\top": { - font: "main", - group: "textord", - replace: "\u22a4" - }, - "\\bot": { - font: "main", - group: "textord", - replace: "\u22a5" - }, - "\\emptyset": { - font: "main", - group: "textord", - replace: "\u2205" - }, - "\\varnothing": { - font: "ams", - group: "textord", - replace: "\u2205" - }, - "\\alpha": { - font: "main", - group: "mathord", - replace: "\u03b1" - }, - "\\beta": { - font: "main", - group: "mathord", - replace: "\u03b2" - }, - "\\gamma": { - font: "main", - group: "mathord", - replace: "\u03b3" - }, - "\\delta": { - font: "main", - group: "mathord", - replace: "\u03b4" - }, - "\\epsilon": { - font: "main", - group: "mathord", - replace: "\u03f5" - }, - "\\zeta": { - font: "main", - group: "mathord", - replace: "\u03b6" - }, - "\\eta": { - font: "main", - group: "mathord", - replace: "\u03b7" - }, - "\\theta": { - font: "main", - group: "mathord", - replace: "\u03b8" - }, - "\\iota": { - font: "main", - group: "mathord", - replace: "\u03b9" - }, - "\\kappa": { - font: "main", - group: "mathord", - replace: "\u03ba" - }, - "\\lambda": { - font: "main", - group: "mathord", - replace: "\u03bb" - }, - "\\mu": { - font: "main", - group: "mathord", - replace: "\u03bc" - }, - "\\nu": { - font: "main", - group: "mathord", - replace: "\u03bd" - }, - "\\xi": { - font: "main", - group: "mathord", - replace: "\u03be" - }, - "\\omicron": { - font: "main", - group: "mathord", - replace: "o" - }, - "\\pi": { - font: "main", - group: "mathord", - replace: "\u03c0" - }, - "\\rho": { - font: "main", - group: "mathord", - replace: "\u03c1" - }, - "\\sigma": { - font: "main", - group: "mathord", - replace: "\u03c3" - }, - "\\tau": { - font: "main", - group: "mathord", - replace: "\u03c4" - }, - "\\upsilon": { - font: "main", - group: "mathord", - replace: "\u03c5" - }, - "\\phi": { - font: "main", - group: "mathord", - replace: "\u03d5" - }, - "\\chi": { - font: "main", - group: "mathord", - replace: "\u03c7" - }, - "\\psi": { - font: "main", - group: "mathord", - replace: "\u03c8" - }, - "\\omega": { - font: "main", - group: "mathord", - replace: "\u03c9" - }, - "\\varepsilon": { - font: "main", - group: "mathord", - replace: "\u03b5" - }, - "\\vartheta": { - font: "main", - group: "mathord", - replace: "\u03d1" - }, - "\\varpi": { - font: "main", - group: "mathord", - replace: "\u03d6" - }, - "\\varrho": { - font: "main", - group: "mathord", - replace: "\u03f1" - }, - "\\varsigma": { - font: "main", - group: "mathord", - replace: "\u03c2" - }, - "\\varphi": { - font: "main", - group: "mathord", - replace: "\u03c6" - }, - "*": { - font: "main", - group: "bin", - replace: "\u2217" - }, - "+": { - font: "main", - group: "bin" - }, - "-": { - font: "main", - group: "bin", - replace: "\u2212" - }, - "\\cdot": { - font: "main", - group: "bin", - replace: "\u22c5" - }, - "\\circ": { - font: "main", - group: "bin", - replace: "\u2218" - }, - "\\div": { - font: "main", - group: "bin", - replace: "\u00f7" - }, - "\\pm": { - font: "main", - group: "bin", - replace: "\u00b1" - }, - "\\times": { - font: "main", - group: "bin", - replace: "\u00d7" - }, - "\\cap": { - font: "main", - group: "bin", - replace: "\u2229" - }, - "\\cup": { - font: "main", - group: "bin", - replace: "\u222a" - }, - "\\setminus": { - font: "main", - group: "bin", - replace: "\u2216" - }, - "\\land": { - font: "main", - group: "bin", - replace: "\u2227" - }, - "\\lor": { - font: "main", - group: "bin", - replace: "\u2228" - }, - "\\wedge": { - font: "main", - group: "bin", - replace: "\u2227" - }, - "\\vee": { - font: "main", - group: "bin", - replace: "\u2228" - }, - "\\surd": { - font: "main", - group: "textord", - replace: "\u221a" - }, - "(": { - font: "main", - group: "open" - }, - "[": { - font: "main", - group: "open" - }, - "\\langle": { - font: "main", - group: "open", - replace: "\u27e8" - }, - "\\lvert": { - font: "main", - group: "open", - replace: "\u2223" - }, - ")": { - font: "main", - group: "close" - }, - "]": { - font: "main", - group: "close" - }, - "?": { - font: "main", - group: "close" - }, - "!": { - font: "main", - group: "close" - }, - "\\rangle": { - font: "main", - group: "close", - replace: "\u27e9" - }, - "\\rvert": { - font: "main", - group: "close", - replace: "\u2223" - }, - "=": { - font: "main", - group: "rel" - }, - "<": { - font: "main", - group: "rel" - }, - ">": { - font: "main", - group: "rel" - }, - ":": { - font: "main", - group: "rel" - }, - "\\approx": { - font: "main", - group: "rel", - replace: "\u2248" - }, - "\\cong": { - font: "main", - group: "rel", - replace: "\u2245" - }, - "\\ge": { - font: "main", - group: "rel", - replace: "\u2265" - }, - "\\geq": { - font: "main", - group: "rel", - replace: "\u2265" - }, - "\\gets": { - font: "main", - group: "rel", - replace: "\u2190" - }, - "\\in": { - font: "main", - group: "rel", - replace: "\u2208" - }, - "\\notin": { - font: "main", - group: "rel", - replace: "\u2209" - }, - "\\subset": { - font: "main", - group: "rel", - replace: "\u2282" - }, - "\\supset": { - font: "main", - group: "rel", - replace: "\u2283" - }, - "\\subseteq": { - font: "main", - group: "rel", - replace: "\u2286" - }, - "\\supseteq": { - font: "main", - group: "rel", - replace: "\u2287" - }, - "\\nsubseteq": { - font: "ams", - group: "rel", - replace: "\u2288" - }, - "\\nsupseteq": { - font: "ams", - group: "rel", - replace: "\u2289" - }, - "\\models": { - font: "main", - group: "rel", - replace: "\u22a8" - }, - "\\leftarrow": { - font: "main", - group: "rel", - replace: "\u2190" - }, - "\\le": { - font: "main", - group: "rel", - replace: "\u2264" - }, - "\\leq": { - font: "main", - group: "rel", - replace: "\u2264" - }, - "\\ne": { - font: "main", - group: "rel", - replace: "\u2260" - }, - "\\neq": { - font: "main", - group: "rel", - replace: "\u2260" - }, - "\\rightarrow": { - font: "main", - group: "rel", - replace: "\u2192" - }, - "\\to": { - font: "main", - group: "rel", - replace: "\u2192" - }, - "\\ngeq": { - font: "ams", - group: "rel", - replace: "\u2271" - }, - "\\nleq": { - font: "ams", - group: "rel", - replace: "\u2270" - }, - "\\!": { - font: "main", - group: "spacing" - }, - "\\ ": { - font: "main", - group: "spacing", - replace: "\u00a0" - }, - "~": { - font: "main", - group: "spacing", - replace: "\u00a0" - }, - "\\,": { - font: "main", - group: "spacing" - }, - "\\:": { - font: "main", - group: "spacing" - }, - "\\;": { - font: "main", - group: "spacing" - }, - "\\enspace": { - font: "main", - group: "spacing" - }, - "\\qquad": { - font: "main", - group: "spacing" - }, - "\\quad": { - font: "main", - group: "spacing" - }, - "\\space": { - font: "main", - group: "spacing", - replace: "\u00a0" - }, - ",": { - font: "main", - group: "punct" - }, - ";": { - font: "main", - group: "punct" - }, - "\\colon": { - font: "main", - group: "punct", - replace: ":" - }, - "\\barwedge": { - font: "ams", - group: "textord", - replace: "\u22bc" - }, - "\\veebar": { - font: "ams", - group: "textord", - replace: "\u22bb" - }, - "\\odot": { - font: "main", - group: "bin", - replace: "\u2299" - }, - "\\oplus": { - font: "main", - group: "bin", - replace: "\u2295" - }, - "\\otimes": { - font: "main", - group: "bin", - replace: "\u2297" - }, - "\\partial":{ - font: "main", - group: "textord", - replace: "\u2202" - }, - "\\oslash": { - font: "main", - group: "bin", - replace: "\u2298" - }, - "\\circledcirc": { - font: "ams", - group: "textord", - replace: "\u229a" - }, - "\\boxdot": { - font: "ams", - group: "textord", - replace: "\u22a1" - }, - "\\bigtriangleup": { - font: "main", - group: "bin", - replace: "\u25b3" - }, - "\\bigtriangledown": { - font: "main", - group: "bin", - replace: "\u25bd" - }, - "\\dagger": { - font: "main", - group: "bin", - replace: "\u2020" - }, - "\\diamond": { - font: "main", - group: "bin", - replace: "\u22c4" - }, - "\\star": { - font: "main", - group: "bin", - replace: "\u22c6" - }, - "\\triangleleft": { - font: "main", - group: "bin", - replace: "\u25c3" - }, - "\\triangleright": { - font: "main", - group: "bin", - replace: "\u25b9" - }, - "\\{": { - font: "main", - group: "open", - replace: "{" - }, - "\\}": { - font: "main", - group: "close", - replace: "}" - }, - "\\lbrace": { - font: "main", - group: "open", - replace: "{" - }, - "\\rbrace": { - font: "main", - group: "close", - replace: "}" - }, - "\\lbrack": { - font: "main", - group: "open", - replace: "[" - }, - "\\rbrack": { - font: "main", - group: "close", - replace: "]" - }, - "\\lfloor": { - font: "main", - group: "open", - replace: "\u230a" - }, - "\\rfloor": { - font: "main", - group: "close", - replace: "\u230b" - }, - "\\lceil": { - font: "main", - group: "open", - replace: "\u2308" - }, - "\\rceil": { - font: "main", - group: "close", - replace: "\u2309" - }, - "\\backslash": { - font: "main", - group: "textord", - replace: "\\" - }, - "|": { - font: "main", - group: "textord", - replace: "\u2223" - }, - "\\vert": { - font: "main", - group: "textord", - replace: "\u2223" - }, - "\\|": { - font: "main", - group: "textord", - replace: "\u2225" - }, - "\\Vert": { - font: "main", - group: "textord", - replace: "\u2225" - }, - "\\uparrow": { - font: "main", - group: "textord", - replace: "\u2191" - }, - "\\Uparrow": { - font: "main", - group: "textord", - replace: "\u21d1" - }, - "\\downarrow": { - font: "main", - group: "textord", - replace: "\u2193" - }, - "\\Downarrow": { - font: "main", - group: "textord", - replace: "\u21d3" - }, - "\\updownarrow": { - font: "main", - group: "textord", - replace: "\u2195" - }, - "\\Updownarrow": { - font: "main", - group: "textord", - replace: "\u21d5" - }, - "\\coprod": { - font: "math", - group: "op", - replace: "\u2210" - }, - "\\bigvee": { - font: "math", - group: "op", - replace: "\u22c1" - }, - "\\bigwedge": { - font: "math", - group: "op", - replace: "\u22c0" - }, - "\\biguplus": { - font: "math", - group: "op", - replace: "\u2a04" - }, - "\\bigcap": { - font: "math", - group: "op", - replace: "\u22c2" - }, - "\\bigcup": { - font: "math", - group: "op", - replace: "\u22c3" - }, - "\\int": { - font: "math", - group: "op", - replace: "\u222b" - }, - "\\intop": { - font: "math", - group: "op", - replace: "\u222b" - }, - "\\iint": { - font: "math", - group: "op", - replace: "\u222c" - }, - "\\iiint": { - font: "math", - group: "op", - replace: "\u222d" - }, - "\\prod": { - font: "math", - group: "op", - replace: "\u220f" - }, - "\\sum": { - font: "math", - group: "op", - replace: "\u2211" - }, - "\\bigotimes": { - font: "math", - group: "op", - replace: "\u2a02" - }, - "\\bigoplus": { - font: "math", - group: "op", - replace: "\u2a01" - }, - "\\bigodot": { - font: "math", - group: "op", - replace: "\u2a00" - }, - "\\oint": { - font: "math", - group: "op", - replace: "\u222e" - }, - "\\bigsqcup": { - font: "math", - group: "op", - replace: "\u2a06" - }, - "\\smallint": { - font: "math", - group: "op", - replace: "\u222b" - }, - "\\ldots": { - font: "main", - group: "punct", - replace: "\u2026" - }, - "\\cdots": { - font: "main", - group: "inner", - replace: "\u22ef" - }, - "\\ddots": { - font: "main", - group: "inner", - replace: "\u22f1" - }, - "\\vdots": { - font: "main", - group: "textord", - replace: "\u22ee" - }, - "\\acute": { - font: "main", - group: "accent", - replace: "\u00b4" - }, - "\\grave": { - font: "main", - group: "accent", - replace: "\u0060" - }, - "\\ddot": { - font: "main", - group: "accent", - replace: "\u00a8" - }, - "\\tilde": { - font: "main", - group: "accent", - replace: "\u007e" - }, - "\\bar": { - font: "main", - group: "accent", - replace: "\u00af" - }, - "\\breve": { - font: "main", - group: "accent", - replace: "\u02d8" - }, - "\\check": { - font: "main", - group: "accent", - replace: "\u02c7" - }, - "\\hat": { - font: "main", - group: "accent", - replace: "\u005e" - }, - "\\vec": { - font: "main", - group: "accent", - replace: "\u20d7" - }, - "\\dot": { - font: "main", - group: "accent", - replace: "\u02d9" - }, - - "\\imath": { - font: "main", - group: "mathord", - replace: "\u0131" - }, - "\\jmath": { - font: "main", - group: "mathord", - replace: "\u0237" - } - }, - "text": { - "\\ ": { - font: "main", - group: "spacing", - replace: "\u00a0" - }, - " ": { - font: "main", - group: "spacing", - replace: "\u00a0" - }, - "~": { - font: "main", - group: "spacing", - replace: "\u00a0" - } - } -}; - -// There are lots of symbols which are the same, so we add them in afterwards. - -// All of these are textords in math mode -var mathTextSymbols = "0123456789/@.\""; -for (var i = 0; i < mathTextSymbols.length; i++) { - var ch = mathTextSymbols.charAt(i); - symbols.math[ch] = { - font: "main", - group: "textord" - }; -} - -// All of these are textords in text mode -var textSymbols = "0123456789`!@*()-=+[]'\";:?/.,"; -for (var i = 0; i < textSymbols.length; i++) { - var ch = textSymbols.charAt(i); - symbols.text[ch] = { - font: "main", - group: "textord" - }; -} - -// All of these are textords in text mode, and mathords in math mode -var letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; -for (var i = 0; i < letters.length; i++) { - var ch = letters.charAt(i); - symbols.math[ch] = { - font: "main", - group: "mathord" - }; - symbols.text[ch] = { - font: "main", - group: "textord" - }; -} - -module.exports = symbols; - -},{}],22:[function(require,module,exports){ -/** - * This file contains a list of utility functions which are useful in other - * files. - */ - -/** - * Provide an `indexOf` function which works in IE8, but defers to native if - * possible. - */ -var nativeIndexOf = Array.prototype.indexOf; -var indexOf = function(list, elem) { - if (list == null) { - return -1; - } - if (nativeIndexOf && list.indexOf === nativeIndexOf) { - return list.indexOf(elem); - } - var i = 0, l = list.length; - for (; i < l; i++) { - if (list[i] === elem) { - return i; - } - } - return -1; -}; - -/** - * Return whether an element is contained in a list - */ -var contains = function(list, elem) { - return indexOf(list, elem) !== -1; -}; - -/** - * Provide a default value if a setting is undefined - */ -var deflt = function(setting, defaultIfUndefined) { - return setting === undefined ? defaultIfUndefined : setting; -}; - -// hyphenate and escape adapted from Facebook's React under Apache 2 license - -var uppercase = /([A-Z])/g; -var hyphenate = function(str) { - return str.replace(uppercase, "-$1").toLowerCase(); -}; - -var ESCAPE_LOOKUP = { - "&": "&", - ">": ">", - "<": "<", - "\"": """, - "'": "'" -}; - -var ESCAPE_REGEX = /[&><"']/g; - -function escaper(match) { - return ESCAPE_LOOKUP[match]; -} - -/** - * Escapes text to prevent scripting attacks. - * - * @param {*} text Text value to escape. - * @return {string} An escaped string. - */ -function escape(text) { - return ("" + text).replace(ESCAPE_REGEX, escaper); -} - -/** - * A function to set the text content of a DOM element in all supported - * browsers. Note that we don't define this if there is no document. - */ -var setTextContent; -if (typeof document !== "undefined") { - var testNode = document.createElement("span"); - if ("textContent" in testNode) { - setTextContent = function(node, text) { - node.textContent = text; - }; - } else { - setTextContent = function(node, text) { - node.innerText = text; - }; - } -} - -/** - * A function to clear a node. - */ -function clearNode(node) { - setTextContent(node, ""); -} - -module.exports = { - contains: contains, - deflt: deflt, - escape: escape, - hyphenate: hyphenate, - indexOf: indexOf, - setTextContent: setTextContent, - clearNode: clearNode -}; - -},{}]},{},[1]) -(1) -}); -; \ No newline at end of file diff --git a/client/katex/katex.less.css b/client/katex/katex.less.css deleted file mode 100644 index 1eb7fb5..0000000 --- a/client/katex/katex.less.css +++ /dev/null @@ -1,925 +0,0 @@ -@font-face { - font-family: 'KaTeX_AMS'; - src: url('fonts/KaTeX_AMS-Regular.eot'); - src: url('fonts/KaTeX_AMS-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_AMS-Regular.woff2') format('woff2'), url('fonts/KaTeX_AMS-Regular.woff') format('woff'), url('fonts/KaTeX_AMS-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Caligraphic'; - src: url('fonts/KaTeX_Caligraphic-Bold.eot'); - src: url('fonts/KaTeX_Caligraphic-Bold.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Caligraphic-Bold.woff2') format('woff2'), url('fonts/KaTeX_Caligraphic-Bold.woff') format('woff'), url('fonts/KaTeX_Caligraphic-Bold.ttf') format('ttf'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Caligraphic'; - src: url('fonts/KaTeX_Caligraphic-Regular.eot'); - src: url('fonts/KaTeX_Caligraphic-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Caligraphic-Regular.woff2') format('woff2'), url('fonts/KaTeX_Caligraphic-Regular.woff') format('woff'), url('fonts/KaTeX_Caligraphic-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Fraktur'; - src: url('fonts/KaTeX_Fraktur-Bold.eot'); - src: url('fonts/KaTeX_Fraktur-Bold.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Fraktur-Bold.woff2') format('woff2'), url('fonts/KaTeX_Fraktur-Bold.woff') format('woff'), url('fonts/KaTeX_Fraktur-Bold.ttf') format('ttf'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Fraktur'; - src: url('fonts/KaTeX_Fraktur-Regular.eot'); - src: url('fonts/KaTeX_Fraktur-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Fraktur-Regular.woff2') format('woff2'), url('fonts/KaTeX_Fraktur-Regular.woff') format('woff'), url('fonts/KaTeX_Fraktur-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Main'; - src: url('fonts/KaTeX_Main-Bold.eot'); - src: url('fonts/KaTeX_Main-Bold.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Main-Bold.woff2') format('woff2'), url('fonts/KaTeX_Main-Bold.woff') format('woff'), url('fonts/KaTeX_Main-Bold.ttf') format('ttf'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Main'; - src: url('fonts/KaTeX_Main-Italic.eot'); - src: url('fonts/KaTeX_Main-Italic.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Main-Italic.woff2') format('woff2'), url('fonts/KaTeX_Main-Italic.woff') format('woff'), url('fonts/KaTeX_Main-Italic.ttf') format('ttf'); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: 'KaTeX_Main'; - src: url('fonts/KaTeX_Main-Regular.eot'); - src: url('fonts/KaTeX_Main-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Main-Regular.woff2') format('woff2'), url('fonts/KaTeX_Main-Regular.woff') format('woff'), url('fonts/KaTeX_Main-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Math'; - src: url('fonts/KaTeX_Math-Italic.eot'); - src: url('fonts/KaTeX_Math-Italic.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Math-Italic.woff2') format('woff2'), url('fonts/KaTeX_Math-Italic.woff') format('woff'), url('fonts/KaTeX_Math-Italic.ttf') format('ttf'); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: 'KaTeX_SansSerif'; - src: url('fonts/KaTeX_SansSerif-Regular.eot'); - src: url('fonts/KaTeX_SansSerif-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_SansSerif-Regular.woff2') format('woff2'), url('fonts/KaTeX_SansSerif-Regular.woff') format('woff'), url('fonts/KaTeX_SansSerif-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Script'; - src: url('fonts/KaTeX_Script-Regular.eot'); - src: url('fonts/KaTeX_Script-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Script-Regular.woff2') format('woff2'), url('fonts/KaTeX_Script-Regular.woff') format('woff'), url('fonts/KaTeX_Script-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Size1'; - src: url('fonts/KaTeX_Size1-Regular.eot'); - src: url('fonts/KaTeX_Size1-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Size1-Regular.woff2') format('woff2'), url('fonts/KaTeX_Size1-Regular.woff') format('woff'), url('fonts/KaTeX_Size1-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Size2'; - src: url('fonts/KaTeX_Size2-Regular.eot'); - src: url('fonts/KaTeX_Size2-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Size2-Regular.woff2') format('woff2'), url('fonts/KaTeX_Size2-Regular.woff') format('woff'), url('fonts/KaTeX_Size2-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Size3'; - src: url('fonts/KaTeX_Size3-Regular.eot'); - src: url('fonts/KaTeX_Size3-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Size3-Regular.woff2') format('woff2'), url('fonts/KaTeX_Size3-Regular.woff') format('woff'), url('fonts/KaTeX_Size3-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Size4'; - src: url('fonts/KaTeX_Size4-Regular.eot'); - src: url('fonts/KaTeX_Size4-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Size4-Regular.woff2') format('woff2'), url('fonts/KaTeX_Size4-Regular.woff') format('woff'), url('fonts/KaTeX_Size4-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'KaTeX_Typewriter'; - src: url('fonts/KaTeX_Typewriter-Regular.eot'); - src: url('fonts/KaTeX_Typewriter-Regular.eot#iefix') format('embedded-opentype'), url('fonts/KaTeX_Typewriter-Regular.woff2') format('woff2'), url('fonts/KaTeX_Typewriter-Regular.woff') format('woff'), url('fonts/KaTeX_Typewriter-Regular.ttf') format('ttf'); - font-weight: normal; - font-style: normal; -} -.katex-display { - display: block; - margin: 1em 0; - text-align: center; -} -.katex-display > .katex { - display: inline-block; -} -.katex { - font: normal 1.21em KaTeX_Main; - line-height: 1.2; - white-space: nowrap; - text-indent: 0; -} -.katex .katex-html { - display: inline-block; -} -.katex .katex-mathml { - position: absolute; - clip: rect(1px, 1px, 1px, 1px); - padding: 0; - border: 0; - height: 1px; - width: 1px; - overflow: hidden; -} -.katex .base { - display: inline-block; -} -.katex .strut { - display: inline-block; -} -.katex .mathit { - font-family: KaTeX_Math; - font-style: italic; -} -.katex .mathbf { - font-family: KaTeX_Main; - font-weight: bold; -} -.katex .amsrm { - font-family: KaTeX_AMS; -} -.katex .mathbb { - font-family: KaTeX_AMS; -} -.katex .mathcal { - font-family: KaTeX_Caligraphic; -} -.katex .mathfrak { - font-family: KaTeX_Fraktur; -} -.katex .mathtt { - font-family: KaTeX_Typewriter; -} -.katex .mathscr { - font-family: KaTeX_Script; -} -.katex .mathsf { - font-family: KaTeX_SansSerif; -} -.katex .mainit { - font-family: KaTeX_Main; - font-style: italic; -} -.katex .textstyle > .mord + .mop { - margin-left: 0.16667em; -} -.katex .textstyle > .mord + .mbin { - margin-left: 0.22222em; -} -.katex .textstyle > .mord + .mrel { - margin-left: 0.27778em; -} -.katex .textstyle > .mord + .minner { - margin-left: 0.16667em; -} -.katex .textstyle > .mop + .mord { - margin-left: 0.16667em; -} -.katex .textstyle > .mop + .mop { - margin-left: 0.16667em; -} -.katex .textstyle > .mop + .mrel { - margin-left: 0.27778em; -} -.katex .textstyle > .mop + .minner { - margin-left: 0.16667em; -} -.katex .textstyle > .mbin + .mord { - margin-left: 0.22222em; -} -.katex .textstyle > .mbin + .mop { - margin-left: 0.22222em; -} -.katex .textstyle > .mbin + .mopen { - margin-left: 0.22222em; -} -.katex .textstyle > .mbin + .minner { - margin-left: 0.22222em; -} -.katex .textstyle > .mrel + .mord { - margin-left: 0.27778em; -} -.katex .textstyle > .mrel + .mop { - margin-left: 0.27778em; -} -.katex .textstyle > .mrel + .mopen { - margin-left: 0.27778em; -} -.katex .textstyle > .mrel + .minner { - margin-left: 0.27778em; -} -.katex .textstyle > .mclose + .mop { - margin-left: 0.16667em; -} -.katex .textstyle > .mclose + .mbin { - margin-left: 0.22222em; -} -.katex .textstyle > .mclose + .mrel { - margin-left: 0.27778em; -} -.katex .textstyle > .mclose + .minner { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mord { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mop { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mrel { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mopen { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mclose { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .mpunct { - margin-left: 0.16667em; -} -.katex .textstyle > .mpunct + .minner { - margin-left: 0.16667em; -} -.katex .textstyle > .minner + .mord { - margin-left: 0.16667em; -} -.katex .textstyle > .minner + .mop { - margin-left: 0.16667em; -} -.katex .textstyle > .minner + .mbin { - margin-left: 0.22222em; -} -.katex .textstyle > .minner + .mrel { - margin-left: 0.27778em; -} -.katex .textstyle > .minner + .mopen { - margin-left: 0.16667em; -} -.katex .textstyle > .minner + .mpunct { - margin-left: 0.16667em; -} -.katex .textstyle > .minner + .minner { - margin-left: 0.16667em; -} -.katex .mord + .mop { - margin-left: 0.16667em; -} -.katex .mop + .mord { - margin-left: 0.16667em; -} -.katex .mop + .mop { - margin-left: 0.16667em; -} -.katex .mclose + .mop { - margin-left: 0.16667em; -} -.katex .minner + .mop { - margin-left: 0.16667em; -} -.katex .reset-textstyle.textstyle { - font-size: 1em; -} -.katex .reset-textstyle.scriptstyle { - font-size: 0.7em; -} -.katex .reset-textstyle.scriptscriptstyle { - font-size: 0.5em; -} -.katex .reset-scriptstyle.textstyle { - font-size: 1.42857em; -} -.katex .reset-scriptstyle.scriptstyle { - font-size: 1em; -} -.katex .reset-scriptstyle.scriptscriptstyle { - font-size: 0.71429em; -} -.katex .reset-scriptscriptstyle.textstyle { - font-size: 2em; -} -.katex .reset-scriptscriptstyle.scriptstyle { - font-size: 1.4em; -} -.katex .reset-scriptscriptstyle.scriptscriptstyle { - font-size: 1em; -} -.katex .style-wrap { - position: relative; -} -.katex .vlist { - display: inline-block; -} -.katex .vlist > span { - display: block; - height: 0; - position: relative; -} -.katex .vlist > span > span { - display: inline-block; -} -.katex .vlist .baseline-fix { - display: inline-table; - table-layout: fixed; -} -.katex .msupsub { - text-align: left; -} -.katex .mfrac > span > span { - text-align: center; -} -.katex .mfrac .frac-line { - width: 100%; -} -.katex .mfrac .frac-line:before { - border-bottom-style: solid; - border-bottom-width: 1px; - content: ""; - display: block; -} -.katex .mfrac .frac-line:after { - border-bottom-style: solid; - border-bottom-width: 0.04em; - content: ""; - display: block; - margin-top: -1px; -} -.katex .mspace { - display: inline-block; -} -.katex .mspace.negativethinspace { - margin-left: -0.16667em; -} -.katex .mspace.thinspace { - width: 0.16667em; -} -.katex .mspace.mediumspace { - width: 0.22222em; -} -.katex .mspace.thickspace { - width: 0.27778em; -} -.katex .mspace.enspace { - width: 0.5em; -} -.katex .mspace.quad { - width: 1em; -} -.katex .mspace.qquad { - width: 2em; -} -.katex .llap, -.katex .rlap { - width: 0; - position: relative; -} -.katex .llap > .inner, -.katex .rlap > .inner { - position: absolute; -} -.katex .llap > .fix, -.katex .rlap > .fix { - display: inline-block; -} -.katex .llap > .inner { - right: 0; -} -.katex .rlap > .inner { - left: 0; -} -.katex .katex-logo .a { - font-size: 0.75em; - margin-left: -0.32em; - position: relative; - top: -0.2em; -} -.katex .katex-logo .t { - margin-left: -0.23em; -} -.katex .katex-logo .e { - margin-left: -0.1667em; - position: relative; - top: 0.2155em; -} -.katex .katex-logo .x { - margin-left: -0.125em; -} -.katex .rule { - display: inline-block; - border-style: solid; - position: relative; -} -.katex .overline .overline-line { - width: 100%; -} -.katex .overline .overline-line:before { - border-bottom-style: solid; - border-bottom-width: 1px; - content: ""; - display: block; -} -.katex .overline .overline-line:after { - border-bottom-style: solid; - border-bottom-width: 0.04em; - content: ""; - display: block; - margin-top: -1px; -} -.katex .sqrt > .sqrt-sign { - position: relative; -} -.katex .sqrt .sqrt-line { - width: 100%; -} -.katex .sqrt .sqrt-line:before { - border-bottom-style: solid; - border-bottom-width: 1px; - content: ""; - display: block; -} -.katex .sqrt .sqrt-line:after { - border-bottom-style: solid; - border-bottom-width: 0.04em; - content: ""; - display: block; - margin-top: -1px; -} -.katex .sqrt > .root { - margin-left: 0.27777778em; - margin-right: -0.55555556em; -} -.katex .sizing, -.katex .fontsize-ensurer { - display: inline-block; -} -.katex .sizing.reset-size1.size1, -.katex .fontsize-ensurer.reset-size1.size1 { - font-size: 1em; -} -.katex .sizing.reset-size1.size2, -.katex .fontsize-ensurer.reset-size1.size2 { - font-size: 1.4em; -} -.katex .sizing.reset-size1.size3, -.katex .fontsize-ensurer.reset-size1.size3 { - font-size: 1.6em; -} -.katex .sizing.reset-size1.size4, -.katex .fontsize-ensurer.reset-size1.size4 { - font-size: 1.8em; -} -.katex .sizing.reset-size1.size5, -.katex .fontsize-ensurer.reset-size1.size5 { - font-size: 2em; -} -.katex .sizing.reset-size1.size6, -.katex .fontsize-ensurer.reset-size1.size6 { - font-size: 2.4em; -} -.katex .sizing.reset-size1.size7, -.katex .fontsize-ensurer.reset-size1.size7 { - font-size: 2.88em; -} -.katex .sizing.reset-size1.size8, -.katex .fontsize-ensurer.reset-size1.size8 { - font-size: 3.46em; -} -.katex .sizing.reset-size1.size9, -.katex .fontsize-ensurer.reset-size1.size9 { - font-size: 4.14em; -} -.katex .sizing.reset-size1.size10, -.katex .fontsize-ensurer.reset-size1.size10 { - font-size: 4.98em; -} -.katex .sizing.reset-size2.size1, -.katex .fontsize-ensurer.reset-size2.size1 { - font-size: 0.71428571em; -} -.katex .sizing.reset-size2.size2, -.katex .fontsize-ensurer.reset-size2.size2 { - font-size: 1em; -} -.katex .sizing.reset-size2.size3, -.katex .fontsize-ensurer.reset-size2.size3 { - font-size: 1.14285714em; -} -.katex .sizing.reset-size2.size4, -.katex .fontsize-ensurer.reset-size2.size4 { - font-size: 1.28571429em; -} -.katex .sizing.reset-size2.size5, -.katex .fontsize-ensurer.reset-size2.size5 { - font-size: 1.42857143em; -} -.katex .sizing.reset-size2.size6, -.katex .fontsize-ensurer.reset-size2.size6 { - font-size: 1.71428571em; -} -.katex .sizing.reset-size2.size7, -.katex .fontsize-ensurer.reset-size2.size7 { - font-size: 2.05714286em; -} -.katex .sizing.reset-size2.size8, -.katex .fontsize-ensurer.reset-size2.size8 { - font-size: 2.47142857em; -} -.katex .sizing.reset-size2.size9, -.katex .fontsize-ensurer.reset-size2.size9 { - font-size: 2.95714286em; -} -.katex .sizing.reset-size2.size10, -.katex .fontsize-ensurer.reset-size2.size10 { - font-size: 3.55714286em; -} -.katex .sizing.reset-size3.size1, -.katex .fontsize-ensurer.reset-size3.size1 { - font-size: 0.625em; -} -.katex .sizing.reset-size3.size2, -.katex .fontsize-ensurer.reset-size3.size2 { - font-size: 0.875em; -} -.katex .sizing.reset-size3.size3, -.katex .fontsize-ensurer.reset-size3.size3 { - font-size: 1em; -} -.katex .sizing.reset-size3.size4, -.katex .fontsize-ensurer.reset-size3.size4 { - font-size: 1.125em; -} -.katex .sizing.reset-size3.size5, -.katex .fontsize-ensurer.reset-size3.size5 { - font-size: 1.25em; -} -.katex .sizing.reset-size3.size6, -.katex .fontsize-ensurer.reset-size3.size6 { - font-size: 1.5em; -} -.katex .sizing.reset-size3.size7, -.katex .fontsize-ensurer.reset-size3.size7 { - font-size: 1.8em; -} -.katex .sizing.reset-size3.size8, -.katex .fontsize-ensurer.reset-size3.size8 { - font-size: 2.1625em; -} -.katex .sizing.reset-size3.size9, -.katex .fontsize-ensurer.reset-size3.size9 { - font-size: 2.5875em; -} -.katex .sizing.reset-size3.size10, -.katex .fontsize-ensurer.reset-size3.size10 { - font-size: 3.1125em; -} -.katex .sizing.reset-size4.size1, -.katex .fontsize-ensurer.reset-size4.size1 { - font-size: 0.55555556em; -} -.katex .sizing.reset-size4.size2, -.katex .fontsize-ensurer.reset-size4.size2 { - font-size: 0.77777778em; -} -.katex .sizing.reset-size4.size3, -.katex .fontsize-ensurer.reset-size4.size3 { - font-size: 0.88888889em; -} -.katex .sizing.reset-size4.size4, -.katex .fontsize-ensurer.reset-size4.size4 { - font-size: 1em; -} -.katex .sizing.reset-size4.size5, -.katex .fontsize-ensurer.reset-size4.size5 { - font-size: 1.11111111em; -} -.katex .sizing.reset-size4.size6, -.katex .fontsize-ensurer.reset-size4.size6 { - font-size: 1.33333333em; -} -.katex .sizing.reset-size4.size7, -.katex .fontsize-ensurer.reset-size4.size7 { - font-size: 1.6em; -} -.katex .sizing.reset-size4.size8, -.katex .fontsize-ensurer.reset-size4.size8 { - font-size: 1.92222222em; -} -.katex .sizing.reset-size4.size9, -.katex .fontsize-ensurer.reset-size4.size9 { - font-size: 2.3em; -} -.katex .sizing.reset-size4.size10, -.katex .fontsize-ensurer.reset-size4.size10 { - font-size: 2.76666667em; -} -.katex .sizing.reset-size5.size1, -.katex .fontsize-ensurer.reset-size5.size1 { - font-size: 0.5em; -} -.katex .sizing.reset-size5.size2, -.katex .fontsize-ensurer.reset-size5.size2 { - font-size: 0.7em; -} -.katex .sizing.reset-size5.size3, -.katex .fontsize-ensurer.reset-size5.size3 { - font-size: 0.8em; -} -.katex .sizing.reset-size5.size4, -.katex .fontsize-ensurer.reset-size5.size4 { - font-size: 0.9em; -} -.katex .sizing.reset-size5.size5, -.katex .fontsize-ensurer.reset-size5.size5 { - font-size: 1em; -} -.katex .sizing.reset-size5.size6, -.katex .fontsize-ensurer.reset-size5.size6 { - font-size: 1.2em; -} -.katex .sizing.reset-size5.size7, -.katex .fontsize-ensurer.reset-size5.size7 { - font-size: 1.44em; -} -.katex .sizing.reset-size5.size8, -.katex .fontsize-ensurer.reset-size5.size8 { - font-size: 1.73em; -} -.katex .sizing.reset-size5.size9, -.katex .fontsize-ensurer.reset-size5.size9 { - font-size: 2.07em; -} -.katex .sizing.reset-size5.size10, -.katex .fontsize-ensurer.reset-size5.size10 { - font-size: 2.49em; -} -.katex .sizing.reset-size6.size1, -.katex .fontsize-ensurer.reset-size6.size1 { - font-size: 0.41666667em; -} -.katex .sizing.reset-size6.size2, -.katex .fontsize-ensurer.reset-size6.size2 { - font-size: 0.58333333em; -} -.katex .sizing.reset-size6.size3, -.katex .fontsize-ensurer.reset-size6.size3 { - font-size: 0.66666667em; -} -.katex .sizing.reset-size6.size4, -.katex .fontsize-ensurer.reset-size6.size4 { - font-size: 0.75em; -} -.katex .sizing.reset-size6.size5, -.katex .fontsize-ensurer.reset-size6.size5 { - font-size: 0.83333333em; -} -.katex .sizing.reset-size6.size6, -.katex .fontsize-ensurer.reset-size6.size6 { - font-size: 1em; -} -.katex .sizing.reset-size6.size7, -.katex .fontsize-ensurer.reset-size6.size7 { - font-size: 1.2em; -} -.katex .sizing.reset-size6.size8, -.katex .fontsize-ensurer.reset-size6.size8 { - font-size: 1.44166667em; -} -.katex .sizing.reset-size6.size9, -.katex .fontsize-ensurer.reset-size6.size9 { - font-size: 1.725em; -} -.katex .sizing.reset-size6.size10, -.katex .fontsize-ensurer.reset-size6.size10 { - font-size: 2.075em; -} -.katex .sizing.reset-size7.size1, -.katex .fontsize-ensurer.reset-size7.size1 { - font-size: 0.34722222em; -} -.katex .sizing.reset-size7.size2, -.katex .fontsize-ensurer.reset-size7.size2 { - font-size: 0.48611111em; -} -.katex .sizing.reset-size7.size3, -.katex .fontsize-ensurer.reset-size7.size3 { - font-size: 0.55555556em; -} -.katex .sizing.reset-size7.size4, -.katex .fontsize-ensurer.reset-size7.size4 { - font-size: 0.625em; -} -.katex .sizing.reset-size7.size5, -.katex .fontsize-ensurer.reset-size7.size5 { - font-size: 0.69444444em; -} -.katex .sizing.reset-size7.size6, -.katex .fontsize-ensurer.reset-size7.size6 { - font-size: 0.83333333em; -} -.katex .sizing.reset-size7.size7, -.katex .fontsize-ensurer.reset-size7.size7 { - font-size: 1em; -} -.katex .sizing.reset-size7.size8, -.katex .fontsize-ensurer.reset-size7.size8 { - font-size: 1.20138889em; -} -.katex .sizing.reset-size7.size9, -.katex .fontsize-ensurer.reset-size7.size9 { - font-size: 1.4375em; -} -.katex .sizing.reset-size7.size10, -.katex .fontsize-ensurer.reset-size7.size10 { - font-size: 1.72916667em; -} -.katex .sizing.reset-size8.size1, -.katex .fontsize-ensurer.reset-size8.size1 { - font-size: 0.28901734em; -} -.katex .sizing.reset-size8.size2, -.katex .fontsize-ensurer.reset-size8.size2 { - font-size: 0.40462428em; -} -.katex .sizing.reset-size8.size3, -.katex .fontsize-ensurer.reset-size8.size3 { - font-size: 0.46242775em; -} -.katex .sizing.reset-size8.size4, -.katex .fontsize-ensurer.reset-size8.size4 { - font-size: 0.52023121em; -} -.katex .sizing.reset-size8.size5, -.katex .fontsize-ensurer.reset-size8.size5 { - font-size: 0.57803468em; -} -.katex .sizing.reset-size8.size6, -.katex .fontsize-ensurer.reset-size8.size6 { - font-size: 0.69364162em; -} -.katex .sizing.reset-size8.size7, -.katex .fontsize-ensurer.reset-size8.size7 { - font-size: 0.83236994em; -} -.katex .sizing.reset-size8.size8, -.katex .fontsize-ensurer.reset-size8.size8 { - font-size: 1em; -} -.katex .sizing.reset-size8.size9, -.katex .fontsize-ensurer.reset-size8.size9 { - font-size: 1.19653179em; -} -.katex .sizing.reset-size8.size10, -.katex .fontsize-ensurer.reset-size8.size10 { - font-size: 1.43930636em; -} -.katex .sizing.reset-size9.size1, -.katex .fontsize-ensurer.reset-size9.size1 { - font-size: 0.24154589em; -} -.katex .sizing.reset-size9.size2, -.katex .fontsize-ensurer.reset-size9.size2 { - font-size: 0.33816425em; -} -.katex .sizing.reset-size9.size3, -.katex .fontsize-ensurer.reset-size9.size3 { - font-size: 0.38647343em; -} -.katex .sizing.reset-size9.size4, -.katex .fontsize-ensurer.reset-size9.size4 { - font-size: 0.43478261em; -} -.katex .sizing.reset-size9.size5, -.katex .fontsize-ensurer.reset-size9.size5 { - font-size: 0.48309179em; -} -.katex .sizing.reset-size9.size6, -.katex .fontsize-ensurer.reset-size9.size6 { - font-size: 0.57971014em; -} -.katex .sizing.reset-size9.size7, -.katex .fontsize-ensurer.reset-size9.size7 { - font-size: 0.69565217em; -} -.katex .sizing.reset-size9.size8, -.katex .fontsize-ensurer.reset-size9.size8 { - font-size: 0.83574879em; -} -.katex .sizing.reset-size9.size9, -.katex .fontsize-ensurer.reset-size9.size9 { - font-size: 1em; -} -.katex .sizing.reset-size9.size10, -.katex .fontsize-ensurer.reset-size9.size10 { - font-size: 1.20289855em; -} -.katex .sizing.reset-size10.size1, -.katex .fontsize-ensurer.reset-size10.size1 { - font-size: 0.20080321em; -} -.katex .sizing.reset-size10.size2, -.katex .fontsize-ensurer.reset-size10.size2 { - font-size: 0.2811245em; -} -.katex .sizing.reset-size10.size3, -.katex .fontsize-ensurer.reset-size10.size3 { - font-size: 0.32128514em; -} -.katex .sizing.reset-size10.size4, -.katex .fontsize-ensurer.reset-size10.size4 { - font-size: 0.36144578em; -} -.katex .sizing.reset-size10.size5, -.katex .fontsize-ensurer.reset-size10.size5 { - font-size: 0.40160643em; -} -.katex .sizing.reset-size10.size6, -.katex .fontsize-ensurer.reset-size10.size6 { - font-size: 0.48192771em; -} -.katex .sizing.reset-size10.size7, -.katex .fontsize-ensurer.reset-size10.size7 { - font-size: 0.57831325em; -} -.katex .sizing.reset-size10.size8, -.katex .fontsize-ensurer.reset-size10.size8 { - font-size: 0.69477912em; -} -.katex .sizing.reset-size10.size9, -.katex .fontsize-ensurer.reset-size10.size9 { - font-size: 0.8313253em; -} -.katex .sizing.reset-size10.size10, -.katex .fontsize-ensurer.reset-size10.size10 { - font-size: 1em; -} -.katex .delimsizing.size1 { - font-family: KaTeX_Size1; -} -.katex .delimsizing.size2 { - font-family: KaTeX_Size2; -} -.katex .delimsizing.size3 { - font-family: KaTeX_Size3; -} -.katex .delimsizing.size4 { - font-family: KaTeX_Size4; -} -.katex .delimsizing.mult .delim-size1 > span { - font-family: KaTeX_Size1; -} -.katex .delimsizing.mult .delim-size4 > span { - font-family: KaTeX_Size4; -} -.katex .nulldelimiter { - display: inline-block; - width: 0.12em; -} -.katex .op-symbol { - position: relative; -} -.katex .op-symbol.small-op { - font-family: KaTeX_Size1; -} -.katex .op-symbol.large-op { - font-family: KaTeX_Size2; -} -.katex .op-limits > .vlist > span { - text-align: center; -} -.katex .accent > .vlist > span { - text-align: center; -} -.katex .accent .accent-body > span { - width: 0; -} -.katex .accent .accent-body.accent-vec > span { - position: relative; - left: 0.326em; -} -.katex .arraycolsep { - display: inline-block; -} -.katex .col-align-c > .vlist { - text-align: center; -} -.katex .col-align-l > .vlist { - text-align: left; -} -.katex .col-align-r > .vlist { - text-align: right; -} diff --git a/client/katex/katex.min.css b/client/katex/katex.min.css index 5a30850..631f6c1 100644 --- a/client/katex/katex.min.css +++ b/client/katex/katex.min.css @@ -1 +1 @@ -@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.eot);src:url(fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'),url(fonts/KaTeX_AMS-Regular.woff) format('woff'),url(fonts/KaTeX_AMS-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.eot);src:url(fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.eot);src:url(fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.eot);src:url(fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'),url(fonts/KaTeX_Fraktur-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.eot);src:url(fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'),url(fonts/KaTeX_Fraktur-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.eot);src:url(fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Bold.woff2) format('woff2'),url(fonts/KaTeX_Main-Bold.woff) format('woff'),url(fonts/KaTeX_Main-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.eot);src:url(fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Italic.woff2) format('woff2'),url(fonts/KaTeX_Main-Italic.woff) format('woff'),url(fonts/KaTeX_Main-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.eot);src:url(fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Regular.woff2) format('woff2'),url(fonts/KaTeX_Main-Regular.woff) format('woff'),url(fonts/KaTeX_Main-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.eot);src:url(fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-Italic.woff2) format('woff2'),url(fonts/KaTeX_Math-Italic.woff) format('woff'),url(fonts/KaTeX_Math-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.eot);src:url(fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'),url(fonts/KaTeX_SansSerif-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.eot);src:url(fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Script-Regular.woff2) format('woff2'),url(fonts/KaTeX_Script-Regular.woff) format('woff'),url(fonts/KaTeX_Script-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.eot);src:url(fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size1-Regular.woff) format('woff'),url(fonts/KaTeX_Size1-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.eot);src:url(fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size2-Regular.woff) format('woff'),url(fonts/KaTeX_Size2-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.eot);src:url(fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size3-Regular.woff) format('woff'),url(fonts/KaTeX_Size3-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.eot);src:url(fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size4-Regular.woff) format('woff'),url(fonts/KaTeX_Size4-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.eot);src:url(fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'),url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'),url(fonts/KaTeX_Typewriter-Regular.ttf) format('ttf');font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block}.katex{font:400 1.21em KaTeX_Main;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .textstyle>.mord+.mop{margin-left:.16667em}.katex .textstyle>.mord+.mbin{margin-left:.22222em}.katex .textstyle>.mord+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.mop,.katex .textstyle>.mop+.mord,.katex .textstyle>.mord+.minner{margin-left:.16667em}.katex .textstyle>.mop+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.minner{margin-left:.16667em}.katex .textstyle>.mbin+.minner,.katex .textstyle>.mbin+.mop,.katex .textstyle>.mbin+.mopen,.katex .textstyle>.mbin+.mord{margin-left:.22222em}.katex .textstyle>.mrel+.minner,.katex .textstyle>.mrel+.mop,.katex .textstyle>.mrel+.mopen,.katex .textstyle>.mrel+.mord{margin-left:.27778em}.katex .textstyle>.mclose+.mop{margin-left:.16667em}.katex .textstyle>.mclose+.mbin{margin-left:.22222em}.katex .textstyle>.mclose+.mrel{margin-left:.27778em}.katex .textstyle>.mclose+.minner,.katex .textstyle>.minner+.mop,.katex .textstyle>.minner+.mord,.katex .textstyle>.mpunct+.mclose,.katex .textstyle>.mpunct+.minner,.katex .textstyle>.mpunct+.mop,.katex .textstyle>.mpunct+.mopen,.katex .textstyle>.mpunct+.mord,.katex .textstyle>.mpunct+.mpunct,.katex .textstyle>.mpunct+.mrel{margin-left:.16667em}.katex .textstyle>.minner+.mbin{margin-left:.22222em}.katex .textstyle>.minner+.mrel{margin-left:.27778em}.katex .mclose+.mop,.katex .minner+.mop,.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.mop,.katex .textstyle>.minner+.minner,.katex .textstyle>.minner+.mopen,.katex .textstyle>.minner+.mpunct{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.enspace{width:.5em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border-style:solid;position:relative}.katex .overline .overline-line{width:100%}.katex .overline .overline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .arraycolsep{display:inline-block}.katex .col-align-c>.vlist{text-align:center}.katex .col-align-l>.vlist{text-align:left}.katex .col-align-r>.vlist{text-align:right} \ No newline at end of file +@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base{position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.muspace{width:.055556em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{width:0;position:relative}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.125em;width:.25em;overflow:hidden;position:relative}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex .vertical-separator svg{width:.25em}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox{box-sizing:border-box;border:.04em solid #000}.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap+.mbin,.katex .cancel-lap+.mord,.katex .cancel-lap+.msupsub,.katex .mbin+.cancel-lap,.katex .mord+.cancel-lap{margin-left:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em} \ No newline at end of file diff --git a/client/katex/katex.min.js b/client/katex/katex.min.js index 578cb23..41e43cd 100644 --- a/client/katex/katex.min.js +++ b/client/katex/katex.min.js @@ -1,6 +1 @@ -(function(e){if("function"==typeof bootstrap)bootstrap("katex",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeKatex=e}else"undefined"!=typeof window?window.katex=e():global.katex=e()})(function(){var e,t,i,h,a;return function r(e,t,i){function h(l,s){if(!t[l]){if(!e[l]){var p=typeof require=="function"&&require;if(!s&&p)return p(l,!0);if(a)return a(l,!0);throw new Error("Cannot find module '"+l+"'")}var c=t[l]={exports:{}};e[l][0].call(c.exports,function(t){var i=e[l][1][t];return h(i?i:t)},c,c.exports,r,e,t,i)}return t[l].exports}var a=typeof require=="function"&&require;for(var l=0;l:]/,/[,;]/,/['\^_{}]/,/[(\[]/,/[)\]?!]/,/~/,/&/,/\\\\/];var p=[/[a-zA-Z0-9`!@*()-=+\[\]'";:?\/.,]/,/[{}]/,/~/,/&/,/\\\\/];var c=/\s*/;var n=/ +|\\ +/;var g=/\\(?:[a-zA-Z]+|.)/;r.prototype._innerLex=function(e,t,i){var r=this._input;var s;if(i){s=h(c,r,e)[0];e+=s.length}else{s=h(n,r,e);if(s!==null){return new l(" ",null,e+s[0].length)}}if(e===r.length){return new l("EOF",null,e)}var p;if(p=h(g,r,e)){return new l(p[0],null,e+p[0].length)}else{for(var o=0;ou){return this.parseFunction(e,t)}else{throw new c("Got function '"+r.result.result+"' with no arguments "+"as "+a,this.lexer,e)}}else{return r.result}};n.prototype.parseAtom=function(e,t){var i=this.parseImplicitGroup(e,t);if(t==="text"){return i}var h;if(!i){h=e;i=undefined}else{h=i.position}var a;var r;var l;while(true){var s=this.lexer.lex(h,t);if(s.text==="^"){if(a){throw new c("Double superscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"superscript");h=l.position;a=l.result}else if(s.text==="_"){if(r){throw new c("Double subscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"subscript");h=l.position;r=l.result}else if(s.text==="'"){var p=new g("textord","\\prime",t);var n=[p];h=s.position;while((s=this.lexer.lex(h,t)).text==="'"){n.push(p);h=s.position}a=new g("ordgroup",n,t)}else{break}}if(a||r){return new o(new g("supsub",{base:i&&i.result,sup:a,sub:r},t),h)}else{return i}};var k=["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];var m=["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"];n.prototype.parseImplicitGroup=function(e,t){var i=this.parseSymbol(e,t);if(!i||!i.result){return this.parseFunction(e,t)}var h=i.result.result;var r;if(h==="\\left"){var l=this.parseFunction(e,t);r=this.parseExpression(l.position,t,false);this.expect(r.peek,"\\right");var p=this.parseFunction(r.position,t);return new o(new g("leftright",{body:r.result,left:l.result.value.value,right:p.result.value.value},t),p.position)}else if(h==="\\begin"){var n=this.parseFunction(e,t);var d=n.result.value.name;if(!a.hasOwnProperty(d)){throw new c("No such environment: "+d,this.lexer,n.result.value.namepos)}var w=a[d];var u=[null,t,d];var f=this.parseArguments(n.position,t,"\\begin{"+d+"}",w,u);u[0]=f;var v=w.handler.apply(this,u);var y=this.lexer.lex(v.position,t);this.expect(y,"\\end");var x=this.parseFunction(v.position,t);if(x.result.value.name!==d){throw new c("Mismatch: \\begin{"+d+"} matched "+"by \\end{"+x.result.value.name+"}",this.lexer,x.namepos)}v.position=x.position;return v}else if(s.contains(k,h)){r=this.parseExpression(i.result.position,t,false);return new o(new g("sizing",{size:"size"+(s.indexOf(k,h)+1),value:r.result},t),r.position)}else if(s.contains(m,h)){r=this.parseExpression(i.result.position,t,true);return new o(new g("styling",{style:h.slice(1,h.length-5),value:r.result},t),r.position)}else{return this.parseFunction(e,t)}};n.prototype.parseFunction=function(e,t){var i=this.parseGroup(e,t);if(i){if(i.isFunction){var a=i.result.result;var r=h.funcs[a];if(t==="text"&&!r.allowedInText){throw new c("Can't use function '"+a+"' in text mode",this.lexer,i.position)}var l=[a];var s=this.parseArguments(i.result.position,t,a,r,l);var p=h.funcs[a].handler.apply(this,l);return new o(new g(p.type,p,t),s)}else{return i.result}}else{return null}};n.prototype.parseArguments=function(e,t,i,a,r){var l=a.numArgs+a.numOptionalArgs;if(l===0){return e}var s=e;var p=a.greediness;var n=[s];for(var g=0;gp){w=this.parseFunction(s,t)}else{throw new c("Got function '"+d.result.result+"' as "+"argument to '"+i+"'",this.lexer,d.result.position-1)}}else{w=d.result}r.push(w.result);n.push(w.position);s=w.position}r.push(n);return s};n.prototype.parseSpecialGroup=function(e,t,i,h){if(t==="original"){t=i}if(t==="color"||t==="size"){var a=this.lexer.lex(e,i);if(h&&a.text!=="["){return null}this.expect(a,h?"[":"{");var r=this.lexer.lex(a.position,t);var l;if(t==="color"){l=r.text}else{l=r.data}var s=this.lexer.lex(r.position,i);this.expect(s,h?"]":"}");return new d(new o(new g(t,l,i),s.position),false)}else if(t==="text"){var p=this.lexer.lex(e,"whitespace");e=p.position}if(h){return this.parseOptionalGroup(e,t)}else{return this.parseGroup(e,t)}};n.prototype.parseGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="{"){var h=this.parseExpression(i.position,t,false);var a=this.lexer.lex(h.position,t);this.expect(a,"}");return new d(new o(new g("ordgroup",h.result,t),a.position),false)}else{return this.parseSymbol(e,t)}};n.prototype.parseOptionalGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="["){var h=this.parseExpression(i.position,t,false,"]");var a=this.lexer.lex(h.position,t);this.expect(a,"]");return new d(new o(new g("ordgroup",h.result,t),a.position),false)}else{return null}};n.prototype.parseSymbol=function(e,t){var i=this.lexer.lex(e,t);if(h.funcs[i.text]){return new d(new o(i.text,i.position),true)}else if(l[t][i.text]){return new d(new o(new g(l[t][i.text].group,i.text,t),i.position),false)}else{return null}};n.prototype.ParseNode=g;t.exports=n},{"./Lexer":3,"./ParseError":5,"./environments":15,"./functions":17,"./parseData":19,"./symbols":21,"./utils":22}],7:[function(e,t,i){function h(e,t){return e===undefined?t:e}function a(e){e=e||{};this.displayMode=h(e.displayMode,false)}t.exports=a},{}],8:[function(e,t,i){function h(e,t,i,h){this.id=e;this.size=t;this.cramped=h;this.sizeMultiplier=i}h.prototype.sup=function(){return w[u[this.id]]};h.prototype.sub=function(){return w[k[this.id]]};h.prototype.fracNum=function(){return w[m[this.id]]};h.prototype.fracDen=function(){return w[f[this.id]]};h.prototype.cramp=function(){return w[v[this.id]]};h.prototype.cls=function(){return o[this.size]+(this.cramped?" cramped":" uncramped")};h.prototype.reset=function(){return d[this.size]};var a=0;var r=1;var l=2;var s=3;var p=4;var c=5;var n=6;var g=7;var o=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var d=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var w=[new h(a,0,1,false),new h(r,0,1,true),new h(l,1,1,false),new h(s,1,1,true),new h(p,2,.7,false),new h(c,2,.7,true),new h(n,3,.5,false),new h(g,3,.5,true)];var u=[p,c,p,c,n,g,n,g];var k=[c,c,c,c,g,g,g,g];var m=[l,s,p,c,n,g,n,g];var f=[s,s,c,c,g,g,g,g];var v=[r,r,s,s,c,c,g,g];t.exports={DISPLAY:w[a],TEXT:w[l],SCRIPT:w[p],SCRIPTSCRIPT:w[n]}},{}],9:[function(e,t,i){var h=e("./domTree");var a=e("./fontMetrics");var r=e("./symbols");var l=e("./utils");var s=function(e,t,i,l,s){if(r[i][e]&&r[i][e].replace){e=r[i][e].replace}var p=a.getCharacterMetrics(e,t);var c;if(p){c=new h.symbolNode(e,p.height,p.depth,p.italic,p.skew,s)}else{typeof console!=="undefined"&&console.warn("No character metrics for '"+e+"' in style '"+t+"'");c=new h.symbolNode(e,0,0,0,0,s)}if(l){c.style.color=l}return c};var p=function(e,t,i,h){if(r[t][e].font==="main"){return s(e,"Main-Regular",t,i,h)}else{return s(e,"AMS-Regular",t,i,h.concat(["amsrm"]))}};var c=function(e,t,i,h,a){if(a==="mathord"){return n(e,t,i,h)}else if(a==="textord"){return s(e,"Main-Regular",t,i,h.concat(["mathrm"]))}else{throw new Error("unexpected type: "+a+" in mathDefault")}};var n=function(e,t,i,h){if(/[0-9]/.test(e.charAt(0))||l.contains(["\u0131","\u0237"],e)||l.contains(v,e)){return s(e,"Main-Italic",t,i,h.concat(["mainit"]))}else{return s(e,"Math-Italic",t,i,h.concat(["mathit"]))}};var g=function(e,t,i){var h=e.mode;var p=e.value;if(r[h][p]&&r[h][p].replace){p=r[h][p].replace}var g=["mord"];var o=t.getColor();var d=t.font;if(d){if(d==="mathit"||l.contains(["\u0131","\u0237"],p)){return n(p,h,o,g.concat(["mathit"]))}else{var w=y[d].fontName;if(a.getCharacterMetrics(p,w)){return s(p,w,h,o,g.concat([d]))}else{return c(p,h,o,g,i)}}}else{return c(p,h,o,g,i)}};var o=function(e){var t=0;var i=0;var h=0;if(e.children){for(var a=0;at){t=e.children[a].height}if(e.children[a].depth>i){i=e.children[a].depth}if(e.children[a].maxFontSize>h){h=e.children[a].maxFontSize}}}e.height=t;e.depth=i;e.maxFontSize=h};var d=function(e,t,i){var a=new h.span(e,t);o(a);if(i){a.style.color=i}return a};var w=function(e){var t=new h.documentFragment(e);o(t);return t};var u=function(e,t){var i=d([],[new h.symbolNode("\u200b")]);i.style.fontSize=t/e.style.sizeMultiplier+"em";var a=d(["fontsize-ensurer","reset-"+e.size,"size5"],[i]);return a};var k=function(e,t,i,a){var r;var l;var s;if(t==="individualShift"){var p=e;e=[p[0]];r=-p[0].shift-p[0].elem.depth;l=r;for(s=1;s0){d+=M;k-=M}}z=l.makeVList([{type:"elem",elem:s,shift:k},{type:"elem",elem:a,shift:-d}],"individualShift",null,t);if(h instanceof p.symbolNode){z.children[0].style.marginLeft=-h.italic+"em"}z.children[0].style.marginRight=b;z.children[1].style.marginRight=b}return g([w(e.value.base)],[h,z])},genfrac:function(e,t,i){var h=t.style;if(e.value.size==="display"){h=r.DISPLAY}else if(e.value.size==="text"){h=r.TEXT}var a=h.fracNum();var p=h.fracDen();var n=y(e.value.numer,t.withStyle(a));var o=g([h.reset(),a.cls()],[n]);var d=y(e.value.denom,t.withStyle(p));var w=g([h.reset(),p.cls()],[d]);var u;if(e.value.hasBarLine){u=c.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{u=0}var k;var m;var v;if(h.size===r.DISPLAY.size){k=c.metrics.num1;if(u>0){m=3*u}else{m=7*c.metrics.defaultRuleThickness}v=c.metrics.denom1}else{if(u>0){k=c.metrics.num2;m=u}else{k=c.metrics.num3;m=3*c.metrics.defaultRuleThickness}v=c.metrics.denom2}var x;if(u===0){var b=k-n.depth-(d.height-v);if(b0){q+=f;if(z0||e.value.hskipBeforeAndAfter){E=n.deflt(R.pregap,d);if(E!==0){C=g(["arraycolsep"],[]);C.style.width=E+"em";N.push(C)}}var P=[];for(h=0;hh.height+h.depth+o){o=(o+k-h.height-h.depth)/2}var m=-(h.height+o+a)+u.height;u.style.top=m+"em";u.height-=m;u.depth+=m;var f;if(h.height===0&&h.depth===0){f=g()}else{f=l.makeVList([{type:"elem",elem:h},{type:"kern",size:o},{type:"elem",elem:p},{type:"kern",size:a}],"firstBaseline",null,t)}if(!e.value.index){return g(["sqrt","mord"],[u,f])}else{var v=y(e.value.index,t.withStyle(r.SCRIPTSCRIPT));var x=g([t.style.reset(),r.SCRIPTSCRIPT.cls()],[v]);var b=Math.max(u.height,f.height);var z=Math.max(u.depth,f.depth);var S=.6*(b-z);var M=l.makeVList([{type:"elem",elem:x}],"shift",-S,t);var q=g(["root"],[M]);return g(["sqrt","mord"],[q,u,f])}},sizing:function(e,t,i){var h=o(e.value.value,t.withSize(e.value.size),i);var a=g(["mord"],[g(["sizing","reset-"+t.size,e.value.size,t.style.cls()],h)]);var r=l.sizingMultiplier[e.value.size];a.maxFontSize=r*t.style.sizeMultiplier;return a},styling:function(e,t,i){var h={display:r.DISPLAY,text:r.TEXT,script:r.SCRIPT,scriptscript:r.SCRIPTSCRIPT};var a=h[e.value.style];var l=o(e.value.value,t.withStyle(a),i);return g([t.style.reset(),a.cls()],l)},font:function(e,t,i){var h=e.value.font;return y(e.value.body,t.withFont(h),i)},delimsizing:function(e,t,i){var h=e.value.value;if(h==="."){return g([d[e.value.delimType]])}return g([d[e.value.delimType]],[s.sizedDelim(h,e.value.size,t,e.mode)])},leftright:function(e,t,i){var h=o(e.value.body,t.reset());var a=0;var r=0;for(var l=0;l","\\langle","\\rangle","/","\\backslash"];var y=[0,1.2,1.8,2.4,3];var x=function(e,t,i,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}if(p.contains(m,e)||p.contains(v,e)){return w(e,t,false,i,a)}else if(p.contains(f,e)){return k(e,y[t],false,i,a)}else{throw new h("Illegal delimiter: '"+e+"'")}};var b=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var z=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"stack"}];var S=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var M=function(e){if(e.type==="small"){return"Main-Regular"}else if(e.type==="large"){return"Size"+e.size+"-Regular"}else if(e.type==="stack"){return"Size4-Regular"}};var q=function(e,t,i,h){var a=Math.min(2,3-h.style.size);for(var r=a;rt){return i[r]}}return i[i.length-1]};var A=function(e,t,i,h,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}var r;if(p.contains(v,e)){r=b}else if(p.contains(m,e)){r=S}else{r=z}var l=q(e,t,r,h);if(l.type==="small"){return d(e,l.style,i,h,a)}else if(l.type==="large"){return w(e,l.size,i,h,a)}else if(l.type==="stack"){return k(e,t,i,h,a)}};var T=function(e,t,i,h,a){var r=l.metrics.axisHeight*h.style.sizeMultiplier;var s=901;var p=5/l.metrics.ptPerEm;var c=Math.max(t-r,i+r);var n=Math.max(c/500*s,2*c-p);return A(e,n,true,h,a)};t.exports={sizedDelim:x,customSizedDelim:A,leftRightDelim:T}},{"./ParseError":5,"./Style":8,"./buildCommon":9,"./fontMetrics":16,"./symbols":21,"./utils":22}],14:[function(e,t,i){var h=e("./utils");var a=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(" ")};function r(e,t,i,h,a,r){this.classes=e||[];this.children=t||[];this.height=i||0;this.depth=h||0;this.maxFontSize=a||0;this.style=r||{};this.attributes={}}r.prototype.setAttribute=function(e,t){this.attributes[e]=t};r.prototype.toNode=function(){var e=document.createElement("span");e.className=a(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var i in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,i)){e.setAttribute(i,this.attributes[i])}}for(var h=0;h";return e};function l(e,t,i,h){this.children=e||[];this.height=t||0;this.depth=i||0;this.maxFontSize=h||0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t0){t=document.createElement("span");t.style.marginRight=this.italic+"em"}if(this.classes.length>0){t=t||document.createElement("span");t.className=a(this.classes)}for(var i in this.style){if(this.style.hasOwnProperty(i)){t=t||document.createElement("span");t.style[i]=this.style[i]}}if(t){t.appendChild(e);return t}else{return e}};s.prototype.toMarkup=function(){var e=false;var t="0){i+="margin-right:"+this.italic+"em;"}for(var r in this.style){if(this.style.hasOwnProperty(r)){i+=h.hyphenate(r)+":"+this.style[r]+";"}}if(i){e=true;t+=' style="'+h.escape(i)+'"'}var l=h.escape(this.value);if(e){t+=">";t+=l;t+="";return t}else{return l}};t.exports={span:r,documentFragment:l,symbolNode:s}},{"./utils":22}],15:[function(e,t,i){var h=e("./fontMetrics");var a=e("./parseData");var r=e("./ParseError");var l=a.ParseNode;var s=a.ParseResult;function p(e,t,i,h){var a=[],p=[a],c=[];while(true){var n=e.parseExpression(t,i,false,null);a.push(new l("ordgroup",n.result,i));t=n.position;var g=n.peek.text;if(g==="&"){t=n.peek.position}else if(g==="\\end"){break}else if(g==="\\\\"||g==="\\cr"){var o=e.parseFunction(t,i);c.push(o.result.value.size);t=o.position;a=[];p.push(a)}else{throw new r("Expected & or \\\\ or \\end",e.lexer,n.peek.position)}}h.body=p;h.rowGaps=c;return new s(new l(h.type,h,i),t)}var c=[{names:["array"],numArgs:1,handler:function(e,t,i,h,a){var l=this;h=h.value.map?h.value:[h];var s=h.map(function(e){var t=e.value;if("lcr".indexOf(t)!==-1){return{align:t}}throw new r("Unknown column alignment: "+e.value,l.lexer,a[1])});var c={type:"array",cols:s,hskipBeforeAndAfter:true};c=p(l,e,t,c);return c}},{names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],handler:function(e,t,i){var h={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i];var a={type:"array",hskipBeforeAndAfter:false};a=p(this,e,t,a);if(h){a.result=new l("leftright",{body:[a.result],left:h[0],right:h[1]},t)}return a}},{names:["cases"],handler:function(e,t,i){var a={type:"array",arraystretch:1.2,cols:[{align:"l",pregap:0,postgap:h.metrics.quad},{align:"l",pregap:0,postgap:0}]};a=p(this,e,t,a);a.result=new l("leftright",{body:[a.result],left:"\\{",right:"."},t);return a}}];t.exports=function(){var e={};for(var t=0;t","\\langle","\\rangle","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p={"\\frak":"\\mathfrak","\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\rm":"\\mathrm","\\sf":"\\mathsf","\\tt":"\\mathtt","\\bf":"\\mathbf","\\it":"\\mathit","\\cal":"\\mathcal"};var c=[{funcs:["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],data:{numArgs:1,allowedInText:true,greediness:3,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"color",color:"katex-"+e.slice(1),value:i}}}},{funcs:["\\arcsin","\\arccos","\\arctan","\\arg","\\cos","\\cosh","\\cot","\\coth","\\csc","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\tan","\\tanh"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:false,body:e}}}},{funcs:["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:false,body:e}}}},{funcs:["\\int","\\iint","\\iiint","\\oint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:true,body:e}}}},{funcs:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:true,body:e}}}},{funcs:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom"],data:{numArgs:2,greediness:2,handler:function(e,t,i){var h;var a=null;var r=null;var l="auto";switch(e){case"\\dfrac":case"\\frac":case"\\tfrac":h=true;break;case"\\dbinom":case"\\binom":case"\\tbinom":h=false;a="(";r=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",numer:t,denom:i,hasBarLine:h,leftDelim:a,rightDelim:r,size:l}}}},{funcs:["\\llap","\\rlap"],data:{numArgs:1,allowedInText:true,handler:function(e,t){return{type:e.slice(1),body:t}}}},{funcs:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg","\\left","\\right"],data:{numArgs:1,handler:function(e,t,i){if(!h.contains(s,t.value)){throw new a("Invalid delimiter: '"+t.value+"' after '"+e+"'",this.lexer,i[1])}if(e==="\\left"||e==="\\right"){return{type:"leftright",value:t.value}}else{return{type:"delimsizing",size:l[e].size,delimType:l[e].type,value:t.value}}}}},{funcs:["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],data:{numArgs:0}},{funcs:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],data:{numArgs:0}},{funcs:["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt"],data:{numArgs:1,handler:function(e,t){if(e in p){e=p[e]}return{type:"font",font:e.slice(1),body:t}}}},{funcs:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],data:{numArgs:1,handler:function(e,t){return{type:"accent",accent:e,base:t}}}},{funcs:["\\over","\\choose"],data:{numArgs:0,handler:function(e){var t;switch(e){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t}}}},{funcs:["\\\\","\\cr"],data:{numArgs:0,numOptionalArgs:1,argTypes:["size"],handler:function(e,t){return{type:"cr",size:t}}}},{funcs:["\\begin","\\end"],data:{numArgs:1,argTypes:["text"],handler:function(e,t,i){if(t.type!=="ordgroup"){throw new a("Invalid environment name",this.lexer,i[1])}var h="";for(var r=0;r";return e};function r(e){this.text=e}r.prototype.toNode=function(){return document.createTextNode(this.text)};r.prototype.toMarkup=function(){return h.escape(this.text)};t.exports={MathNode:a,TextNode:r}},{"./utils":22}],19:[function(e,t,i){function h(e,t,i){this.type=e;this.value=t;this.mode=i}function a(e,t,i){this.result=e;this.position=t}t.exports={ParseNode:h,ParseResult:a}},{}],20:[function(e,t,i){var h=e("./Parser");var a=function(e,t){var i=new h(e,t);return i.parse()};t.exports=a},{"./Parser":6}],21:[function(e,t,i){var h={math:{"\\equiv":{font:"main",group:"rel",replace:"\u2261"},"\\prec":{font:"main",group:"rel",replace:"\u227a"},"\\succ":{font:"main",group:"rel",replace:"\u227b"},"\\sim":{font:"main",group:"rel",replace:"\u223c"},"\\perp":{font:"main",group:"rel",replace:"\u22a5"},"\\preceq":{font:"main",group:"rel",replace:"\u2aaf"},"\\succeq":{font:"main",group:"rel",replace:"\u2ab0"},"\\simeq":{font:"main",group:"rel",replace:"\u2243"},"\\mid":{font:"main",group:"rel",replace:"\u2223"},"\\ll":{font:"main",group:"rel",replace:"\u226a"},"\\gg":{font:"main",group:"rel",replace:"\u226b"},"\\asymp":{font:"main",group:"rel",replace:"\u224d"},"\\parallel":{font:"main",group:"rel",replace:"\u2225"},"\\bowtie":{font:"main",group:"rel",replace:"\u22c8"},"\\smile":{font:"main",group:"rel",replace:"\u2323"},"\\sqsubseteq":{font:"main",group:"rel",replace:"\u2291"},"\\sqsupseteq":{font:"main",group:"rel",replace:"\u2292"},"\\doteq":{font:"main",group:"rel",replace:"\u2250"},"\\frown":{font:"main",group:"rel",replace:"\u2322"},"\\ni":{font:"main",group:"rel",replace:"\u220b"},"\\propto":{font:"main",group:"rel",replace:"\u221d"},"\\vdash":{font:"main",group:"rel",replace:"\u22a2"},"\\dashv":{font:"main",group:"rel",replace:"\u22a3"},"\\owns":{font:"main",group:"rel",replace:"\u220b"},"\\ldotp":{font:"main",group:"punct",replace:"."},"\\cdotp":{font:"main",group:"punct",replace:"\u22c5"},"\\#":{font:"main",group:"textord",replace:"#"},"\\&":{font:"main",group:"textord",replace:"&"},"\\aleph":{font:"main",group:"textord",replace:"\u2135"},"\\forall":{font:"main",group:"textord",replace:"\u2200"},"\\hbar":{font:"main",group:"textord",replace:"\u210f"},"\\exists":{font:"main",group:"textord",replace:"\u2203"},"\\nabla":{font:"main",group:"textord",replace:"\u2207"},"\\flat":{font:"main",group:"textord",replace:"\u266d"},"\\ell":{font:"main",group:"textord",replace:"\u2113"},"\\natural":{font:"main",group:"textord",replace:"\u266e"},"\\clubsuit":{font:"main",group:"textord",replace:"\u2663"},"\\wp":{font:"main",group:"textord",replace:"\u2118"},"\\sharp":{font:"main",group:"textord",replace:"\u266f"},"\\diamondsuit":{font:"main",group:"textord",replace:"\u2662"},"\\Re":{font:"main",group:"textord",replace:"\u211c"},"\\heartsuit":{font:"main",group:"textord",replace:"\u2661"},"\\Im":{font:"main",group:"textord",replace:"\u2111"},"\\spadesuit":{font:"main",group:"textord",replace:"\u2660"},"\\dag":{font:"main",group:"textord",replace:"\u2020"},"\\ddag":{font:"main",group:"textord",replace:"\u2021"},"\\rmoustache":{font:"main",group:"close",replace:"\u23b1"},"\\lmoustache":{font:"main",group:"open",replace:"\u23b0"},"\\rgroup":{font:"main",group:"close",replace:"\u27ef"},"\\lgroup":{font:"main",group:"open",replace:"\u27ee"},"\\mp":{font:"main",group:"bin",replace:"\u2213"},"\\ominus":{font:"main",group:"bin",replace:"\u2296"},"\\uplus":{font:"main",group:"bin",replace:"\u228e"},"\\sqcap":{font:"main",group:"bin",replace:"\u2293"},"\\ast":{font:"main",group:"bin",replace:"\u2217"},"\\sqcup":{font:"main",group:"bin",replace:"\u2294"},"\\bigcirc":{font:"main",group:"bin",replace:"\u25ef"},"\\bullet":{font:"main",group:"bin",replace:"\u2219"},"\\ddagger":{font:"main",group:"bin",replace:"\u2021"},"\\wr":{font:"main",group:"bin",replace:"\u2240"},"\\amalg":{font:"main",group:"bin",replace:"\u2a3f"},"\\longleftarrow":{font:"main",group:"rel",replace:"\u27f5"},"\\Leftarrow":{font:"main",group:"rel",replace:"\u21d0"},"\\Longleftarrow":{font:"main",group:"rel",replace:"\u27f8"},"\\longrightarrow":{font:"main",group:"rel",replace:"\u27f6"},"\\Rightarrow":{font:"main",group:"rel",replace:"\u21d2"},"\\Longrightarrow":{font:"main",group:"rel",replace:"\u27f9"},"\\leftrightarrow":{font:"main",group:"rel",replace:"\u2194"},"\\longleftrightarrow":{font:"main",group:"rel",replace:"\u27f7"},"\\Leftrightarrow":{font:"main",group:"rel",replace:"\u21d4"},"\\Longleftrightarrow":{font:"main",group:"rel",replace:"\u27fa"},"\\mapsto":{font:"main",group:"rel",replace:"\u21a6"},"\\longmapsto":{font:"main",group:"rel",replace:"\u27fc"},"\\nearrow":{font:"main",group:"rel",replace:"\u2197"},"\\hookleftarrow":{font:"main",group:"rel",replace:"\u21a9"},"\\hookrightarrow":{font:"main",group:"rel",replace:"\u21aa"},"\\searrow":{font:"main",group:"rel",replace:"\u2198"},"\\leftharpoonup":{font:"main",group:"rel",replace:"\u21bc"},"\\rightharpoonup":{font:"main",group:"rel",replace:"\u21c0"},"\\swarrow":{font:"main",group:"rel",replace:"\u2199"},"\\leftharpoondown":{font:"main",group:"rel",replace:"\u21bd"},"\\rightharpoondown":{font:"main",group:"rel",replace:"\u21c1"},"\\nwarrow":{font:"main",group:"rel",replace:"\u2196"},"\\rightleftharpoons":{font:"main",group:"rel",replace:"\u21cc"},"\\nless":{font:"ams",group:"rel",replace:"\u226e"},"\\nleqslant":{font:"ams",group:"rel",replace:"\ue010"},"\\nleqq":{font:"ams",group:"rel",replace:"\ue011"},"\\lneq":{font:"ams",group:"rel",replace:"\u2a87"},"\\lneqq":{font:"ams",group:"rel",replace:"\u2268"},"\\lvertneqq":{font:"ams",group:"rel",replace:"\ue00c"},"\\lnsim":{font:"ams",group:"rel",replace:"\u22e6"},"\\lnapprox":{font:"ams",group:"rel",replace:"\u2a89"},"\\nprec":{font:"ams",group:"rel",replace:"\u2280"},"\\npreceq":{font:"ams",group:"rel",replace:"\u22e0"},"\\precnsim":{font:"ams",group:"rel",replace:"\u22e8"},"\\precnapprox":{font:"ams",group:"rel",replace:"\u2ab9"},"\\nsim":{font:"ams",group:"rel",replace:"\u2241"},"\\nshortmid":{font:"ams",group:"rel",replace:"\ue006"},"\\nmid":{font:"ams",group:"rel",replace:"\u2224"},"\\nvdash":{font:"ams",group:"rel",replace:"\u22ac"},"\\nvDash":{font:"ams",group:"rel",replace:"\u22ad"},"\\ntriangleleft":{font:"ams",group:"rel",replace:"\u22ea"},"\\ntrianglelefteq":{font:"ams",group:"rel",replace:"\u22ec"},"\\subsetneq":{font:"ams",group:"rel",replace:"\u228a"},"\\varsubsetneq":{font:"ams",group:"rel",replace:"\ue01a"},"\\subsetneqq":{font:"ams",group:"rel",replace:"\u2acb"},"\\varsubsetneqq":{font:"ams",group:"rel",replace:"\ue017"},"\\ngtr":{font:"ams",group:"rel",replace:"\u226f"},"\\ngeqslant":{font:"ams",group:"rel",replace:"\ue00f"},"\\ngeqq":{font:"ams",group:"rel",replace:"\ue00e"},"\\gneq":{font:"ams",group:"rel",replace:"\u2a88"},"\\gneqq":{font:"ams",group:"rel",replace:"\u2269"},"\\gvertneqq":{font:"ams",group:"rel",replace:"\ue00d"},"\\gnsim":{font:"ams",group:"rel",replace:"\u22e7"},"\\gnapprox":{font:"ams",group:"rel",replace:"\u2a8a"},"\\nsucc":{font:"ams",group:"rel",replace:"\u2281"},"\\nsucceq":{font:"ams",group:"rel",replace:"\u22e1"},"\\succnsim":{font:"ams",group:"rel",replace:"\u22e9"},"\\succnapprox":{font:"ams",group:"rel",replace:"\u2aba"},"\\ncong":{font:"ams",group:"rel",replace:"\u2246"},"\\nshortparallel":{font:"ams",group:"rel",replace:"\ue007"},"\\nparallel":{font:"ams",group:"rel",replace:"\u2226"},"\\nVDash":{font:"ams",group:"rel",replace:"\u22af"},"\\ntriangleright":{font:"ams",group:"rel",replace:"\u22eb"},"\\ntrianglerighteq":{font:"ams",group:"rel",replace:"\u22ed"},"\\nsupseteqq":{font:"ams",group:"rel",replace:"\ue018"},"\\supsetneq":{font:"ams",group:"rel",replace:"\u228b"},"\\varsupsetneq":{font:"ams",group:"rel",replace:"\ue01b"},"\\supsetneqq":{font:"ams",group:"rel",replace:"\u2acc"},"\\varsupsetneqq":{font:"ams",group:"rel",replace:"\ue019"},"\\nVdash":{font:"ams",group:"rel",replace:"\u22ae"},"\\precneqq":{font:"ams",group:"rel",replace:"\u2ab5"},"\\succneqq":{font:"ams",group:"rel",replace:"\u2ab6"},"\\nsubseteqq":{font:"ams",group:"rel",replace:"\ue016"},"\\unlhd":{font:"ams",group:"bin",replace:"\u22b4"},"\\unrhd":{font:"ams",group:"bin",replace:"\u22b5"},"\\nleftarrow":{font:"ams",group:"rel",replace:"\u219a"},"\\nrightarrow":{font:"ams",group:"rel",replace:"\u219b"},"\\nLeftarrow":{font:"ams",group:"rel",replace:"\u21cd"},"\\nRightarrow":{font:"ams",group:"rel",replace:"\u21cf"},"\\nleftrightarrow":{font:"ams",group:"rel",replace:"\u21ae"},"\\nLeftrightarrow":{font:"ams",group:"rel",replace:"\u21ce"},"\\vartriangle":{font:"ams",group:"rel",replace:"\u25b3"},"\\hslash":{font:"ams",group:"textord",replace:"\u210f"},"\\triangledown":{font:"ams",group:"textord",replace:"\u25bd"},"\\lozenge":{font:"ams",group:"textord",replace:"\u25ca"},"\\circledS":{font:"ams",group:"textord",replace:"\u24c8"},"\\circledR":{font:"ams",group:"textord",replace:"\xae"},"\\measuredangle":{font:"ams",group:"textord",replace:"\u2221"},"\\nexists":{font:"ams",group:"textord",replace:"\u2204"},"\\mho":{font:"ams",group:"textord",replace:"\u2127"},"\\Finv":{font:"ams",group:"textord",replace:"\u2132"},"\\Game":{font:"ams",group:"textord",replace:"\u2141"},"\\Bbbk":{font:"ams",group:"textord",replace:"k"},"\\backprime":{font:"ams",group:"textord",replace:"\u2035"},"\\blacktriangle":{font:"ams",group:"textord",replace:"\u25b2"},"\\blacktriangledown":{font:"ams",group:"textord",replace:"\u25bc"},"\\blacksquare":{font:"ams",group:"textord",replace:"\u25a0"},"\\blacklozenge":{font:"ams",group:"textord",replace:"\u29eb"},"\\bigstar":{font:"ams",group:"textord",replace:"\u2605"},"\\sphericalangle":{font:"ams",group:"textord",replace:"\u2222"},"\\complement":{font:"ams",group:"textord",replace:"\u2201"},"\\eth":{font:"ams",group:"textord",replace:"\xf0"},"\\diagup":{font:"ams",group:"textord",replace:"\u2571"},"\\diagdown":{font:"ams",group:"textord",replace:"\u2572"},"\\square":{font:"ams",group:"textord",replace:"\u25a1"},"\\Box":{font:"ams",group:"textord",replace:"\u25a1"},"\\Diamond":{font:"ams",group:"textord",replace:"\u25ca"},"\\yen":{font:"ams",group:"textord",replace:"\xa5"},"\\checkmark":{font:"ams",group:"textord",replace:"\u2713"},"\\beth":{font:"ams",group:"textord",replace:"\u2136"},"\\daleth":{font:"ams",group:"textord",replace:"\u2138"},"\\gimel":{font:"ams",group:"textord",replace:"\u2137"},"\\digamma":{font:"ams",group:"textord",replace:"\u03dd"},"\\varkappa":{font:"ams",group:"textord",replace:"\u03f0"},"\\ulcorner":{font:"ams",group:"textord",replace:"\u250c"},"\\urcorner":{font:"ams",group:"textord",replace:"\u2510"},"\\llcorner":{font:"ams",group:"textord",replace:"\u2514"},"\\lrcorner":{font:"ams",group:"textord",replace:"\u2518"},"\\leqq":{font:"ams",group:"rel",replace:"\u2266"},"\\leqslant":{font:"ams",group:"rel",replace:"\u2a7d"},"\\eqslantless":{font:"ams",group:"rel",replace:"\u2a95"},"\\lesssim":{font:"ams",group:"rel",replace:"\u2272"},"\\lessapprox":{font:"ams",group:"rel",replace:"\u2a85"},"\\approxeq":{font:"ams",group:"rel",replace:"\u224a"},"\\lessdot":{font:"ams",group:"bin",replace:"\u22d6"},"\\lll":{font:"ams",group:"rel",replace:"\u22d8"},"\\lessgtr":{font:"ams",group:"rel",replace:"\u2276"},"\\lesseqgtr":{font:"ams",group:"rel",replace:"\u22da"},"\\lesseqqgtr":{font:"ams",group:"rel",replace:"\u2a8b"},"\\doteqdot":{font:"ams",group:"rel",replace:"\u2251"},"\\risingdotseq":{font:"ams",group:"rel",replace:"\u2253"},"\\fallingdotseq":{font:"ams",group:"rel",replace:"\u2252"},"\\backsim":{font:"ams",group:"rel",replace:"\u223d"},"\\backsimeq":{font:"ams",group:"rel",replace:"\u22cd"},"\\subseteqq":{font:"ams",group:"rel",replace:"\u2ac5"},"\\Subset":{font:"ams",group:"rel",replace:"\u22d0"},"\\sqsubset":{font:"ams",group:"rel",replace:"\u228f"},"\\preccurlyeq":{font:"ams",group:"rel",replace:"\u227c"},"\\curlyeqprec":{font:"ams",group:"rel",replace:"\u22de"},"\\precsim":{font:"ams",group:"rel",replace:"\u227e"},"\\precapprox":{font:"ams",group:"rel",replace:"\u2ab7"},"\\vartriangleleft":{font:"ams",group:"rel",replace:"\u22b2"},"\\trianglelefteq":{font:"ams",group:"rel",replace:"\u22b4"},"\\vDash":{font:"ams",group:"rel",replace:"\u22a8"},"\\Vvdash":{font:"ams",group:"rel",replace:"\u22aa"},"\\smallsmile":{font:"ams",group:"rel",replace:"\u2323"},"\\smallfrown":{font:"ams",group:"rel",replace:"\u2322"},"\\bumpeq":{font:"ams",group:"rel",replace:"\u224f"},"\\Bumpeq":{font:"ams",group:"rel",replace:"\u224e"},"\\geqq":{font:"ams",group:"rel",replace:"\u2267"},"\\geqslant":{font:"ams",group:"rel",replace:"\u2a7e"},"\\eqslantgtr":{font:"ams",group:"rel",replace:"\u2a96"},"\\gtrsim":{font:"ams",group:"rel",replace:"\u2273"},"\\gtrapprox":{font:"ams",group:"rel",replace:"\u2a86"},"\\gtrdot":{font:"ams",group:"bin",replace:"\u22d7"},"\\ggg":{font:"ams",group:"rel",replace:"\u22d9"},"\\gtrless":{font:"ams",group:"rel",replace:"\u2277"},"\\gtreqless":{font:"ams",group:"rel",replace:"\u22db"},"\\gtreqqless":{font:"ams",group:"rel",replace:"\u2a8c"},"\\eqcirc":{font:"ams",group:"rel",replace:"\u2256"},"\\circeq":{font:"ams",group:"rel",replace:"\u2257"},"\\triangleq":{font:"ams",group:"rel",replace:"\u225c"},"\\thicksim":{font:"ams",group:"rel",replace:"\u223c"},"\\thickapprox":{font:"ams",group:"rel",replace:"\u2248"},"\\supseteqq":{font:"ams",group:"rel",replace:"\u2ac6"},"\\Supset":{font:"ams",group:"rel",replace:"\u22d1"},"\\sqsupset":{font:"ams",group:"rel",replace:"\u2290"},"\\succcurlyeq":{font:"ams",group:"rel",replace:"\u227d"},"\\curlyeqsucc":{font:"ams",group:"rel",replace:"\u22df"},"\\succsim":{font:"ams",group:"rel",replace:"\u227f"},"\\succapprox":{font:"ams",group:"rel",replace:"\u2ab8"},"\\vartriangleright":{font:"ams",group:"rel",replace:"\u22b3"},"\\trianglerighteq":{font:"ams",group:"rel",replace:"\u22b5"},"\\Vdash":{font:"ams",group:"rel",replace:"\u22a9"},"\\shortmid":{font:"ams",group:"rel",replace:"\u2223"},"\\shortparallel":{font:"ams",group:"rel",replace:"\u2225"},"\\between":{font:"ams",group:"rel",replace:"\u226c"},"\\pitchfork":{font:"ams",group:"rel",replace:"\u22d4"},"\\varpropto":{font:"ams",group:"rel",replace:"\u221d"},"\\blacktriangleleft":{font:"ams",group:"rel",replace:"\u25c0"},"\\therefore":{font:"ams",group:"rel",replace:"\u2234"},"\\backepsilon":{font:"ams",group:"rel",replace:"\u220d"},"\\blacktriangleright":{font:"ams",group:"rel",replace:"\u25b6"},"\\because":{font:"ams",group:"rel",replace:"\u2235"},"\\llless":{font:"ams",group:"rel",replace:"\u22d8"},"\\gggtr":{font:"ams",group:"rel",replace:"\u22d9"},"\\lhd":{font:"ams",group:"bin",replace:"\u22b2"},"\\rhd":{font:"ams",group:"bin",replace:"\u22b3"},"\\eqsim":{font:"ams",group:"rel",replace:"\u2242"},"\\Join":{font:"main",group:"rel",replace:"\u22c8"},"\\Doteq":{font:"ams",group:"rel",replace:"\u2251"},"\\dotplus":{font:"ams",group:"bin",replace:"\u2214"},"\\smallsetminus":{font:"ams",group:"bin",replace:"\u2216"},"\\Cap":{font:"ams",group:"bin",replace:"\u22d2"},"\\Cup":{font:"ams",group:"bin",replace:"\u22d3"},"\\doublebarwedge":{font:"ams",group:"bin",replace:"\u2a5e"},"\\boxminus":{font:"ams",group:"bin",replace:"\u229f"},"\\boxplus":{font:"ams",group:"bin",replace:"\u229e"},"\\divideontimes":{font:"ams",group:"bin",replace:"\u22c7"},"\\ltimes":{font:"ams",group:"bin",replace:"\u22c9"},"\\rtimes":{font:"ams",group:"bin",replace:"\u22ca"},"\\leftthreetimes":{font:"ams",group:"bin",replace:"\u22cb"},"\\rightthreetimes":{font:"ams",group:"bin",replace:"\u22cc"},"\\curlywedge":{font:"ams",group:"bin",replace:"\u22cf"},"\\curlyvee":{font:"ams",group:"bin",replace:"\u22ce"},"\\circleddash":{font:"ams",group:"bin",replace:"\u229d"},"\\circledast":{font:"ams",group:"bin",replace:"\u229b"},"\\centerdot":{font:"ams",group:"bin",replace:"\u22c5"},"\\intercal":{font:"ams",group:"bin",replace:"\u22ba"},"\\doublecap":{font:"ams",group:"bin",replace:"\u22d2"},"\\doublecup":{font:"ams",group:"bin",replace:"\u22d3"},"\\boxtimes":{font:"ams",group:"bin",replace:"\u22a0"},"\\dashrightarrow":{font:"ams",group:"rel",replace:"\u21e2"},"\\dashleftarrow":{font:"ams",group:"rel",replace:"\u21e0"},"\\leftleftarrows":{font:"ams",group:"rel",replace:"\u21c7"},"\\leftrightarrows":{font:"ams",group:"rel",replace:"\u21c6"},"\\Lleftarrow":{font:"ams",group:"rel",replace:"\u21da"},"\\twoheadleftarrow":{font:"ams",group:"rel",replace:"\u219e"},"\\leftarrowtail":{font:"ams",group:"rel",replace:"\u21a2"},"\\looparrowleft":{font:"ams",group:"rel",replace:"\u21ab"},"\\leftrightharpoons":{font:"ams",group:"rel",replace:"\u21cb"},"\\curvearrowleft":{font:"ams",group:"rel",replace:"\u21b6"},"\\circlearrowleft":{font:"ams",group:"rel",replace:"\u21ba"},"\\Lsh":{font:"ams",group:"rel",replace:"\u21b0"},"\\upuparrows":{font:"ams",group:"rel",replace:"\u21c8"},"\\upharpoonleft":{font:"ams",group:"rel",replace:"\u21bf"},"\\downharpoonleft":{font:"ams",group:"rel",replace:"\u21c3"},"\\multimap":{font:"ams",group:"rel",replace:"\u22b8"},"\\leftrightsquigarrow":{font:"ams",group:"rel",replace:"\u21ad"},"\\rightrightarrows":{font:"ams",group:"rel",replace:"\u21c9"},"\\rightleftarrows":{font:"ams",group:"rel",replace:"\u21c4"},"\\twoheadrightarrow":{font:"ams",group:"rel",replace:"\u21a0"},"\\rightarrowtail":{font:"ams",group:"rel",replace:"\u21a3"},"\\looparrowright":{font:"ams",group:"rel",replace:"\u21ac"},"\\curvearrowright":{font:"ams",group:"rel",replace:"\u21b7"},"\\circlearrowright":{font:"ams",group:"rel",replace:"\u21bb"},"\\Rsh":{font:"ams",group:"rel",replace:"\u21b1"},"\\downdownarrows":{font:"ams",group:"rel",replace:"\u21ca"},"\\upharpoonright":{font:"ams",group:"rel",replace:"\u21be"},"\\downharpoonright":{font:"ams",group:"rel",replace:"\u21c2"},"\\rightsquigarrow":{font:"ams",group:"rel",replace:"\u21dd"},"\\leadsto":{font:"ams",group:"rel",replace:"\u21dd"},"\\Rrightarrow":{font:"ams",group:"rel",replace:"\u21db"},"\\restriction":{font:"ams",group:"rel",replace:"\u21be"},"`":{font:"main",group:"textord",replace:"\u2018"},"\\$":{font:"main",group:"textord",replace:"$"},"\\%":{font:"main",group:"textord",replace:"%"},"\\_":{font:"main",group:"textord",replace:"_"},"\\angle":{font:"main",group:"textord",replace:"\u2220"},"\\infty":{font:"main",group:"textord",replace:"\u221e"},"\\prime":{font:"main",group:"textord",replace:"\u2032"},"\\triangle":{font:"main",group:"textord",replace:"\u25b3"},"\\Gamma":{font:"main",group:"textord",replace:"\u0393"},"\\Delta":{font:"main",group:"textord",replace:"\u0394"},"\\Theta":{font:"main",group:"textord",replace:"\u0398"},"\\Lambda":{font:"main",group:"textord",replace:"\u039b"},"\\Xi":{font:"main",group:"textord",replace:"\u039e"},"\\Pi":{font:"main",group:"textord",replace:"\u03a0"},"\\Sigma":{font:"main",group:"textord",replace:"\u03a3"},"\\Upsilon":{font:"main",group:"textord",replace:"\u03a5"},"\\Phi":{font:"main",group:"textord",replace:"\u03a6"},"\\Psi":{font:"main",group:"textord",replace:"\u03a8"},"\\Omega":{font:"main",group:"textord",replace:"\u03a9"},"\\neg":{font:"main",group:"textord",replace:"\xac"},"\\lnot":{font:"main",group:"textord",replace:"\xac"},"\\top":{font:"main",group:"textord",replace:"\u22a4"},"\\bot":{font:"main",group:"textord",replace:"\u22a5"},"\\emptyset":{font:"main",group:"textord",replace:"\u2205"},"\\varnothing":{font:"ams",group:"textord",replace:"\u2205"},"\\alpha":{font:"main",group:"mathord",replace:"\u03b1"},"\\beta":{font:"main",group:"mathord",replace:"\u03b2"},"\\gamma":{font:"main",group:"mathord",replace:"\u03b3"},"\\delta":{font:"main",group:"mathord",replace:"\u03b4"},"\\epsilon":{font:"main",group:"mathord",replace:"\u03f5"},"\\zeta":{font:"main",group:"mathord",replace:"\u03b6"},"\\eta":{font:"main",group:"mathord",replace:"\u03b7"},"\\theta":{font:"main",group:"mathord",replace:"\u03b8"},"\\iota":{font:"main",group:"mathord",replace:"\u03b9"},"\\kappa":{font:"main",group:"mathord",replace:"\u03ba"},"\\lambda":{font:"main",group:"mathord",replace:"\u03bb"},"\\mu":{font:"main",group:"mathord",replace:"\u03bc"},"\\nu":{font:"main",group:"mathord",replace:"\u03bd"},"\\xi":{font:"main",group:"mathord",replace:"\u03be"},"\\omicron":{font:"main",group:"mathord",replace:"o"},"\\pi":{font:"main",group:"mathord",replace:"\u03c0"},"\\rho":{font:"main",group:"mathord",replace:"\u03c1"},"\\sigma":{font:"main",group:"mathord",replace:"\u03c3"},"\\tau":{font:"main",group:"mathord",replace:"\u03c4"},"\\upsilon":{font:"main",group:"mathord",replace:"\u03c5"},"\\phi":{font:"main",group:"mathord",replace:"\u03d5"},"\\chi":{font:"main",group:"mathord",replace:"\u03c7"},"\\psi":{font:"main",group:"mathord",replace:"\u03c8"},"\\omega":{font:"main",group:"mathord",replace:"\u03c9" -},"\\varepsilon":{font:"main",group:"mathord",replace:"\u03b5"},"\\vartheta":{font:"main",group:"mathord",replace:"\u03d1"},"\\varpi":{font:"main",group:"mathord",replace:"\u03d6"},"\\varrho":{font:"main",group:"mathord",replace:"\u03f1"},"\\varsigma":{font:"main",group:"mathord",replace:"\u03c2"},"\\varphi":{font:"main",group:"mathord",replace:"\u03c6"},"*":{font:"main",group:"bin",replace:"\u2217"},"+":{font:"main",group:"bin"},"-":{font:"main",group:"bin",replace:"\u2212"},"\\cdot":{font:"main",group:"bin",replace:"\u22c5"},"\\circ":{font:"main",group:"bin",replace:"\u2218"},"\\div":{font:"main",group:"bin",replace:"\xf7"},"\\pm":{font:"main",group:"bin",replace:"\xb1"},"\\times":{font:"main",group:"bin",replace:"\xd7"},"\\cap":{font:"main",group:"bin",replace:"\u2229"},"\\cup":{font:"main",group:"bin",replace:"\u222a"},"\\setminus":{font:"main",group:"bin",replace:"\u2216"},"\\land":{font:"main",group:"bin",replace:"\u2227"},"\\lor":{font:"main",group:"bin",replace:"\u2228"},"\\wedge":{font:"main",group:"bin",replace:"\u2227"},"\\vee":{font:"main",group:"bin",replace:"\u2228"},"\\surd":{font:"main",group:"textord",replace:"\u221a"},"(":{font:"main",group:"open"},"[":{font:"main",group:"open"},"\\langle":{font:"main",group:"open",replace:"\u27e8"},"\\lvert":{font:"main",group:"open",replace:"\u2223"},")":{font:"main",group:"close"},"]":{font:"main",group:"close"},"?":{font:"main",group:"close"},"!":{font:"main",group:"close"},"\\rangle":{font:"main",group:"close",replace:"\u27e9"},"\\rvert":{font:"main",group:"close",replace:"\u2223"},"=":{font:"main",group:"rel"},"<":{font:"main",group:"rel"},">":{font:"main",group:"rel"},":":{font:"main",group:"rel"},"\\approx":{font:"main",group:"rel",replace:"\u2248"},"\\cong":{font:"main",group:"rel",replace:"\u2245"},"\\ge":{font:"main",group:"rel",replace:"\u2265"},"\\geq":{font:"main",group:"rel",replace:"\u2265"},"\\gets":{font:"main",group:"rel",replace:"\u2190"},"\\in":{font:"main",group:"rel",replace:"\u2208"},"\\notin":{font:"main",group:"rel",replace:"\u2209"},"\\subset":{font:"main",group:"rel",replace:"\u2282"},"\\supset":{font:"main",group:"rel",replace:"\u2283"},"\\subseteq":{font:"main",group:"rel",replace:"\u2286"},"\\supseteq":{font:"main",group:"rel",replace:"\u2287"},"\\nsubseteq":{font:"ams",group:"rel",replace:"\u2288"},"\\nsupseteq":{font:"ams",group:"rel",replace:"\u2289"},"\\models":{font:"main",group:"rel",replace:"\u22a8"},"\\leftarrow":{font:"main",group:"rel",replace:"\u2190"},"\\le":{font:"main",group:"rel",replace:"\u2264"},"\\leq":{font:"main",group:"rel",replace:"\u2264"},"\\ne":{font:"main",group:"rel",replace:"\u2260"},"\\neq":{font:"main",group:"rel",replace:"\u2260"},"\\rightarrow":{font:"main",group:"rel",replace:"\u2192"},"\\to":{font:"main",group:"rel",replace:"\u2192"},"\\ngeq":{font:"ams",group:"rel",replace:"\u2271"},"\\nleq":{font:"ams",group:"rel",replace:"\u2270"},"\\!":{font:"main",group:"spacing"},"\\ ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"},"\\,":{font:"main",group:"spacing"},"\\:":{font:"main",group:"spacing"},"\\;":{font:"main",group:"spacing"},"\\enspace":{font:"main",group:"spacing"},"\\qquad":{font:"main",group:"spacing"},"\\quad":{font:"main",group:"spacing"},"\\space":{font:"main",group:"spacing",replace:"\xa0"},",":{font:"main",group:"punct"},";":{font:"main",group:"punct"},"\\colon":{font:"main",group:"punct",replace:":"},"\\barwedge":{font:"ams",group:"textord",replace:"\u22bc"},"\\veebar":{font:"ams",group:"textord",replace:"\u22bb"},"\\odot":{font:"main",group:"bin",replace:"\u2299"},"\\oplus":{font:"main",group:"bin",replace:"\u2295"},"\\otimes":{font:"main",group:"bin",replace:"\u2297"},"\\partial":{font:"main",group:"textord",replace:"\u2202"},"\\oslash":{font:"main",group:"bin",replace:"\u2298"},"\\circledcirc":{font:"ams",group:"textord",replace:"\u229a"},"\\boxdot":{font:"ams",group:"textord",replace:"\u22a1"},"\\bigtriangleup":{font:"main",group:"bin",replace:"\u25b3"},"\\bigtriangledown":{font:"main",group:"bin",replace:"\u25bd"},"\\dagger":{font:"main",group:"bin",replace:"\u2020"},"\\diamond":{font:"main",group:"bin",replace:"\u22c4"},"\\star":{font:"main",group:"bin",replace:"\u22c6"},"\\triangleleft":{font:"main",group:"bin",replace:"\u25c3"},"\\triangleright":{font:"main",group:"bin",replace:"\u25b9"},"\\{":{font:"main",group:"open",replace:"{"},"\\}":{font:"main",group:"close",replace:"}"},"\\lbrace":{font:"main",group:"open",replace:"{"},"\\rbrace":{font:"main",group:"close",replace:"}"},"\\lbrack":{font:"main",group:"open",replace:"["},"\\rbrack":{font:"main",group:"close",replace:"]"},"\\lfloor":{font:"main",group:"open",replace:"\u230a"},"\\rfloor":{font:"main",group:"close",replace:"\u230b"},"\\lceil":{font:"main",group:"open",replace:"\u2308"},"\\rceil":{font:"main",group:"close",replace:"\u2309"},"\\backslash":{font:"main",group:"textord",replace:"\\"},"|":{font:"main",group:"textord",replace:"\u2223"},"\\vert":{font:"main",group:"textord",replace:"\u2223"},"\\|":{font:"main",group:"textord",replace:"\u2225"},"\\Vert":{font:"main",group:"textord",replace:"\u2225"},"\\uparrow":{font:"main",group:"textord",replace:"\u2191"},"\\Uparrow":{font:"main",group:"textord",replace:"\u21d1"},"\\downarrow":{font:"main",group:"textord",replace:"\u2193"},"\\Downarrow":{font:"main",group:"textord",replace:"\u21d3"},"\\updownarrow":{font:"main",group:"textord",replace:"\u2195"},"\\Updownarrow":{font:"main",group:"textord",replace:"\u21d5"},"\\coprod":{font:"math",group:"op",replace:"\u2210"},"\\bigvee":{font:"math",group:"op",replace:"\u22c1"},"\\bigwedge":{font:"math",group:"op",replace:"\u22c0"},"\\biguplus":{font:"math",group:"op",replace:"\u2a04"},"\\bigcap":{font:"math",group:"op",replace:"\u22c2"},"\\bigcup":{font:"math",group:"op",replace:"\u22c3"},"\\int":{font:"math",group:"op",replace:"\u222b"},"\\intop":{font:"math",group:"op",replace:"\u222b"},"\\iint":{font:"math",group:"op",replace:"\u222c"},"\\iiint":{font:"math",group:"op",replace:"\u222d"},"\\prod":{font:"math",group:"op",replace:"\u220f"},"\\sum":{font:"math",group:"op",replace:"\u2211"},"\\bigotimes":{font:"math",group:"op",replace:"\u2a02"},"\\bigoplus":{font:"math",group:"op",replace:"\u2a01"},"\\bigodot":{font:"math",group:"op",replace:"\u2a00"},"\\oint":{font:"math",group:"op",replace:"\u222e"},"\\bigsqcup":{font:"math",group:"op",replace:"\u2a06"},"\\smallint":{font:"math",group:"op",replace:"\u222b"},"\\ldots":{font:"main",group:"punct",replace:"\u2026"},"\\cdots":{font:"main",group:"inner",replace:"\u22ef"},"\\ddots":{font:"main",group:"inner",replace:"\u22f1"},"\\vdots":{font:"main",group:"textord",replace:"\u22ee"},"\\acute":{font:"main",group:"accent",replace:"\xb4"},"\\grave":{font:"main",group:"accent",replace:"`"},"\\ddot":{font:"main",group:"accent",replace:"\xa8"},"\\tilde":{font:"main",group:"accent",replace:"~"},"\\bar":{font:"main",group:"accent",replace:"\xaf"},"\\breve":{font:"main",group:"accent",replace:"\u02d8"},"\\check":{font:"main",group:"accent",replace:"\u02c7"},"\\hat":{font:"main",group:"accent",replace:"^"},"\\vec":{font:"main",group:"accent",replace:"\u20d7"},"\\dot":{font:"main",group:"accent",replace:"\u02d9"},"\\imath":{font:"main",group:"mathord",replace:"\u0131"},"\\jmath":{font:"main",group:"mathord",replace:"\u0237"}},text:{"\\ ":{font:"main",group:"spacing",replace:"\xa0"}," ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"}}};var a='0123456789/@."';for(var r=0;r":">","<":"<",'"':""","'":"'"};var n=/[&><"']/g;function g(e){return c[e]}function o(e){return(""+e).replace(n,g)}var d;if(typeof document!=="undefined"){var w=document.createElement("span");if("textContent"in w){d=function(e,t){e.textContent=t}}else{d=function(e,t){e.innerText=t}}}function u(e){d(e,"")}t.exports={contains:r,deflt:l,escape:o,hyphenate:p,indexOf:a,setTextContent:d,clearNode:u}},{}]},{},[1])(1)}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}(this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=63)}([function(e,t,r){"use strict";var n=r(57),a=r.n(n),i=r(18),o=r.n(i),s=r(12),l=r(30),u=r(28),c=r(5),h=r(13),p=r(19),m=["\\imath","\u0131","\\jmath","\u0237","\\pounds","\\mathsterling","\\textsterling","\xa3"],d=function(e,t,r){return u.a[r][e]&&u.a[r][e].replace&&(e=u.a[r][e].replace),{value:e,metrics:l.a.getCharacterMetrics(e,t,r)}},f=function(e,t,r,n,a){var i=d(e,t,r),o=i.metrics;e=i.value;var l=void 0;if(o){var u=o.italic;"text"===r&&(u=0),l=new s.a.symbolNode(e,o.height,o.depth,u,o.skew,o.width,a)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+e+"' in style '"+t+"'"),l=new s.a.symbolNode(e,0,0,0,0,0,a);if(n){l.maxFontSize=n.sizeMultiplier,n.style.isTight()&&l.classes.push("mtight");var c=n.getColor();c&&(l.style.color=c)}return l},v=function(e,t,r,n,a){if("mathord"===a){var i=g(e,t,r,n);return f(e,i.fontName,t,r,n.concat([i.fontClass]))}if("textord"===a){if("ams"===(u.a[t][e]&&u.a[t][e].font)){var o=x("amsrm",r.fontWeight,r.fontShape);return f(e,o,t,r,n.concat("amsrm",r.fontWeight,r.fontShape))}var s=x("textrm",r.fontWeight,r.fontShape);return f(e,s,t,r,n.concat(r.fontWeight,r.fontShape))}throw new Error("unexpected type: "+a+" in mathDefault")},g=function(e,t,r,n){return/[0-9]/.test(e.charAt(0))||c.a.contains(m,e)?{fontName:"Main-Italic",fontClass:"mainit"}:{fontName:"Math-Italic",fontClass:"mathit"}},y=function(e){var t=0,r=0,n=0,a=!0,i=!1,s=void 0;try{for(var l,u=o()(e.children);!(a=(l=u.next()).done);a=!0){var c=l.value;c.height>t&&(t=c.height),c.depth>r&&(r=c.depth),c.maxFontSize>n&&(n=c.maxFontSize)}}catch(e){i=!0,s=e}finally{try{!a&&u.return&&u.return()}finally{if(i)throw s}}e.height=t,e.depth=r,e.maxFontSize=n},b=function(e,t,r,n){var a=new s.a.span(e,t,r,n);return y(a),a},x=function(e,t,r){return w(e)+"-"+k(t,r)},w=function(e){var t="";switch(e){case"amsrm":t="AMS";break;case"textrm":t="Main";break;case"textsf":t="SansSerif";break;case"texttt":t="Typewriter";break;default:throw new Error("Invalid font provided: "+e)}return t},k=function(e,t){var r="";return"textbf"===e&&(r+="Bold"),"textit"===t&&(r+="Italic"),r||"Regular"},M={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},S={vec:["vec",.471,.714]};t.a={fontMap:M,makeSymbol:f,mathsym:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return r&&r.fontFamily&&"boldsymbol"===r.fontFamily&&d(e,"Main-Bold",t).metrics?f(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===u.a[t][e].font?f(e,"Main-Regular",t,r,n):f(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:b,makeLineSpan:function(e,t){var r=t.fontMetrics().defaultRuleThickness,n=h.a.ruleSpan(e,r,t);return n.height=r,n.style.height=5*n.height+"em",n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new s.a.anchor(e,t,r,n);return y(a),a},makeFragment:function(e){var t=new s.a.documentFragment(e);return y(t),t},makeVList:function(e,t){var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i"}},{key:"toText",value:function(){return"mspace"===this.type?"0.16667em"===this.attributes.width?"\u2006":" ":this.children.map(function(e){return e.toText()}).join("")}}]),e}(),h=function(){function e(t){o()(this,e),this.text=t}return l()(e,[{key:"toNode",value:function(){return document.createTextNode(this.text)}},{key:"toMarkup",value:function(){return u.a.escape(this.text)}},{key:"toText",value:function(){return this.text}}]),e}();t.a={MathNode:c,TextNode:h}},function(e,t,r){"use strict";r.d(t,"e",function(){return h}),r.d(t,"d",function(){return m}),r.d(t,"a",function(){return f}),r.d(t,"b",function(){return v}),t.c=function(e,t,r){var a=f(e,r),o=new i.a.MathNode("mrow",a),s=new i.a.MathNode("annotation",[new i.a.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var l=new i.a.MathNode("semantics",[o,s]),u=new i.a.MathNode("math",[l]);return n.a.makeSpan(["katex-mathml"],[u])};var n=r(0),a=r(30),i=r(1),o=r(6),s=r(9),l=r(28),u=r(5),c=r(13),h=function(e,t){return l.a[t][e]&&l.a[t][e].replace&&(e=l.a[t][e].replace),new i.a.TextNode(e)},p=function(e,t){var r=t.fontFamily;if(!r)return null;var i=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"bold-italic";var o=e.value;if(u.a.contains(["\\imath","\\jmath"],o))return null;l.a[i][o]&&l.a[i][o].replace&&(o=l.a[i][o].replace);var s=n.a.fontMap[r].fontName;return a.a.getCharacterMetrics(o,s,i)?n.a.fontMap[r].variant:null},m={},d={mi:"italic",mn:"normal",mtext:"normal"};m.mathord=function(e,t){var r=new i.a.MathNode("mi",[h(e.value,e.mode)]),n=p(e,t)||"italic";return n!==d[r.type]&&r.setAttribute("mathvariant",n),r},m.textord=function(e,t){var r=h(e.value,e.mode),n=p(e,t)||"normal",a=void 0;return a="text"===e.mode?new i.a.MathNode("mtext",[r]):/[0-9]/.test(e.value)?new i.a.MathNode("mn",[r]):"\\prime"===e.value?new i.a.MathNode("mo",[r]):new i.a.MathNode("mi",[r]),n!==d[a.type]&&a.setAttribute("mathvariant",n),a},m.bin=function(e,t){var r=new i.a.MathNode("mo",[h(e.value,e.mode)]),n=p(e,t);return"bold-italic"===n&&r.setAttribute("mathvariant",n),r},m.rel=function(e){return new i.a.MathNode("mo",[h(e.value,e.mode)])},m.open=function(e){return new i.a.MathNode("mo",[h(e.value,e.mode)])},m.close=function(e){return new i.a.MathNode("mo",[h(e.value,e.mode)])},m.inner=function(e){return new i.a.MathNode("mo",[h(e.value,e.mode)])},m.punct=function(e){var t=new i.a.MathNode("mo",[h(e.value,e.mode)]);return t.setAttribute("separator","true"),t},m.ordgroup=function(e,t){var r=f(e.value,t);return new i.a.MathNode("mrow",r)},m.supsub=function(e,t){var r=!1,n=void 0;e.value.base&&"horizBrace"===e.value.base.value.type&&!!e.value.sup===e.value.base.value.isOver&&(r=!0,n=e.value.base.value.isOver);var a=[v(e.value.base,t,!0)];e.value.sub&&a.push(v(e.value.sub,t,!0)),e.value.sup&&a.push(v(e.value.sup,t,!0));var o=void 0;if(r)o=n?"mover":"munder";else if(e.value.sub)if(e.value.sup){var l=e.value.base;o=l&&l.value.limits&&t.style===s.a.DISPLAY?"munderover":"msubsup"}else{var u=e.value.base;o=u&&u.value.limits&&t.style===s.a.DISPLAY?"munder":"msub"}else{var c=e.value.base;o=c&&c.value.limits&&t.style===s.a.DISPLAY?"mover":"msup"}return new i.a.MathNode(o,a)},m.spacing=function(e){var t=void 0;return"\\ "===e.value||"\\space"===e.value||" "===e.value||"~"===e.value?t=new i.a.MathNode("mtext",[new i.a.TextNode("\xa0")]):(t=new i.a.MathNode("mspace")).setAttribute("width",n.a.spacingFunctions[e.value].size),t},m.horizBrace=function(e,t){var r=c.a.mathMLnode(e.value.label);return new i.a.MathNode(e.value.isOver?"mover":"munder",[v(e.value.base,t),r])},m.xArrow=function(e,t){var r=c.a.mathMLnode(e.value.label),n=void 0,a=void 0;if(e.value.body){var o=v(e.value.body,t);e.value.below?(a=v(e.value.below,t),n=new i.a.MathNode("munderover",[r,a,o])):n=new i.a.MathNode("mover",[r,o])}else e.value.below?(a=v(e.value.below,t),n=new i.a.MathNode("munder",[r,a])):n=new i.a.MathNode("mover",[r]);return n},m.mclass=function(e,t){var r=f(e.value.value,t);return new i.a.MathNode("mstyle",r)},m.raisebox=function(e,t){var r=new i.a.MathNode("mpadded",[v(e.value.body,t)]),n=e.value.dy.value.number+e.value.dy.value.unit;return r.setAttribute("voffset",n),r};var f=function(e,t){for(var r=[],n=0;n2&&void 0!==arguments[2]&&arguments[2];if(!e)return new i.a.MathNode("mrow");if(m[e.type]){var n=m[e.type](e,t);return r&&"mrow"===n.type&&1===n.children.length?n.children[0]:n}throw new o.a("Got group of unknown type: '"+e.type+"'")}},function(e,t,r){"use strict";r.d(t,"a",function(){return i}),t.b=function(e){for(var t=e.type,r=e.names,o=e.props,s=e.handler,l=e.htmlBuilder,u=e.mathmlBuilder,c={numArgs:o.numArgs,argTypes:o.argTypes,greediness:void 0===o.greediness?1:o.greediness,allowedInText:!!o.allowedInText,allowedInMath:void 0===o.allowedInMath||o.allowedInMath,numOptionalArgs:o.numOptionalArgs||0,infix:!!o.infix,handler:s},h=0;h3&&void 0!==arguments[3]?arguments[3]:[null,null],a=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:"right";if((t instanceof c.a.documentFragment||t instanceof c.a.anchor)&&t.children.length){if("right"===r)return e(t.children[t.children.length-1]);if("left"===r)return e(t.children[0])}return t},b=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"right";return e?(e=y(e,t),p.a.contains(["mord","mop","mbin","mrel","mopen","mclose","mpunct","minner"],e.classes[0])?e.classes[0]:null):null},x=function(e){return e=y(e,"left"),p.a.contains(e.classes,"mtight")},w=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return f(t.concat(r))},k={mathord:function(e,t){return u.a.makeOrd(e,t,"mathord")},textord:function(e,t){return u.a.makeOrd(e,t,"textord")},bin:function(e,t){return u.a.mathsym(e.value,e.mode,t,["mbin"])},rel:function(e,t){return u.a.mathsym(e.value,e.mode,t,["mrel"])},open:function(e,t){return u.a.mathsym(e.value,e.mode,t,["mopen"])},close:function(e,t){return u.a.mathsym(e.value,e.mode,t,["mclose"])},inner:function(e,t){return u.a.mathsym(e.value,e.mode,t,["minner"])},punct:function(e,t){return u.a.mathsym(e.value,e.mode,t,["mpunct"])},ordgroup:function(e,t){return f(["mord"],g(e.value,t,!0),t)}};k.supsub=function(e,t){if(function(e,t){if(e.value.base){var r=e.value.base;return"op"===r.type?r.value.limits&&(t.style.size===l.a.DISPLAY.size||r.value.alwaysHandleSupSub):"accent"===r.type?p.a.isCharacterBox(r.value.base):"horizBrace"===r.type?!e.value.sub===r.value.isOver:null}return!1}(e,t))return k[e.value.base.type](e,t);var r=M(e.value.base,t),n=void 0,a=void 0,i=t.fontMetrics(),o=void 0,s=0,h=0;e.value.sup&&(o=t.havingStyle(t.style.sup()),n=M(e.value.sup,o,t),p.a.isCharacterBox(e.value.base)||(s=r.height-o.fontMetrics().supDrop*o.sizeMultiplier/t.sizeMultiplier)),e.value.sub&&(o=t.havingStyle(t.style.sub()),a=M(e.value.sub,o,t),p.a.isCharacterBox(e.value.base)||(h=r.depth+o.fontMetrics().subDrop*o.sizeMultiplier/t.sizeMultiplier));var m=void 0;m=t.style===l.a.DISPLAY?i.sup1:t.style.cramped?i.sup3:i.sup2;var d=t.sizeMultiplier,v=.5/i.ptPerEm/d+"em",g=void 0;if(e.value.sup)if(e.value.sub){s=Math.max(s,m,n.depth+.25*i.xHeight),h=Math.max(h,i.sub2);var y=i.defaultRuleThickness;if(s-n.depth-(a.height-h)<4*y){h=4*y-(s-n.depth)+a.height;var x=.8*i.xHeight-(s-n.depth);x>0&&(s+=x,h-=x)}var w=[{type:"elem",elem:a,shift:h,marginRight:v},{type:"elem",elem:n,shift:-s,marginRight:v}];r instanceof c.a.symbolNode&&(w[0].marginLeft=-r.italic+"em"),g=u.a.makeVList({positionType:"individualShift",children:w},t)}else s=Math.max(s,m,n.depth+.25*i.xHeight),g=u.a.makeVList({positionType:"shift",positionData:-s,children:[{type:"elem",elem:n,marginRight:v}]},t);else{h=Math.max(h,i.sub1,a.height-.8*i.xHeight);var S=[{type:"elem",elem:a,marginRight:v}];r instanceof c.a.symbolNode&&(S[0].marginLeft=-r.italic+"em"),g=u.a.makeVList({positionType:"shift",positionData:h,children:S},t)}var z=b(r)||"mord";return f([z],[r,f(["msupsub"],[g])],t)},k.spacing=function(e,t){return"\\ "===e.value||"\\space"===e.value||" "===e.value||"~"===e.value?"text"===e.mode?u.a.makeOrd(e,t,"textord"):f(["mspace"],[u.a.mathsym(e.value,e.mode,t)],t):f(["mspace",u.a.spacingFunctions[e.value].className],[],t)},k.horizBrace=function(e,t){var r=t.style,n="supsub"===e.type,a=void 0,i=void 0;n&&(e.value.sup?(i=t.havingStyle(r.sup()),a=M(e.value.sup,i,t)):(i=t.havingStyle(r.sub()),a=M(e.value.sub,i,t)),e=e.value.base);var o=M(e.value.base,t.havingBaseStyle(l.a.DISPLAY)),s=m.a.svgSpan(e,t),c=void 0;if(e.value.isOver?(c=u.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(c=u.a.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),n){var h=f(["mord",e.value.isOver?"mover":"munder"],[c],t);c=e.value.isOver?u.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:h},{type:"kern",size:.2},{type:"elem",elem:a}]},t):u.a.makeVList({positionType:"bottom",positionData:h.depth+.2+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:h}]},t)}return f(["mord",e.value.isOver?"mover":"munder"],[c],t)},k.xArrow=function(e,t){var r=t.style,n=t.havingStyle(r.sup()),a=M(e.value.body,n,t);a.classes.push("x-arrow-pad");var i=void 0;e.value.below&&(n=t.havingStyle(r.sub()),(i=M(e.value.below,n,t)).classes.push("x-arrow-pad"));var o=m.a.svgSpan(e,t),s=-t.fontMetrics().axisHeight+.5*o.height,l=-t.fontMetrics().axisHeight-.5*o.height-.111;"\\xleftequilibrium"===e.value.label&&(l-=a.depth);var c=void 0;if(e.value.below){var h=-t.fontMetrics().axisHeight+i.height+.5*o.height+.111;c=u.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:l},{type:"elem",elem:o,shift:s},{type:"elem",elem:i,shift:h}]},t)}else c=u.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:l},{type:"elem",elem:o,shift:s}]},t);return c.children[0].children[0].children[1].classes.push("svg-align"),f(["mrel","x-arrow"],[c],t)},k.mclass=function(e,t){var r=g(e.value.value,t,!0);return f([e.value.mclass],r,t)},k.raisebox=function(e,t){var r=k.sizing({value:{value:[{type:"text",value:{body:e.value.value,font:"mathrm"}}],size:6}},t),n=Object(h.a)(e.value.dy.value,t);return u.a.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},t)};var M=function(e,t,r){if(!e)return f();if(k[e.type]){var n=k[e.type](e,t);if(r&&t.size!==r.size){n=f(t.sizingClasses(r),[n],t);var a=t.sizeMultiplier/r.sizeMultiplier;n.height*=a,n.depth*=a}return n}throw new s.a("Got group of unknown type: '"+e.type+"'")}},function(e,t,r){"use strict";var n=Array.prototype.indexOf,a=function(e,t){if(null==e)return-1;if(n&&e.indexOf===n)return e.indexOf(t);for(var r=e.length,a=0;a":">","<":"<",'"':""","'":"'"},s=/[&><"']/g;var l=void 0;if("undefined"!=typeof document){var u=document.createElement("span");l="textContent"in u?function(e,t){e.textContent=t}:function(e,t){e.innerText=t}}var c=function e(t){return!!t&&("ordgroup"===t.type?1===t.value.length?e(t.value[0]):t:"color"===t.type?1===t.value.value.length?e(t.value.value[0]):t:"font"===t.type?e(t.value.body):t)};t.a={contains:function(e,t){return-1!==a(e,t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(s,function(e){return o[e]})},hyphenate:function(e){return e.replace(i,"-$1").toLowerCase()},indexOf:a,setTextContent:l,clearNode:function(e){l(e,"")},getBaseElem:c,isCharacterBox:function(e){var t=c(e);return"mathord"===t.type||"textord"===t.type||"bin"===t.type||"rel"===t.type||"inner"===t.type||"open"===t.type||"close"===t.type||"punct"===t.type}}},function(e,t,r){"use strict";var n=r(7),a=r.n(n),i=(r(14),r(27),function e(t,r){a()(this,e);var n="KaTeX parse error: "+t,i=void 0,o=r&&r.loc;if(o&&o.start<=o.end){var s=o.lexer.input;i=o.start;var l=o.end;i===s.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=s.slice(i,l).replace(/[^]/g,"$&\u0332");n+=(i>15?"\u2026"+s.slice(i-15,i):s.slice(0,i))+u+(l+15=2}}]),e}(),l=[new s(0,0,!1),new s(1,0,!0),new s(2,1,!1),new s(3,1,!0),new s(4,2,!1),new s(5,2,!0),new s(6,3,!1),new s(7,3,!0)],u=[4,5,4,5,6,7,6,7],c=[5,5,5,5,7,7,7,7],h=[2,3,4,5,6,7,6,7],p=[3,3,5,5,7,7,7,7],m=[1,1,3,3,5,5,7,7],d=[0,1,2,3,2,3,2,3];t.a={DISPLAY:l[0],TEXT:l[2],SCRIPT:l[4],SCRIPTSCRIPT:l[6]}},function(e,t,r){"use strict";t.__esModule=!0;var n,a=r(73),i=(n=a)&&n.__esModule?n:{default:n};t.default=function(){function e(e,t){for(var r=0;r=0;t--)e[t]||e.splice(t,1);return e.join(" ")},f=function(){function e(t,r,n,a){if(l()(this,e),this.classes=t||[],this.children=r||[],this.height=0,this.depth=0,this.maxFontSize=0,this.style=o()({},a),this.attributes={},n){n.style.isTight()&&this.classes.push("mtight");var i=n.getColor();i&&(this.style.color=i)}}return c()(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"tryCombine",value:function(e){return!1}},{key:"toNode",value:function(){var e=document.createElement("span");e.className=d(this.classes);for(var t in this.style)Object.prototype.hasOwnProperty.call(this.style,t)&&(e.style[t]=this.style[t]);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);for(var n=0;n0||d(this.classes)!==d(t.classes)||this.skew!==t.skew||this.maxFontSize!==t.maxFontSize)return!1;for(var r in this.style)if(this.style.hasOwnProperty(r)&&this.style[r]!==t.style[r])return!1;for(var n in t.style)if(t.style.hasOwnProperty(n)&&this.style[n]!==t.style[n])return!1;return this.value+=t.value,this.height=Math.max(this.height,t.height),this.depth=Math.max(this.depth,t.depth),this.italic=t.italic,!0}},{key:"toNode",value:function(){var e=document.createTextNode(this.value),t=null;this.italic>0&&((t=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((t=t||document.createElement("span")).className=d(this.classes));for(var r in this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e}},{key:"toMarkup",value:function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=p.a.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+p.a.escape(r)+'"');var a=p.a.escape(this.value);return e?(t+=">",t+=a,t+=""):a}}]),e}(),x=function(){function e(t,r){l()(this,e),this.children=t||[],this.attributes=r||{},this.height=0,this.depth=0,this.maxFontSize=0}return c()(e,[{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""}}]),e}(),k=function(){function e(t){l()(this,e),this.attributes=t||{}}return c()(e,[{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}},{key:"toMarkup",value:function(){var e="5)u="widehat"===n?420:312,r="widehat"===n?2364:2340,m="widehat"===n?.42:.34,p=("widehat"===n?"widehat":"tilde")+"4";else{var d=[1,1,2,2,3,3][s];"widehat"===n?(r=[0,1062,2364,2364,2364][d],u=[0,239,300,360,420][d],m=[0,.24,.3,.3,.36,.42][d],p="widehat"+d):(r=[0,600,1033,2339,2340][d],u=[0,260,286,306,312][d],m=[0,.26,.286,.3,.306,.34][d],p="tilde"+d)}var f=new i.a.pathNode(p),v=new i.a.svgNode([f],{width:"100%",height:m+"em",viewBox:"0 0 "+r+" "+u,preserveAspectRatio:"none"});return{span:o.a.makeSpan([],[v],t),minWidth:0,height:m}}var g=[],y=a()(c[n],4),b=y[0],x=y[1],w=y[2],k=y[3],M=w/1e3,S=b.length,z=void 0,O=void 0;if(1===S)z=["hide-tail"],O=[k];else if(2===S)z=["halfarrow-left","halfarrow-right"],O=["xMinYMin","xMaxYMin"];else{if(3!==S)throw new Error("Correct katexImagesData or update code here to support\n "+S+" children.");z=["brace-left","brace-center","brace-right"],O=["xMinYMin","xMidYMin","xMaxYMin"]}for(var T=0;T0&&(n.style.minWidth=s+"em"),n}}},function(e,t,r){"use strict";var n=r(7),a=r.n(n),i=r(31);t.a=function e(t,r,n,o,s){a()(this,e),this.type=t,this.value=r,this.mode=n,this.loc=i.a.range(o,s)}},function(e,t,r){var n=r(22),a=r(70),i=r(71),o=Object.defineProperty;t.f=r(23)?Object.defineProperty:function(e,t,r){if(n(e),t=i(t,!0),n(r),a)try{return o(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t){var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){e.exports={}},function(e,t,r){e.exports={default:r(103),__esModule:!0}},function(e,t,r){"use strict";r.d(t,"b",function(){return o}),r.d(t,"a",function(){return s});var n=r(6),a=(r(43),{pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375}),i={ex:!0,em:!0,mu:!0},o=function(e){return"string"!=typeof e&&(e=e.unit),e in a||e in i||"ex"===e},s=function(e,t){var r=void 0;if(e.unit in a)r=a[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var i=void 0;if(i=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=i.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n.a("Invalid unit: '"+e.unit+"'");r=i.fontMetrics().quad}i!==t&&(r*=i.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(20);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t,r){e.exports=!r(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,r){var n=r(16),a=r(8),i=r(47),o=r(26),s="prototype",l=function(e,t,r){var u,c,h,p=e&l.F,m=e&l.G,d=e&l.S,f=e&l.P,v=e&l.B,g=e&l.W,y=m?a:a[t]||(a[t]={}),b=y[s],x=m?n:d?n[t]:(n[t]||{})[s];m&&(r=t);for(u in r)(c=!p&&x&&void 0!==x[u])&&u in y||(h=c?x[u]:r[u],y[u]=m&&"function"!=typeof x[u]?r[u]:v&&c?i(h,n):g&&x[u]==h?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[s]=e[s],t}(h):f&&"function"==typeof h?i(Function.call,h):h,f&&((y.virtual||(y.virtual={}))[u]=h,e&l.R&&b&&!b[u]&&o(b,u,h)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,r){var n=r(15),a=r(33);e.exports=r(23)?function(e,t,r){return n.f(e,t,a(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){"use strict";r.d(t,"a",function(){return l});var n=r(7),a=r.n(n),i=r(10),o=r.n(i),s=r(31),l=function(){function e(t,r){a()(this,e),this.text=t,this.loc=r}return o()(e,[{key:"range",value:function(t,r){return new e(r,s.a.range(this,t))}}]),e}()},function(e,t,r){"use strict";var n={math:{},text:{}};function a(e,t,r,a,i,o){n[e][i]={font:t,group:r,replace:a},o&&a&&(n[e][a]=n[e][i])}t.a=n;var i="math",o="text",s="main",l="ams",u="accent",c="bin",h="close",p="inner",m="mathord",d="op",f="open",v="punct",g="rel",y="spacing",b="textord";a(i,s,g,"\u2261","\\equiv",!0),a(i,s,g,"\u227a","\\prec",!0),a(i,s,g,"\u227b","\\succ",!0),a(i,s,g,"\u223c","\\sim",!0),a(i,s,g,"\u22a5","\\perp"),a(i,s,g,"\u2aaf","\\preceq",!0),a(i,s,g,"\u2ab0","\\succeq",!0),a(i,s,g,"\u2243","\\simeq",!0),a(i,s,g,"\u2223","\\mid",!0),a(i,s,g,"\u226a","\\ll"),a(i,s,g,"\u226b","\\gg",!0),a(i,s,g,"\u224d","\\asymp",!0),a(i,s,g,"\u2225","\\parallel"),a(i,s,g,"\u22c8","\\bowtie",!0),a(i,s,g,"\u2323","\\smile",!0),a(i,s,g,"\u2291","\\sqsubseteq",!0),a(i,s,g,"\u2292","\\sqsupseteq",!0),a(i,s,g,"\u2250","\\doteq",!0),a(i,s,g,"\u2322","\\frown",!0),a(i,s,g,"\u220b","\\ni",!0),a(i,s,g,"\u221d","\\propto",!0),a(i,s,g,"\u22a2","\\vdash",!0),a(i,s,g,"\u22a3","\\dashv",!0),a(i,s,g,"\u220b","\\owns"),a(i,s,v,".","\\ldotp"),a(i,s,v,"\u22c5","\\cdotp"),a(i,s,b,"#","\\#"),a(o,s,b,"#","\\#"),a(i,s,b,"&","\\&"),a(o,s,b,"&","\\&"),a(i,s,b,"\u2135","\\aleph",!0),a(i,s,b,"\u2200","\\forall",!0),a(i,s,b,"\u210f","\\hbar"),a(i,s,b,"\u2203","\\exists",!0),a(i,s,b,"\u2207","\\nabla",!0),a(i,s,b,"\u266d","\\flat",!0),a(i,s,b,"\u2113","\\ell",!0),a(i,s,b,"\u266e","\\natural",!0),a(i,s,b,"\u2663","\\clubsuit",!0),a(i,s,b,"\u2118","\\wp",!0),a(i,s,b,"\u266f","\\sharp",!0),a(i,s,b,"\u2662","\\diamondsuit",!0),a(i,s,b,"\u211c","\\Re",!0),a(i,s,b,"\u2661","\\heartsuit",!0),a(i,s,b,"\u2111","\\Im",!0),a(i,s,b,"\u2660","\\spadesuit",!0),a(o,s,b,"\xa7","\\S",!0),a(o,s,b,"\xb6","\\P",!0),a(i,s,b,"\u2020","\\dag"),a(o,s,b,"\u2020","\\dag"),a(o,s,b,"\u2020","\\textdagger"),a(i,s,b,"\u2021","\\ddag"),a(o,s,b,"\u2021","\\ddag"),a(o,s,b,"\u2020","\\textdaggerdbl"),a(i,s,h,"\u23b1","\\rmoustache"),a(i,s,f,"\u23b0","\\lmoustache"),a(i,s,h,"\u27ef","\\rgroup"),a(i,s,f,"\u27ee","\\lgroup"),a(i,s,c,"\u2213","\\mp",!0),a(i,s,c,"\u2296","\\ominus",!0),a(i,s,c,"\u228e","\\uplus",!0),a(i,s,c,"\u2293","\\sqcap",!0),a(i,s,c,"\u2217","\\ast"),a(i,s,c,"\u2294","\\sqcup",!0),a(i,s,c,"\u25ef","\\bigcirc"),a(i,s,c,"\u2219","\\bullet"),a(i,s,c,"\u2021","\\ddagger"),a(i,s,c,"\u2240","\\wr",!0),a(i,s,c,"\u2a3f","\\amalg"),a(i,s,c,"&","\\And"),a(i,s,g,"\u27f5","\\longleftarrow",!0),a(i,s,g,"\u21d0","\\Leftarrow",!0),a(i,s,g,"\u27f8","\\Longleftarrow",!0),a(i,s,g,"\u27f6","\\longrightarrow",!0),a(i,s,g,"\u21d2","\\Rightarrow",!0),a(i,s,g,"\u27f9","\\Longrightarrow",!0),a(i,s,g,"\u2194","\\leftrightarrow",!0),a(i,s,g,"\u27f7","\\longleftrightarrow",!0),a(i,s,g,"\u21d4","\\Leftrightarrow",!0),a(i,s,g,"\u27fa","\\Longleftrightarrow",!0),a(i,s,g,"\u21a6","\\mapsto",!0),a(i,s,g,"\u27fc","\\longmapsto",!0),a(i,s,g,"\u2197","\\nearrow",!0),a(i,s,g,"\u21a9","\\hookleftarrow",!0),a(i,s,g,"\u21aa","\\hookrightarrow",!0),a(i,s,g,"\u2198","\\searrow",!0),a(i,s,g,"\u21bc","\\leftharpoonup",!0),a(i,s,g,"\u21c0","\\rightharpoonup",!0),a(i,s,g,"\u2199","\\swarrow",!0),a(i,s,g,"\u21bd","\\leftharpoondown",!0),a(i,s,g,"\u21c1","\\rightharpoondown",!0),a(i,s,g,"\u2196","\\nwarrow",!0),a(i,s,g,"\u21cc","\\rightleftharpoons",!0),a(i,l,g,"\u226e","\\nless",!0),a(i,l,g,"\ue010","\\nleqslant"),a(i,l,g,"\ue011","\\nleqq"),a(i,l,g,"\u2a87","\\lneq",!0),a(i,l,g,"\u2268","\\lneqq",!0),a(i,l,g,"\ue00c","\\lvertneqq"),a(i,l,g,"\u22e6","\\lnsim",!0),a(i,l,g,"\u2a89","\\lnapprox",!0),a(i,l,g,"\u2280","\\nprec",!0),a(i,l,g,"\u22e0","\\npreceq",!0),a(i,l,g,"\u22e8","\\precnsim",!0),a(i,l,g,"\u2ab9","\\precnapprox",!0),a(i,l,g,"\u2241","\\nsim",!0),a(i,l,g,"\ue006","\\nshortmid"),a(i,l,g,"\u2224","\\nmid",!0),a(i,l,g,"\u22ac","\\nvdash",!0),a(i,l,g,"\u22ad","\\nvDash",!0),a(i,l,g,"\u22ea","\\ntriangleleft"),a(i,l,g,"\u22ec","\\ntrianglelefteq",!0),a(i,l,g,"\u228a","\\subsetneq",!0),a(i,l,g,"\ue01a","\\varsubsetneq"),a(i,l,g,"\u2acb","\\subsetneqq",!0),a(i,l,g,"\ue017","\\varsubsetneqq"),a(i,l,g,"\u226f","\\ngtr",!0),a(i,l,g,"\ue00f","\\ngeqslant"),a(i,l,g,"\ue00e","\\ngeqq"),a(i,l,g,"\u2a88","\\gneq",!0),a(i,l,g,"\u2269","\\gneqq",!0),a(i,l,g,"\ue00d","\\gvertneqq"),a(i,l,g,"\u22e7","\\gnsim",!0),a(i,l,g,"\u2a8a","\\gnapprox",!0),a(i,l,g,"\u2281","\\nsucc",!0),a(i,l,g,"\u22e1","\\nsucceq",!0),a(i,l,g,"\u22e9","\\succnsim",!0),a(i,l,g,"\u2aba","\\succnapprox",!0),a(i,l,g,"\u2246","\\ncong",!0),a(i,l,g,"\ue007","\\nshortparallel"),a(i,l,g,"\u2226","\\nparallel",!0),a(i,l,g,"\u22af","\\nVDash",!0),a(i,l,g,"\u22eb","\\ntriangleright"),a(i,l,g,"\u22ed","\\ntrianglerighteq",!0),a(i,l,g,"\ue018","\\nsupseteqq"),a(i,l,g,"\u228b","\\supsetneq",!0),a(i,l,g,"\ue01b","\\varsupsetneq"),a(i,l,g,"\u2acc","\\supsetneqq",!0),a(i,l,g,"\ue019","\\varsupsetneqq"),a(i,l,g,"\u22ae","\\nVdash",!0),a(i,l,g,"\u2ab5","\\precneqq",!0),a(i,l,g,"\u2ab6","\\succneqq",!0),a(i,l,g,"\ue016","\\nsubseteqq"),a(i,l,c,"\u22b4","\\unlhd"),a(i,l,c,"\u22b5","\\unrhd"),a(i,l,g,"\u219a","\\nleftarrow",!0),a(i,l,g,"\u219b","\\nrightarrow",!0),a(i,l,g,"\u21cd","\\nLeftarrow",!0),a(i,l,g,"\u21cf","\\nRightarrow",!0),a(i,l,g,"\u21ae","\\nleftrightarrow",!0),a(i,l,g,"\u21ce","\\nLeftrightarrow",!0),a(i,l,g,"\u25b3","\\vartriangle"),a(i,l,b,"\u210f","\\hslash"),a(i,l,b,"\u25bd","\\triangledown"),a(i,l,b,"\u25ca","\\lozenge"),a(i,l,b,"\u24c8","\\circledS"),a(i,l,b,"\xae","\\circledR"),a(o,l,b,"\xae","\\circledR"),a(i,l,b,"\u2221","\\measuredangle",!0),a(i,l,b,"\u2204","\\nexists"),a(i,l,b,"\u2127","\\mho"),a(i,l,b,"\u2132","\\Finv",!0),a(i,l,b,"\u2141","\\Game",!0),a(i,l,b,"k","\\Bbbk"),a(i,l,b,"\u2035","\\backprime"),a(i,l,b,"\u25b2","\\blacktriangle"),a(i,l,b,"\u25bc","\\blacktriangledown"),a(i,l,b,"\u25a0","\\blacksquare"),a(i,l,b,"\u29eb","\\blacklozenge"),a(i,l,b,"\u2605","\\bigstar"),a(i,l,b,"\u2222","\\sphericalangle",!0),a(i,l,b,"\u2201","\\complement",!0),a(i,l,b,"\xf0","\\eth",!0),a(i,l,b,"\u2571","\\diagup"),a(i,l,b,"\u2572","\\diagdown"),a(i,l,b,"\u25a1","\\square"),a(i,l,b,"\u25a1","\\Box"),a(i,l,b,"\u25ca","\\Diamond"),a(i,l,b,"\xa5","\\yen",!0),a(i,l,b,"\u2713","\\checkmark",!0),a(o,l,b,"\u2713","\\checkmark"),a(i,l,b,"\u2136","\\beth",!0),a(i,l,b,"\u2138","\\daleth",!0),a(i,l,b,"\u2137","\\gimel",!0),a(i,l,b,"\u03dd","\\digamma"),a(i,l,b,"\u03f0","\\varkappa"),a(i,l,f,"\u250c","\\ulcorner"),a(i,l,h,"\u2510","\\urcorner"),a(i,l,f,"\u2514","\\llcorner"),a(i,l,h,"\u2518","\\lrcorner"),a(i,l,g,"\u2266","\\leqq",!0),a(i,l,g,"\u2a7d","\\leqslant"),a(i,l,g,"\u2a95","\\eqslantless",!0),a(i,l,g,"\u2272","\\lesssim"),a(i,l,g,"\u2a85","\\lessapprox"),a(i,l,g,"\u224a","\\approxeq",!0),a(i,l,c,"\u22d6","\\lessdot"),a(i,l,g,"\u22d8","\\lll"),a(i,l,g,"\u2276","\\lessgtr"),a(i,l,g,"\u22da","\\lesseqgtr"),a(i,l,g,"\u2a8b","\\lesseqqgtr"),a(i,l,g,"\u2251","\\doteqdot"),a(i,l,g,"\u2253","\\risingdotseq",!0),a(i,l,g,"\u2252","\\fallingdotseq",!0),a(i,l,g,"\u223d","\\backsim",!0),a(i,l,g,"\u22cd","\\backsimeq",!0),a(i,l,g,"\u2ac5","\\subseteqq",!0),a(i,l,g,"\u22d0","\\Subset",!0),a(i,l,g,"\u228f","\\sqsubset",!0),a(i,l,g,"\u227c","\\preccurlyeq",!0),a(i,l,g,"\u22de","\\curlyeqprec",!0),a(i,l,g,"\u227e","\\precsim",!0),a(i,l,g,"\u2ab7","\\precapprox",!0),a(i,l,g,"\u22b2","\\vartriangleleft"),a(i,l,g,"\u22b4","\\trianglelefteq"),a(i,l,g,"\u22a8","\\vDash"),a(i,l,g,"\u22aa","\\Vvdash",!0),a(i,l,g,"\u2323","\\smallsmile"),a(i,l,g,"\u2322","\\smallfrown"),a(i,l,g,"\u224f","\\bumpeq",!0),a(i,l,g,"\u224e","\\Bumpeq",!0),a(i,l,g,"\u2267","\\geqq",!0),a(i,l,g,"\u2a7e","\\geqslant",!0),a(i,l,g,"\u2a96","\\eqslantgtr",!0),a(i,l,g,"\u2273","\\gtrsim",!0),a(i,l,g,"\u2a86","\\gtrapprox",!0),a(i,l,c,"\u22d7","\\gtrdot"),a(i,l,g,"\u22d9","\\ggg",!0),a(i,l,g,"\u2277","\\gtrless",!0),a(i,l,g,"\u22db","\\gtreqless",!0),a(i,l,g,"\u2a8c","\\gtreqqless",!0),a(i,l,g,"\u2256","\\eqcirc",!0),a(i,l,g,"\u2257","\\circeq",!0),a(i,l,g,"\u225c","\\triangleq",!0),a(i,l,g,"\u223c","\\thicksim"),a(i,l,g,"\u2248","\\thickapprox"),a(i,l,g,"\u2ac6","\\supseteqq",!0),a(i,l,g,"\u22d1","\\Supset",!0),a(i,l,g,"\u2290","\\sqsupset",!0),a(i,l,g,"\u227d","\\succcurlyeq",!0),a(i,l,g,"\u22df","\\curlyeqsucc",!0),a(i,l,g,"\u227f","\\succsim",!0),a(i,l,g,"\u2ab8","\\succapprox",!0),a(i,l,g,"\u22b3","\\vartriangleright"),a(i,l,g,"\u22b5","\\trianglerighteq"),a(i,l,g,"\u22a9","\\Vdash",!0),a(i,l,g,"\u2223","\\shortmid"),a(i,l,g,"\u2225","\\shortparallel"),a(i,l,g,"\u226c","\\between",!0),a(i,l,g,"\u22d4","\\pitchfork",!0),a(i,l,g,"\u221d","\\varpropto"),a(i,l,g,"\u25c0","\\blacktriangleleft"),a(i,l,g,"\u2234","\\therefore",!0),a(i,l,g,"\u220d","\\backepsilon"),a(i,l,g,"\u25b6","\\blacktriangleright"),a(i,l,g,"\u2235","\\because",!0),a(i,l,g,"\u22d8","\\llless"),a(i,l,g,"\u22d9","\\gggtr"),a(i,l,c,"\u22b2","\\lhd"),a(i,l,c,"\u22b3","\\rhd"),a(i,l,g,"\u2242","\\eqsim",!0),a(i,s,g,"\u22c8","\\Join"),a(i,l,g,"\u2251","\\Doteq",!0),a(i,l,c,"\u2214","\\dotplus",!0),a(i,l,c,"\u2216","\\smallsetminus"),a(i,l,c,"\u22d2","\\Cap",!0),a(i,l,c,"\u22d3","\\Cup",!0),a(i,l,c,"\u2a5e","\\doublebarwedge",!0),a(i,l,c,"\u229f","\\boxminus",!0),a(i,l,c,"\u229e","\\boxplus",!0),a(i,l,c,"\u22c7","\\divideontimes",!0),a(i,l,c,"\u22c9","\\ltimes",!0),a(i,l,c,"\u22ca","\\rtimes",!0),a(i,l,c,"\u22cb","\\leftthreetimes",!0),a(i,l,c,"\u22cc","\\rightthreetimes",!0),a(i,l,c,"\u22cf","\\curlywedge",!0),a(i,l,c,"\u22ce","\\curlyvee",!0),a(i,l,c,"\u229d","\\circleddash",!0),a(i,l,c,"\u229b","\\circledast",!0),a(i,l,c,"\u22c5","\\centerdot"),a(i,l,c,"\u22ba","\\intercal",!0),a(i,l,c,"\u22d2","\\doublecap"),a(i,l,c,"\u22d3","\\doublecup"),a(i,l,c,"\u22a0","\\boxtimes",!0),a(i,l,g,"\u21e2","\\dashrightarrow",!0),a(i,l,g,"\u21e0","\\dashleftarrow",!0),a(i,l,g,"\u21c7","\\leftleftarrows",!0),a(i,l,g,"\u21c6","\\leftrightarrows",!0),a(i,l,g,"\u21da","\\Lleftarrow",!0),a(i,l,g,"\u219e","\\twoheadleftarrow",!0),a(i,l,g,"\u21a2","\\leftarrowtail",!0),a(i,l,g,"\u21ab","\\looparrowleft",!0),a(i,l,g,"\u21cb","\\leftrightharpoons",!0),a(i,l,g,"\u21b6","\\curvearrowleft",!0),a(i,l,g,"\u21ba","\\circlearrowleft",!0),a(i,l,g,"\u21b0","\\Lsh",!0),a(i,l,g,"\u21c8","\\upuparrows",!0),a(i,l,g,"\u21bf","\\upharpoonleft",!0),a(i,l,g,"\u21c3","\\downharpoonleft",!0),a(i,l,g,"\u22b8","\\multimap",!0),a(i,l,g,"\u21ad","\\leftrightsquigarrow",!0),a(i,l,g,"\u21c9","\\rightrightarrows",!0),a(i,l,g,"\u21c4","\\rightleftarrows",!0),a(i,l,g,"\u21a0","\\twoheadrightarrow",!0),a(i,l,g,"\u21a3","\\rightarrowtail",!0),a(i,l,g,"\u21ac","\\looparrowright",!0),a(i,l,g,"\u21b7","\\curvearrowright",!0),a(i,l,g,"\u21bb","\\circlearrowright",!0),a(i,l,g,"\u21b1","\\Rsh",!0),a(i,l,g,"\u21ca","\\downdownarrows",!0),a(i,l,g,"\u21be","\\upharpoonright",!0),a(i,l,g,"\u21c2","\\downharpoonright",!0),a(i,l,g,"\u21dd","\\rightsquigarrow",!0),a(i,l,g,"\u21dd","\\leadsto"),a(i,l,g,"\u21db","\\Rrightarrow",!0),a(i,l,g,"\u21be","\\restriction"),a(i,s,b,"\u2018","`"),a(i,s,b,"$","\\$"),a(o,s,b,"$","\\$"),a(o,s,b,"$","\\textdollar"),a(i,s,b,"%","\\%"),a(o,s,b,"%","\\%"),a(i,s,b,"_","\\_"),a(o,s,b,"_","\\_"),a(o,s,b,"_","\\textunderscore"),a(i,s,b,"\u2220","\\angle",!0),a(i,s,b,"\u221e","\\infty",!0),a(i,s,b,"\u2032","\\prime"),a(i,s,b,"\u25b3","\\triangle"),a(i,s,b,"\u0393","\\Gamma",!0),a(i,s,b,"\u0394","\\Delta",!0),a(i,s,b,"\u0398","\\Theta",!0),a(i,s,b,"\u039b","\\Lambda",!0),a(i,s,b,"\u039e","\\Xi",!0),a(i,s,b,"\u03a0","\\Pi",!0),a(i,s,b,"\u03a3","\\Sigma",!0),a(i,s,b,"\u03a5","\\Upsilon",!0),a(i,s,b,"\u03a6","\\Phi",!0),a(i,s,b,"\u03a8","\\Psi",!0),a(i,s,b,"\u03a9","\\Omega",!0),a(i,s,b,"\xac","\\neg"),a(i,s,b,"\xac","\\lnot"),a(i,s,b,"\u22a4","\\top"),a(i,s,b,"\u22a5","\\bot"),a(i,s,b,"\u2205","\\emptyset"),a(i,l,b,"\u2205","\\varnothing"),a(i,s,m,"\u03b1","\\alpha",!0),a(i,s,m,"\u03b2","\\beta",!0),a(i,s,m,"\u03b3","\\gamma",!0),a(i,s,m,"\u03b4","\\delta",!0),a(i,s,m,"\u03f5","\\epsilon",!0),a(i,s,m,"\u03b6","\\zeta",!0),a(i,s,m,"\u03b7","\\eta",!0),a(i,s,m,"\u03b8","\\theta",!0),a(i,s,m,"\u03b9","\\iota",!0),a(i,s,m,"\u03ba","\\kappa",!0),a(i,s,m,"\u03bb","\\lambda",!0),a(i,s,m,"\u03bc","\\mu",!0),a(i,s,m,"\u03bd","\\nu",!0),a(i,s,m,"\u03be","\\xi",!0),a(i,s,m,"\u03bf","\\omicron",!0),a(i,s,m,"\u03c0","\\pi",!0),a(i,s,m,"\u03c1","\\rho",!0),a(i,s,m,"\u03c3","\\sigma",!0),a(i,s,m,"\u03c4","\\tau",!0),a(i,s,m,"\u03c5","\\upsilon",!0),a(i,s,m,"\u03d5","\\phi",!0),a(i,s,m,"\u03c7","\\chi",!0),a(i,s,m,"\u03c8","\\psi",!0),a(i,s,m,"\u03c9","\\omega",!0),a(i,s,m,"\u03b5","\\varepsilon",!0),a(i,s,m,"\u03d1","\\vartheta",!0),a(i,s,m,"\u03d6","\\varpi",!0),a(i,s,m,"\u03f1","\\varrho",!0),a(i,s,m,"\u03c2","\\varsigma",!0),a(i,s,m,"\u03c6","\\varphi",!0),a(i,s,c,"\u2217","*"),a(i,s,c,"+","+"),a(i,s,c,"\u2212","-"),a(i,s,c,"\u22c5","\\cdot",!0),a(i,s,c,"\u2218","\\circ"),a(i,s,c,"\xf7","\\div",!0),a(i,s,c,"\xb1","\\pm",!0),a(i,s,c,"\xd7","\\times",!0),a(i,s,c,"\u2229","\\cap",!0),a(i,s,c,"\u222a","\\cup",!0),a(i,s,c,"\u2216","\\setminus"),a(i,s,c,"\u2227","\\land"),a(i,s,c,"\u2228","\\lor"),a(i,s,c,"\u2227","\\wedge",!0),a(i,s,c,"\u2228","\\vee",!0),a(i,s,b,"\u221a","\\surd"),a(i,s,f,"(","("),a(i,s,f,"[","["),a(i,s,f,"\u27e8","\\langle",!0),a(i,s,f,"\u2223","\\lvert"),a(i,s,f,"\u2225","\\lVert"),a(i,s,h,")",")"),a(i,s,h,"]","]"),a(i,s,h,"?","?"),a(i,s,h,"!","!"),a(i,s,h,"\u27e9","\\rangle",!0),a(i,s,h,"\u2223","\\rvert"),a(i,s,h,"\u2225","\\rVert"),a(i,s,g,"=","="),a(i,s,g,"<","<"),a(i,s,g,">",">"),a(i,s,g,":",":"),a(i,s,g,"\u2248","\\approx",!0),a(i,s,g,"\u2245","\\cong",!0),a(i,s,g,"\u2265","\\ge"),a(i,s,g,"\u2265","\\geq",!0),a(i,s,g,"\u2190","\\gets"),a(i,s,g,">","\\gt"),a(i,s,g,"\u2208","\\in",!0),a(i,s,g,"\u2209","\\notin",!0),a(i,s,g,"\u0338","\\not"),a(i,s,g,"\u2282","\\subset",!0),a(i,s,g,"\u2283","\\supset",!0),a(i,s,g,"\u2286","\\subseteq",!0),a(i,s,g,"\u2287","\\supseteq",!0),a(i,l,g,"\u2288","\\nsubseteq",!0),a(i,l,g,"\u2289","\\nsupseteq",!0),a(i,s,g,"\u22a8","\\models"),a(i,s,g,"\u2190","\\leftarrow",!0),a(i,s,g,"\u2264","\\le"),a(i,s,g,"\u2264","\\leq",!0),a(i,s,g,"<","\\lt"),a(i,s,g,"\u2260","\\ne",!0),a(i,s,g,"\u2260","\\neq"),a(i,s,g,"\u2192","\\rightarrow",!0),a(i,s,g,"\u2192","\\to"),a(i,l,g,"\u2271","\\ngeq",!0),a(i,l,g,"\u2270","\\nleq",!0),a(i,s,y,null,"\\!"),a(i,s,y,"\xa0","\\ "),a(i,s,y,"\xa0","~"),a(i,s,y,null,"\\,"),a(i,s,y,null,"\\:"),a(i,s,y,null,"\\;"),a(i,s,y,null,"\\enspace"),a(i,s,y,null,"\\qquad"),a(i,s,y,null,"\\quad"),a(i,s,y,"\xa0","\\space"),a(i,s,y,"\xa0","\\nobreakspace"),a(o,s,y,null,"\\!"),a(o,s,y,"\xa0","\\ "),a(o,s,y,"\xa0","~"),a(o,s,y,null,"\\,"),a(o,s,y,null,"\\:"),a(o,s,y,null,"\\;"),a(o,s,y,null,"\\enspace"),a(o,s,y,null,"\\qquad"),a(o,s,y,null,"\\quad"),a(o,s,y,"\xa0","\\space"),a(o,s,y,"\xa0","\\nobreakspace"),a(i,s,v,",",","),a(i,s,v,";",";"),a(i,s,v,":","\\colon"),a(i,l,c,"\u22bc","\\barwedge",!0),a(i,l,c,"\u22bb","\\veebar",!0),a(i,s,c,"\u2299","\\odot",!0),a(i,s,c,"\u2295","\\oplus",!0),a(i,s,c,"\u2297","\\otimes",!0),a(i,s,b,"\u2202","\\partial",!0),a(i,s,c,"\u2298","\\oslash",!0),a(i,l,c,"\u229a","\\circledcirc",!0),a(i,l,c,"\u22a1","\\boxdot",!0),a(i,s,c,"\u25b3","\\bigtriangleup"),a(i,s,c,"\u25bd","\\bigtriangledown"),a(i,s,c,"\u2020","\\dagger"),a(i,s,c,"\u22c4","\\diamond"),a(i,s,c,"\u22c6","\\star"),a(i,s,c,"\u25c3","\\triangleleft"),a(i,s,c,"\u25b9","\\triangleright"),a(i,s,f,"{","\\{"),a(o,s,b,"{","\\{"),a(o,s,b,"{","\\textbraceleft"),a(i,s,h,"}","\\}"),a(o,s,b,"}","\\}"),a(o,s,b,"}","\\textbraceright"),a(i,s,f,"{","\\lbrace"),a(i,s,h,"}","\\rbrace"),a(i,s,f,"[","\\lbrack"),a(i,s,h,"]","\\rbrack"),a(o,s,b,"<","\\textless"),a(o,s,b,">","\\textgreater"),a(i,s,f,"\u230a","\\lfloor"),a(i,s,h,"\u230b","\\rfloor"),a(i,s,f,"\u2308","\\lceil"),a(i,s,h,"\u2309","\\rceil"),a(i,s,b,"\\","\\backslash"),a(i,s,b,"\u2223","|"),a(i,s,b,"\u2223","\\vert"),a(o,s,b,"|","\\textbar"),a(i,s,b,"\u2225","\\|"),a(i,s,b,"\u2225","\\Vert"),a(o,s,b,"\u2225","\\textbardbl"),a(i,s,g,"\u2191","\\uparrow",!0),a(i,s,g,"\u21d1","\\Uparrow",!0),a(i,s,g,"\u2193","\\downarrow",!0),a(i,s,g,"\u21d3","\\Downarrow",!0),a(i,s,g,"\u2195","\\updownarrow",!0),a(i,s,g,"\u21d5","\\Updownarrow",!0),a(i,s,d,"\u2210","\\coprod"),a(i,s,d,"\u22c1","\\bigvee"),a(i,s,d,"\u22c0","\\bigwedge"),a(i,s,d,"\u2a04","\\biguplus"),a(i,s,d,"\u22c2","\\bigcap"),a(i,s,d,"\u22c3","\\bigcup"),a(i,s,d,"\u222b","\\int"),a(i,s,d,"\u222b","\\intop"),a(i,s,d,"\u222c","\\iint"),a(i,s,d,"\u222d","\\iiint"),a(i,s,d,"\u220f","\\prod"),a(i,s,d,"\u2211","\\sum"),a(i,s,d,"\u2a02","\\bigotimes"),a(i,s,d,"\u2a01","\\bigoplus"),a(i,s,d,"\u2a00","\\bigodot"),a(i,s,d,"\u222e","\\oint"),a(i,s,d,"\u2a06","\\bigsqcup"),a(i,s,d,"\u222b","\\smallint"),a(o,s,p,"\u2026","\\textellipsis"),a(i,s,p,"\u2026","\\mathellipsis"),a(o,s,p,"\u2026","\\ldots",!0),a(i,s,p,"\u2026","\\ldots",!0),a(i,s,p,"\u22ef","\\@cdots",!0),a(i,s,p,"\u22f1","\\ddots",!0),a(i,s,b,"\u22ee","\\vdots",!0),a(i,s,u,"\u02ca","\\acute"),a(i,s,u,"\u02cb","\\grave"),a(i,s,u,"\xa8","\\ddot"),a(i,s,u,"~","\\tilde"),a(i,s,u,"\u02c9","\\bar"),a(i,s,u,"\u02d8","\\breve"),a(i,s,u,"\u02c7","\\check"),a(i,s,u,"^","\\hat"),a(i,s,u,"\u20d7","\\vec"),a(i,s,u,"\u02d9","\\dot"),a(i,s,u,"\u02da","\\mathring"),a(i,s,m,"\u0131","\\imath",!0),a(i,s,m,"\u0237","\\jmath",!0),a(o,s,b,"\u0131","\\i",!0),a(o,s,b,"\u0237","\\j",!0),a(o,s,b,"\xdf","\\ss",!0),a(o,s,b,"\xe6","\\ae",!0),a(o,s,b,"\xe6","\\ae",!0),a(o,s,b,"\u0153","\\oe",!0),a(o,s,b,"\xf8","\\o",!0),a(o,s,b,"\xc6","\\AE",!0),a(o,s,b,"\u0152","\\OE",!0),a(o,s,b,"\xd8","\\O",!0),a(o,s,u,"\u02ca","\\'"),a(o,s,u,"\u02cb","\\`"),a(o,s,u,"\u02c6","\\^"),a(o,s,u,"\u02dc","\\~"),a(o,s,u,"\u02c9","\\="),a(o,s,u,"\u02d8","\\u"),a(o,s,u,"\u02d9","\\."),a(o,s,u,"\u02da","\\r"),a(o,s,u,"\u02c7","\\v"),a(o,s,u,"\xa8",'\\"'),a(o,s,u,"\u02dd","\\H"),a(o,s,b,"\u2013","--"),a(o,s,b,"\u2013","\\textendash"),a(o,s,b,"\u2014","---"),a(o,s,b,"\u2014","\\textemdash"),a(o,s,b,"\u2018","`"),a(o,s,b,"\u2018","\\textquoteleft"),a(o,s,b,"\u2019","'"),a(o,s,b,"\u2019","\\textquoteright"),a(o,s,b,"\u201c","``"),a(o,s,b,"\u201c","\\textquotedblleft"),a(o,s,b,"\u201d","''"),a(o,s,b,"\u201d","\\textquotedblright"),a(i,s,b,"\xb0","\\degree"),a(o,s,b,"\xb0","\\degree"),a(i,s,m,"\xa3","\\pounds"),a(i,s,m,"\xa3","\\mathsterling",!0),a(o,s,m,"\xa3","\\pounds"),a(o,s,m,"\xa3","\\textsterling",!0),a(i,l,b,"\u2720","\\maltese"),a(o,l,b,"\u2720","\\maltese"),a(o,s,y,"\xa0","\\ "),a(o,s,y,"\xa0"," "),a(o,s,y,"\xa0","~");for(var x='0123456789/@."',w=0;w=5?0:e>=3?1:2]){var r=s[t]={cssEmPerMu:i.quad[t]/18};for(var n in i)i.hasOwnProperty(n)&&(r[n]=i[n][t])}return s[t]},getCharacterMetrics:function(e,t,r){if(!a.a[t])throw new Error("Font metrics not found for font: "+t+".");var i=e.charCodeAt(0);e[0]in o&&(i=o[e[0]].charCodeAt(0));var s=a.a[t][i];if(s||"text"!==r||Object(n.b)(i)&&(s=a.a[t][77]),s)return{depth:s[0],height:s[1],italic:s[2],skew:s[3],width:s[4]}}}},function(e,t,r){"use strict";var n=r(66),a=r.n(n),i=r(7),o=r.n(i),s=r(10),l=r.n(s),u=function(){function e(t,r,n){o()(this,e),this.lexer=t,this.start=r,this.end=n,a()(this)}return l()(e,null,[{key:"range",value:function(t,r){return r?t&&t.loc&&r.loc&&t.loc.lexer===r.loc.lexer?new e(t.loc.lexer,t.loc.start,r.loc.end):null:t&&t.loc}}]),e}();t.a=u},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+n).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){"use strict";var n=r(7),a=r.n(n),i=r(5);t.a=function e(t){a()(this,e),t=t||{},this.displayMode=i.a.deflt(t.displayMode,!1),this.throwOnError=i.a.deflt(t.throwOnError,!0),this.errorColor=i.a.deflt(t.errorColor,"#cc0000"),this.macros=t.macros||{},this.colorIsTextColor=i.a.deflt(t.colorIsTextColor,!1),this.maxSize=Math.max(0,i.a.deflt(t.maxSize,1/0))}},function(e,t,r){"use strict";t.__esModule=!0;var n,a=r(79),i=(n=a)&&n.__esModule?n:{default:n};t.default=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,r){var n=r(87),a=r(53);e.exports=Object.keys||function(e){return n(e,a)}},function(e,t,r){var n=r(49),a=r(38);e.exports=function(e){return n(a(e))}},function(e,t,r){var n=r(52)("keys"),a=r(32);e.exports=function(e){return n[e]||(n[e]=a(e))}},function(e,t,r){"use strict";t.a=function(e){var t=!0,r=!1,n=void 0;try{for(var a,i=o()(s);!(t=(a=i.next()).done);t=!0){var l=a.value,u=!0,c=!1,h=void 0;try{for(var p,m=o()(l.blocks);!(u=(p=m.next()).done);u=!0){var d=p.value;if(e>=d[0]&&e<=d[1])return l.name}}catch(e){c=!0,h=e}finally{try{!u&&m.return&&m.return()}finally{if(c)throw h}}}}catch(e){r=!0,n=e}finally{try{!t&&i.return&&i.return()}finally{if(r)throw n}}return null},t.b=function(e){for(var t=0;t=l[t]&&e<=l[t+1])return!0;return!1};var n=r(35),a=r.n(n),i=r(18),o=r.n(i),s=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var l=[];s.forEach(function(e){return e.blocks.forEach(function(e){return l.push.apply(l,a()(e))})})},function(e,t,r){"use strict";var n=r(7),a=r.n(n),i=r(10),o=r.n(i),s=r(30),l=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],u=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],c=function(e,t){return t.size<2?e:l[e-1][t.size-1]},h=function(){function e(t){a()(this,e),this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.fontFamily=t.fontFamily,this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=u[this.size-1],this.maxSize=t.maxSize,this._fontMetrics=void 0}return o()(e,[{key:"extend",value:function(t){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return new e(r)}},{key:"havingStyle",value:function(e){return this.style===e?this:this.extend({style:e,size:c(this.textSize,e)})}},{key:"havingCrampedStyle",value:function(){return this.havingStyle(this.style.cramp())}},{key:"havingSize",value:function(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:u[e-1]})}},{key:"havingBaseStyle",value:function(t){t=t||this.style.text();var r=c(e.BASESIZE,t);return this.size===r&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:r})}},{key:"withColor",value:function(e){return this.extend({color:e})}},{key:"withPhantom",value:function(){return this.extend({phantom:!0})}},{key:"withFontFamily",value:function(e){return this.extend({fontFamily:e||this.fontFamily})}},{key:"withFontWeight",value:function(e){return this.extend({fontWeight:e})}},{key:"withFontShape",value:function(e){return this.extend({fontShape:e})}},{key:"sizingClasses",value:function(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}},{key:"baseSizingClasses",value:function(){return this.size!==e.BASESIZE?["sizing","reset-size"+this.size,"size"+e.BASESIZE]:[]}},{key:"fontMetrics",value:function(){return this._fontMetrics||(this._fontMetrics=s.a.getFontMetrics(this.size)),this._fontMetrics}},{key:"getColor",value:function(){return this.phantom?"transparent":null!=this.color&&e.colorMap.hasOwnProperty(this.color)?e.colorMap[this.color]:this.color}}]),e}();h.BASESIZE=6,h.colorMap={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd","katex-blueA":"#ccfaff","katex-blueB":"#80f6ff","katex-blueC":"#63d9ea","katex-blueD":"#11accd","katex-blueE":"#0c7f99","katex-tealA":"#94fff5","katex-tealB":"#26edd5","katex-tealC":"#01d1c1","katex-tealD":"#01a995","katex-tealE":"#208170","katex-greenA":"#b6ffb0","katex-greenB":"#8af281","katex-greenC":"#74cf70","katex-greenD":"#1fab54","katex-greenE":"#0d923f","katex-goldA":"#ffd0a9","katex-goldB":"#ffbb71","katex-goldC":"#ff9c39","katex-goldD":"#e07d10","katex-goldE":"#a75a05","katex-redA":"#fca9a9","katex-redB":"#ff8482","katex-redC":"#f9685d","katex-redD":"#e84d39","katex-redE":"#bc2612","katex-maroonA":"#ffbde0","katex-maroonB":"#ff92c6","katex-maroonC":"#ed5fa6","katex-maroonD":"#ca337c","katex-maroonE":"#9e034e","katex-purpleA":"#ddd7ff","katex-purpleB":"#c6b9fc","katex-purpleC":"#aa87ff","katex-purpleD":"#7854ab","katex-purpleE":"#543b78","katex-mintA":"#f5f9e8","katex-mintB":"#edf2df","katex-mintC":"#e0e5cc","katex-grayA":"#f6f7f7","katex-grayB":"#f0f1f2","katex-grayC":"#e3e5e6","katex-grayD":"#d6d8da","katex-grayE":"#babec2","katex-grayF":"#888d93","katex-grayG":"#626569","katex-grayH":"#3b3e40","katex-grayI":"#21242c","katex-kaBlue":"#314453","katex-kaGreen":"#71B307"},t.a=h},function(e,t,r){"use strict";var n=r(6),a=r(9),i=r(12),o=r(0),s=r(30),l=r(28),u=r(5),c=function(e,t,r){return l.a.math[e]&&l.a.math[e].replace?s.a.getCharacterMetrics(l.a.math[e].replace,t,r):s.a.getCharacterMetrics(e,t,r)},h=function(e,t,r,n){var a=r.havingBaseStyle(t),i=o.a.makeSpan((n||[]).concat(a.sizingClasses(r)),[e],r);return i.delimSizeMultiplier=a.sizeMultiplier/r.sizeMultiplier,i.height*=i.delimSizeMultiplier,i.depth*=i.delimSizeMultiplier,i.maxFontSize=a.sizeMultiplier,i},p=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=a+"em",e.height-=a,e.depth+=a},m=function(e,t,r,n,i,s){var l,u,c,m,d=(l=e,u=t,c=i,m=n,o.a.makeSymbol(l,"Size"+u+"-Regular",c,m)),f=h(o.a.makeSpan(["delimsizing","size"+t],[d],n),a.a.TEXT,n,s);return r&&p(f,n,a.a.TEXT),f},d=function(e,t,r){var n=void 0;return"Size1-Regular"===t?n="delim-size1":"Size4-Regular"===t&&(n="delim-size4"),{type:"elem",elem:o.a.makeSpan(["delimsizinginner",n],[o.a.makeSpan([],[o.a.makeSymbol(e,t,r)])])}},f=function(e,t,r,n,i,s){var l=void 0,u=void 0,p=void 0,m=void 0;l=p=m=e,u=null;var f="Size1-Regular";"\\uparrow"===e?p=m="\u23d0":"\\Uparrow"===e?p=m="\u2016":"\\downarrow"===e?l=p="\u23d0":"\\Downarrow"===e?l=p="\u2016":"\\updownarrow"===e?(l="\\uparrow",p="\u23d0",m="\\downarrow"):"\\Updownarrow"===e?(l="\\Uparrow",p="\u2016",m="\\Downarrow"):"["===e||"\\lbrack"===e?(l="\u23a1",p="\u23a2",m="\u23a3",f="Size4-Regular"):"]"===e||"\\rbrack"===e?(l="\u23a4",p="\u23a5",m="\u23a6",f="Size4-Regular"):"\\lfloor"===e?(p=l="\u23a2",m="\u23a3",f="Size4-Regular"):"\\lceil"===e?(l="\u23a1",p=m="\u23a2",f="Size4-Regular"):"\\rfloor"===e?(p=l="\u23a5",m="\u23a6",f="Size4-Regular"):"\\rceil"===e?(l="\u23a4",p=m="\u23a5",f="Size4-Regular"):"("===e?(l="\u239b",p="\u239c",m="\u239d",f="Size4-Regular"):")"===e?(l="\u239e",p="\u239f",m="\u23a0",f="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(l="\u23a7",u="\u23a8",m="\u23a9",p="\u23aa",f="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(l="\u23ab",u="\u23ac",m="\u23ad",p="\u23aa",f="Size4-Regular"):"\\lgroup"===e?(l="\u23a7",m="\u23a9",p="\u23aa",f="Size4-Regular"):"\\rgroup"===e?(l="\u23ab",m="\u23ad",p="\u23aa",f="Size4-Regular"):"\\lmoustache"===e?(l="\u23a7",m="\u23ad",p="\u23aa",f="Size4-Regular"):"\\rmoustache"===e&&(l="\u23ab",m="\u23a9",p="\u23aa",f="Size4-Regular");var v=c(l,f,i),g=v.height+v.depth,y=c(p,f,i),b=y.height+y.depth,x=c(m,f,i),w=x.height+x.depth,k=0,M=1;if(null!==u){var S=c(u,f,i);k=S.height+S.depth,M=2}var z=g+w+k,O=Math.ceil((t-z)/(M*b)),T=z+O*M*b,A=n.fontMetrics().axisHeight;r&&(A*=n.sizeMultiplier);var N=T/2-A,B=[];if(B.push(d(m,f,i)),null===u)for(var q=0;q","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],x=[0,1.2,1.8,2.4,3],w=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],k=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"stack"}],M=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],S=function(e,t,r,n){for(var a,i=Math.min(2,3-n.style.size);it)return r[i]}return r[r.length-1]},z=function(e,t,r,n,a,i){"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle");var s=void 0;s=u.a.contains(b,e)?w:u.a.contains(g,e)?M:k;var l,c,d,v,y,x,z,O,T=S(e,t,s,n);return"small"===T.type?(l=e,c=T.style,d=r,v=n,y=a,x=i,z=o.a.makeSymbol(l,"Main-Regular",y,v),O=h(z,c,v,x),d&&p(O,v,c),O):"large"===T.type?m(e,T.size,r,n,a,i):f(e,t,r,n,a,i)};t.a={sqrtImage:function(e,t){var r=S("\\surd",e,M,t),n=void 0,a=t.sizeMultiplier,i=0,o=0,s=0;"small"===r.type?(s=1080,o=1*(a=t.havingBaseStyle(r.style).sizeMultiplier/t.sizeMultiplier),(n=v("sqrtMain",i=1.08*a,s,t)).style.minWidth="0.853em",n.advanceWidth=.833*a):"large"===r.type?(s=1080*x[r.size],o=x[r.size]/a,i=(x[r.size]+.08)/a,(n=v("sqrtSize"+r.size,i,s,t)).style.minWidth="1.02em",n.advanceWidth=1/a):(i=e/a+.08,o=e/a,s=Math.floor(1e3*e)+80,(n=v("sqrtTall",i,s,t)).style.minWidth="0.742em",n.advanceWidth=1.056/a);return n.height=o,n.style.height=i+"em",{span:n,ruleWidth:t.fontMetrics().sqrtRuleThickness*a}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),u.a.contains(g,e)||u.a.contains(b,e))return m(e,t,!1,r,a,i);if(u.a.contains(y,e))return f(e,x[t],!1,r,a,i);throw new n.a("Illegal delimiter: '"+e+"'")},customSizedDelim:z,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),u=Math.max(l/500*901,2*l-s);return z(e,u,!0,n,a,i)}}},function(e,t,r){var n=r(20),a=r(16).document,i=n(a)&&n(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,r){var n=r(25),a=r(8),i=r(24);e.exports=function(e,t){var r=(a.Object||{})[e]||Object[e],o={};o[e]=t(r),n(n.S+n.F*i(function(){r(1)}),"Object",o)}},function(e,t,r){var n=r(72);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,a){return e.call(t,r,n,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";var n=r(82),a=r(25),i=r(83),o=r(26),s=r(21),l=r(17),u=r(84),c=r(54),h=r(91),p=r(11)("iterator"),m=!([].keys&&"next"in[].keys()),d="values",f=function(){return this};e.exports=function(e,t,r,v,g,y,b){u(r,t,v);var x,w,k,M=function(e){if(!m&&e in T)return T[e];switch(e){case"keys":case d:return function(){return new r(this,e)}}return function(){return new r(this,e)}},S=t+" Iterator",z=g==d,O=!1,T=e.prototype,A=T[p]||T["@@iterator"]||g&&T[g],N=A||M(g),B=g?z?M("entries"):N:void 0,q="Array"==t&&T.entries||A;if(q&&(k=h(q.call(new e)))!==Object.prototype&&(c(k,S,!0),n||s(k,p)||o(k,p,f)),z&&A&&A.name!==d&&(O=!0,N=function(){return A.call(this)}),n&&!b||!m&&!O&&T[p]||o(T,p,N),l[t]=N,l[S]=f,g)if(x={values:z?N:M(d),keys:y?N:M("keys"),entries:B},b)for(w in x)w in T||i(T,w,x[w]);else a(a.P+a.F*(m||O),t,x);return x}},function(e,t,r){var n=r(50);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){var n=r(37),a=Math.min;e.exports=function(e){return e>0?a(n(e),9007199254740991):0}},function(e,t,r){var n=r(16),a="__core-js_shared__",i=n[a]||(n[a]={});e.exports=function(e){return i[e]||(i[e]={})}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,r){var n=r(15).f,a=r(21),i=r(11)("toStringTag");e.exports=function(e,t,r){e&&!a(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},function(e,t,r){var n=r(56),a=r(11)("iterator"),i=r(17);e.exports=r(8).getIteratorMethod=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||i[n(e)]}},function(e,t,r){var n=r(50),a=r(11)("toStringTag"),i="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),a))?r:i?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){"use strict";t.__esModule=!0;var n=i(r(97)),a=i(r(18));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return function(e,t){if(Array.isArray(e))return e;if((0,n.default)(Object(e)))return function(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var s,l=(0,a.default)(e);!(n=(s=l.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(i)throw o}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,r){r(99);for(var n=r(16),a=r(26),i=r(17),o=r(11)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var u=s[l],c=n[u],h=c&&c.prototype;h&&!h[o]&&a(h,o,u),i[u]=i.Array}},function(e,t,r){"use strict";t.a={"AMS-Regular":{65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1187],8674:[-.064,.437,0,0,1167],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473]},"Fraktur-Regular":{33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],824:[.19444,.69444,0,0,0],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444]},"Main-BoldItalic":{33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],163:[0,.69444,0,0,.86853],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],163:[0,.69444,0,0,.76909],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],305:[0,.43056,0,.02778,.32246],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],567:[.19444,.43056,0,.08334,.38403],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,0],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,0],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],824:[.19444,.69444,0,0,0],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.12,0,0,1015],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,889],8617:[.011,.511,0,0,1015],8618:[.011,.511,0,0,1015],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,889],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,667],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.67,0,0,666],8800:[.215,.716,0,0,666],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,692],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,847],8942:[.03,.9,0,0,121],8943:[-.19,.31,0,0,1015],8945:[-.1,.82,0,0,1015],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,301],9137:[.244,.744,0,0,301],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,184],10223:[.244,.744,0,0,184],10229:[.011,.511,0,0,1470],10230:[.011,.511,0,0,1469],10231:[.011,.511,0,0,1748],10232:[.024,.525,0,0,1497],10233:[.024,.525,0,0,1526],10234:[.024,.525,0,0,1746],10236:[.011,.511,0,0,1498],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778]},"Math-BoldItalic":{47:[.19444,.69444,0,0,0],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333]},"Math-Italic":{47:[.19444,.69444,0,0,0],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},"Math-Regular":{65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},"SansSerif-Bold":{33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],176:[0,.69444,0,0,.66667],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],733:[0,.69444,0,0,.5],771:[0,.67659,0,0,.5],776:[0,.67937,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212]},"Size1-Regular":{40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],176:[0,.61111,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}}},function(e,t,r){"use strict";t.a=u;var n=r(0),a=r(3),i=r(1),o=r(5),s=r(4),l=r(2);function u(e,t,r){for(var a=s.a(e,t,!1),i=t.sizeMultiplier/r.sizeMultiplier,l=0;l=u?e?"":void 0:(i=s.charCodeAt(l))<55296||i>56319||l+1===u||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):i:e?s.slice(l,l+2):o-56320+(i-55296<<10)+65536}}},function(e,t){e.exports=!0},function(e,t,r){e.exports=r(26)},function(e,t,r){"use strict";var n=r(85),a=r(33),i=r(54),o={};r(26)(o,r(11)("iterator"),function(){return this}),e.exports=function(e,t,r){e.prototype=n(o,{next:a(1,r)}),i(e,t+" Iterator")}},function(e,t,r){var n=r(22),a=r(86),i=r(53),o=r(41)("IE_PROTO"),s=function(){},l="prototype",u=function(){var e,t=r(45)("iframe"),n=i.length;for(t.style.display="none",r(90).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" -``` - -#### In-browser rendering - -Call `katex.render` with a TeX expression and a DOM element to render into: - -```js -katex.render("c = \\pm\\sqrt{a^2 + b^2}", element); -``` - -If KaTeX can't parse the expression, it throws a `katex.ParseError` error. - -#### Server side rendering or rendering to a string - -To generate HTML on the server or to generate an HTML string of the rendered math, you can use `katex.renderToString`: - -```js -var html = katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}"); -// '...' -``` - -Make sure to include the CSS and font files, but there is no need to include the JavaScript. Like `render`, `renderToString` throws if it can't parse the expression. - -#### Rendering options - -You can provide an object of options as the last argument to `katex.render` and `katex.renderToString`. Available options are: - -- `displayMode`: `boolean`. If `true` the math will be rendered in display mode, which will put the math in display style (so `\int` and `\sum` are large, for example), and will center the math on the page on its own line. If `false` the math will be rendered in inline mode. (default: `false`) - -For example: - -```js -katex.render("c = \\pm\\sqrt{a^2 + b^2}", element, { displayMode: true }); -``` - -#### Automatic rendering of math on a page - -Math on the page can be automatically rendered using the auto-render extension. See [the Auto-render README](contrib/auto-render/README.md) for more information. - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md) - -## License - -KaTeX is licensed under the [MIT License](http://opensource.org/licenses/MIT). diff --git a/client/katex/katex/contrib/auto-render.min.js b/client/katex/katex/contrib/auto-render.min.js deleted file mode 100644 index 5eab253..0000000 --- a/client/katex/katex/contrib/auto-render.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){if("function"==typeof bootstrap)bootstrap("rendermathinelement",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeRenderMathInElement=e}else"undefined"!=typeof window?window.renderMathInElement=e():global.renderMathInElement=e()})(function(){var e,t,r,n,a;return function i(e,t,r){function n(o,l){if(!t[o]){if(!e[o]){var f=typeof require=="function"&&require;if(!l&&f)return f(o,!0);if(a)return a(o,!0);throw new Error("Cannot find module '"+o+"'")}var s=t[o]={exports:{}};e[o][0].call(s.exports,function(t){var r=e[o][1][t];return n(r?r:t)},s,s.exports,i,e,t,r)}return t[o].exports}var a=typeof require=="function"&&require;for(var o=0;o.katex{display:inline-block}.katex{font:400 1.21em KaTeX_Main;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .textstyle>.mord+.mop{margin-left:.16667em}.katex .textstyle>.mord+.mbin{margin-left:.22222em}.katex .textstyle>.mord+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.mop,.katex .textstyle>.mop+.mord,.katex .textstyle>.mord+.minner{margin-left:.16667em}.katex .textstyle>.mop+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.minner{margin-left:.16667em}.katex .textstyle>.mbin+.minner,.katex .textstyle>.mbin+.mop,.katex .textstyle>.mbin+.mopen,.katex .textstyle>.mbin+.mord{margin-left:.22222em}.katex .textstyle>.mrel+.minner,.katex .textstyle>.mrel+.mop,.katex .textstyle>.mrel+.mopen,.katex .textstyle>.mrel+.mord{margin-left:.27778em}.katex .textstyle>.mclose+.mop{margin-left:.16667em}.katex .textstyle>.mclose+.mbin{margin-left:.22222em}.katex .textstyle>.mclose+.mrel{margin-left:.27778em}.katex .textstyle>.mclose+.minner,.katex .textstyle>.minner+.mop,.katex .textstyle>.minner+.mord,.katex .textstyle>.mpunct+.mclose,.katex .textstyle>.mpunct+.minner,.katex .textstyle>.mpunct+.mop,.katex .textstyle>.mpunct+.mopen,.katex .textstyle>.mpunct+.mord,.katex .textstyle>.mpunct+.mpunct,.katex .textstyle>.mpunct+.mrel{margin-left:.16667em}.katex .textstyle>.minner+.mbin{margin-left:.22222em}.katex .textstyle>.minner+.mrel{margin-left:.27778em}.katex .mclose+.mop,.katex .minner+.mop,.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.mop,.katex .textstyle>.minner+.minner,.katex .textstyle>.minner+.mopen,.katex .textstyle>.minner+.mpunct{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.enspace{width:.5em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border-style:solid;position:relative}.katex .overline .overline-line{width:100%}.katex .overline .overline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .arraycolsep{display:inline-block}.katex .col-align-c>.vlist{text-align:center}.katex .col-align-l>.vlist{text-align:left}.katex .col-align-r>.vlist{text-align:right} \ No newline at end of file diff --git a/client/katex/katex/katex.min.js b/client/katex/katex/katex.min.js deleted file mode 100644 index 578cb23..0000000 --- a/client/katex/katex/katex.min.js +++ /dev/null @@ -1,6 +0,0 @@ -(function(e){if("function"==typeof bootstrap)bootstrap("katex",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeKatex=e}else"undefined"!=typeof window?window.katex=e():global.katex=e()})(function(){var e,t,i,h,a;return function r(e,t,i){function h(l,s){if(!t[l]){if(!e[l]){var p=typeof require=="function"&&require;if(!s&&p)return p(l,!0);if(a)return a(l,!0);throw new Error("Cannot find module '"+l+"'")}var c=t[l]={exports:{}};e[l][0].call(c.exports,function(t){var i=e[l][1][t];return h(i?i:t)},c,c.exports,r,e,t,i)}return t[l].exports}var a=typeof require=="function"&&require;for(var l=0;l:]/,/[,;]/,/['\^_{}]/,/[(\[]/,/[)\]?!]/,/~/,/&/,/\\\\/];var p=[/[a-zA-Z0-9`!@*()-=+\[\]'";:?\/.,]/,/[{}]/,/~/,/&/,/\\\\/];var c=/\s*/;var n=/ +|\\ +/;var g=/\\(?:[a-zA-Z]+|.)/;r.prototype._innerLex=function(e,t,i){var r=this._input;var s;if(i){s=h(c,r,e)[0];e+=s.length}else{s=h(n,r,e);if(s!==null){return new l(" ",null,e+s[0].length)}}if(e===r.length){return new l("EOF",null,e)}var p;if(p=h(g,r,e)){return new l(p[0],null,e+p[0].length)}else{for(var o=0;ou){return this.parseFunction(e,t)}else{throw new c("Got function '"+r.result.result+"' with no arguments "+"as "+a,this.lexer,e)}}else{return r.result}};n.prototype.parseAtom=function(e,t){var i=this.parseImplicitGroup(e,t);if(t==="text"){return i}var h;if(!i){h=e;i=undefined}else{h=i.position}var a;var r;var l;while(true){var s=this.lexer.lex(h,t);if(s.text==="^"){if(a){throw new c("Double superscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"superscript");h=l.position;a=l.result}else if(s.text==="_"){if(r){throw new c("Double subscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"subscript");h=l.position;r=l.result}else if(s.text==="'"){var p=new g("textord","\\prime",t);var n=[p];h=s.position;while((s=this.lexer.lex(h,t)).text==="'"){n.push(p);h=s.position}a=new g("ordgroup",n,t)}else{break}}if(a||r){return new o(new g("supsub",{base:i&&i.result,sup:a,sub:r},t),h)}else{return i}};var k=["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];var m=["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"];n.prototype.parseImplicitGroup=function(e,t){var i=this.parseSymbol(e,t);if(!i||!i.result){return this.parseFunction(e,t)}var h=i.result.result;var r;if(h==="\\left"){var l=this.parseFunction(e,t);r=this.parseExpression(l.position,t,false);this.expect(r.peek,"\\right");var p=this.parseFunction(r.position,t);return new o(new g("leftright",{body:r.result,left:l.result.value.value,right:p.result.value.value},t),p.position)}else if(h==="\\begin"){var n=this.parseFunction(e,t);var d=n.result.value.name;if(!a.hasOwnProperty(d)){throw new c("No such environment: "+d,this.lexer,n.result.value.namepos)}var w=a[d];var u=[null,t,d];var f=this.parseArguments(n.position,t,"\\begin{"+d+"}",w,u);u[0]=f;var v=w.handler.apply(this,u);var y=this.lexer.lex(v.position,t);this.expect(y,"\\end");var x=this.parseFunction(v.position,t);if(x.result.value.name!==d){throw new c("Mismatch: \\begin{"+d+"} matched "+"by \\end{"+x.result.value.name+"}",this.lexer,x.namepos)}v.position=x.position;return v}else if(s.contains(k,h)){r=this.parseExpression(i.result.position,t,false);return new o(new g("sizing",{size:"size"+(s.indexOf(k,h)+1),value:r.result},t),r.position)}else if(s.contains(m,h)){r=this.parseExpression(i.result.position,t,true);return new o(new g("styling",{style:h.slice(1,h.length-5),value:r.result},t),r.position)}else{return this.parseFunction(e,t)}};n.prototype.parseFunction=function(e,t){var i=this.parseGroup(e,t);if(i){if(i.isFunction){var a=i.result.result;var r=h.funcs[a];if(t==="text"&&!r.allowedInText){throw new c("Can't use function '"+a+"' in text mode",this.lexer,i.position)}var l=[a];var s=this.parseArguments(i.result.position,t,a,r,l);var p=h.funcs[a].handler.apply(this,l);return new o(new g(p.type,p,t),s)}else{return i.result}}else{return null}};n.prototype.parseArguments=function(e,t,i,a,r){var l=a.numArgs+a.numOptionalArgs;if(l===0){return e}var s=e;var p=a.greediness;var n=[s];for(var g=0;gp){w=this.parseFunction(s,t)}else{throw new c("Got function '"+d.result.result+"' as "+"argument to '"+i+"'",this.lexer,d.result.position-1)}}else{w=d.result}r.push(w.result);n.push(w.position);s=w.position}r.push(n);return s};n.prototype.parseSpecialGroup=function(e,t,i,h){if(t==="original"){t=i}if(t==="color"||t==="size"){var a=this.lexer.lex(e,i);if(h&&a.text!=="["){return null}this.expect(a,h?"[":"{");var r=this.lexer.lex(a.position,t);var l;if(t==="color"){l=r.text}else{l=r.data}var s=this.lexer.lex(r.position,i);this.expect(s,h?"]":"}");return new d(new o(new g(t,l,i),s.position),false)}else if(t==="text"){var p=this.lexer.lex(e,"whitespace");e=p.position}if(h){return this.parseOptionalGroup(e,t)}else{return this.parseGroup(e,t)}};n.prototype.parseGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="{"){var h=this.parseExpression(i.position,t,false);var a=this.lexer.lex(h.position,t);this.expect(a,"}");return new d(new o(new g("ordgroup",h.result,t),a.position),false)}else{return this.parseSymbol(e,t)}};n.prototype.parseOptionalGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="["){var h=this.parseExpression(i.position,t,false,"]");var a=this.lexer.lex(h.position,t);this.expect(a,"]");return new d(new o(new g("ordgroup",h.result,t),a.position),false)}else{return null}};n.prototype.parseSymbol=function(e,t){var i=this.lexer.lex(e,t);if(h.funcs[i.text]){return new d(new o(i.text,i.position),true)}else if(l[t][i.text]){return new d(new o(new g(l[t][i.text].group,i.text,t),i.position),false)}else{return null}};n.prototype.ParseNode=g;t.exports=n},{"./Lexer":3,"./ParseError":5,"./environments":15,"./functions":17,"./parseData":19,"./symbols":21,"./utils":22}],7:[function(e,t,i){function h(e,t){return e===undefined?t:e}function a(e){e=e||{};this.displayMode=h(e.displayMode,false)}t.exports=a},{}],8:[function(e,t,i){function h(e,t,i,h){this.id=e;this.size=t;this.cramped=h;this.sizeMultiplier=i}h.prototype.sup=function(){return w[u[this.id]]};h.prototype.sub=function(){return w[k[this.id]]};h.prototype.fracNum=function(){return w[m[this.id]]};h.prototype.fracDen=function(){return w[f[this.id]]};h.prototype.cramp=function(){return w[v[this.id]]};h.prototype.cls=function(){return o[this.size]+(this.cramped?" cramped":" uncramped")};h.prototype.reset=function(){return d[this.size]};var a=0;var r=1;var l=2;var s=3;var p=4;var c=5;var n=6;var g=7;var o=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var d=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var w=[new h(a,0,1,false),new h(r,0,1,true),new h(l,1,1,false),new h(s,1,1,true),new h(p,2,.7,false),new h(c,2,.7,true),new h(n,3,.5,false),new h(g,3,.5,true)];var u=[p,c,p,c,n,g,n,g];var k=[c,c,c,c,g,g,g,g];var m=[l,s,p,c,n,g,n,g];var f=[s,s,c,c,g,g,g,g];var v=[r,r,s,s,c,c,g,g];t.exports={DISPLAY:w[a],TEXT:w[l],SCRIPT:w[p],SCRIPTSCRIPT:w[n]}},{}],9:[function(e,t,i){var h=e("./domTree");var a=e("./fontMetrics");var r=e("./symbols");var l=e("./utils");var s=function(e,t,i,l,s){if(r[i][e]&&r[i][e].replace){e=r[i][e].replace}var p=a.getCharacterMetrics(e,t);var c;if(p){c=new h.symbolNode(e,p.height,p.depth,p.italic,p.skew,s)}else{typeof console!=="undefined"&&console.warn("No character metrics for '"+e+"' in style '"+t+"'");c=new h.symbolNode(e,0,0,0,0,s)}if(l){c.style.color=l}return c};var p=function(e,t,i,h){if(r[t][e].font==="main"){return s(e,"Main-Regular",t,i,h)}else{return s(e,"AMS-Regular",t,i,h.concat(["amsrm"]))}};var c=function(e,t,i,h,a){if(a==="mathord"){return n(e,t,i,h)}else if(a==="textord"){return s(e,"Main-Regular",t,i,h.concat(["mathrm"]))}else{throw new Error("unexpected type: "+a+" in mathDefault")}};var n=function(e,t,i,h){if(/[0-9]/.test(e.charAt(0))||l.contains(["\u0131","\u0237"],e)||l.contains(v,e)){return s(e,"Main-Italic",t,i,h.concat(["mainit"]))}else{return s(e,"Math-Italic",t,i,h.concat(["mathit"]))}};var g=function(e,t,i){var h=e.mode;var p=e.value;if(r[h][p]&&r[h][p].replace){p=r[h][p].replace}var g=["mord"];var o=t.getColor();var d=t.font;if(d){if(d==="mathit"||l.contains(["\u0131","\u0237"],p)){return n(p,h,o,g.concat(["mathit"]))}else{var w=y[d].fontName;if(a.getCharacterMetrics(p,w)){return s(p,w,h,o,g.concat([d]))}else{return c(p,h,o,g,i)}}}else{return c(p,h,o,g,i)}};var o=function(e){var t=0;var i=0;var h=0;if(e.children){for(var a=0;at){t=e.children[a].height}if(e.children[a].depth>i){i=e.children[a].depth}if(e.children[a].maxFontSize>h){h=e.children[a].maxFontSize}}}e.height=t;e.depth=i;e.maxFontSize=h};var d=function(e,t,i){var a=new h.span(e,t);o(a);if(i){a.style.color=i}return a};var w=function(e){var t=new h.documentFragment(e);o(t);return t};var u=function(e,t){var i=d([],[new h.symbolNode("\u200b")]);i.style.fontSize=t/e.style.sizeMultiplier+"em";var a=d(["fontsize-ensurer","reset-"+e.size,"size5"],[i]);return a};var k=function(e,t,i,a){var r;var l;var s;if(t==="individualShift"){var p=e;e=[p[0]];r=-p[0].shift-p[0].elem.depth;l=r;for(s=1;s0){d+=M;k-=M}}z=l.makeVList([{type:"elem",elem:s,shift:k},{type:"elem",elem:a,shift:-d}],"individualShift",null,t);if(h instanceof p.symbolNode){z.children[0].style.marginLeft=-h.italic+"em"}z.children[0].style.marginRight=b;z.children[1].style.marginRight=b}return g([w(e.value.base)],[h,z])},genfrac:function(e,t,i){var h=t.style;if(e.value.size==="display"){h=r.DISPLAY}else if(e.value.size==="text"){h=r.TEXT}var a=h.fracNum();var p=h.fracDen();var n=y(e.value.numer,t.withStyle(a));var o=g([h.reset(),a.cls()],[n]);var d=y(e.value.denom,t.withStyle(p));var w=g([h.reset(),p.cls()],[d]);var u;if(e.value.hasBarLine){u=c.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{u=0}var k;var m;var v;if(h.size===r.DISPLAY.size){k=c.metrics.num1;if(u>0){m=3*u}else{m=7*c.metrics.defaultRuleThickness}v=c.metrics.denom1}else{if(u>0){k=c.metrics.num2;m=u}else{k=c.metrics.num3;m=3*c.metrics.defaultRuleThickness}v=c.metrics.denom2}var x;if(u===0){var b=k-n.depth-(d.height-v);if(b0){q+=f;if(z0||e.value.hskipBeforeAndAfter){E=n.deflt(R.pregap,d);if(E!==0){C=g(["arraycolsep"],[]);C.style.width=E+"em";N.push(C)}}var P=[];for(h=0;hh.height+h.depth+o){o=(o+k-h.height-h.depth)/2}var m=-(h.height+o+a)+u.height;u.style.top=m+"em";u.height-=m;u.depth+=m;var f;if(h.height===0&&h.depth===0){f=g()}else{f=l.makeVList([{type:"elem",elem:h},{type:"kern",size:o},{type:"elem",elem:p},{type:"kern",size:a}],"firstBaseline",null,t)}if(!e.value.index){return g(["sqrt","mord"],[u,f])}else{var v=y(e.value.index,t.withStyle(r.SCRIPTSCRIPT));var x=g([t.style.reset(),r.SCRIPTSCRIPT.cls()],[v]);var b=Math.max(u.height,f.height);var z=Math.max(u.depth,f.depth);var S=.6*(b-z);var M=l.makeVList([{type:"elem",elem:x}],"shift",-S,t);var q=g(["root"],[M]);return g(["sqrt","mord"],[q,u,f])}},sizing:function(e,t,i){var h=o(e.value.value,t.withSize(e.value.size),i);var a=g(["mord"],[g(["sizing","reset-"+t.size,e.value.size,t.style.cls()],h)]);var r=l.sizingMultiplier[e.value.size];a.maxFontSize=r*t.style.sizeMultiplier;return a},styling:function(e,t,i){var h={display:r.DISPLAY,text:r.TEXT,script:r.SCRIPT,scriptscript:r.SCRIPTSCRIPT};var a=h[e.value.style];var l=o(e.value.value,t.withStyle(a),i);return g([t.style.reset(),a.cls()],l)},font:function(e,t,i){var h=e.value.font;return y(e.value.body,t.withFont(h),i)},delimsizing:function(e,t,i){var h=e.value.value;if(h==="."){return g([d[e.value.delimType]])}return g([d[e.value.delimType]],[s.sizedDelim(h,e.value.size,t,e.mode)])},leftright:function(e,t,i){var h=o(e.value.body,t.reset());var a=0;var r=0;for(var l=0;l","\\langle","\\rangle","/","\\backslash"];var y=[0,1.2,1.8,2.4,3];var x=function(e,t,i,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}if(p.contains(m,e)||p.contains(v,e)){return w(e,t,false,i,a)}else if(p.contains(f,e)){return k(e,y[t],false,i,a)}else{throw new h("Illegal delimiter: '"+e+"'")}};var b=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var z=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"stack"}];var S=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var M=function(e){if(e.type==="small"){return"Main-Regular"}else if(e.type==="large"){return"Size"+e.size+"-Regular"}else if(e.type==="stack"){return"Size4-Regular"}};var q=function(e,t,i,h){var a=Math.min(2,3-h.style.size);for(var r=a;rt){return i[r]}}return i[i.length-1]};var A=function(e,t,i,h,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}var r;if(p.contains(v,e)){r=b}else if(p.contains(m,e)){r=S}else{r=z}var l=q(e,t,r,h);if(l.type==="small"){return d(e,l.style,i,h,a)}else if(l.type==="large"){return w(e,l.size,i,h,a)}else if(l.type==="stack"){return k(e,t,i,h,a)}};var T=function(e,t,i,h,a){var r=l.metrics.axisHeight*h.style.sizeMultiplier;var s=901;var p=5/l.metrics.ptPerEm;var c=Math.max(t-r,i+r);var n=Math.max(c/500*s,2*c-p);return A(e,n,true,h,a)};t.exports={sizedDelim:x,customSizedDelim:A,leftRightDelim:T}},{"./ParseError":5,"./Style":8,"./buildCommon":9,"./fontMetrics":16,"./symbols":21,"./utils":22}],14:[function(e,t,i){var h=e("./utils");var a=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(" ")};function r(e,t,i,h,a,r){this.classes=e||[];this.children=t||[];this.height=i||0;this.depth=h||0;this.maxFontSize=a||0;this.style=r||{};this.attributes={}}r.prototype.setAttribute=function(e,t){this.attributes[e]=t};r.prototype.toNode=function(){var e=document.createElement("span");e.className=a(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var i in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,i)){e.setAttribute(i,this.attributes[i])}}for(var h=0;h";return e};function l(e,t,i,h){this.children=e||[];this.height=t||0;this.depth=i||0;this.maxFontSize=h||0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t0){t=document.createElement("span");t.style.marginRight=this.italic+"em"}if(this.classes.length>0){t=t||document.createElement("span");t.className=a(this.classes)}for(var i in this.style){if(this.style.hasOwnProperty(i)){t=t||document.createElement("span");t.style[i]=this.style[i]}}if(t){t.appendChild(e);return t}else{return e}};s.prototype.toMarkup=function(){var e=false;var t="0){i+="margin-right:"+this.italic+"em;"}for(var r in this.style){if(this.style.hasOwnProperty(r)){i+=h.hyphenate(r)+":"+this.style[r]+";"}}if(i){e=true;t+=' style="'+h.escape(i)+'"'}var l=h.escape(this.value);if(e){t+=">";t+=l;t+="";return t}else{return l}};t.exports={span:r,documentFragment:l,symbolNode:s}},{"./utils":22}],15:[function(e,t,i){var h=e("./fontMetrics");var a=e("./parseData");var r=e("./ParseError");var l=a.ParseNode;var s=a.ParseResult;function p(e,t,i,h){var a=[],p=[a],c=[];while(true){var n=e.parseExpression(t,i,false,null);a.push(new l("ordgroup",n.result,i));t=n.position;var g=n.peek.text;if(g==="&"){t=n.peek.position}else if(g==="\\end"){break}else if(g==="\\\\"||g==="\\cr"){var o=e.parseFunction(t,i);c.push(o.result.value.size);t=o.position;a=[];p.push(a)}else{throw new r("Expected & or \\\\ or \\end",e.lexer,n.peek.position)}}h.body=p;h.rowGaps=c;return new s(new l(h.type,h,i),t)}var c=[{names:["array"],numArgs:1,handler:function(e,t,i,h,a){var l=this;h=h.value.map?h.value:[h];var s=h.map(function(e){var t=e.value;if("lcr".indexOf(t)!==-1){return{align:t}}throw new r("Unknown column alignment: "+e.value,l.lexer,a[1])});var c={type:"array",cols:s,hskipBeforeAndAfter:true};c=p(l,e,t,c);return c}},{names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],handler:function(e,t,i){var h={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i];var a={type:"array",hskipBeforeAndAfter:false};a=p(this,e,t,a);if(h){a.result=new l("leftright",{body:[a.result],left:h[0],right:h[1]},t)}return a}},{names:["cases"],handler:function(e,t,i){var a={type:"array",arraystretch:1.2,cols:[{align:"l",pregap:0,postgap:h.metrics.quad},{align:"l",pregap:0,postgap:0}]};a=p(this,e,t,a);a.result=new l("leftright",{body:[a.result],left:"\\{",right:"."},t);return a}}];t.exports=function(){var e={};for(var t=0;t","\\langle","\\rangle","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p={"\\frak":"\\mathfrak","\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\rm":"\\mathrm","\\sf":"\\mathsf","\\tt":"\\mathtt","\\bf":"\\mathbf","\\it":"\\mathit","\\cal":"\\mathcal"};var c=[{funcs:["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],data:{numArgs:1,allowedInText:true,greediness:3,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"color",color:"katex-"+e.slice(1),value:i}}}},{funcs:["\\arcsin","\\arccos","\\arctan","\\arg","\\cos","\\cosh","\\cot","\\coth","\\csc","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\tan","\\tanh"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:false,body:e}}}},{funcs:["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:false,body:e}}}},{funcs:["\\int","\\iint","\\iiint","\\oint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:true,body:e}}}},{funcs:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:true,body:e}}}},{funcs:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom"],data:{numArgs:2,greediness:2,handler:function(e,t,i){var h;var a=null;var r=null;var l="auto";switch(e){case"\\dfrac":case"\\frac":case"\\tfrac":h=true;break;case"\\dbinom":case"\\binom":case"\\tbinom":h=false;a="(";r=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",numer:t,denom:i,hasBarLine:h,leftDelim:a,rightDelim:r,size:l}}}},{funcs:["\\llap","\\rlap"],data:{numArgs:1,allowedInText:true,handler:function(e,t){return{type:e.slice(1),body:t}}}},{funcs:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg","\\left","\\right"],data:{numArgs:1,handler:function(e,t,i){if(!h.contains(s,t.value)){throw new a("Invalid delimiter: '"+t.value+"' after '"+e+"'",this.lexer,i[1])}if(e==="\\left"||e==="\\right"){return{type:"leftright",value:t.value}}else{return{type:"delimsizing",size:l[e].size,delimType:l[e].type,value:t.value}}}}},{funcs:["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],data:{numArgs:0}},{funcs:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],data:{numArgs:0}},{funcs:["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt"],data:{numArgs:1,handler:function(e,t){if(e in p){e=p[e]}return{type:"font",font:e.slice(1),body:t}}}},{funcs:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],data:{numArgs:1,handler:function(e,t){return{type:"accent",accent:e,base:t}}}},{funcs:["\\over","\\choose"],data:{numArgs:0,handler:function(e){var t;switch(e){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t}}}},{funcs:["\\\\","\\cr"],data:{numArgs:0,numOptionalArgs:1,argTypes:["size"],handler:function(e,t){return{type:"cr",size:t}}}},{funcs:["\\begin","\\end"],data:{numArgs:1,argTypes:["text"],handler:function(e,t,i){if(t.type!=="ordgroup"){throw new a("Invalid environment name",this.lexer,i[1])}var h="";for(var r=0;r";return e};function r(e){this.text=e}r.prototype.toNode=function(){return document.createTextNode(this.text)};r.prototype.toMarkup=function(){return h.escape(this.text)};t.exports={MathNode:a,TextNode:r}},{"./utils":22}],19:[function(e,t,i){function h(e,t,i){this.type=e;this.value=t;this.mode=i}function a(e,t,i){this.result=e;this.position=t}t.exports={ParseNode:h,ParseResult:a}},{}],20:[function(e,t,i){var h=e("./Parser");var a=function(e,t){var i=new h(e,t);return i.parse()};t.exports=a},{"./Parser":6}],21:[function(e,t,i){var h={math:{"\\equiv":{font:"main",group:"rel",replace:"\u2261"},"\\prec":{font:"main",group:"rel",replace:"\u227a"},"\\succ":{font:"main",group:"rel",replace:"\u227b"},"\\sim":{font:"main",group:"rel",replace:"\u223c"},"\\perp":{font:"main",group:"rel",replace:"\u22a5"},"\\preceq":{font:"main",group:"rel",replace:"\u2aaf"},"\\succeq":{font:"main",group:"rel",replace:"\u2ab0"},"\\simeq":{font:"main",group:"rel",replace:"\u2243"},"\\mid":{font:"main",group:"rel",replace:"\u2223"},"\\ll":{font:"main",group:"rel",replace:"\u226a"},"\\gg":{font:"main",group:"rel",replace:"\u226b"},"\\asymp":{font:"main",group:"rel",replace:"\u224d"},"\\parallel":{font:"main",group:"rel",replace:"\u2225"},"\\bowtie":{font:"main",group:"rel",replace:"\u22c8"},"\\smile":{font:"main",group:"rel",replace:"\u2323"},"\\sqsubseteq":{font:"main",group:"rel",replace:"\u2291"},"\\sqsupseteq":{font:"main",group:"rel",replace:"\u2292"},"\\doteq":{font:"main",group:"rel",replace:"\u2250"},"\\frown":{font:"main",group:"rel",replace:"\u2322"},"\\ni":{font:"main",group:"rel",replace:"\u220b"},"\\propto":{font:"main",group:"rel",replace:"\u221d"},"\\vdash":{font:"main",group:"rel",replace:"\u22a2"},"\\dashv":{font:"main",group:"rel",replace:"\u22a3"},"\\owns":{font:"main",group:"rel",replace:"\u220b"},"\\ldotp":{font:"main",group:"punct",replace:"."},"\\cdotp":{font:"main",group:"punct",replace:"\u22c5"},"\\#":{font:"main",group:"textord",replace:"#"},"\\&":{font:"main",group:"textord",replace:"&"},"\\aleph":{font:"main",group:"textord",replace:"\u2135"},"\\forall":{font:"main",group:"textord",replace:"\u2200"},"\\hbar":{font:"main",group:"textord",replace:"\u210f"},"\\exists":{font:"main",group:"textord",replace:"\u2203"},"\\nabla":{font:"main",group:"textord",replace:"\u2207"},"\\flat":{font:"main",group:"textord",replace:"\u266d"},"\\ell":{font:"main",group:"textord",replace:"\u2113"},"\\natural":{font:"main",group:"textord",replace:"\u266e"},"\\clubsuit":{font:"main",group:"textord",replace:"\u2663"},"\\wp":{font:"main",group:"textord",replace:"\u2118"},"\\sharp":{font:"main",group:"textord",replace:"\u266f"},"\\diamondsuit":{font:"main",group:"textord",replace:"\u2662"},"\\Re":{font:"main",group:"textord",replace:"\u211c"},"\\heartsuit":{font:"main",group:"textord",replace:"\u2661"},"\\Im":{font:"main",group:"textord",replace:"\u2111"},"\\spadesuit":{font:"main",group:"textord",replace:"\u2660"},"\\dag":{font:"main",group:"textord",replace:"\u2020"},"\\ddag":{font:"main",group:"textord",replace:"\u2021"},"\\rmoustache":{font:"main",group:"close",replace:"\u23b1"},"\\lmoustache":{font:"main",group:"open",replace:"\u23b0"},"\\rgroup":{font:"main",group:"close",replace:"\u27ef"},"\\lgroup":{font:"main",group:"open",replace:"\u27ee"},"\\mp":{font:"main",group:"bin",replace:"\u2213"},"\\ominus":{font:"main",group:"bin",replace:"\u2296"},"\\uplus":{font:"main",group:"bin",replace:"\u228e"},"\\sqcap":{font:"main",group:"bin",replace:"\u2293"},"\\ast":{font:"main",group:"bin",replace:"\u2217"},"\\sqcup":{font:"main",group:"bin",replace:"\u2294"},"\\bigcirc":{font:"main",group:"bin",replace:"\u25ef"},"\\bullet":{font:"main",group:"bin",replace:"\u2219"},"\\ddagger":{font:"main",group:"bin",replace:"\u2021"},"\\wr":{font:"main",group:"bin",replace:"\u2240"},"\\amalg":{font:"main",group:"bin",replace:"\u2a3f"},"\\longleftarrow":{font:"main",group:"rel",replace:"\u27f5"},"\\Leftarrow":{font:"main",group:"rel",replace:"\u21d0"},"\\Longleftarrow":{font:"main",group:"rel",replace:"\u27f8"},"\\longrightarrow":{font:"main",group:"rel",replace:"\u27f6"},"\\Rightarrow":{font:"main",group:"rel",replace:"\u21d2"},"\\Longrightarrow":{font:"main",group:"rel",replace:"\u27f9"},"\\leftrightarrow":{font:"main",group:"rel",replace:"\u2194"},"\\longleftrightarrow":{font:"main",group:"rel",replace:"\u27f7"},"\\Leftrightarrow":{font:"main",group:"rel",replace:"\u21d4"},"\\Longleftrightarrow":{font:"main",group:"rel",replace:"\u27fa"},"\\mapsto":{font:"main",group:"rel",replace:"\u21a6"},"\\longmapsto":{font:"main",group:"rel",replace:"\u27fc"},"\\nearrow":{font:"main",group:"rel",replace:"\u2197"},"\\hookleftarrow":{font:"main",group:"rel",replace:"\u21a9"},"\\hookrightarrow":{font:"main",group:"rel",replace:"\u21aa"},"\\searrow":{font:"main",group:"rel",replace:"\u2198"},"\\leftharpoonup":{font:"main",group:"rel",replace:"\u21bc"},"\\rightharpoonup":{font:"main",group:"rel",replace:"\u21c0"},"\\swarrow":{font:"main",group:"rel",replace:"\u2199"},"\\leftharpoondown":{font:"main",group:"rel",replace:"\u21bd"},"\\rightharpoondown":{font:"main",group:"rel",replace:"\u21c1"},"\\nwarrow":{font:"main",group:"rel",replace:"\u2196"},"\\rightleftharpoons":{font:"main",group:"rel",replace:"\u21cc"},"\\nless":{font:"ams",group:"rel",replace:"\u226e"},"\\nleqslant":{font:"ams",group:"rel",replace:"\ue010"},"\\nleqq":{font:"ams",group:"rel",replace:"\ue011"},"\\lneq":{font:"ams",group:"rel",replace:"\u2a87"},"\\lneqq":{font:"ams",group:"rel",replace:"\u2268"},"\\lvertneqq":{font:"ams",group:"rel",replace:"\ue00c"},"\\lnsim":{font:"ams",group:"rel",replace:"\u22e6"},"\\lnapprox":{font:"ams",group:"rel",replace:"\u2a89"},"\\nprec":{font:"ams",group:"rel",replace:"\u2280"},"\\npreceq":{font:"ams",group:"rel",replace:"\u22e0"},"\\precnsim":{font:"ams",group:"rel",replace:"\u22e8"},"\\precnapprox":{font:"ams",group:"rel",replace:"\u2ab9"},"\\nsim":{font:"ams",group:"rel",replace:"\u2241"},"\\nshortmid":{font:"ams",group:"rel",replace:"\ue006"},"\\nmid":{font:"ams",group:"rel",replace:"\u2224"},"\\nvdash":{font:"ams",group:"rel",replace:"\u22ac"},"\\nvDash":{font:"ams",group:"rel",replace:"\u22ad"},"\\ntriangleleft":{font:"ams",group:"rel",replace:"\u22ea"},"\\ntrianglelefteq":{font:"ams",group:"rel",replace:"\u22ec"},"\\subsetneq":{font:"ams",group:"rel",replace:"\u228a"},"\\varsubsetneq":{font:"ams",group:"rel",replace:"\ue01a"},"\\subsetneqq":{font:"ams",group:"rel",replace:"\u2acb"},"\\varsubsetneqq":{font:"ams",group:"rel",replace:"\ue017"},"\\ngtr":{font:"ams",group:"rel",replace:"\u226f"},"\\ngeqslant":{font:"ams",group:"rel",replace:"\ue00f"},"\\ngeqq":{font:"ams",group:"rel",replace:"\ue00e"},"\\gneq":{font:"ams",group:"rel",replace:"\u2a88"},"\\gneqq":{font:"ams",group:"rel",replace:"\u2269"},"\\gvertneqq":{font:"ams",group:"rel",replace:"\ue00d"},"\\gnsim":{font:"ams",group:"rel",replace:"\u22e7"},"\\gnapprox":{font:"ams",group:"rel",replace:"\u2a8a"},"\\nsucc":{font:"ams",group:"rel",replace:"\u2281"},"\\nsucceq":{font:"ams",group:"rel",replace:"\u22e1"},"\\succnsim":{font:"ams",group:"rel",replace:"\u22e9"},"\\succnapprox":{font:"ams",group:"rel",replace:"\u2aba"},"\\ncong":{font:"ams",group:"rel",replace:"\u2246"},"\\nshortparallel":{font:"ams",group:"rel",replace:"\ue007"},"\\nparallel":{font:"ams",group:"rel",replace:"\u2226"},"\\nVDash":{font:"ams",group:"rel",replace:"\u22af"},"\\ntriangleright":{font:"ams",group:"rel",replace:"\u22eb"},"\\ntrianglerighteq":{font:"ams",group:"rel",replace:"\u22ed"},"\\nsupseteqq":{font:"ams",group:"rel",replace:"\ue018"},"\\supsetneq":{font:"ams",group:"rel",replace:"\u228b"},"\\varsupsetneq":{font:"ams",group:"rel",replace:"\ue01b"},"\\supsetneqq":{font:"ams",group:"rel",replace:"\u2acc"},"\\varsupsetneqq":{font:"ams",group:"rel",replace:"\ue019"},"\\nVdash":{font:"ams",group:"rel",replace:"\u22ae"},"\\precneqq":{font:"ams",group:"rel",replace:"\u2ab5"},"\\succneqq":{font:"ams",group:"rel",replace:"\u2ab6"},"\\nsubseteqq":{font:"ams",group:"rel",replace:"\ue016"},"\\unlhd":{font:"ams",group:"bin",replace:"\u22b4"},"\\unrhd":{font:"ams",group:"bin",replace:"\u22b5"},"\\nleftarrow":{font:"ams",group:"rel",replace:"\u219a"},"\\nrightarrow":{font:"ams",group:"rel",replace:"\u219b"},"\\nLeftarrow":{font:"ams",group:"rel",replace:"\u21cd"},"\\nRightarrow":{font:"ams",group:"rel",replace:"\u21cf"},"\\nleftrightarrow":{font:"ams",group:"rel",replace:"\u21ae"},"\\nLeftrightarrow":{font:"ams",group:"rel",replace:"\u21ce"},"\\vartriangle":{font:"ams",group:"rel",replace:"\u25b3"},"\\hslash":{font:"ams",group:"textord",replace:"\u210f"},"\\triangledown":{font:"ams",group:"textord",replace:"\u25bd"},"\\lozenge":{font:"ams",group:"textord",replace:"\u25ca"},"\\circledS":{font:"ams",group:"textord",replace:"\u24c8"},"\\circledR":{font:"ams",group:"textord",replace:"\xae"},"\\measuredangle":{font:"ams",group:"textord",replace:"\u2221"},"\\nexists":{font:"ams",group:"textord",replace:"\u2204"},"\\mho":{font:"ams",group:"textord",replace:"\u2127"},"\\Finv":{font:"ams",group:"textord",replace:"\u2132"},"\\Game":{font:"ams",group:"textord",replace:"\u2141"},"\\Bbbk":{font:"ams",group:"textord",replace:"k"},"\\backprime":{font:"ams",group:"textord",replace:"\u2035"},"\\blacktriangle":{font:"ams",group:"textord",replace:"\u25b2"},"\\blacktriangledown":{font:"ams",group:"textord",replace:"\u25bc"},"\\blacksquare":{font:"ams",group:"textord",replace:"\u25a0"},"\\blacklozenge":{font:"ams",group:"textord",replace:"\u29eb"},"\\bigstar":{font:"ams",group:"textord",replace:"\u2605"},"\\sphericalangle":{font:"ams",group:"textord",replace:"\u2222"},"\\complement":{font:"ams",group:"textord",replace:"\u2201"},"\\eth":{font:"ams",group:"textord",replace:"\xf0"},"\\diagup":{font:"ams",group:"textord",replace:"\u2571"},"\\diagdown":{font:"ams",group:"textord",replace:"\u2572"},"\\square":{font:"ams",group:"textord",replace:"\u25a1"},"\\Box":{font:"ams",group:"textord",replace:"\u25a1"},"\\Diamond":{font:"ams",group:"textord",replace:"\u25ca"},"\\yen":{font:"ams",group:"textord",replace:"\xa5"},"\\checkmark":{font:"ams",group:"textord",replace:"\u2713"},"\\beth":{font:"ams",group:"textord",replace:"\u2136"},"\\daleth":{font:"ams",group:"textord",replace:"\u2138"},"\\gimel":{font:"ams",group:"textord",replace:"\u2137"},"\\digamma":{font:"ams",group:"textord",replace:"\u03dd"},"\\varkappa":{font:"ams",group:"textord",replace:"\u03f0"},"\\ulcorner":{font:"ams",group:"textord",replace:"\u250c"},"\\urcorner":{font:"ams",group:"textord",replace:"\u2510"},"\\llcorner":{font:"ams",group:"textord",replace:"\u2514"},"\\lrcorner":{font:"ams",group:"textord",replace:"\u2518"},"\\leqq":{font:"ams",group:"rel",replace:"\u2266"},"\\leqslant":{font:"ams",group:"rel",replace:"\u2a7d"},"\\eqslantless":{font:"ams",group:"rel",replace:"\u2a95"},"\\lesssim":{font:"ams",group:"rel",replace:"\u2272"},"\\lessapprox":{font:"ams",group:"rel",replace:"\u2a85"},"\\approxeq":{font:"ams",group:"rel",replace:"\u224a"},"\\lessdot":{font:"ams",group:"bin",replace:"\u22d6"},"\\lll":{font:"ams",group:"rel",replace:"\u22d8"},"\\lessgtr":{font:"ams",group:"rel",replace:"\u2276"},"\\lesseqgtr":{font:"ams",group:"rel",replace:"\u22da"},"\\lesseqqgtr":{font:"ams",group:"rel",replace:"\u2a8b"},"\\doteqdot":{font:"ams",group:"rel",replace:"\u2251"},"\\risingdotseq":{font:"ams",group:"rel",replace:"\u2253"},"\\fallingdotseq":{font:"ams",group:"rel",replace:"\u2252"},"\\backsim":{font:"ams",group:"rel",replace:"\u223d"},"\\backsimeq":{font:"ams",group:"rel",replace:"\u22cd"},"\\subseteqq":{font:"ams",group:"rel",replace:"\u2ac5"},"\\Subset":{font:"ams",group:"rel",replace:"\u22d0"},"\\sqsubset":{font:"ams",group:"rel",replace:"\u228f"},"\\preccurlyeq":{font:"ams",group:"rel",replace:"\u227c"},"\\curlyeqprec":{font:"ams",group:"rel",replace:"\u22de"},"\\precsim":{font:"ams",group:"rel",replace:"\u227e"},"\\precapprox":{font:"ams",group:"rel",replace:"\u2ab7"},"\\vartriangleleft":{font:"ams",group:"rel",replace:"\u22b2"},"\\trianglelefteq":{font:"ams",group:"rel",replace:"\u22b4"},"\\vDash":{font:"ams",group:"rel",replace:"\u22a8"},"\\Vvdash":{font:"ams",group:"rel",replace:"\u22aa"},"\\smallsmile":{font:"ams",group:"rel",replace:"\u2323"},"\\smallfrown":{font:"ams",group:"rel",replace:"\u2322"},"\\bumpeq":{font:"ams",group:"rel",replace:"\u224f"},"\\Bumpeq":{font:"ams",group:"rel",replace:"\u224e"},"\\geqq":{font:"ams",group:"rel",replace:"\u2267"},"\\geqslant":{font:"ams",group:"rel",replace:"\u2a7e"},"\\eqslantgtr":{font:"ams",group:"rel",replace:"\u2a96"},"\\gtrsim":{font:"ams",group:"rel",replace:"\u2273"},"\\gtrapprox":{font:"ams",group:"rel",replace:"\u2a86"},"\\gtrdot":{font:"ams",group:"bin",replace:"\u22d7"},"\\ggg":{font:"ams",group:"rel",replace:"\u22d9"},"\\gtrless":{font:"ams",group:"rel",replace:"\u2277"},"\\gtreqless":{font:"ams",group:"rel",replace:"\u22db"},"\\gtreqqless":{font:"ams",group:"rel",replace:"\u2a8c"},"\\eqcirc":{font:"ams",group:"rel",replace:"\u2256"},"\\circeq":{font:"ams",group:"rel",replace:"\u2257"},"\\triangleq":{font:"ams",group:"rel",replace:"\u225c"},"\\thicksim":{font:"ams",group:"rel",replace:"\u223c"},"\\thickapprox":{font:"ams",group:"rel",replace:"\u2248"},"\\supseteqq":{font:"ams",group:"rel",replace:"\u2ac6"},"\\Supset":{font:"ams",group:"rel",replace:"\u22d1"},"\\sqsupset":{font:"ams",group:"rel",replace:"\u2290"},"\\succcurlyeq":{font:"ams",group:"rel",replace:"\u227d"},"\\curlyeqsucc":{font:"ams",group:"rel",replace:"\u22df"},"\\succsim":{font:"ams",group:"rel",replace:"\u227f"},"\\succapprox":{font:"ams",group:"rel",replace:"\u2ab8"},"\\vartriangleright":{font:"ams",group:"rel",replace:"\u22b3"},"\\trianglerighteq":{font:"ams",group:"rel",replace:"\u22b5"},"\\Vdash":{font:"ams",group:"rel",replace:"\u22a9"},"\\shortmid":{font:"ams",group:"rel",replace:"\u2223"},"\\shortparallel":{font:"ams",group:"rel",replace:"\u2225"},"\\between":{font:"ams",group:"rel",replace:"\u226c"},"\\pitchfork":{font:"ams",group:"rel",replace:"\u22d4"},"\\varpropto":{font:"ams",group:"rel",replace:"\u221d"},"\\blacktriangleleft":{font:"ams",group:"rel",replace:"\u25c0"},"\\therefore":{font:"ams",group:"rel",replace:"\u2234"},"\\backepsilon":{font:"ams",group:"rel",replace:"\u220d"},"\\blacktriangleright":{font:"ams",group:"rel",replace:"\u25b6"},"\\because":{font:"ams",group:"rel",replace:"\u2235"},"\\llless":{font:"ams",group:"rel",replace:"\u22d8"},"\\gggtr":{font:"ams",group:"rel",replace:"\u22d9"},"\\lhd":{font:"ams",group:"bin",replace:"\u22b2"},"\\rhd":{font:"ams",group:"bin",replace:"\u22b3"},"\\eqsim":{font:"ams",group:"rel",replace:"\u2242"},"\\Join":{font:"main",group:"rel",replace:"\u22c8"},"\\Doteq":{font:"ams",group:"rel",replace:"\u2251"},"\\dotplus":{font:"ams",group:"bin",replace:"\u2214"},"\\smallsetminus":{font:"ams",group:"bin",replace:"\u2216"},"\\Cap":{font:"ams",group:"bin",replace:"\u22d2"},"\\Cup":{font:"ams",group:"bin",replace:"\u22d3"},"\\doublebarwedge":{font:"ams",group:"bin",replace:"\u2a5e"},"\\boxminus":{font:"ams",group:"bin",replace:"\u229f"},"\\boxplus":{font:"ams",group:"bin",replace:"\u229e"},"\\divideontimes":{font:"ams",group:"bin",replace:"\u22c7"},"\\ltimes":{font:"ams",group:"bin",replace:"\u22c9"},"\\rtimes":{font:"ams",group:"bin",replace:"\u22ca"},"\\leftthreetimes":{font:"ams",group:"bin",replace:"\u22cb"},"\\rightthreetimes":{font:"ams",group:"bin",replace:"\u22cc"},"\\curlywedge":{font:"ams",group:"bin",replace:"\u22cf"},"\\curlyvee":{font:"ams",group:"bin",replace:"\u22ce"},"\\circleddash":{font:"ams",group:"bin",replace:"\u229d"},"\\circledast":{font:"ams",group:"bin",replace:"\u229b"},"\\centerdot":{font:"ams",group:"bin",replace:"\u22c5"},"\\intercal":{font:"ams",group:"bin",replace:"\u22ba"},"\\doublecap":{font:"ams",group:"bin",replace:"\u22d2"},"\\doublecup":{font:"ams",group:"bin",replace:"\u22d3"},"\\boxtimes":{font:"ams",group:"bin",replace:"\u22a0"},"\\dashrightarrow":{font:"ams",group:"rel",replace:"\u21e2"},"\\dashleftarrow":{font:"ams",group:"rel",replace:"\u21e0"},"\\leftleftarrows":{font:"ams",group:"rel",replace:"\u21c7"},"\\leftrightarrows":{font:"ams",group:"rel",replace:"\u21c6"},"\\Lleftarrow":{font:"ams",group:"rel",replace:"\u21da"},"\\twoheadleftarrow":{font:"ams",group:"rel",replace:"\u219e"},"\\leftarrowtail":{font:"ams",group:"rel",replace:"\u21a2"},"\\looparrowleft":{font:"ams",group:"rel",replace:"\u21ab"},"\\leftrightharpoons":{font:"ams",group:"rel",replace:"\u21cb"},"\\curvearrowleft":{font:"ams",group:"rel",replace:"\u21b6"},"\\circlearrowleft":{font:"ams",group:"rel",replace:"\u21ba"},"\\Lsh":{font:"ams",group:"rel",replace:"\u21b0"},"\\upuparrows":{font:"ams",group:"rel",replace:"\u21c8"},"\\upharpoonleft":{font:"ams",group:"rel",replace:"\u21bf"},"\\downharpoonleft":{font:"ams",group:"rel",replace:"\u21c3"},"\\multimap":{font:"ams",group:"rel",replace:"\u22b8"},"\\leftrightsquigarrow":{font:"ams",group:"rel",replace:"\u21ad"},"\\rightrightarrows":{font:"ams",group:"rel",replace:"\u21c9"},"\\rightleftarrows":{font:"ams",group:"rel",replace:"\u21c4"},"\\twoheadrightarrow":{font:"ams",group:"rel",replace:"\u21a0"},"\\rightarrowtail":{font:"ams",group:"rel",replace:"\u21a3"},"\\looparrowright":{font:"ams",group:"rel",replace:"\u21ac"},"\\curvearrowright":{font:"ams",group:"rel",replace:"\u21b7"},"\\circlearrowright":{font:"ams",group:"rel",replace:"\u21bb"},"\\Rsh":{font:"ams",group:"rel",replace:"\u21b1"},"\\downdownarrows":{font:"ams",group:"rel",replace:"\u21ca"},"\\upharpoonright":{font:"ams",group:"rel",replace:"\u21be"},"\\downharpoonright":{font:"ams",group:"rel",replace:"\u21c2"},"\\rightsquigarrow":{font:"ams",group:"rel",replace:"\u21dd"},"\\leadsto":{font:"ams",group:"rel",replace:"\u21dd"},"\\Rrightarrow":{font:"ams",group:"rel",replace:"\u21db"},"\\restriction":{font:"ams",group:"rel",replace:"\u21be"},"`":{font:"main",group:"textord",replace:"\u2018"},"\\$":{font:"main",group:"textord",replace:"$"},"\\%":{font:"main",group:"textord",replace:"%"},"\\_":{font:"main",group:"textord",replace:"_"},"\\angle":{font:"main",group:"textord",replace:"\u2220"},"\\infty":{font:"main",group:"textord",replace:"\u221e"},"\\prime":{font:"main",group:"textord",replace:"\u2032"},"\\triangle":{font:"main",group:"textord",replace:"\u25b3"},"\\Gamma":{font:"main",group:"textord",replace:"\u0393"},"\\Delta":{font:"main",group:"textord",replace:"\u0394"},"\\Theta":{font:"main",group:"textord",replace:"\u0398"},"\\Lambda":{font:"main",group:"textord",replace:"\u039b"},"\\Xi":{font:"main",group:"textord",replace:"\u039e"},"\\Pi":{font:"main",group:"textord",replace:"\u03a0"},"\\Sigma":{font:"main",group:"textord",replace:"\u03a3"},"\\Upsilon":{font:"main",group:"textord",replace:"\u03a5"},"\\Phi":{font:"main",group:"textord",replace:"\u03a6"},"\\Psi":{font:"main",group:"textord",replace:"\u03a8"},"\\Omega":{font:"main",group:"textord",replace:"\u03a9"},"\\neg":{font:"main",group:"textord",replace:"\xac"},"\\lnot":{font:"main",group:"textord",replace:"\xac"},"\\top":{font:"main",group:"textord",replace:"\u22a4"},"\\bot":{font:"main",group:"textord",replace:"\u22a5"},"\\emptyset":{font:"main",group:"textord",replace:"\u2205"},"\\varnothing":{font:"ams",group:"textord",replace:"\u2205"},"\\alpha":{font:"main",group:"mathord",replace:"\u03b1"},"\\beta":{font:"main",group:"mathord",replace:"\u03b2"},"\\gamma":{font:"main",group:"mathord",replace:"\u03b3"},"\\delta":{font:"main",group:"mathord",replace:"\u03b4"},"\\epsilon":{font:"main",group:"mathord",replace:"\u03f5"},"\\zeta":{font:"main",group:"mathord",replace:"\u03b6"},"\\eta":{font:"main",group:"mathord",replace:"\u03b7"},"\\theta":{font:"main",group:"mathord",replace:"\u03b8"},"\\iota":{font:"main",group:"mathord",replace:"\u03b9"},"\\kappa":{font:"main",group:"mathord",replace:"\u03ba"},"\\lambda":{font:"main",group:"mathord",replace:"\u03bb"},"\\mu":{font:"main",group:"mathord",replace:"\u03bc"},"\\nu":{font:"main",group:"mathord",replace:"\u03bd"},"\\xi":{font:"main",group:"mathord",replace:"\u03be"},"\\omicron":{font:"main",group:"mathord",replace:"o"},"\\pi":{font:"main",group:"mathord",replace:"\u03c0"},"\\rho":{font:"main",group:"mathord",replace:"\u03c1"},"\\sigma":{font:"main",group:"mathord",replace:"\u03c3"},"\\tau":{font:"main",group:"mathord",replace:"\u03c4"},"\\upsilon":{font:"main",group:"mathord",replace:"\u03c5"},"\\phi":{font:"main",group:"mathord",replace:"\u03d5"},"\\chi":{font:"main",group:"mathord",replace:"\u03c7"},"\\psi":{font:"main",group:"mathord",replace:"\u03c8"},"\\omega":{font:"main",group:"mathord",replace:"\u03c9" -},"\\varepsilon":{font:"main",group:"mathord",replace:"\u03b5"},"\\vartheta":{font:"main",group:"mathord",replace:"\u03d1"},"\\varpi":{font:"main",group:"mathord",replace:"\u03d6"},"\\varrho":{font:"main",group:"mathord",replace:"\u03f1"},"\\varsigma":{font:"main",group:"mathord",replace:"\u03c2"},"\\varphi":{font:"main",group:"mathord",replace:"\u03c6"},"*":{font:"main",group:"bin",replace:"\u2217"},"+":{font:"main",group:"bin"},"-":{font:"main",group:"bin",replace:"\u2212"},"\\cdot":{font:"main",group:"bin",replace:"\u22c5"},"\\circ":{font:"main",group:"bin",replace:"\u2218"},"\\div":{font:"main",group:"bin",replace:"\xf7"},"\\pm":{font:"main",group:"bin",replace:"\xb1"},"\\times":{font:"main",group:"bin",replace:"\xd7"},"\\cap":{font:"main",group:"bin",replace:"\u2229"},"\\cup":{font:"main",group:"bin",replace:"\u222a"},"\\setminus":{font:"main",group:"bin",replace:"\u2216"},"\\land":{font:"main",group:"bin",replace:"\u2227"},"\\lor":{font:"main",group:"bin",replace:"\u2228"},"\\wedge":{font:"main",group:"bin",replace:"\u2227"},"\\vee":{font:"main",group:"bin",replace:"\u2228"},"\\surd":{font:"main",group:"textord",replace:"\u221a"},"(":{font:"main",group:"open"},"[":{font:"main",group:"open"},"\\langle":{font:"main",group:"open",replace:"\u27e8"},"\\lvert":{font:"main",group:"open",replace:"\u2223"},")":{font:"main",group:"close"},"]":{font:"main",group:"close"},"?":{font:"main",group:"close"},"!":{font:"main",group:"close"},"\\rangle":{font:"main",group:"close",replace:"\u27e9"},"\\rvert":{font:"main",group:"close",replace:"\u2223"},"=":{font:"main",group:"rel"},"<":{font:"main",group:"rel"},">":{font:"main",group:"rel"},":":{font:"main",group:"rel"},"\\approx":{font:"main",group:"rel",replace:"\u2248"},"\\cong":{font:"main",group:"rel",replace:"\u2245"},"\\ge":{font:"main",group:"rel",replace:"\u2265"},"\\geq":{font:"main",group:"rel",replace:"\u2265"},"\\gets":{font:"main",group:"rel",replace:"\u2190"},"\\in":{font:"main",group:"rel",replace:"\u2208"},"\\notin":{font:"main",group:"rel",replace:"\u2209"},"\\subset":{font:"main",group:"rel",replace:"\u2282"},"\\supset":{font:"main",group:"rel",replace:"\u2283"},"\\subseteq":{font:"main",group:"rel",replace:"\u2286"},"\\supseteq":{font:"main",group:"rel",replace:"\u2287"},"\\nsubseteq":{font:"ams",group:"rel",replace:"\u2288"},"\\nsupseteq":{font:"ams",group:"rel",replace:"\u2289"},"\\models":{font:"main",group:"rel",replace:"\u22a8"},"\\leftarrow":{font:"main",group:"rel",replace:"\u2190"},"\\le":{font:"main",group:"rel",replace:"\u2264"},"\\leq":{font:"main",group:"rel",replace:"\u2264"},"\\ne":{font:"main",group:"rel",replace:"\u2260"},"\\neq":{font:"main",group:"rel",replace:"\u2260"},"\\rightarrow":{font:"main",group:"rel",replace:"\u2192"},"\\to":{font:"main",group:"rel",replace:"\u2192"},"\\ngeq":{font:"ams",group:"rel",replace:"\u2271"},"\\nleq":{font:"ams",group:"rel",replace:"\u2270"},"\\!":{font:"main",group:"spacing"},"\\ ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"},"\\,":{font:"main",group:"spacing"},"\\:":{font:"main",group:"spacing"},"\\;":{font:"main",group:"spacing"},"\\enspace":{font:"main",group:"spacing"},"\\qquad":{font:"main",group:"spacing"},"\\quad":{font:"main",group:"spacing"},"\\space":{font:"main",group:"spacing",replace:"\xa0"},",":{font:"main",group:"punct"},";":{font:"main",group:"punct"},"\\colon":{font:"main",group:"punct",replace:":"},"\\barwedge":{font:"ams",group:"textord",replace:"\u22bc"},"\\veebar":{font:"ams",group:"textord",replace:"\u22bb"},"\\odot":{font:"main",group:"bin",replace:"\u2299"},"\\oplus":{font:"main",group:"bin",replace:"\u2295"},"\\otimes":{font:"main",group:"bin",replace:"\u2297"},"\\partial":{font:"main",group:"textord",replace:"\u2202"},"\\oslash":{font:"main",group:"bin",replace:"\u2298"},"\\circledcirc":{font:"ams",group:"textord",replace:"\u229a"},"\\boxdot":{font:"ams",group:"textord",replace:"\u22a1"},"\\bigtriangleup":{font:"main",group:"bin",replace:"\u25b3"},"\\bigtriangledown":{font:"main",group:"bin",replace:"\u25bd"},"\\dagger":{font:"main",group:"bin",replace:"\u2020"},"\\diamond":{font:"main",group:"bin",replace:"\u22c4"},"\\star":{font:"main",group:"bin",replace:"\u22c6"},"\\triangleleft":{font:"main",group:"bin",replace:"\u25c3"},"\\triangleright":{font:"main",group:"bin",replace:"\u25b9"},"\\{":{font:"main",group:"open",replace:"{"},"\\}":{font:"main",group:"close",replace:"}"},"\\lbrace":{font:"main",group:"open",replace:"{"},"\\rbrace":{font:"main",group:"close",replace:"}"},"\\lbrack":{font:"main",group:"open",replace:"["},"\\rbrack":{font:"main",group:"close",replace:"]"},"\\lfloor":{font:"main",group:"open",replace:"\u230a"},"\\rfloor":{font:"main",group:"close",replace:"\u230b"},"\\lceil":{font:"main",group:"open",replace:"\u2308"},"\\rceil":{font:"main",group:"close",replace:"\u2309"},"\\backslash":{font:"main",group:"textord",replace:"\\"},"|":{font:"main",group:"textord",replace:"\u2223"},"\\vert":{font:"main",group:"textord",replace:"\u2223"},"\\|":{font:"main",group:"textord",replace:"\u2225"},"\\Vert":{font:"main",group:"textord",replace:"\u2225"},"\\uparrow":{font:"main",group:"textord",replace:"\u2191"},"\\Uparrow":{font:"main",group:"textord",replace:"\u21d1"},"\\downarrow":{font:"main",group:"textord",replace:"\u2193"},"\\Downarrow":{font:"main",group:"textord",replace:"\u21d3"},"\\updownarrow":{font:"main",group:"textord",replace:"\u2195"},"\\Updownarrow":{font:"main",group:"textord",replace:"\u21d5"},"\\coprod":{font:"math",group:"op",replace:"\u2210"},"\\bigvee":{font:"math",group:"op",replace:"\u22c1"},"\\bigwedge":{font:"math",group:"op",replace:"\u22c0"},"\\biguplus":{font:"math",group:"op",replace:"\u2a04"},"\\bigcap":{font:"math",group:"op",replace:"\u22c2"},"\\bigcup":{font:"math",group:"op",replace:"\u22c3"},"\\int":{font:"math",group:"op",replace:"\u222b"},"\\intop":{font:"math",group:"op",replace:"\u222b"},"\\iint":{font:"math",group:"op",replace:"\u222c"},"\\iiint":{font:"math",group:"op",replace:"\u222d"},"\\prod":{font:"math",group:"op",replace:"\u220f"},"\\sum":{font:"math",group:"op",replace:"\u2211"},"\\bigotimes":{font:"math",group:"op",replace:"\u2a02"},"\\bigoplus":{font:"math",group:"op",replace:"\u2a01"},"\\bigodot":{font:"math",group:"op",replace:"\u2a00"},"\\oint":{font:"math",group:"op",replace:"\u222e"},"\\bigsqcup":{font:"math",group:"op",replace:"\u2a06"},"\\smallint":{font:"math",group:"op",replace:"\u222b"},"\\ldots":{font:"main",group:"punct",replace:"\u2026"},"\\cdots":{font:"main",group:"inner",replace:"\u22ef"},"\\ddots":{font:"main",group:"inner",replace:"\u22f1"},"\\vdots":{font:"main",group:"textord",replace:"\u22ee"},"\\acute":{font:"main",group:"accent",replace:"\xb4"},"\\grave":{font:"main",group:"accent",replace:"`"},"\\ddot":{font:"main",group:"accent",replace:"\xa8"},"\\tilde":{font:"main",group:"accent",replace:"~"},"\\bar":{font:"main",group:"accent",replace:"\xaf"},"\\breve":{font:"main",group:"accent",replace:"\u02d8"},"\\check":{font:"main",group:"accent",replace:"\u02c7"},"\\hat":{font:"main",group:"accent",replace:"^"},"\\vec":{font:"main",group:"accent",replace:"\u20d7"},"\\dot":{font:"main",group:"accent",replace:"\u02d9"},"\\imath":{font:"main",group:"mathord",replace:"\u0131"},"\\jmath":{font:"main",group:"mathord",replace:"\u0237"}},text:{"\\ ":{font:"main",group:"spacing",replace:"\xa0"}," ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"}}};var a='0123456789/@."';for(var r=0;r":">","<":"<",'"':""","'":"'"};var n=/[&><"']/g;function g(e){return c[e]}function o(e){return(""+e).replace(n,g)}var d;if(typeof document!=="undefined"){var w=document.createElement("span");if("textContent"in w){d=function(e,t){e.textContent=t}}else{d=function(e,t){e.innerText=t}}}function u(e){d(e,"")}t.exports={contains:r,deflt:l,escape:o,hyphenate:p,indexOf:a,setTextContent:d,clearNode:u}},{}]},{},[1])(1)}); -- cgit v1.2.1