diff --git a/index.html b/index.html
index 675f2d8f22f1cb6e95b3ffa4078b7b40deb8d5df..949ddc13a1af6ae5ac5e5dd3b4f2d6ab5a808c8d 100644
--- a/index.html
+++ b/index.html
@@ -8,11 +8,13 @@
     <link rel="stylesheet" href="stylesheets/styles.css">
     <link rel="stylesheet" href="stylesheets/pygment_trac.css">
     <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="katex/katex.min.css">
     <link rel="stylesheet" href="pseudocode/pseudocode.min.css">
     <!--[if lt IE 9]>
     <script src="javascripts/html5.js"></script>
     <![endif]-->
     <script src="javascripts/autosize.min.js"></script>
+    <script src="katex/katex.min.js"></script>
     <script src="pseudocode/pseudocode.min.js"></script>
     <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
     <style type="text/css"> 
diff --git a/katex/README.md b/katex/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9a1c4df0d80c9746c1bccbc1217d363bddcabc6d
--- /dev/null
+++ b/katex/README.md
@@ -0,0 +1,58 @@
+# [<img src="https://khan.github.io/KaTeX/katex-logo.svg" width="130" alt="KaTeX">](https://khan.github.io/KaTeX/) [![Build Status](https://travis-ci.org/Khan/KaTeX.svg?branch=master)](https://travis-ci.org/Khan/KaTeX)
+
+KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web.
+
+ * **Fast:** KaTeX renders its math synchronously and doesn't need to reflow the page. See how it compares to a competitor in [this speed test](http://jsperf.com/katex-vs-mathjax/).
+ * **Print quality:** KaTeX’s layout is based on Donald Knuth’s TeX, the gold standard for math typesetting.
+ * **Self contained:** KaTeX has no dependencies and can easily be bundled with your website resources.
+ * **Server side rendering:** KaTeX produces the same output regardless of browser or environment, so you can pre-render expressions using Node.js and send them as plain HTML.
+
+KaTeX supports all major browsers, including Chrome, Safari, Firefox, Opera, and IE 8 - IE 11.
+
+## Usage
+
+You can [download KaTeX](https://github.com/khan/katex/releases) and host it on your server or include the `katex.min.js` and `katex.min.css` files on your page directly from a CDN:
+
+```html
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.1.1/katex.min.css">
+<script src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.1.1/katex.min.js"></script>
+```
+
+#### 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);
+```
+
+#### 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}");
+// '<span class="katex">...</span>'
+```
+
+Make sure to include the CSS and font files, but there is no need to include the JavaScript.
+
+#### 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 });
+```
+
+## Contributing
+
+See [CONTRIBUTING.md](CONTRIBUTING.md)
+
+## License
+
+KaTeX is licensed under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/katex/fonts/KaTeX_AMS-Regular.eot b/katex/fonts/KaTeX_AMS-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..842e453e05dcf749264d9563d7d72e050a038fbd
Binary files /dev/null and b/katex/fonts/KaTeX_AMS-Regular.eot differ
diff --git a/katex/fonts/KaTeX_AMS-Regular.ttf b/katex/fonts/KaTeX_AMS-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..8da3d446e8479fc9355fde40aabd20f126554b4d
Binary files /dev/null and b/katex/fonts/KaTeX_AMS-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_AMS-Regular.woff b/katex/fonts/KaTeX_AMS-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..f8934ec028acc87911c37d2e27d6fbe8f7c4e955
Binary files /dev/null and b/katex/fonts/KaTeX_AMS-Regular.woff differ
diff --git a/katex/fonts/KaTeX_AMS-Regular.woff2 b/katex/fonts/KaTeX_AMS-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..64bdd82f93a86354e48ec41999dcebf4d86e1b23
Binary files /dev/null and b/katex/fonts/KaTeX_AMS-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Main-Bold.eot b/katex/fonts/KaTeX_Main-Bold.eot
new file mode 100644
index 0000000000000000000000000000000000000000..0cd6d11537387155349ac6a51f92fc2722a5ae49
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Bold.eot differ
diff --git a/katex/fonts/KaTeX_Main-Bold.ttf b/katex/fonts/KaTeX_Main-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..f7956abdc82a7ef17b611170fbd359b9b046eb7c
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Bold.ttf differ
diff --git a/katex/fonts/KaTeX_Main-Bold.woff b/katex/fonts/KaTeX_Main-Bold.woff
new file mode 100644
index 0000000000000000000000000000000000000000..f6eb23155bde1140aeea865695306c43d600ae0a
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Bold.woff differ
diff --git a/katex/fonts/KaTeX_Main-Bold.woff2 b/katex/fonts/KaTeX_Main-Bold.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..994f3de51613a502dc5d3881afcca5e8f4696387
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Bold.woff2 differ
diff --git a/katex/fonts/KaTeX_Main-Italic.eot b/katex/fonts/KaTeX_Main-Italic.eot
new file mode 100644
index 0000000000000000000000000000000000000000..693bdf71b7d742de6a8baa1811610e46101b7eab
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Italic.eot differ
diff --git a/katex/fonts/KaTeX_Main-Italic.ttf b/katex/fonts/KaTeX_Main-Italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..0d00c60bf478e7aea7a781baed40923afce4227e
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Italic.ttf differ
diff --git a/katex/fonts/KaTeX_Main-Italic.woff b/katex/fonts/KaTeX_Main-Italic.woff
new file mode 100644
index 0000000000000000000000000000000000000000..43126b31ccbc605eb7c8e69ae7659e0cc0698044
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Italic.woff differ
diff --git a/katex/fonts/KaTeX_Main-Italic.woff2 b/katex/fonts/KaTeX_Main-Italic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..343057396d94c6290a80315039dda96723b84695
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Italic.woff2 differ
diff --git a/katex/fonts/KaTeX_Main-Regular.eot b/katex/fonts/KaTeX_Main-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..bd59c8896ee81972cc339fcc3778c7b8b6d582fb
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Main-Regular.ttf b/katex/fonts/KaTeX_Main-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..6f3cdca77d1347956b07d87876a74cfa7efccaf5
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Main-Regular.woff b/katex/fonts/KaTeX_Main-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..57e7f4b7e26c9421520f50c93949c124b0200745
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Main-Regular.woff2 b/katex/fonts/KaTeX_Main-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..8c98320f9c8a56283113a3bd98f0607cf0b70dfc
Binary files /dev/null and b/katex/fonts/KaTeX_Main-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Math-BoldItalic.eot b/katex/fonts/KaTeX_Math-BoldItalic.eot
new file mode 100644
index 0000000000000000000000000000000000000000..7705bfced38e51b50688c89a39c94271776f16a2
Binary files /dev/null and b/katex/fonts/KaTeX_Math-BoldItalic.eot differ
diff --git a/katex/fonts/KaTeX_Math-BoldItalic.ttf b/katex/fonts/KaTeX_Math-BoldItalic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..ab60f80c4566613bec79ef9133225ef24d6e151e
Binary files /dev/null and b/katex/fonts/KaTeX_Math-BoldItalic.ttf differ
diff --git a/katex/fonts/KaTeX_Math-BoldItalic.woff b/katex/fonts/KaTeX_Math-BoldItalic.woff
new file mode 100644
index 0000000000000000000000000000000000000000..f5dee4e005a2b1fcdb77e8142138789862d1b590
Binary files /dev/null and b/katex/fonts/KaTeX_Math-BoldItalic.woff differ
diff --git a/katex/fonts/KaTeX_Math-BoldItalic.woff2 b/katex/fonts/KaTeX_Math-BoldItalic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..bfe677c1a5c9a7d2b421090ddad9aff24e8fd085
Binary files /dev/null and b/katex/fonts/KaTeX_Math-BoldItalic.woff2 differ
diff --git a/katex/fonts/KaTeX_Math-Italic.eot b/katex/fonts/KaTeX_Math-Italic.eot
new file mode 100644
index 0000000000000000000000000000000000000000..fc9bf197a2782fbe192486b2d745b88e53f1b1d5
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Italic.eot differ
diff --git a/katex/fonts/KaTeX_Math-Italic.ttf b/katex/fonts/KaTeX_Math-Italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..a4078ea011711d50bd943c3e3b399fa1d48d5c24
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Italic.ttf differ
diff --git a/katex/fonts/KaTeX_Math-Italic.woff b/katex/fonts/KaTeX_Math-Italic.woff
new file mode 100644
index 0000000000000000000000000000000000000000..fc21e64e5af02fd24e0c81d2f5db05b18e694011
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Italic.woff differ
diff --git a/katex/fonts/KaTeX_Math-Italic.woff2 b/katex/fonts/KaTeX_Math-Italic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..0ef8a1e8ea466e389403db9a8df5838b042e9fb7
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Italic.woff2 differ
diff --git a/katex/fonts/KaTeX_Math-Regular.eot b/katex/fonts/KaTeX_Math-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..14b0c2aa6199f978413a693dc169f307530797d7
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Math-Regular.ttf b/katex/fonts/KaTeX_Math-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..f2561022f90b3f07f72833f1cf053a753f1f3141
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Math-Regular.woff b/katex/fonts/KaTeX_Math-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..847ba376c83209432cd54ed55b6d2107a4b4fbee
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Math-Regular.woff2 b/katex/fonts/KaTeX_Math-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..24b63d8a6766f28d7bb9bff8409104978ed7a3ee
Binary files /dev/null and b/katex/fonts/KaTeX_Math-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Size1-Regular.eot b/katex/fonts/KaTeX_Size1-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..0a581e8a04c3a9c58226ce09911dec5296ddfe81
Binary files /dev/null and b/katex/fonts/KaTeX_Size1-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Size1-Regular.ttf b/katex/fonts/KaTeX_Size1-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..2fb653bc1f050de5b545868408643a01a278336a
Binary files /dev/null and b/katex/fonts/KaTeX_Size1-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Size1-Regular.woff b/katex/fonts/KaTeX_Size1-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..359a8640088e5e6a3aa562edfcf025bbc206f331
Binary files /dev/null and b/katex/fonts/KaTeX_Size1-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Size1-Regular.woff2 b/katex/fonts/KaTeX_Size1-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..764c9335a0b00449aa1b21b58b875e5c2daab77f
Binary files /dev/null and b/katex/fonts/KaTeX_Size1-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Size2-Regular.eot b/katex/fonts/KaTeX_Size2-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..8af663865e46e160b3e9d9c5cc44f3f0f3b53422
Binary files /dev/null and b/katex/fonts/KaTeX_Size2-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Size2-Regular.ttf b/katex/fonts/KaTeX_Size2-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..285203470abc10c6176b9ffb7fc133f1caf58910
Binary files /dev/null and b/katex/fonts/KaTeX_Size2-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Size2-Regular.woff b/katex/fonts/KaTeX_Size2-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..d97cabc792e0c5916cd8bab4eb16b52af5608141
Binary files /dev/null and b/katex/fonts/KaTeX_Size2-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Size2-Regular.woff2 b/katex/fonts/KaTeX_Size2-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..a51a1fdbb36ca557e010d81a1fc1114da4a8df94
Binary files /dev/null and b/katex/fonts/KaTeX_Size2-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Size3-Regular.eot b/katex/fonts/KaTeX_Size3-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..5c179834bb2405135c9a03b5e0702ec7664cb7ea
Binary files /dev/null and b/katex/fonts/KaTeX_Size3-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Size3-Regular.ttf b/katex/fonts/KaTeX_Size3-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..61df9a369469501d9bd1d0dec69ee7329939bd42
Binary files /dev/null and b/katex/fonts/KaTeX_Size3-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Size3-Regular.woff b/katex/fonts/KaTeX_Size3-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..7fd7bbaaacff78ed7f2fcbaa08f344be9fc81deb
Binary files /dev/null and b/katex/fonts/KaTeX_Size3-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Size3-Regular.woff2 b/katex/fonts/KaTeX_Size3-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..4a4ba33a4d49e9665ae08f8b48993ab4e2203a6e
Binary files /dev/null and b/katex/fonts/KaTeX_Size3-Regular.woff2 differ
diff --git a/katex/fonts/KaTeX_Size4-Regular.eot b/katex/fonts/KaTeX_Size4-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..373416210e197d899ecc3ddf07a88008a1bd19ed
Binary files /dev/null and b/katex/fonts/KaTeX_Size4-Regular.eot differ
diff --git a/katex/fonts/KaTeX_Size4-Regular.ttf b/katex/fonts/KaTeX_Size4-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..42326180d8f61a973f498f6481bd03c5f5196b91
Binary files /dev/null and b/katex/fonts/KaTeX_Size4-Regular.ttf differ
diff --git a/katex/fonts/KaTeX_Size4-Regular.woff b/katex/fonts/KaTeX_Size4-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..dd2cd183b6293c1c7cb760fe6b70856464fe7367
Binary files /dev/null and b/katex/fonts/KaTeX_Size4-Regular.woff differ
diff --git a/katex/fonts/KaTeX_Size4-Regular.woff2 b/katex/fonts/KaTeX_Size4-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..14b0dc28063e3c405bf1b90bfbda4f272a7ae14d
Binary files /dev/null and b/katex/fonts/KaTeX_Size4-Regular.woff2 differ
diff --git a/katex/katex.min.css b/katex/katex.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..db26499df6ccb0e40f6a797e2ed9148e83a37d4f
--- /dev/null
+++ b/katex/katex.min.css
@@ -0,0 +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-BoldItalic.eot);src:url(fonts/KaTeX_Math-BoldItalic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-BoldItalic.woff2) format('woff2'),url(fonts/KaTeX_Math-BoldItalic.woff) format('woff'),url(fonts/KaTeX_Math-BoldItalic.ttf) format('ttf');font-weight:700;font-style:italic}@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_Math;src:url(fonts/KaTeX_Math-Regular.eot);src:url(fonts/KaTeX_Math-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-Regular.woff2) format('woff2'),url(fonts/KaTeX_Math-Regular.woff) format('woff'),url(fonts/KaTeX_Math-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Bold.eot);src:url(fonts/KaTeX_SansSerif-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Bold.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Bold.woff) format('woff'),url(fonts/KaTeX_SansSerif-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Italic.eot);src:url(fonts/KaTeX_SansSerif-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Italic.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Italic.woff) format('woff'),url(fonts/KaTeX_SansSerif-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}math.katex{font-size:1.21em;line-height:1.2}.katex{font:400 1.21em KaTeX_Main;line-height:1.2;white-space:nowrap}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .amsrm{font-family:KaTeX_AMS}.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 .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}
\ No newline at end of file
diff --git a/katex/katex.min.js b/katex/katex.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..a9cb3e8e22131172a69015835148756342ca10d4
--- /dev/null
+++ b/katex/katex.min.js
@@ -0,0 +1,4 @@
+(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<i.length;l++)h(i[l]);return h}({1:[function(e,t,i){var h=e("./src/ParseError");var a=e("./src/Settings");var r=e("./src/buildTree");var l=e("./src/parseTree");var s=e("./src/utils");var p=function(e,t,i){s.clearNode(t);var h=new a(i);var p=l(e,h);var c=r(p,e,h).toNode();t.appendChild(c)};if(typeof document!=="undefined"){if(document.compatMode!=="CSS1Compat"){typeof console!=="undefined"&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your "+"website has a suitable doctype.");p=function(){throw new h("KaTeX doesn't work in quirks mode.")}}}var c=function(e,t){var i=new a(t);var h=l(e,i);return r(h,e,i).toMarkup()};t.exports={render:p,renderToString:c,ParseError:h}},{"./src/ParseError":4,"./src/Settings":6,"./src/buildTree":11,"./src/parseTree":17,"./src/utils":19}],2:[function(e,t,i){var h=e("./ParseError");function a(e){this._input=e}function r(e,t,i){this.text=e;this.data=t;this.position=i}var l=[/^[/|@.""`0-9a-zA-Z]/,/^[*+-]/,/^[=<>:]/,/^[,;]/,/^['\^_{}]/,/^[(\[]/,/^[)\]?!]/,/^~/];var s=[/^[a-zA-Z0-9`!@*()-=+\[\]'";:?\/.,]/,/^[{}]/,/^~/];var p=/^\s*/;var c=/^( +|\\  +)/;var o=/^\\(?:[a-zA-Z]+|.)/;a.prototype._innerLex=function(e,t,i){var a=this._input.slice(e);var l;if(i){l=a.match(p)[0];e+=l.length;a=a.slice(l.length)}else{l=a.match(c);if(l!==null){return new r(" ",null,e+l[0].length)}}if(a.length===0){return new r("EOF",null,e)}var s;if(s=a.match(o)){return new r(s[0],null,e+s[0].length)}else{for(var n=0;n<t.length;n++){var g=t[n];if(s=a.match(g)){return new r(s[0],null,e+s[0].length)}}}throw new h("Unexpected character: '"+a[0]+"'",this,e)};var n=/^(#[a-z0-9]+|[a-z]+)/i;a.prototype._innerLexColor=function(e){var t=this._input.slice(e);var i=t.match(p)[0];e+=i.length;t=t.slice(i.length);var a;if(a=t.match(n)){return new r(a[0],null,e+a[0].length)}else{throw new h("Invalid color",this,e)}};var g=/^(-?)\s*(\d+(?:\.\d*)?|\.\d+)\s*([a-z]{2})/;a.prototype._innerLexSize=function(e){var t=this._input.slice(e);var i=t.match(p)[0];e+=i.length;t=t.slice(i.length);var a;if(a=t.match(g)){var l=a[3];if(l!=="em"&&l!=="ex"){throw new h("Invalid unit: '"+l+"'",this,e)}return new r(a[0],{number:+(a[1]+a[2]),unit:l},e+a[0].length)}throw new h("Invalid size",this,e)};a.prototype._innerLexWhitespace=function(e){var t=this._input.slice(e);var i=t.match(p)[0];e+=i.length;return new r(i,null,e)};a.prototype.lex=function(e,t){if(t==="math"){return this._innerLex(e,l,true)}else if(t==="text"){return this._innerLex(e,s,false)}else if(t==="color"){return this._innerLexColor(e)}else if(t==="size"){return this._innerLexSize(e)}else if(t==="whitespace"){return this._innerLexWhitespace(e)}};t.exports=a},{"./ParseError":4}],3:[function(e,t,i){function h(e,t,i,h,a){this.style=e;this.color=i;this.size=t;if(h===undefined){h=e}this.parentStyle=h;if(a===undefined){a=t}this.parentSize=a}h.prototype.withStyle=function(e){return new h(e,this.size,this.color,this.style,this.size)};h.prototype.withSize=function(e){return new h(this.style,e,this.color,this.style,this.size)};h.prototype.withColor=function(e){return new h(this.style,this.size,e,this.style,this.size)};h.prototype.reset=function(){return new h(this.style,this.size,this.color,this.style,this.size)};var a={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd"};h.prototype.getColor=function(){return a[this.color]||this.color};t.exports=h},{}],4:[function(e,t,i){function h(e,t,i){var a="KaTeX parse error: "+e;if(t!==undefined&&i!==undefined){a+=" at position "+i+": ";var r=t._input;r=r.slice(0,i)+"\u0332"+r.slice(i);var l=Math.max(0,i-15);var s=i+15;a+=r.slice(l,s)}var p=new Error(a);p.name="ParseError";p.__proto__=h.prototype;p.position=i;return p}h.prototype.__proto__=Error.prototype;t.exports=h},{}],5:[function(e,t,i){var h=e("./functions");var a=e("./Lexer");var r=e("./symbols");var l=e("./utils");var s=e("./ParseError");function p(e,t){this.lexer=new a(e);this.settings=t}function c(e,t,i){this.type=e;this.value=t;this.mode=i}function o(e,t){this.result=e;this.position=t}function n(e,t){this.result=e;this.isFunction=t}p.prototype.expect=function(e,t){if(e.text!==t){throw new s("Expected '"+t+"', got '"+e.text+"'",this.lexer,e.position)}};p.prototype.parse=function(e){var t=this.parseInput(0,"math");return t.result};p.prototype.parseInput=function(e,t){var i=this.parseExpression(e,t,false,null);var h=this.lexer.lex(i.position,t);this.expect(h,"EOF");return i};p.prototype.parseExpression=function(e,t,i,h){var a=[];while(true){var r=this.lexer.lex(e,t);if(h!=null&&r.text===h){break}var l=this.parseAtom(e,t);if(!l){break}if(i&&l.result.type==="infix"){break}a.push(l.result);e=l.position}return new o(this.handleInfixNodes(a,t),e)};p.prototype.handleInfixNodes=function(e,t){var i=-1;var a;var r;for(var l=0;l<e.length;l++){var p=e[l];if(p.type==="infix"){if(i!==-1){throw new s("only one infix operator per group",this.lexer,-1)}i=l;r=p.value.replaceWith;a=h.funcs[r]}}if(i!==-1){var o,n;var g=e.slice(0,i);var d=e.slice(i+1);if(g.length===1&&g[0].type==="ordgroup"){o=g[0]}else{o=new c("ordgroup",g,t)}if(d.length===1&&d[0].type==="ordgroup"){n=d[0]}else{n=new c("ordgroup",d,t)}var u=a.handler(r,o,n);return[new c(u.type,u,t)]}else{return e}};var g=1;p.prototype.handleSupSubscript=function(e,t,i,a){var r=this.parseGroup(e,t);if(!r){throw new s("Expected group after '"+i+"'",this.lexer,e)}else if(r.isFunction){var l=h.funcs[r.result.result].greediness;if(l>g){return this.parseFunction(e,t)}else{throw new s("Got function '"+r.result.result+"' with no arguments "+"as "+a,this.lexer,e)}}else{return r.result}};p.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 p=this.lexer.lex(h,t);if(p.text==="^"){if(a){throw new s("Double superscript",this.lexer,h)}l=this.handleSupSubscript(p.position,t,p.text,"superscript");h=l.position;a=l.result}else if(p.text==="_"){if(r){throw new s("Double subscript",this.lexer,h)}l=this.handleSupSubscript(p.position,t,p.text,"subscript");h=l.position;r=l.result}else if(p.text==="'"){var n=new c("textord","\\prime",t);var g=[n];h=p.position;while((p=this.lexer.lex(h,t)).text==="'"){g.push(n);h=p.position}a=new c("ordgroup",g,t)}else{break}}if(a||r){return new o(new c("supsub",{base:i&&i.result,sup:a,sub:r},t),h)}else{return i}};var d=["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];var u=["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"];p.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 a;if(h==="\\left"){var r=this.parseFunction(e,t);a=this.parseExpression(r.position,t,false,"}");var p=this.parseSymbol(a.position,t);if(p&&p.result.result==="\\right"){var n=this.parseFunction(a.position,t);return new o(new c("leftright",{body:a.result,left:r.result.value.value,right:n.result.value.value},t),n.position)}else{throw new s("Missing \\right",this.lexer,a.position)}}else if(h==="\\right"){return null}else if(l.contains(d,h)){a=this.parseExpression(i.result.position,t,false,"}");return new o(new c("sizing",{size:"size"+(l.indexOf(d,h)+1),value:a.result},t),a.position)}else if(l.contains(u,h)){a=this.parseExpression(i.result.position,t,true,"}");return new o(new c("styling",{style:h.slice(1,h.length-5),value:a.result},t),a.position)}else{return this.parseFunction(e,t)}};p.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 s("Can't use function '"+a+"' in text mode",this.lexer,i.position)}var l=i.result.position;var p;var n=r.numArgs+r.numOptionalArgs;if(n>0){var g=r.greediness;var d=[a];var u=[l];for(var w=0;w<n;w++){var k=r.argTypes&&r.argTypes[w];var m;if(w<r.numOptionalArgs){if(k){m=this.parseSpecialGroup(l,k,t,true)}else{m=this.parseOptionalGroup(l,t)}if(!m){d.push(null);u.push(l);continue}}else{if(k){m=this.parseSpecialGroup(l,k,t)}else{m=this.parseGroup(l,t)}if(!m){throw new s("Expected group after '"+i.result.result+"'",this.lexer,l)}}var f;if(m.isFunction){var v=h.funcs[m.result.result].greediness;if(v>g){f=this.parseFunction(l,t)}else{throw new s("Got function '"+m.result.result+"' as "+"argument to function '"+i.result.result+"'",this.lexer,m.result.position-1)}}else{f=m.result}d.push(f.result);u.push(f.position);l=f.position}d.push(u);p=h.funcs[a].handler.apply(this,d)}else{p=h.funcs[a].handler.apply(this,[a])}return new o(new c(p.type,p,t),l)}else{return i.result}}else{return null}};p.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 n(new o(new c(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)}};p.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 n(new o(new c("ordgroup",h.result,t),a.position),false)}else{return this.parseSymbol(e,t)}};p.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 n(new o(new c("ordgroup",h.result,t),a.position),false)}else{return null}};p.prototype.parseSymbol=function(e,t){var i=this.lexer.lex(e,t);if(h.funcs[i.text]){return new n(new o(i.text,i.position),true)}else if(r[t][i.text]){return new n(new o(new c(r[t][i.text].group,i.text,t),i.position),false)}else{return null}};t.exports=p},{"./Lexer":2,"./ParseError":4,"./functions":15,"./symbols":18,"./utils":19}],6:[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},{}],7:[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 u[w[this.id]]};h.prototype.sub=function(){return u[k[this.id]]};h.prototype.fracNum=function(){return u[m[this.id]]};h.prototype.fracDen=function(){return u[f[this.id]]};h.prototype.cramp=function(){return u[v[this.id]]};h.prototype.cls=function(){return g[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 o=6;var n=7;var g=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var d=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var u=[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(o,3,.5,false),new h(n,3,.5,true)];var w=[p,c,p,c,o,n,o,n];var k=[c,c,c,c,n,n,n,n];var m=[l,s,p,c,o,n,o,n];var f=[s,s,c,c,n,n,n,n];var v=[r,r,s,s,c,c,n,n];t.exports={DISPLAY:u[a],TEXT:u[l],SCRIPT:u[p],SCRIPTSCRIPT:u[o]}},{}],8:[function(e,t,i){var h=e("./domTree");var a=e("./fontMetrics");var r=e("./symbols");var l=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 s=function(e,t,i,h){return l(e,"Math-Italic",t,i,h.concat(["mathit"]))};var p=function(e,t,i,h){if(r[t][e].font==="main"){return l(e,"Main-Regular",t,i,h)}else{return l(e,"AMS-Regular",t,i,h.concat(["amsrm"]))}};var c=function(e){var t=0;var i=0;var h=0;if(e.children){for(var a=0;a<e.children.length;a++){if(e.children[a].height>t){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 o=function(e,t,i){var a=new h.span(e,t);c(a);if(i){a.style.color=i}return a};var n=function(e){var t=new h.documentFragment(e);c(t);return t};var g=function(e,t){var i=o([],[new h.symbolNode("\u200b")]);i.style.fontSize=t/e.style.sizeMultiplier+"em";var a=o(["fontsize-ensurer","reset-"+e.size,"size5"],[i]);return a};var d=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;s<p.length;s++){var c=-p[s].shift-l-p[s].elem.depth;var n=c-(p[s-1].elem.height+p[s-1].elem.depth);l=l+c;e.push({type:"kern",size:n});e.push(p[s])}}else if(t==="top"){var d=i;for(s=0;s<e.length;s++){if(e[s].type==="kern"){d-=e[s].size}else{d-=e[s].elem.height+e[s].elem.depth}}r=d}else if(t==="bottom"){r=-i}else if(t==="shift"){r=-e[0].elem.depth-i}else if(t==="firstBaseline"){r=-e[0].elem.depth}else{r=0}var u=0;for(s=0;s<e.length;s++){if(e[s].type==="elem"){u=Math.max(u,e[s].elem.maxFontSize)}}var w=g(a,u);var k=[];l=r;for(s=0;s<e.length;s++){if(e[s].type==="kern"){l+=e[s].size}else{var m=e[s].elem;var f=-m.depth-l;l+=m.height+m.depth;var v=o([],[w,m]);v.height-=f;v.depth+=f;v.style.top=f+"em";k.push(v)}}var y=o(["baseline-fix"],[w,new h.symbolNode("\u200b")]);k.push(y);var b=o(["vlist"],k);b.height=Math.max(l,b.height);b.depth=Math.max(-r,b.depth);return b};var u={size1:.5,size2:.7,size3:.8,size4:.9,size5:1,size6:1.2,size7:1.44,size8:1.73,size9:2.07,size10:2.49};var w={"\\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"}};t.exports={makeSymbol:l,mathit:s,mathrm:p,makeSpan:o,makeFragment:n,makeVList:d,sizingMultiplier:u,spacingFunctions:w}},{"./domTree":13,"./fontMetrics":14,"./symbols":18}],9:[function(e,t,i){var h=e("./Options");var a=e("./ParseError");var r=e("./Style");var l=e("./buildCommon");var s=e("./delimiter");var p=e("./domTree");var c=e("./fontMetrics");var o=e("./utils");var n=l.makeSpan;var g=function(e,t,i){var h=[];for(var a=0;a<e.length;a++){var r=e[a];h.push(v(r,t,i));i=r}return h};var d={mathord:"mord",textord:"mord",bin:"mbin",rel:"mrel",text:"mord",open:"mopen",close:"mclose",inner:"minner",genfrac:"minner",spacing:"mord",punct:"mpunct",ordgroup:"mord",op:"mop",katex:"mord",overline:"mord",rule:"mord",leftright:"minner",sqrt:"mord",accent:"mord"};var u=function(e){if(e==null){return d.mathord}else if(e.type==="supsub"){return u(e.value.base)}else if(e.type==="llap"||e.type==="rlap"){return u(e.value)}else if(e.type==="color"){return u(e.value.value)}else if(e.type==="sizing"){return u(e.value.value)}else if(e.type==="styling"){return u(e.value.value)}else if(e.type==="delimsizing"){return d[e.value.delimType]}else{return d[e.type]}};var w=function(e,t){if(!e){return false}else if(e.type==="op"){return e.value.limits&&t.style.size===r.DISPLAY.size}else if(e.type==="accent"){return m(e.value.base)}else{return null}};var k=function(e){if(!e){return false}else if(e.type==="ordgroup"){if(e.value.length===1){return k(e.value[0])}else{return e}}else if(e.type==="color"){if(e.value.value.length===1){return k(e.value.value[0])}else{return e}}else{return e}};var m=function(e){var t=k(e);return t.type==="mathord"||t.type==="textord"||t.type==="bin"||t.type==="rel"||t.type==="inner"||t.type==="open"||t.type==="close"||t.type==="punct"};var f={mathord:function(e,t,i){return l.mathit(e.value,e.mode,t.getColor(),["mord"])},textord:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["mord"])},bin:function(e,t,i){var h="mbin";var a=i;while(a&&a.type=="color"){var r=a.value.value;a=r[r.length-1]}if(!i||o.contains(["mbin","mopen","mrel","mop","mpunct"],u(a))){e.type="textord";h="mord"}return l.mathrm(e.value,e.mode,t.getColor(),[h])},rel:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["mrel"])},open:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["mopen"])},close:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["mclose"])},inner:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["minner"])},punct:function(e,t,i){return l.mathrm(e.value,e.mode,t.getColor(),["mpunct"])},ordgroup:function(e,t,i){return n(["mord",t.style.cls()],g(e.value,t.reset()))},text:function(e,t,i){return n(["text","mord",t.style.cls()],g(e.value.body,t.reset()))},color:function(e,t,i){var h=g(e.value.value,t.withColor(e.value.color),i);return new l.makeFragment(h)},supsub:function(e,t,i){if(w(e.value.base,t)){return f[e.value.base.type](e,t,i)}var h=v(e.value.base,t.reset());var a,s,o,g;if(e.value.sup){o=v(e.value.sup,t.withStyle(t.style.sup()));a=n([t.style.reset(),t.style.sup().cls()],[o])}if(e.value.sub){g=v(e.value.sub,t.withStyle(t.style.sub()));s=n([t.style.reset(),t.style.sub().cls()],[g])}var d,k;if(m(e.value.base)){d=0;k=0}else{d=h.height-c.metrics.supDrop;k=h.depth+c.metrics.subDrop}var y;if(t.style===r.DISPLAY){y=c.metrics.sup1}else if(t.style.cramped){y=c.metrics.sup3}else{y=c.metrics.sup2}var b=r.TEXT.sizeMultiplier*t.style.sizeMultiplier;var x=.5/c.metrics.ptPerEm/b+"em";var z;if(!e.value.sup){k=Math.max(k,c.metrics.sub1,g.height-.8*c.metrics.xHeight);z=l.makeVList([{type:"elem",elem:s}],"shift",k,t);z.children[0].style.marginRight=x;if(h instanceof p.symbolNode){z.children[0].style.marginLeft=-h.italic+"em"}}else if(!e.value.sub){d=Math.max(d,y,o.depth+.25*c.metrics.xHeight);z=l.makeVList([{type:"elem",elem:a}],"shift",-d,t);z.children[0].style.marginRight=x}else{d=Math.max(d,y,o.depth+.25*c.metrics.xHeight);k=Math.max(k,c.metrics.sub2);var S=c.metrics.defaultRuleThickness;if(d-o.depth-(g.height-k)<4*S){k=4*S-(d-o.depth)+g.height;var M=.8*c.metrics.xHeight-(d-o.depth);if(M>0){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=x;z.children[1].style.marginRight=x}return n([u(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 o=v(e.value.numer,t.withStyle(a));var g=n([h.reset(),a.cls()],[o]);var d=v(e.value.denom,t.withStyle(p));var u=n([h.reset(),p.cls()],[d]);var w;if(e.value.hasBarLine){w=c.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{w=0}var k;var m;var f;if(h.size===r.DISPLAY.size){k=c.metrics.num1;if(w>0){m=3*w}else{m=7*c.metrics.defaultRuleThickness}f=c.metrics.denom1}else{if(w>0){k=c.metrics.num2;m=w}else{k=c.metrics.num3;m=3*c.metrics.defaultRuleThickness}f=c.metrics.denom2}var y;if(w===0){var b=k-o.depth-(d.height-f);if(b<m){k+=.5*(m-b);f+=.5*(m-b)}y=l.makeVList([{type:"elem",elem:u,shift:f},{type:"elem",elem:g,shift:-k}],"individualShift",null,t)}else{var x=c.metrics.axisHeight;if(k-o.depth-(x+.5*w)<m){k+=m-(k-o.depth-(x+.5*w))}if(x-.5*w-(d.height-f)<m){f+=m-(x-.5*w-(d.height-f))}var z=n([t.style.reset(),r.TEXT.cls(),"frac-line"]);z.height=w;var S=-(x-.5*w);y=l.makeVList([{type:"elem",elem:u,shift:f},{type:"elem",elem:z,shift:S},{type:"elem",elem:g,shift:-k}],"individualShift",null,t)}y.height*=h.sizeMultiplier/t.style.sizeMultiplier;y.depth*=h.sizeMultiplier/t.style.sizeMultiplier;var M=[n(["mfrac"],[y])];var q;if(h.size===r.DISPLAY.size){q=c.metrics.delim1}else{q=c.metrics.getDelim2(h)}if(e.value.leftDelim!=null){M.unshift(s.customSizedDelim(e.value.leftDelim,q,true,t.withStyle(h),e.mode))}if(e.value.rightDelim!=null){M.push(s.customSizedDelim(e.value.rightDelim,q,true,t.withStyle(h),e.mode))}return n(["minner",t.style.reset(),h.cls()],M,t.getColor())},spacing:function(e,t,i){if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){return n(["mord","mspace"],[l.mathrm(e.value,e.mode)])}else{return n(["mord","mspace",l.spacingFunctions[e.value].className])}},llap:function(e,t,i){var h=n(["inner"],[v(e.value.body,t.reset())]);var a=n(["fix"],[]);return n(["llap",t.style.cls()],[h,a])},rlap:function(e,t,i){var h=n(["inner"],[v(e.value.body,t.reset())]);var a=n(["fix"],[]);return n(["rlap",t.style.cls()],[h,a])},op:function(e,t,i){var h;var a;var s=false;if(e.type==="supsub"){h=e.value.sup;a=e.value.sub;e=e.value.base;s=true}var p=["\\smallint"];var g=false;if(t.style.size===r.DISPLAY.size&&e.value.symbol&&!o.contains(p,e.value.body)){g=true}var d;var u=0;var w=0;if(e.value.symbol){var k=g?"Size2-Regular":"Size1-Regular";d=l.makeSymbol(e.value.body,k,"math",t.getColor(),["op-symbol",g?"large-op":"small-op","mop"]);u=(d.height-d.depth)/2-c.metrics.axisHeight*t.style.sizeMultiplier;w=d.italic}else{var m=[];for(var f=1;f<e.value.body.length;f++){m.push(l.mathrm(e.value.body[f],e.mode))}d=n(["mop"],m,t.getColor())}if(s){d=n([],[d]);var y,b,x,z;if(h){var S=v(h,t.withStyle(t.style.sup()));y=n([t.style.reset(),t.style.sup().cls()],[S]);b=Math.max(c.metrics.bigOpSpacing1,c.metrics.bigOpSpacing3-S.depth)}if(a){var M=v(a,t.withStyle(t.style.sub()));x=n([t.style.reset(),t.style.sub().cls()],[M]);z=Math.max(c.metrics.bigOpSpacing2,c.metrics.bigOpSpacing4-M.height)}var q,T,N;if(!h){T=d.height-u;q=l.makeVList([{type:"kern",size:c.metrics.bigOpSpacing5},{type:"elem",elem:x},{type:"kern",size:z},{type:"elem",elem:d}],"top",T,t);q.children[0].style.marginLeft=-w+"em"}else if(!a){N=d.depth+u;q=l.makeVList([{type:"elem",elem:d},{type:"kern",size:b},{type:"elem",elem:y},{type:"kern",size:c.metrics.bigOpSpacing5}],"bottom",N,t);q.children[1].style.marginLeft=w+"em"}else if(!h&&!a){return d}else{N=c.metrics.bigOpSpacing5+x.height+x.depth+z+d.depth+u;q=l.makeVList([{type:"kern",size:c.metrics.bigOpSpacing5},{type:"elem",elem:x},{type:"kern",size:z},{type:"elem",elem:d},{type:"kern",size:b},{type:"elem",elem:y},{type:"kern",size:c.metrics.bigOpSpacing5}],"bottom",N,t);q.children[0].style.marginLeft=-w+"em";q.children[2].style.marginLeft=w+"em"}return n(["mop","op-limits"],[q])}else{if(e.value.symbol){d.style.top=u+"em"}return d}},katex:function(e,t,i){var h=n(["k"],[l.mathrm("K",e.mode)]);var a=n(["a"],[l.mathrm("A",e.mode)]);a.height=(a.height+.2)*.75;a.depth=(a.height-.2)*.75;var r=n(["t"],[l.mathrm("T",e.mode)]);var s=n(["e"],[l.mathrm("E",e.mode)]);s.height=s.height-.2155;s.depth=s.depth+.2155;var p=n(["x"],[l.mathrm("X",e.mode)]);return n(["katex-logo"],[h,a,r,s,p],t.getColor())},overline:function(e,t,i){var h=v(e.value.body,t.withStyle(t.style.cramp()));var a=c.metrics.defaultRuleThickness/t.style.sizeMultiplier;var s=n([t.style.reset(),r.TEXT.cls(),"overline-line"]);s.height=a;s.maxFontSize=1;var p=l.makeVList([{type:"elem",elem:h},{type:"kern",size:3*a},{type:"elem",elem:s},{type:"kern",size:a}],"firstBaseline",null,t);return n(["overline","mord"],[p],t.getColor())},sqrt:function(e,t,i){var h=v(e.value.body,t.withStyle(t.style.cramp()));var a=c.metrics.defaultRuleThickness/t.style.sizeMultiplier;var p=n([t.style.reset(),r.TEXT.cls(),"sqrt-line"],[],t.getColor());p.height=a;p.maxFontSize=1;var o=a;if(t.style.id<r.TEXT.id){o=c.metrics.xHeight}var g=a+o/4;var d=(h.height+h.depth)*t.style.sizeMultiplier;var u=d+g+a;var w=n(["sqrt-sign"],[s.customSizedDelim("\\surd",u,false,t,e.mode)],t.getColor());var k=w.height+w.depth-a;if(k>h.height+h.depth+g){g=(g+k-h.height-h.depth)/2}var m=-(h.height+g+a)+w.height;w.style.top=m+"em";w.height-=m;w.depth+=m;var f;if(h.height===0&&h.depth===0){f=n()}else{f=l.makeVList([{type:"elem",elem:h},{type:"kern",size:g},{type:"elem",elem:p},{type:"kern",size:a}],"firstBaseline",null,t)}return n(["sqrt","mord"],[w,f])},sizing:function(e,t,i){var h=g(e.value.value,t.withSize(e.value.size),i);var a=n(["mord"],[n(["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=g(e.value.value,t.withStyle(a),i);return n([t.style.reset(),a.cls()],l)},delimsizing:function(e,t,i){var h=e.value.value;if(h==="."){return n([d[e.value.delimType]])}return n([d[e.value.delimType]],[s.sizedDelim(h,e.value.size,t,e.mode)])},leftright:function(e,t,i){var h=g(e.value.body,t.reset());var a=0;var r=0;for(var l=0;l<h.length;l++){a=Math.max(h[l].height,a);r=Math.max(h[l].depth,r)}a*=t.style.sizeMultiplier;r*=t.style.sizeMultiplier;var p;if(e.value.left==="."){p=n(["nulldelimiter"])}else{p=s.leftRightDelim(e.value.left,a,r,t,e.mode)}h.unshift(p);var c;if(e.value.right==="."){c=n(["nulldelimiter"])}else{c=s.leftRightDelim(e.value.right,a,r,t,e.mode)}h.push(c);return n(["minner",t.style.cls()],h,t.getColor())},rule:function(e,t,i){var h=n(["mord","rule"],[],t.getColor());var a=0;if(e.value.shift){a=e.value.shift.number;if(e.value.shift.unit==="ex"){a*=c.metrics.xHeight}}var r=e.value.width.number;if(e.value.width.unit==="ex"){r*=c.metrics.xHeight}var l=e.value.height.number;if(e.value.height.unit==="ex"){l*=c.metrics.xHeight}a/=t.style.sizeMultiplier;r/=t.style.sizeMultiplier;l/=t.style.sizeMultiplier;h.style.borderRightWidth=r+"em";h.style.borderTopWidth=l+"em";h.style.bottom=a+"em";h.width=r;h.height=l+a;h.depth=-a;return h},accent:function(e,t,i){var h=e.value.base;var a;if(e.type==="supsub"){var r=e;e=r.value.base;h=e.value.base;r.value.base=h;a=v(r,t.reset(),i)}var s=v(h,t.withStyle(t.style.cramp()));var p;if(m(h)){var o=k(h);var g=v(o,t.withStyle(t.style.cramp()));p=g.skew}else{p=0}var d=Math.min(s.height,c.metrics.xHeight);var u=l.makeSymbol(e.value.accent,"Main-Regular","math",t.getColor());u.italic=0;var w=e.value.accent==="\\vec"?"accent-vec":null;var f=n(["accent-body",w],[n([],[u])]);f=l.makeVList([{type:"elem",elem:s},{type:"kern",size:-d},{type:"elem",elem:f}],"firstBaseline",null,t);f.children[1].style.marginLeft=2*p+"em";var y=n(["mord","accent"],[f]);if(a){a.children[0]=y;a.height=Math.max(y.height,a.height);a.classes[0]="mord";return a}else{return y}}};var v=function(e,t,i){if(!e){return n()}if(f[e.type]){var h=f[e.type](e,t,i);var r;if(t.style!==t.parentStyle){r=t.style.sizeMultiplier/t.parentStyle.sizeMultiplier;h.height*=r;h.depth*=r}if(t.size!==t.parentSize){r=l.sizingMultiplier[t.size]/l.sizingMultiplier[t.parentSize];h.height*=r;h.depth*=r}return h}else{throw new a("Got group of unknown type: '"+e.type+"'")}};var y=function(e,t){var i=r.TEXT;if(t.displayMode){i=r.DISPLAY}var a=new h(i,"size5","");var l=g(e,a);var s=n(["base",a.style.cls()],l);var p=n(["strut"]);var c=n(["strut","bottom"]);p.style.height=s.height+"em";c.style.height=s.height+s.depth+"em";c.style.verticalAlign=-s.depth+"em";var o=n(["katex-html"],[p,c,s]);o.setAttribute("aria-hidden","true");return o};t.exports=y},{"./Options":3,"./ParseError":4,"./Style":7,"./buildCommon":8,"./delimiter":12,"./domTree":13,"./fontMetrics":14,"./utils":19}],10:[function(e,t,i){var h=e("./buildCommon");var a=e("./mathMLTree");var r=e("./ParseError");var l=e("./symbols");var s=h.makeSpan;var p=function(e,t){if(l[t][e]&&l[t][e].replace){e=l[t][e].replace}return new a.TextNode(e)};var c={mathord:function(e){var t=new a.MathNode("mi",[p(e.value,e.mode)]);return t},textord:function(e){var t=p(e.value,e.mode);var i;if(/[0-9]/.test(e.value)){i=new a.MathNode("mn",[t])}else{i=new a.MathNode("mi",[t]);i.setAttribute("mathvariant","normal")}return i},bin:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);return t},rel:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);return t},open:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);return t},close:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);return t},inner:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);return t},punct:function(e){var t=new a.MathNode("mo",[p(e.value,e.mode)]);t.setAttribute("separator","true");return t},ordgroup:function(e){var t=o(e.value);var i=new a.MathNode("mrow",t);return i},text:function(e){var t=o(e.value.body);var i=new a.MathNode("mtext",t);return i},color:function(e){var t=o(e.value.value);var i=new a.MathNode("mstyle",t);i.setAttribute("mathcolor",e.value.color);return i},supsub:function(e){var t=[n(e.value.base)];if(e.value.sub){t.push(n(e.value.sub))}if(e.value.sup){t.push(n(e.value.sup))}var i;if(!e.value.sub){i="msup"}else if(!e.value.sup){i="msub"}else{i="msubsup"}var h=new a.MathNode(i,t);return h},genfrac:function(e){var t=new a.MathNode("mfrac",[n(e.value.numer),n(e.value.denom)]);if(!e.value.hasBarLine){t.setAttribute("linethickness","0px")}if(e.value.leftDelim!=null||e.value.rightDelim!=null){var i=[];if(e.value.leftDelim!=null){var h=new a.MathNode("mo",[new a.TextNode(e.value.leftDelim)]);h.setAttribute("fence","true");i.push(h)}i.push(t);if(e.value.rightDelim!=null){var r=new a.MathNode("mo",[new a.TextNode(e.value.rightDelim)]);r.setAttribute("fence","true");i.push(r)}var l=new a.MathNode("mrow",i);return l}return t},sqrt:function(e){var t=new a.MathNode("msqrt",[n(e.value.body)]);return t},leftright:function(e){var t=o(e.value.body);if(e.value.left!=="."){var i=new a.MathNode("mo",[p(e.value.left,e.mode)]);i.setAttribute("fence","true");t.unshift(i)}if(e.value.right!=="."){var h=new a.MathNode("mo",[p(e.value.right,e.mode)]);h.setAttribute("fence","true");t.push(h)}var r=new a.MathNode("mrow",t);return r},accent:function(e){var t=new a.MathNode("mo",[p(e.value.accent,e.mode)]);var i=new a.MathNode("mover",[n(e.value.base),t]);i.setAttribute("accent","true");return i},spacing:function(e){var t;if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){t=new a.MathNode("mtext",[new a.TextNode("\xa0")])}else{t=new a.MathNode("mspace");t.setAttribute("width",h.spacingFunctions[e.value].size)}return t},op:function(e){var t;if(e.value.symbol){t=new a.MathNode("mo",[p(e.value.body,e.mode)])}else{t=new a.MathNode("mo",[new a.TextNode(e.value.body.slice(1))])}return t},katex:function(e){var t=new a.MathNode("mtext",[new a.TextNode("KaTeX")]);return t},delimsizing:function(e){var t=[];if(e.value.value!=="."){t.push(p(e.value.value,e.mode))}var i=new a.MathNode("mo",t);if(e.value.delimType==="open"||e.value.delimType==="close"){i.setAttribute("fence","true")}else{i.setAttribute("fence","false")}return i},styling:function(e){var t=o(e.value.value,t);var i=new a.MathNode("mstyle",t);var h={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]};var r=h[e.value.style];i.setAttribute("scriptlevel",r[0]);i.setAttribute("displaystyle",r[1]);return i},sizing:function(e){var t=o(e.value.value);var i=new a.MathNode("mstyle",t);i.setAttribute("mathsize",h.sizingMultiplier[e.value.size]+"em");return i},overline:function(e){var t=new a.MathNode("mo",[new a.TextNode("\u203e")]);t.setAttribute("stretchy","true");var i=new a.MathNode("mover",[n(e.value.body),t]);i.setAttribute("accent","true");return i},rule:function(e){var t=new a.MathNode("mrow");return t},llap:function(e){var t=new a.MathNode("mpadded",[n(e.value.body)]);
+t.setAttribute("lspace","-1width");t.setAttribute("width","0px");return t},rlap:function(e){var t=new a.MathNode("mpadded",[n(e.value.body)]);t.setAttribute("width","0px");return t}};var o=function(e){var t=[];for(var i=0;i<e.length;i++){var h=e[i];t.push(n(h))}return t};var n=function(e){if(!e){return new a.MathNode("mrow")}if(c[e.type]){return c[e.type](e)}else{throw new r("Got group of unknown type: '"+e.type+"'")}};var g=function(e,t,i){var h=o(e);var r=new a.MathNode("mrow",h);var l=new a.MathNode("annotation",[new a.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var p=new a.MathNode("semantics",[r,l]);var c=new a.MathNode("math",[p]);return s(["katex-mathml"],[c])};t.exports=g},{"./ParseError":4,"./buildCommon":8,"./mathMLTree":16,"./symbols":18}],11:[function(e,t,i){var h=e("./buildHTML");var a=e("./buildMathML");var r=e("./buildCommon");var l=r.makeSpan;var s=function(e,t,i){var r=a(e,t,i);var s=h(e,i);var p=l(["katex"],[r,s]);if(i.displayMode){return l(["katex-display"],[p])}else{return p}};t.exports=s},{"./buildCommon":8,"./buildHTML":9,"./buildMathML":10}],12:[function(e,t,i){var h=e("./ParseError");var a=e("./Style");var r=e("./buildCommon");var l=e("./fontMetrics");var s=e("./symbols");var p=e("./utils");var c=r.makeSpan;var o=function(e,t){if(s.math[e]&&s.math[e].replace){return l.getCharacterMetrics(s.math[e].replace,t)}else{return l.getCharacterMetrics(e,t)}};var n=function(e,t,i){return r.makeSymbol(e,"Size"+t+"-Regular",i)};var g=function(e,t,i){var h=c(["style-wrap",i.style.reset(),t.cls()],[e]);var a=t.sizeMultiplier/i.style.sizeMultiplier;h.height*=a;h.depth*=a;h.maxFontSize=t.sizeMultiplier;return h};var d=function(e,t,i,h,a){var s=r.makeSymbol(e,"Main-Regular",a);var p=g(s,t,h);if(i){var c=(1-h.style.sizeMultiplier/t.sizeMultiplier)*l.metrics.axisHeight;p.style.top=c+"em";p.height-=c;p.depth+=c}return p};var u=function(e,t,i,h,r){var s=n(e,t,r);var p=g(c(["delimsizing","size"+t],[s],h.getColor()),a.TEXT,h);if(i){var o=(1-h.style.sizeMultiplier)*l.metrics.axisHeight;p.style.top=o+"em";p.height-=o;p.depth+=o}return p};var w=function(e,t,i){var h;if(t==="Size1-Regular"){h="delim-size1"}else if(t==="Size4-Regular"){h="delim-size4"}var a=c(["delimsizinginner",h],[c([],[r.makeSymbol(e,t,i)])]);return{type:"elem",elem:a}};var k=function(e,t,i,h,s){var p,n,d,u;p=d=u=e;n=null;var k="Size1-Regular";if(e==="\\uparrow"){d=u="\u23d0"}else if(e==="\\Uparrow"){d=u="\u2016"}else if(e==="\\downarrow"){p=d="\u23d0"}else if(e==="\\Downarrow"){p=d="\u2016"}else if(e==="\\updownarrow"){p="\\uparrow";d="\u23d0";u="\\downarrow"}else if(e==="\\Updownarrow"){p="\\Uparrow";d="\u2016";u="\\Downarrow"}else if(e==="["||e==="\\lbrack"){p="\u23a1";d="\u23a2";u="\u23a3";k="Size4-Regular"}else if(e==="]"||e==="\\rbrack"){p="\u23a4";d="\u23a5";u="\u23a6";k="Size4-Regular"}else if(e==="\\lfloor"){d=p="\u23a2";u="\u23a3";k="Size4-Regular"}else if(e==="\\lceil"){p="\u23a1";d=u="\u23a2";k="Size4-Regular"}else if(e==="\\rfloor"){d=p="\u23a5";u="\u23a6";k="Size4-Regular"}else if(e==="\\rceil"){p="\u23a4";d=u="\u23a5";k="Size4-Regular"}else if(e==="("){p="\u239b";d="\u239c";u="\u239d";k="Size4-Regular"}else if(e===")"){p="\u239e";d="\u239f";u="\u23a0";k="Size4-Regular"}else if(e==="\\{"||e==="\\lbrace"){p="\u23a7";n="\u23a8";u="\u23a9";d="\u23aa";k="Size4-Regular"}else if(e==="\\}"||e==="\\rbrace"){p="\u23ab";n="\u23ac";u="\u23ad";d="\u23aa";k="Size4-Regular"}else if(e==="\\surd"){p="\ue001";u="\u23b7";d="\ue000";k="Size4-Regular"}var m=o(p,k);var f=m.height+m.depth;var v=o(d,k);var y=v.height+v.depth;var b=o(u,k);var x=b.height+b.depth;var z,S;if(n!==null){z=o(n,k);S=z.height+z.depth}var M=f+x;if(n!==null){M+=S}while(M<t){M+=y;if(n!==null){M+=y}}var q=l.metrics.axisHeight;if(i){q*=h.style.sizeMultiplier}var T=M/2-q;var N=[];N.push(w(u,k,s));var A;if(n===null){var R=M-f-x;var C=Math.ceil(R/y);for(A=0;A<C;A++){N.push(w(d,k,s))}}else{var L=M/2-f-S/2;var E=Math.ceil(L/y);var P=M/2-f-S/2;var D=Math.ceil(P/y);for(A=0;A<E;A++){N.push(w(d,k,s))}N.push(w(n,k,s));for(A=0;A<D;A++){N.push(w(d,k,s))}}N.push(w(p,k,s));var I=r.makeVList(N,"bottom",T,h);return g(c(["delimsizing","mult"],[I],h.getColor()),a.TEXT,h)};var m=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","\\surd"];var f=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert"];var v=["<",">","\\langle","\\rangle","/","\\backslash"];var y=[0,1.2,1.8,2.4,3];var b=function(e,t,i,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}if(p.contains(m,e)||p.contains(v,e)){return u(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 x=[{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;r<i.length;r++){if(i[r].type==="stack"){break}var l=o(e,M(i[r]));var s=l.height+l.depth;if(i[r].type==="small"){s*=i[r].style.sizeMultiplier}if(s>t){return i[r]}}return i[i.length-1]};var T=function(e,t,i,h,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}var r;if(p.contains(v,e)){r=x}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 u(e,l.size,i,h,a)}else if(l.type==="stack"){return k(e,t,i,h,a)}};var N=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 o=Math.max(c/500*s,2*c-p);return T(e,o,true,h,a)};t.exports={sizedDelim:b,customSizedDelim:T,leftRightDelim:N}},{"./ParseError":4,"./Style":7,"./buildCommon":8,"./fontMetrics":14,"./symbols":18,"./utils":19}],13:[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<this.children.length;h++){e.appendChild(this.children[h].toNode())}return e};r.prototype.toMarkup=function(){var e="<span";if(this.classes.length){e+=' class="';e+=h.escape(a(this.classes));e+='"'}var t="";for(var i in this.style){if(this.style.hasOwnProperty(i)){t+=h.hyphenate(i)+":"+this.style[i]+";"}}if(t){e+=' style="'+h.escape(t)+'"'}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e+=" "+r+'="';e+=h.escape(this.attributes[r]);e+='"'}}e+=">";for(var l=0;l<this.children.length;l++){e+=this.children[l].toMarkup()}e+="</span>";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;t<this.children.length;t++){e.appendChild(this.children[t].toNode())}return e};l.prototype.toMarkup=function(){var e="";for(var t=0;t<this.children.length;t++){e+=this.children[t].toMarkup()}return e};function s(e,t,i,h,a,r,l){this.value=e||"";this.height=t||0;this.depth=i||0;this.italic=h||0;this.skew=a||0;this.classes=r||[];this.style=l||{};this.maxFontSize=0}s.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){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="<span";if(this.classes.length){e=true;t+=' class="';t+=h.escape(a(this.classes));t+='"'}var i="";if(this.italic>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+="</span>";return t}else{return l}};t.exports={span:r,documentFragment:l,symbolNode:s}},{"./utils":19}],14:[function(e,t,i){var h=e("./Style");var a=.025;var r=0;var l=0;var s=0;var p=.431;var c=1;var o=0;var n=.677;var g=.394;var d=.444;var u=.686;var w=.345;var k=.413;var m=.363;var f=.289;var v=.15;var y=.247;var b=.386;var x=.05;var z=2.39;var S=1.01;var M=.81;var q=.71;var T=.25;var N=0;var A=0;var R=0;var C=0;var L=.431;var E=1;var P=0;var D=.04;var I=.111;var O=.166;var F=.2;var B=.6;var _=.1;var X=10;var G={xHeight:p,quad:c,num1:n,num2:g,num3:d,denom1:u,denom2:w,sup1:k,sup2:m,sup3:f,sub1:v,sub2:y,supDrop:b,subDrop:x,axisHeight:T,defaultRuleThickness:D,bigOpSpacing1:I,bigOpSpacing2:O,bigOpSpacing3:F,bigOpSpacing4:B,bigOpSpacing5:_,ptPerEm:X,delim1:z,getDelim2:function(e){if(e.size===h.TEXT.size){return S}else if(e.size===h.SCRIPT.size){return M}else if(e.size===h.SCRIPTSCRIPT.size){return q}throw new Error("Unexpected style size: "+e.size)}};var H={"AMS-Regular":{8672:{depth:-.064,height:.437,italic:0,skew:0},8674:{depth:-.064,height:.437,italic:0,skew:0},10003:{depth:0,height:.69224,italic:0,skew:0},10016:{depth:0,height:.69224,italic:0,skew:0},1008:{depth:0,height:.43056,italic:.04028,skew:0},107:{depth:0,height:.68889,italic:0,skew:0},10731:{depth:.11111,height:.69224,italic:0,skew:0},10846:{depth:.19444,height:.75583,italic:0,skew:0},10877:{depth:.13667,height:.63667,italic:0,skew:0},10878:{depth:.13667,height:.63667,italic:0,skew:0},10885:{depth:.25583,height:.75583,italic:0,skew:0},10886:{depth:.25583,height:.75583,italic:0,skew:0},10887:{depth:.13597,height:.63597,italic:0,skew:0},10888:{depth:.13597,height:.63597,italic:0,skew:0},10889:{depth:.26167,height:.75726,italic:0,skew:0},10890:{depth:.26167,height:.75726,italic:0,skew:0},10891:{depth:.48256,height:.98256,italic:0,skew:0},10892:{depth:.48256,height:.98256,italic:0,skew:0},10901:{depth:.13667,height:.63667,italic:0,skew:0},10902:{depth:.13667,height:.63667,italic:0,skew:0},10933:{depth:.25142,height:.75726,italic:0,skew:0},10934:{depth:.25142,height:.75726,italic:0,skew:0},10935:{depth:.26167,height:.75726,italic:0,skew:0},10936:{depth:.26167,height:.75726,italic:0,skew:0},10937:{depth:.26167,height:.75726,italic:0,skew:0},10938:{depth:.26167,height:.75726,italic:0,skew:0},10949:{depth:.25583,height:.75583,italic:0,skew:0},10950:{depth:.25583,height:.75583,italic:0,skew:0},10955:{depth:.28481,height:.79383,italic:0,skew:0},10956:{depth:.28481,height:.79383,italic:0,skew:0},165:{depth:0,height:.675,italic:.025,skew:0},174:{depth:.15559,height:.69224,italic:0,skew:0},240:{depth:0,height:.68889,italic:0,skew:0},295:{depth:0,height:.68889,italic:0,skew:0},57350:{depth:.08167,height:.58167,italic:0,skew:0},57351:{depth:.08167,height:.58167,italic:0,skew:0},57352:{depth:.08167,height:.58167,italic:0,skew:0},57353:{depth:0,height:.43056,italic:.04028,skew:0},57356:{depth:.25142,height:.75726,italic:0,skew:0},57357:{depth:.25142,height:.75726,italic:0,skew:0},57358:{depth:.41951,height:.91951,italic:0,skew:0},57359:{depth:.30274,height:.79383,italic:0,skew:0},57360:{depth:.30274,height:.79383,italic:0,skew:0},57361:{depth:.41951,height:.91951,italic:0,skew:0},57366:{depth:.25142,height:.75726,italic:0,skew:0},57367:{depth:.25142,height:.75726,italic:0,skew:0},57368:{depth:.25142,height:.75726,italic:0,skew:0},57369:{depth:.25142,height:.75726,italic:0,skew:0},57370:{depth:.13597,height:.63597,italic:0,skew:0},57371:{depth:.13597,height:.63597,italic:0,skew:0},65:{depth:0,height:.68889,italic:0,skew:0},66:{depth:0,height:.68889,italic:0,skew:0},67:{depth:0,height:.68889,italic:0,skew:0},68:{depth:0,height:.68889,italic:0,skew:0},69:{depth:0,height:.68889,italic:0,skew:0},70:{depth:0,height:.68889,italic:0,skew:0},71:{depth:0,height:.68889,italic:0,skew:0},710:{depth:0,height:.825,italic:0,skew:0},72:{depth:0,height:.68889,italic:0,skew:0},73:{depth:0,height:.68889,italic:0,skew:0},732:{depth:0,height:.9,italic:0,skew:0},74:{depth:.16667,height:.68889,italic:0,skew:0},75:{depth:0,height:.68889,italic:0,skew:0},76:{depth:0,height:.68889,italic:0,skew:0},77:{depth:0,height:.68889,italic:0,skew:0},770:{depth:0,height:.825,italic:0,skew:0},771:{depth:0,height:.9,italic:0,skew:0},78:{depth:0,height:.68889,italic:0,skew:0},79:{depth:.16667,height:.68889,italic:0,skew:0},80:{depth:0,height:.68889,italic:0,skew:0},81:{depth:.16667,height:.68889,italic:0,skew:0},82:{depth:0,height:.68889,italic:0,skew:0},8245:{depth:0,height:.54986,italic:0,skew:0},83:{depth:0,height:.68889,italic:0,skew:0},84:{depth:0,height:.68889,italic:0,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0},8487:{depth:0,height:.68889,italic:0,skew:0},8498:{depth:0,height:.68889,italic:0,skew:0},85:{depth:0,height:.68889,italic:0,skew:0},8502:{depth:0,height:.68889,italic:0,skew:0},8503:{depth:0,height:.68889,italic:0,skew:0},8504:{depth:0,height:.68889,italic:0,skew:0},8513:{depth:0,height:.68889,italic:0,skew:0},8592:{depth:-.03598,height:.46402,italic:0,skew:0},8594:{depth:-.03598,height:.46402,italic:0,skew:0},86:{depth:0,height:.68889,italic:0,skew:0},8602:{depth:-.13313,height:.36687,italic:0,skew:0},8603:{depth:-.13313,height:.36687,italic:0,skew:0},8606:{depth:.01354,height:.52239,italic:0,skew:0},8608:{depth:.01354,height:.52239,italic:0,skew:0},8610:{depth:.01354,height:.52239,italic:0,skew:0},8611:{depth:.01354,height:.52239,italic:0,skew:0},8619:{depth:0,height:.54986,italic:0,skew:0},8620:{depth:0,height:.54986,italic:0,skew:0},8621:{depth:-.13313,height:.37788,italic:0,skew:0},8622:{depth:-.13313,height:.36687,italic:0,skew:0},8624:{depth:0,height:.69224,italic:0,skew:0},8625:{depth:0,height:.69224,italic:0,skew:0},8630:{depth:0,height:.43056,italic:0,skew:0},8631:{depth:0,height:.43056,italic:0,skew:0},8634:{depth:.08198,height:.58198,italic:0,skew:0},8635:{depth:.08198,height:.58198,italic:0,skew:0},8638:{depth:.19444,height:.69224,italic:0,skew:0},8639:{depth:.19444,height:.69224,italic:0,skew:0},8642:{depth:.19444,height:.69224,italic:0,skew:0},8643:{depth:.19444,height:.69224,italic:0,skew:0},8644:{depth:.1808,height:.675,italic:0,skew:0},8646:{depth:.1808,height:.675,italic:0,skew:0},8647:{depth:.1808,height:.675,italic:0,skew:0},8648:{depth:.19444,height:.69224,italic:0,skew:0},8649:{depth:.1808,height:.675,italic:0,skew:0},8650:{depth:.19444,height:.69224,italic:0,skew:0},8651:{depth:.01354,height:.52239,italic:0,skew:0},8652:{depth:.01354,height:.52239,italic:0,skew:0},8653:{depth:-.13313,height:.36687,italic:0,skew:0},8654:{depth:-.13313,height:.36687,italic:0,skew:0},8655:{depth:-.13313,height:.36687,italic:0,skew:0},8666:{depth:.13667,height:.63667,italic:0,skew:0},8667:{depth:.13667,height:.63667,italic:0,skew:0},8669:{depth:-.13313,height:.37788,italic:0,skew:0},87:{depth:0,height:.68889,italic:0,skew:0},8705:{depth:0,height:.825,italic:0,skew:0},8708:{depth:0,height:.68889,italic:0,skew:0},8709:{depth:.08167,height:.58167,italic:0,skew:0},8717:{depth:0,height:.43056,italic:0,skew:0},8722:{depth:-.03598,height:.46402,italic:0,skew:0},8724:{depth:.08198,height:.69224,italic:0,skew:0},8726:{depth:.08167,height:.58167,italic:0,skew:0},8733:{depth:0,height:.69224,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8737:{depth:0,height:.69224,italic:0,skew:0},8738:{depth:.03517,height:.52239,italic:0,skew:0},8739:{depth:.08167,height:.58167,italic:0,skew:0},8740:{depth:.25142,height:.74111,italic:0,skew:0},8741:{depth:.08167,height:.58167,italic:0,skew:0},8742:{depth:.25142,height:.74111,italic:0,skew:0},8756:{depth:0,height:.69224,italic:0,skew:0},8757:{depth:0,height:.69224,italic:0,skew:0},8764:{depth:-.13313,height:.36687,italic:0,skew:0},8765:{depth:-.13313,height:.37788,italic:0,skew:0},8769:{depth:-.13313,height:.36687,italic:0,skew:0},8770:{depth:-.03625,height:.46375,italic:0,skew:0},8774:{depth:.30274,height:.79383,italic:0,skew:0},8776:{depth:-.01688,height:.48312,italic:0,skew:0},8778:{depth:.08167,height:.58167,italic:0,skew:0},8782:{depth:.06062,height:.54986,italic:0,skew:0},8783:{depth:.06062,height:.54986,italic:0,skew:0},8785:{depth:.08198,height:.58198,italic:0,skew:0},8786:{depth:.08198,height:.58198,italic:0,skew:0},8787:{depth:.08198,height:.58198,italic:0,skew:0},8790:{depth:0,height:.69224,italic:0,skew:0},8791:{depth:.22958,height:.72958,italic:0,skew:0},8796:{depth:.08198,height:.91667,italic:0,skew:0},88:{depth:0,height:.68889,italic:0,skew:0},8806:{depth:.25583,height:.75583,italic:0,skew:0},8807:{depth:.25583,height:.75583,italic:0,skew:0},8808:{depth:.25142,height:.75726,italic:0,skew:0},8809:{depth:.25142,height:.75726,italic:0,skew:0},8812:{depth:.25583,height:.75583,italic:0,skew:0},8814:{depth:.20576,height:.70576,italic:0,skew:0},8815:{depth:.20576,height:.70576,italic:0,skew:0},8816:{depth:.30274,height:.79383,italic:0,skew:0},8817:{depth:.30274,height:.79383,italic:0,skew:0},8818:{depth:.22958,height:.72958,italic:0,skew:0},8819:{depth:.22958,height:.72958,italic:0,skew:0},8822:{depth:.1808,height:.675,italic:0,skew:0},8823:{depth:.1808,height:.675,italic:0,skew:0},8828:{depth:.13667,height:.63667,italic:0,skew:0},8829:{depth:.13667,height:.63667,italic:0,skew:0},8830:{depth:.22958,height:.72958,italic:0,skew:0},8831:{depth:.22958,height:.72958,italic:0,skew:0},8832:{depth:.20576,height:.70576,italic:0,skew:0},8833:{depth:.20576,height:.70576,italic:0,skew:0},8840:{depth:.30274,height:.79383,italic:0,skew:0},8841:{depth:.30274,height:.79383,italic:0,skew:0},8842:{depth:.13597,height:.63597,italic:0,skew:0},8843:{depth:.13597,height:.63597,italic:0,skew:0},8847:{depth:.03517,height:.54986,italic:0,skew:0},8848:{depth:.03517,height:.54986,italic:0,skew:0},8858:{depth:.08198,height:.58198,italic:0,skew:0},8859:{depth:.08198,height:.58198,italic:0,skew:0},8861:{depth:.08198,height:.58198,italic:0,skew:0},8862:{depth:0,height:.675,italic:0,skew:0},8863:{depth:0,height:.675,italic:0,skew:0},8864:{depth:0,height:.675,italic:0,skew:0},8865:{depth:0,height:.675,italic:0,skew:0},8872:{depth:0,height:.69224,italic:0,skew:0},8873:{depth:0,height:.69224,italic:0,skew:0},8874:{depth:0,height:.69224,italic:0,skew:0},8876:{depth:0,height:.68889,italic:0,skew:0},8877:{depth:0,height:.68889,italic:0,skew:0},8878:{depth:0,height:.68889,italic:0,skew:0},8879:{depth:0,height:.68889,italic:0,skew:0},8882:{depth:.03517,height:.54986,italic:0,skew:0},8883:{depth:.03517,height:.54986,italic:0,skew:0},8884:{depth:.13667,height:.63667,italic:0,skew:0},8885:{depth:.13667,height:.63667,italic:0,skew:0},8888:{depth:0,height:.54986,italic:0,skew:0},8890:{depth:.19444,height:.43056,italic:0,skew:0},8891:{depth:.19444,height:.69224,italic:0,skew:0},8892:{depth:.19444,height:.69224,italic:0,skew:0},89:{depth:0,height:.68889,italic:0,skew:0},8901:{depth:0,height:.54986,italic:0,skew:0},8903:{depth:.08167,height:.58167,italic:0,skew:0},8905:{depth:.08167,height:.58167,italic:0,skew:0},8906:{depth:.08167,height:.58167,italic:0,skew:0},8907:{depth:0,height:.69224,italic:0,skew:0},8908:{depth:0,height:.69224,italic:0,skew:0},8909:{depth:-.03598,height:.46402,italic:0,skew:0},8910:{depth:0,height:.54986,italic:0,skew:0},8911:{depth:0,height:.54986,italic:0,skew:0},8912:{depth:.03517,height:.54986,italic:0,skew:0},8913:{depth:.03517,height:.54986,italic:0,skew:0},8914:{depth:0,height:.54986,italic:0,skew:0},8915:{depth:0,height:.54986,italic:0,skew:0},8916:{depth:0,height:.69224,italic:0,skew:0},8918:{depth:.0391,height:.5391,italic:0,skew:0},8919:{depth:.0391,height:.5391,italic:0,skew:0},8920:{depth:.03517,height:.54986,italic:0,skew:0},8921:{depth:.03517,height:.54986,italic:0,skew:0},8922:{depth:.38569,height:.88569,italic:0,skew:0},8923:{depth:.38569,height:.88569,italic:0,skew:0},8926:{depth:.13667,height:.63667,italic:0,skew:0},8927:{depth:.13667,height:.63667,italic:0,skew:0},8928:{depth:.30274,height:.79383,italic:0,skew:0},8929:{depth:.30274,height:.79383,italic:0,skew:0},8934:{depth:.23222,height:.74111,italic:0,skew:0},8935:{depth:.23222,height:.74111,italic:0,skew:0},8936:{depth:.23222,height:.74111,italic:0,skew:0},8937:{depth:.23222,height:.74111,italic:0,skew:0},8938:{depth:.20576,height:.70576,italic:0,skew:0},8939:{depth:.20576,height:.70576,italic:0,skew:0},8940:{depth:.30274,height:.79383,italic:0,skew:0},8941:{depth:.30274,height:.79383,italic:0,skew:0},8994:{depth:.19444,height:.69224,italic:0,skew:0},8995:{depth:.19444,height:.69224,italic:0,skew:0},90:{depth:0,height:.68889,italic:0,skew:0},9416:{depth:.15559,height:.69224,italic:0,skew:0},9484:{depth:0,height:.69224,italic:0,skew:0},9488:{depth:0,height:.69224,italic:0,skew:0},9492:{depth:0,height:.37788,italic:0,skew:0},9496:{depth:0,height:.37788,italic:0,skew:0},9585:{depth:.19444,height:.68889,italic:0,skew:0},9586:{depth:.19444,height:.74111,italic:0,skew:0},9632:{depth:0,height:.675,italic:0,skew:0},9633:{depth:0,height:.675,italic:0,skew:0},9650:{depth:0,height:.54986,italic:0,skew:0},9651:{depth:0,height:.54986,italic:0,skew:0},9654:{depth:.03517,height:.54986,italic:0,skew:0},9660:{depth:0,height:.54986,italic:0,skew:0},9661:{depth:0,height:.54986,italic:0,skew:0},9664:{depth:.03517,height:.54986,italic:0,skew:0},9674:{depth:.11111,height:.69224,italic:0,skew:0},9733:{depth:.19444,height:.69224,italic:0,skew:0},989:{depth:.08167,height:.58167,italic:0,skew:0}},"Main-Bold":{100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.44444,italic:0,skew:0},102:{depth:0,height:.69444,italic:.10903,skew:0},10216:{depth:.25,height:.75,italic:0,skew:0},10217:{depth:.25,height:.75,italic:0,skew:0},103:{depth:.19444,height:.44444,italic:.01597,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.69444,italic:0,skew:0},106:{depth:.19444,height:.69444,italic:0,skew:0},107:{depth:0,height:.69444,italic:0,skew:0},108:{depth:0,height:.69444,italic:0,skew:0},10815:{depth:0,height:.68611,italic:0,skew:0},109:{depth:0,height:.44444,italic:0,skew:0},10927:{depth:.19667,height:.69667,italic:0,skew:0},10928:{depth:.19667,height:.69667,italic:0,skew:0},110:{depth:0,height:.44444,italic:0,skew:0},111:{depth:0,height:.44444,italic:0,skew:0},112:{depth:.19444,height:.44444,italic:0,skew:0},113:{depth:.19444,height:.44444,italic:0,skew:0},114:{depth:0,height:.44444,italic:0,skew:0},115:{depth:0,height:.44444,italic:0,skew:0},116:{depth:0,height:.63492,italic:0,skew:0},117:{depth:0,height:.44444,italic:0,skew:0},118:{depth:0,height:.44444,italic:.01597,skew:0},119:{depth:0,height:.44444,italic:.01597,skew:0},120:{depth:0,height:.44444,italic:0,skew:0},121:{depth:.19444,height:.44444,italic:.01597,skew:0},122:{depth:0,height:.44444,italic:0,skew:0},123:{depth:.25,height:.75,italic:0,skew:0},124:{depth:.25,height:.75,italic:0,skew:0},125:{depth:.25,height:.75,italic:0,skew:0},126:{depth:.35,height:.34444,italic:0,skew:0},168:{depth:0,height:.69444,italic:0,skew:0},172:{depth:0,height:.44444,italic:0,skew:0},175:{depth:0,height:.59611,italic:0,skew:0},176:{depth:0,height:.69444,italic:0,skew:0},177:{depth:.13333,height:.63333,italic:0,skew:0},180:{depth:0,height:.69444,italic:0,skew:0},215:{depth:.13333,height:.63333,italic:0,skew:0},247:{depth:.13333,height:.63333,italic:0,skew:0},305:{depth:0,height:.44444,italic:0,skew:0},33:{depth:0,height:.69444,italic:0,skew:0},34:{depth:0,height:.69444,italic:0,skew:0},35:{depth:.19444,height:.69444,italic:0,skew:0},36:{depth:.05556,height:.75,italic:0,skew:0},37:{depth:.05556,height:.75,italic:0,skew:0},38:{depth:0,height:.69444,italic:0,skew:0},39:{depth:0,height:.69444,italic:0,skew:0},40:{depth:.25,height:.75,italic:0,skew:0},41:{depth:.25,height:.75,italic:0,skew:0},42:{depth:0,height:.75,italic:0,skew:0},43:{depth:.13333,height:.63333,italic:0,skew:0},44:{depth:.19444,height:.15556,italic:0,skew:0},45:{depth:0,height:.44444,italic:0,skew:0},46:{depth:0,height:.15556,italic:0,skew:0},47:{depth:.25,height:.75,italic:0,skew:0},48:{depth:0,height:.64444,italic:0,skew:0},49:{depth:0,height:.64444,italic:0,skew:0},50:{depth:0,height:.64444,italic:0,skew:0},51:{depth:0,height:.64444,italic:0,skew:0},52:{depth:0,height:.64444,italic:0,skew:0},53:{depth:0,height:.64444,italic:0,skew:0},54:{depth:0,height:.64444,italic:0,skew:0},55:{depth:0,height:.64444,italic:0,skew:0},56:{depth:0,height:.64444,italic:0,skew:0},567:{depth:.19444,height:.44444,italic:0,skew:0},57:{depth:0,height:.64444,italic:0,skew:0},58:{depth:0,height:.44444,italic:0,skew:0},59:{depth:.19444,height:.44444,italic:0,skew:0},60:{depth:.08556,height:.58556,italic:0,skew:0},61:{depth:-.10889,height:.39111,italic:0,skew:0},62:{depth:.08556,height:.58556,italic:0,skew:0},63:{depth:0,height:.69444,italic:0,skew:0},64:{depth:0,height:.69444,italic:0,skew:0},65:{depth:0,height:.68611,italic:0,skew:0},66:{depth:0,height:.68611,italic:0,skew:0},67:{depth:0,height:.68611,italic:0,skew:0},68:{depth:0,height:.68611,italic:0,skew:0},69:{depth:0,height:.68611,italic:0,skew:0},70:{depth:0,height:.68611,italic:0,skew:0},71:{depth:0,height:.68611,italic:0,skew:0},710:{depth:0,height:.69444,italic:0,skew:0},711:{depth:0,height:.63194,italic:0,skew:0},713:{depth:0,height:.59611,italic:0,skew:0},714:{depth:0,height:.69444,italic:0,skew:0},715:{depth:0,height:.69444,italic:0,skew:0},72:{depth:0,height:.68611,italic:0,skew:0},728:{depth:0,height:.69444,italic:0,skew:0},729:{depth:0,height:.69444,italic:0,skew:0},73:{depth:0,height:.68611,italic:0,skew:0},730:{depth:0,height:.69444,italic:0,skew:0},732:{depth:0,height:.69444,italic:0,skew:0},74:{depth:0,height:.68611,italic:0,skew:0},75:{depth:0,height:.68611,italic:0,skew:0},76:{depth:0,height:.68611,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:0,skew:0},77:{depth:0,height:.68611,italic:0,skew:0},770:{depth:0,height:.69444,italic:0,skew:0},771:{depth:0,height:.69444,italic:0,skew:0},772:{depth:0,height:.59611,italic:0,skew:0},774:{depth:0,height:.69444,italic:0,skew:0},775:{depth:0,height:.69444,italic:0,skew:0},776:{depth:0,height:.69444,italic:0,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:0,skew:0},78:{depth:0,height:.68611,italic:0,skew:0},780:{depth:0,height:.63194,italic:0,skew:0},79:{depth:0,height:.68611,italic:0,skew:0},80:{depth:0,height:.68611,italic:0,skew:0},81:{depth:.19444,height:.68611,italic:0,skew:0},82:{depth:0,height:.68611,italic:0,skew:0},8211:{depth:0,height:.44444,italic:.03194,skew:0},8212:{depth:0,height:.44444,italic:.03194,skew:0},8216:{depth:0,height:.69444,italic:0,skew:0},8217:{depth:0,height:.69444,italic:0,skew:0},8220:{depth:0,height:.69444,italic:0,skew:0},8221:{depth:0,height:.69444,italic:0,skew:0},8224:{depth:.19444,height:.69444,italic:0,skew:0},8225:{depth:.19444,height:.69444,italic:0,skew:0},824:{depth:.19444,height:.69444,italic:0,skew:0},8242:{depth:0,height:.55556,italic:0,skew:0},83:{depth:0,height:.68611,italic:0,skew:0},84:{depth:0,height:.68611,italic:0,skew:0},8407:{depth:0,height:.72444,italic:.15486,skew:0},8463:{depth:0,height:.69444,italic:0,skew:0},8465:{depth:0,height:.69444,italic:0,skew:0},8467:{depth:0,height:.69444,italic:0,skew:0},8472:{depth:.19444,height:.44444,italic:0,skew:0},8476:{depth:0,height:.69444,italic:0,skew:0},85:{depth:0,height:.68611,italic:0,skew:0},8501:{depth:0,height:.69444,italic:0,skew:0},8592:{depth:-.10889,height:.39111,italic:0,skew:0},8593:{depth:.19444,height:.69444,italic:0,skew:0},8594:{depth:-.10889,height:.39111,italic:0,skew:0},8595:{depth:.19444,height:.69444,italic:0,skew:0},8596:{depth:-.10889,height:.39111,italic:0,skew:0},8597:{depth:.25,height:.75,italic:0,skew:0},8598:{depth:.19444,height:.69444,italic:0,skew:0},8599:{depth:.19444,height:.69444,italic:0,skew:0},86:{depth:0,height:.68611,italic:.01597,skew:0},8600:{depth:.19444,height:.69444,italic:0,skew:0},8601:{depth:.19444,height:.69444,italic:0,skew:0},8636:{depth:-.10889,height:.39111,italic:0,skew:0},8637:{depth:-.10889,height:.39111,italic:0,skew:0},8640:{depth:-.10889,height:.39111,italic:0,skew:0},8641:{depth:-.10889,height:.39111,italic:0,skew:0},8656:{depth:-.10889,height:.39111,italic:0,skew:0},8657:{depth:.19444,height:.69444,italic:0,skew:0},8658:{depth:-.10889,height:.39111,italic:0,skew:0},8659:{depth:.19444,height:.69444,italic:0,skew:0},8660:{depth:-.10889,height:.39111,italic:0,skew:0},8661:{depth:.25,height:.75,italic:0,skew:0},87:{depth:0,height:.68611,italic:.01597,skew:0},8704:{depth:0,height:.69444,italic:0,skew:0},8706:{depth:0,height:.69444,italic:.06389,skew:0},8707:{depth:0,height:.69444,italic:0,skew:0},8709:{depth:.05556,height:.75,italic:0,skew:0},8711:{depth:0,height:.68611,italic:0,skew:0},8712:{depth:.08556,height:.58556,italic:0,skew:0},8715:{depth:.08556,height:.58556,italic:0,skew:0},8722:{depth:.13333,height:.63333,italic:0,skew:0},8723:{depth:.13333,height:.63333,italic:0,skew:0},8725:{depth:.25,height:.75,italic:0,skew:0},8726:{depth:.25,height:.75,italic:0,skew:0},8727:{depth:-.02778,height:.47222,italic:0,skew:0},8728:{depth:-.02639,height:.47361,italic:0,skew:0},8729:{depth:-.02639,height:.47361,italic:0,skew:0},8730:{depth:.18,height:.82,italic:0,skew:0},8733:{depth:0,height:.44444,italic:0,skew:0},8734:{depth:0,height:.44444,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8739:{depth:.25,height:.75,italic:0,skew:0},8741:{depth:.25,height:.75,italic:0,skew:0},8743:{depth:0,height:.55556,italic:0,skew:0},8744:{depth:0,height:.55556,italic:0,skew:0},8745:{depth:0,height:.55556,italic:0,skew:0},8746:{depth:0,height:.55556,italic:0,skew:0},8747:{depth:.19444,height:.69444,italic:.12778,skew:0},8764:{depth:-.10889,height:.39111,italic:0,skew:0},8768:{depth:.19444,height:.69444,italic:0,skew:0},8771:{depth:.00222,height:.50222,italic:0,skew:0},8776:{depth:.02444,height:.52444,italic:0,skew:0},8781:{depth:.00222,height:.50222,italic:0,skew:0},88:{depth:0,height:.68611,italic:0,skew:0},8801:{depth:.00222,height:.50222,italic:0,skew:0},8804:{depth:.19667,height:.69667,italic:0,skew:0},8805:{depth:.19667,height:.69667,italic:0,skew:0},8810:{depth:.08556,height:.58556,italic:0,skew:0},8811:{depth:.08556,height:.58556,italic:0,skew:0},8826:{depth:.08556,height:.58556,italic:0,skew:0},8827:{depth:.08556,height:.58556,italic:0,skew:0},8834:{depth:.08556,height:.58556,italic:0,skew:0},8835:{depth:.08556,height:.58556,italic:0,skew:0},8838:{depth:.19667,height:.69667,italic:0,skew:0},8839:{depth:.19667,height:.69667,italic:0,skew:0},8846:{depth:0,height:.55556,italic:0,skew:0},8849:{depth:.19667,height:.69667,italic:0,skew:0},8850:{depth:.19667,height:.69667,italic:0,skew:0},8851:{depth:0,height:.55556,italic:0,skew:0},8852:{depth:0,height:.55556,italic:0,skew:0},8853:{depth:.13333,height:.63333,italic:0,skew:0},8854:{depth:.13333,height:.63333,italic:0,skew:0},8855:{depth:.13333,height:.63333,italic:0,skew:0},8856:{depth:.13333,height:.63333,italic:0,skew:0},8857:{depth:.13333,height:.63333,italic:0,skew:0},8866:{depth:0,height:.69444,italic:0,skew:0},8867:{depth:0,height:.69444,italic:0,skew:0},8868:{depth:0,height:.69444,italic:0,skew:0},8869:{depth:0,height:.69444,italic:0,skew:0},89:{depth:0,height:.68611,italic:.02875,skew:0},8900:{depth:-.02639,height:.47361,italic:0,skew:0},8901:{depth:-.02639,height:.47361,italic:0,skew:0},8902:{depth:-.02778,height:.47222,italic:0,skew:0},8968:{depth:.25,height:.75,italic:0,skew:0},8969:{depth:.25,height:.75,italic:0,skew:0},8970:{depth:.25,height:.75,italic:0,skew:0},8971:{depth:.25,height:.75,italic:0,skew:0},8994:{depth:-.13889,height:.36111,italic:0,skew:0},8995:{depth:-.13889,height:.36111,italic:0,skew:0},90:{depth:0,height:.68611,italic:0,skew:0},91:{depth:.25,height:.75,italic:0,skew:0},915:{depth:0,height:.68611,italic:0,skew:0},916:{depth:0,height:.68611,italic:0,skew:0},92:{depth:.25,height:.75,italic:0,skew:0},920:{depth:0,height:.68611,italic:0,skew:0},923:{depth:0,height:.68611,italic:0,skew:0},926:{depth:0,height:.68611,italic:0,skew:0},928:{depth:0,height:.68611,italic:0,skew:0},93:{depth:.25,height:.75,italic:0,skew:0},931:{depth:0,height:.68611,italic:0,skew:0},933:{depth:0,height:.68611,italic:0,skew:0},934:{depth:0,height:.68611,italic:0,skew:0},936:{depth:0,height:.68611,italic:0,skew:0},937:{depth:0,height:.68611,italic:0,skew:0},94:{depth:0,height:.69444,italic:0,skew:0},95:{depth:.31,height:.13444,italic:.03194,skew:0},96:{depth:0,height:.69444,italic:0,skew:0},9651:{depth:.19444,height:.69444,italic:0,skew:0},9657:{depth:-.02778,height:.47222,italic:0,skew:0},9661:{depth:.19444,height:.69444,italic:0,skew:0},9667:{depth:-.02778,height:.47222,italic:0,skew:0},97:{depth:0,height:.44444,italic:0,skew:0},9711:{depth:.19444,height:.69444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},9824:{depth:.12963,height:.69444,italic:0,skew:0},9825:{depth:.12963,height:.69444,italic:0,skew:0},9826:{depth:.12963,height:.69444,italic:0,skew:0},9827:{depth:.12963,height:.69444,italic:0,skew:0},9837:{depth:0,height:.75,italic:0,skew:0},9838:{depth:.19444,height:.69444,italic:0,skew:0},9839:{depth:.19444,height:.69444,italic:0,skew:0},99:{depth:0,height:.44444,italic:0,skew:0}},"Main-Italic":{100:{depth:0,height:.69444,italic:.10333,skew:0},101:{depth:0,height:.43056,italic:.07514,skew:0},102:{depth:.19444,height:.69444,italic:.21194,skew:0},103:{depth:.19444,height:.43056,italic:.08847,skew:0},104:{depth:0,height:.69444,italic:.07671,skew:0},105:{depth:0,height:.65536,italic:.1019,skew:0},106:{depth:.19444,height:.65536,italic:.14467,skew:0},107:{depth:0,height:.69444,italic:.10764,skew:0},108:{depth:0,height:.69444,italic:.10333,skew:0},109:{depth:0,height:.43056,italic:.07671,skew:0},110:{depth:0,height:.43056,italic:.07671,skew:0},111:{depth:0,height:.43056,italic:.06312,skew:0},112:{depth:.19444,height:.43056,italic:.06312,skew:0},113:{depth:.19444,height:.43056,italic:.08847,skew:0},114:{depth:0,height:.43056,italic:.10764,skew:0},115:{depth:0,height:.43056,italic:.08208,skew:0},116:{depth:0,height:.61508,italic:.09486,skew:0},117:{depth:0,height:.43056,italic:.07671,skew:0},118:{depth:0,height:.43056,italic:.10764,skew:0},119:{depth:0,height:.43056,italic:.10764,skew:0},120:{depth:0,height:.43056,italic:.12042,skew:0},121:{depth:.19444,height:.43056,italic:.08847,skew:0},122:{depth:0,height:.43056,italic:.12292,skew:0},126:{depth:.35,height:.31786,italic:.11585,skew:0},163:{depth:0,height:.69444,italic:0,skew:0},305:{depth:0,height:.43056,italic:.07671,skew:0},33:{depth:0,height:.69444,italic:.12417,skew:0},34:{depth:0,height:.69444,italic:.06961,skew:0},35:{depth:.19444,height:.69444,italic:.06616,skew:0},37:{depth:.05556,height:.75,italic:.13639,skew:0},38:{depth:0,height:.69444,italic:.09694,skew:0},39:{depth:0,height:.69444,italic:.12417,skew:0},40:{depth:.25,height:.75,italic:.16194,skew:0},41:{depth:.25,height:.75,italic:.03694,skew:0},42:{depth:0,height:.75,italic:.14917,skew:0},43:{depth:.05667,height:.56167,italic:.03694,skew:0},44:{depth:.19444,height:.10556,italic:0,skew:0},45:{depth:0,height:.43056,italic:.02826,skew:0},46:{depth:0,height:.10556,italic:0,skew:0},47:{depth:.25,height:.75,italic:.16194,skew:0},48:{depth:0,height:.64444,italic:.13556,skew:0},49:{depth:0,height:.64444,italic:.13556,skew:0},50:{depth:0,height:.64444,italic:.13556,skew:0},51:{depth:0,height:.64444,italic:.13556,skew:0},52:{depth:.19444,height:.64444,italic:.13556,skew:0},53:{depth:0,height:.64444,italic:.13556,skew:0},54:{depth:0,height:.64444,italic:.13556,skew:0},55:{depth:.19444,height:.64444,italic:.13556,skew:0},56:{depth:0,height:.64444,italic:.13556,skew:0},567:{depth:.19444,height:.43056,italic:.03736,skew:0},57:{depth:0,height:.64444,italic:.13556,skew:0},58:{depth:0,height:.43056,italic:.0582,skew:0},59:{depth:.19444,height:.43056,italic:.0582,skew:0},61:{depth:-.13313,height:.36687,italic:.06616,skew:0},63:{depth:0,height:.69444,italic:.1225,skew:0},64:{depth:0,height:.69444,italic:.09597,skew:0},65:{depth:0,height:.68333,italic:0,skew:0},66:{depth:0,height:.68333,italic:.10257,skew:0},67:{depth:0,height:.68333,italic:.14528,skew:0},68:{depth:0,height:.68333,italic:.09403,skew:0},69:{depth:0,height:.68333,italic:.12028,skew:0},70:{depth:0,height:.68333,italic:.13305,skew:0},71:{depth:0,height:.68333,italic:.08722,skew:0},72:{depth:0,height:.68333,italic:.16389,skew:0},73:{depth:0,height:.68333,italic:.15806,skew:0},74:{depth:0,height:.68333,italic:.14028,skew:0},75:{depth:0,height:.68333,italic:.14528,skew:0},76:{depth:0,height:.68333,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:.09694,skew:0},77:{depth:0,height:.68333,italic:.16389,skew:0},770:{depth:0,height:.69444,italic:.06646,skew:0},771:{depth:0,height:.66786,italic:.11585,skew:0},772:{depth:0,height:.56167,italic:.10333,skew:0},774:{depth:0,height:.69444,italic:.10806,skew:0},775:{depth:0,height:.66786,italic:.11752,skew:0},776:{depth:0,height:.66786,italic:.10474,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:.1225,skew:0},78:{depth:0,height:.68333,italic:.16389,skew:0},780:{depth:0,height:.62847,italic:.08295,skew:0},79:{depth:0,height:.68333,italic:.09403,skew:0},80:{depth:0,height:.68333,italic:.10257,skew:0},81:{depth:.19444,height:.68333,italic:.09403,skew:0},82:{depth:0,height:.68333,italic:.03868,skew:0},8211:{depth:0,height:.43056,italic:.09208,skew:0},8212:{depth:0,height:.43056,italic:.09208,skew:0},8216:{depth:0,height:.69444,italic:.12417,skew:0},8217:{depth:0,height:.69444,italic:.12417,skew:0},8220:{depth:0,height:.69444,italic:.1685,skew:0},8221:{depth:0,height:.69444,italic:.06961,skew:0},83:{depth:0,height:.68333,italic:.11972,skew:0},84:{depth:0,height:.68333,italic:.13305,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0},85:{depth:0,height:.68333,italic:.16389,skew:0},86:{depth:0,height:.68333,italic:.18361,skew:0},87:{depth:0,height:.68333,italic:.18361,skew:0},88:{depth:0,height:.68333,italic:.15806,skew:0},89:{depth:0,height:.68333,italic:.19383,skew:0},90:{depth:0,height:.68333,italic:.14528,skew:0},91:{depth:.25,height:.75,italic:.1875,skew:0},915:{depth:0,height:.68333,italic:.13305,skew:0},916:{depth:0,height:.68333,italic:0,skew:0},920:{depth:0,height:.68333,italic:.09403,skew:0},923:{depth:0,height:.68333,italic:0,skew:0},926:{depth:0,height:.68333,italic:.15294,skew:0},928:{depth:0,height:.68333,italic:.16389,skew:0},93:{depth:.25,height:.75,italic:.10528,skew:0},931:{depth:0,height:.68333,italic:.12028,skew:0},933:{depth:0,height:.68333,italic:.11111,skew:0},934:{depth:0,height:.68333,italic:.05986,skew:0},936:{depth:0,height:.68333,italic:.11111,skew:0},937:{depth:0,height:.68333,italic:.10257,skew:0},94:{depth:0,height:.69444,italic:.06646,skew:0},95:{depth:.31,height:.12056,italic:.09208,skew:0},97:{depth:0,height:.43056,italic:.07671,skew:0},98:{depth:0,height:.69444,italic:.06312,skew:0},99:{depth:0,height:.43056,italic:.05653,skew:0}},"Main-Regular":{32:{depth:-0,height:0,italic:0,skew:0},160:{depth:-0,height:0,italic:0,skew:0},8230:{depth:-0,height:.12,italic:0,skew:0},8614:{depth:.011,height:.511,italic:0,skew:0},8617:{depth:.011,height:.511,italic:0,skew:0},8618:{depth:.011,height:.511,italic:0,skew:0},8652:{depth:.011,height:.671,italic:0,skew:0},8773:{depth:-.022,height:.589,italic:0,skew:0},8784:{depth:-.133,height:.67,italic:0,skew:0},8800:{depth:.215,height:.716,italic:0,skew:0},8872:{depth:.249,height:.75,italic:0,skew:0},8904:{depth:.005,height:.505,italic:0,skew:0},8942:{depth:.03,height:.9,italic:0,skew:0},8943:{depth:-.19,height:.31,italic:0,skew:0},8945:{depth:-.1,height:.82,italic:0,skew:0},9136:{depth:.244,height:.744,italic:0,skew:0},9137:{depth:.244,height:.744,italic:0,skew:0},10222:{depth:.244,height:.744,italic:0,skew:0},10223:{depth:.244,height:.744,italic:0,skew:0},10229:{depth:.011,height:.511,italic:0,skew:0},10230:{depth:.011,height:.511,italic:0,skew:0},10231:{depth:.011,height:.511,italic:0,skew:0},10232:{depth:.024,height:.525,italic:0,skew:0},10233:{depth:.024,height:.525,italic:0,skew:0},10234:{depth:.024,height:.525,italic:0,skew:0},10236:{depth:.011,height:.511,italic:0,skew:0},100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.43056,italic:0,skew:0},102:{depth:0,height:.69444,italic:.07778,skew:0},10216:{depth:.25,height:.75,italic:0,skew:0},10217:{depth:.25,height:.75,italic:0,skew:0},103:{depth:.19444,height:.43056,italic:.01389,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.66786,italic:0,skew:0},106:{depth:.19444,height:.66786,italic:0,skew:0},107:{depth:0,height:.69444,italic:0,skew:0},108:{depth:0,height:.69444,italic:0,skew:0},10815:{depth:0,height:.68333,italic:0,skew:0},109:{depth:0,height:.43056,italic:0,skew:0},10927:{depth:.13597,height:.63597,italic:0,skew:0},10928:{depth:.13597,height:.63597,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:0},112:{depth:.19444,height:.43056,italic:0,skew:0},113:{depth:.19444,height:.43056,italic:0,skew:0},114:{depth:0,height:.43056,italic:0,skew:0},115:{depth:0,height:.43056,italic:0,skew:0},116:{depth:0,height:.61508,italic:0,skew:0},117:{depth:0,height:.43056,italic:0,skew:0},118:{depth:0,height:.43056,italic:.01389,skew:0},119:{depth:0,height:.43056,italic:.01389,skew:0},120:{depth:0,height:.43056,italic:0,skew:0},121:{depth:.19444,height:.43056,italic:.01389,skew:0},122:{depth:0,height:.43056,italic:0,skew:0},123:{depth:.25,height:.75,italic:0,skew:0},124:{depth:.25,height:.75,italic:0,skew:0},125:{depth:.25,height:.75,italic:0,skew:0},126:{depth:.35,height:.31786,italic:0,skew:0},168:{depth:0,height:.66786,italic:0,skew:0},172:{depth:0,height:.43056,italic:0,skew:0},175:{depth:0,height:.56778,italic:0,skew:0},176:{depth:0,height:.69444,italic:0,skew:0},177:{depth:.08333,height:.58333,italic:0,skew:0},180:{depth:0,height:.69444,italic:0,skew:0},215:{depth:.08333,height:.58333,italic:0,skew:0},247:{depth:.08333,height:.58333,italic:0,skew:0},305:{depth:0,height:.43056,italic:0,skew:.02778},33:{depth:0,height:.69444,italic:0,skew:0},34:{depth:0,height:.69444,italic:0,skew:0},35:{depth:.19444,height:.69444,italic:0,skew:0},36:{depth:.05556,height:.75,italic:0,skew:0},37:{depth:.05556,height:.75,italic:0,skew:0},38:{depth:0,height:.69444,italic:0,skew:0},39:{depth:0,height:.69444,italic:0,skew:0},40:{depth:.25,height:.75,italic:0,skew:0},41:{depth:.25,height:.75,italic:0,skew:0},42:{depth:0,height:.75,italic:0,skew:0},43:{depth:.08333,height:.58333,italic:0,skew:0},44:{depth:.19444,height:.10556,italic:0,skew:0},45:{depth:0,height:.43056,italic:0,skew:0},46:{depth:0,height:.10556,italic:0,skew:0},47:{depth:.25,height:.75,italic:0,skew:0},48:{depth:0,height:.64444,italic:0,skew:0},49:{depth:0,height:.64444,italic:0,skew:0},50:{depth:0,height:.64444,italic:0,skew:0},51:{depth:0,height:.64444,italic:0,skew:0},52:{depth:0,height:.64444,italic:0,skew:0},53:{depth:0,height:.64444,italic:0,skew:0},54:{depth:0,height:.64444,italic:0,skew:0},55:{depth:0,height:.64444,italic:0,skew:0},56:{depth:0,height:.64444,italic:0,skew:0},567:{depth:.19444,height:.43056,italic:0,skew:.08334},57:{depth:0,height:.64444,italic:0,skew:0},58:{depth:0,height:.43056,italic:0,skew:0},59:{depth:.19444,height:.43056,italic:0,skew:0},60:{depth:.0391,height:.5391,italic:0,skew:0},61:{depth:-.13313,height:.36687,italic:0,skew:0},62:{depth:.0391,height:.5391,italic:0,skew:0},63:{depth:0,height:.69444,italic:0,skew:0},64:{depth:0,height:.69444,italic:0,skew:0},65:{depth:0,height:.68333,italic:0,skew:0},66:{depth:0,height:.68333,italic:0,skew:0},67:{depth:0,height:.68333,italic:0,skew:0},68:{depth:0,height:.68333,italic:0,skew:0},69:{depth:0,height:.68333,italic:0,skew:0},70:{depth:0,height:.68333,italic:0,skew:0},71:{depth:0,height:.68333,italic:0,skew:0},710:{depth:0,height:.69444,italic:0,skew:0},711:{depth:0,height:.62847,italic:0,skew:0},713:{depth:0,height:.56778,italic:0,skew:0},714:{depth:0,height:.69444,italic:0,skew:0},715:{depth:0,height:.69444,italic:0,skew:0},72:{depth:0,height:.68333,italic:0,skew:0},728:{depth:0,height:.69444,italic:0,skew:0},729:{depth:0,height:.66786,italic:0,skew:0},73:{depth:0,height:.68333,italic:0,skew:0},730:{depth:0,height:.69444,italic:0,skew:0},732:{depth:0,height:.66786,italic:0,skew:0},74:{depth:0,height:.68333,italic:0,skew:0},75:{depth:0,height:.68333,italic:0,skew:0},76:{depth:0,height:.68333,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:0,skew:0},77:{depth:0,height:.68333,italic:0,skew:0},770:{depth:0,height:.69444,italic:0,skew:0},771:{depth:0,height:.66786,italic:0,skew:0},772:{depth:0,height:.56778,italic:0,skew:0},774:{depth:0,height:.69444,italic:0,skew:0},775:{depth:0,height:.66786,italic:0,skew:0},776:{depth:0,height:.66786,italic:0,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:0,skew:0},78:{depth:0,height:.68333,italic:0,skew:0},780:{depth:0,height:.62847,italic:0,skew:0},79:{depth:0,height:.68333,italic:0,skew:0},80:{depth:0,height:.68333,italic:0,skew:0},81:{depth:.19444,height:.68333,italic:0,skew:0},82:{depth:0,height:.68333,italic:0,skew:0},8211:{depth:0,height:.43056,italic:.02778,skew:0},8212:{depth:0,height:.43056,italic:.02778,skew:0},8216:{depth:0,height:.69444,italic:0,skew:0},8217:{depth:0,height:.69444,italic:0,skew:0},8220:{depth:0,height:.69444,italic:0,skew:0},8221:{depth:0,height:.69444,italic:0,skew:0},8224:{depth:.19444,height:.69444,italic:0,skew:0},8225:{depth:.19444,height:.69444,italic:0,skew:0},824:{depth:.19444,height:.69444,italic:0,skew:0},8242:{depth:0,height:.55556,italic:0,skew:0},83:{depth:0,height:.68333,italic:0,skew:0},84:{depth:0,height:.68333,italic:0,skew:0},8407:{depth:0,height:.71444,italic:.15382,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0},8465:{depth:0,height:.69444,italic:0,skew:0},8467:{depth:0,height:.69444,italic:0,skew:.11111},8472:{depth:.19444,height:.43056,italic:0,skew:.11111},8476:{depth:0,height:.69444,italic:0,skew:0},85:{depth:0,height:.68333,italic:0,skew:0},8501:{depth:0,height:.69444,italic:0,skew:0},8592:{depth:-.13313,height:.36687,italic:0,skew:0},8593:{depth:.19444,height:.69444,italic:0,skew:0},8594:{depth:-.13313,height:.36687,italic:0,skew:0},8595:{depth:.19444,height:.69444,italic:0,skew:0},8596:{depth:-.13313,height:.36687,italic:0,skew:0},8597:{depth:.25,height:.75,italic:0,skew:0},8598:{depth:.19444,height:.69444,italic:0,skew:0},8599:{depth:.19444,height:.69444,italic:0,skew:0},86:{depth:0,height:.68333,italic:.01389,skew:0},8600:{depth:.19444,height:.69444,italic:0,skew:0},8601:{depth:.19444,height:.69444,italic:0,skew:0},8636:{depth:-.13313,height:.36687,italic:0,skew:0},8637:{depth:-.13313,height:.36687,italic:0,skew:0},8640:{depth:-.13313,height:.36687,italic:0,skew:0},8641:{depth:-.13313,height:.36687,italic:0,skew:0},8656:{depth:-.13313,height:.36687,italic:0,skew:0},8657:{depth:.19444,height:.69444,italic:0,skew:0},8658:{depth:-.13313,height:.36687,italic:0,skew:0},8659:{depth:.19444,height:.69444,italic:0,skew:0},8660:{depth:-.13313,height:.36687,italic:0,skew:0},8661:{depth:.25,height:.75,italic:0,skew:0},87:{depth:0,height:.68333,italic:.01389,skew:0},8704:{depth:0,height:.69444,italic:0,skew:0},8706:{depth:0,height:.69444,italic:.05556,skew:.08334},8707:{depth:0,height:.69444,italic:0,skew:0},8709:{depth:.05556,height:.75,italic:0,skew:0},8711:{depth:0,height:.68333,italic:0,skew:0},8712:{depth:.0391,height:.5391,italic:0,skew:0},8715:{depth:.0391,height:.5391,italic:0,skew:0},8722:{depth:.08333,height:.58333,italic:0,skew:0},8723:{depth:.08333,height:.58333,italic:0,skew:0},8725:{depth:.25,height:.75,italic:0,skew:0},8726:{depth:.25,height:.75,italic:0,skew:0},8727:{depth:-.03472,height:.46528,italic:0,skew:0},8728:{depth:-.05555,height:.44445,italic:0,skew:0},8729:{depth:-.05555,height:.44445,italic:0,skew:0},8730:{depth:.2,height:.8,italic:0,skew:0},8733:{depth:0,height:.43056,italic:0,skew:0},8734:{depth:0,height:.43056,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8739:{depth:.25,height:.75,italic:0,skew:0},8741:{depth:.25,height:.75,italic:0,skew:0},8743:{depth:0,height:.55556,italic:0,skew:0},8744:{depth:0,height:.55556,italic:0,skew:0},8745:{depth:0,height:.55556,italic:0,skew:0},8746:{depth:0,height:.55556,italic:0,skew:0},8747:{depth:.19444,height:.69444,italic:.11111,skew:0},8764:{depth:-.13313,height:.36687,italic:0,skew:0},8768:{depth:.19444,height:.69444,italic:0,skew:0},8771:{depth:-.03625,height:.46375,italic:0,skew:0},8776:{depth:-.01688,height:.48312,italic:0,skew:0},8781:{depth:-.03625,height:.46375,italic:0,skew:0},88:{depth:0,height:.68333,italic:0,skew:0},8801:{depth:-.03625,height:.46375,italic:0,skew:0},8804:{depth:.13597,height:.63597,italic:0,skew:0},8805:{depth:.13597,height:.63597,italic:0,skew:0},8810:{depth:.0391,height:.5391,italic:0,skew:0},8811:{depth:.0391,height:.5391,italic:0,skew:0},8826:{depth:.0391,height:.5391,italic:0,skew:0},8827:{depth:.0391,height:.5391,italic:0,skew:0},8834:{depth:.0391,height:.5391,italic:0,skew:0},8835:{depth:.0391,height:.5391,italic:0,skew:0},8838:{depth:.13597,height:.63597,italic:0,skew:0},8839:{depth:.13597,height:.63597,italic:0,skew:0},8846:{depth:0,height:.55556,italic:0,skew:0},8849:{depth:.13597,height:.63597,italic:0,skew:0},8850:{depth:.13597,height:.63597,italic:0,skew:0},8851:{depth:0,height:.55556,italic:0,skew:0},8852:{depth:0,height:.55556,italic:0,skew:0},8853:{depth:.08333,height:.58333,italic:0,skew:0},8854:{depth:.08333,height:.58333,italic:0,skew:0},8855:{depth:.08333,height:.58333,italic:0,skew:0},8856:{depth:.08333,height:.58333,italic:0,skew:0},8857:{depth:.08333,height:.58333,italic:0,skew:0},8866:{depth:0,height:.69444,italic:0,skew:0},8867:{depth:0,height:.69444,italic:0,skew:0},8868:{depth:0,height:.69444,italic:0,skew:0},8869:{depth:0,height:.69444,italic:0,skew:0},89:{depth:0,height:.68333,italic:.025,skew:0},8900:{depth:-.05555,height:.44445,italic:0,skew:0},8901:{depth:-.05555,height:.44445,italic:0,skew:0},8902:{depth:-.03472,height:.46528,italic:0,skew:0},8968:{depth:.25,height:.75,italic:0,skew:0},8969:{depth:.25,height:.75,italic:0,skew:0},8970:{depth:.25,height:.75,italic:0,skew:0},8971:{depth:.25,height:.75,italic:0,skew:0},8994:{depth:-.14236,height:.35764,italic:0,skew:0},8995:{depth:-.14236,height:.35764,italic:0,skew:0},90:{depth:0,height:.68333,italic:0,skew:0},91:{depth:.25,height:.75,italic:0,skew:0},915:{depth:0,height:.68333,italic:0,skew:0},916:{depth:0,height:.68333,italic:0,skew:0},92:{depth:.25,height:.75,italic:0,skew:0},920:{depth:0,height:.68333,italic:0,skew:0},923:{depth:0,height:.68333,italic:0,skew:0},926:{depth:0,height:.68333,italic:0,skew:0},928:{depth:0,height:.68333,italic:0,skew:0},93:{depth:.25,height:.75,italic:0,skew:0},931:{depth:0,height:.68333,italic:0,skew:0},933:{depth:0,height:.68333,italic:0,skew:0},934:{depth:0,height:.68333,italic:0,skew:0},936:{depth:0,height:.68333,italic:0,skew:0},937:{depth:0,height:.68333,italic:0,skew:0},94:{depth:0,height:.69444,italic:0,skew:0},95:{depth:.31,height:.12056,italic:.02778,skew:0},96:{depth:0,height:.69444,italic:0,skew:0},9651:{depth:.19444,height:.69444,italic:0,skew:0},9657:{depth:-.03472,height:.46528,italic:0,skew:0},9661:{depth:.19444,height:.69444,italic:0,skew:0},9667:{depth:-.03472,height:.46528,italic:0,skew:0},97:{depth:0,height:.43056,italic:0,skew:0},9711:{depth:.19444,height:.69444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},9824:{depth:.12963,height:.69444,italic:0,skew:0},9825:{depth:.12963,height:.69444,italic:0,skew:0},9826:{depth:.12963,height:.69444,italic:0,skew:0},9827:{depth:.12963,height:.69444,italic:0,skew:0},9837:{depth:0,height:.75,italic:0,skew:0},9838:{depth:.19444,height:.69444,italic:0,skew:0},9839:{depth:.19444,height:.69444,italic:0,skew:0},99:{depth:0,height:.43056,italic:0,skew:0}},"Math-BoldItalic":{100:{depth:0,height:.69444,italic:0,skew:0},1009:{depth:.19444,height:.44444,italic:0,skew:0},101:{depth:0,height:.44444,italic:0,skew:0},1013:{depth:0,height:.44444,italic:0,skew:0},102:{depth:.19444,height:.69444,italic:.11042,skew:0},103:{depth:.19444,height:.44444,italic:.03704,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.69326,italic:0,skew:0},106:{depth:.19444,height:.69326,italic:.0622,skew:0},107:{depth:0,height:.69444,italic:.01852,skew:0},108:{depth:0,height:.69444,italic:.0088,skew:0},109:{depth:0,height:.44444,italic:0,skew:0},110:{depth:0,height:.44444,italic:0,skew:0},111:{depth:0,height:.44444,italic:0,skew:0},112:{depth:.19444,height:.44444,italic:0,skew:0},113:{depth:.19444,height:.44444,italic:.03704,skew:0},114:{depth:0,height:.44444,italic:.03194,skew:0},115:{depth:0,height:.44444,italic:0,skew:0},116:{depth:0,height:.63492,italic:0,skew:0},117:{depth:0,height:.44444,italic:0,skew:0},118:{depth:0,height:.44444,italic:.03704,skew:0},119:{depth:0,height:.44444,italic:.02778,skew:0},120:{depth:0,height:.44444,italic:0,skew:0},121:{depth:.19444,height:.44444,italic:.03704,skew:0},122:{depth:0,height:.44444,italic:.04213,skew:0},47:{depth:.19444,height:.69444,italic:0,skew:0},65:{depth:0,height:.68611,italic:0,skew:0},66:{depth:0,height:.68611,italic:.04835,skew:0},67:{depth:0,height:.68611,italic:.06979,skew:0},68:{depth:0,height:.68611,italic:.03194,skew:0},69:{depth:0,height:.68611,italic:.05451,skew:0},70:{depth:0,height:.68611,italic:.15972,skew:0},71:{depth:0,height:.68611,italic:0,skew:0},72:{depth:0,height:.68611,italic:.08229,skew:0},73:{depth:0,height:.68611,italic:.07778,skew:0},74:{depth:0,height:.68611,italic:.10069,skew:0},75:{depth:0,height:.68611,italic:.06979,skew:0},76:{depth:0,height:.68611,italic:0,skew:0},77:{depth:0,height:.68611,italic:.11424,skew:0},78:{depth:0,height:.68611,italic:.11424,skew:0},79:{depth:0,height:.68611,italic:.03194,skew:0},80:{depth:0,height:.68611,italic:.15972,skew:0},81:{depth:.19444,height:.68611,italic:0,skew:0},82:{depth:0,height:.68611,italic:.00421,skew:0},83:{depth:0,height:.68611,italic:.05382,skew:0},84:{depth:0,height:.68611,italic:.15972,skew:0},85:{depth:0,height:.68611,italic:.11424,skew:0},86:{depth:0,height:.68611,italic:.25555,skew:0},87:{depth:0,height:.68611,italic:.15972,skew:0},88:{depth:0,height:.68611,italic:.07778,skew:0},89:{depth:0,height:.68611,italic:.25555,skew:0},90:{depth:0,height:.68611,italic:.06979,skew:0},915:{depth:0,height:.68611,italic:.15972,skew:0},916:{depth:0,height:.68611,italic:0,skew:0},920:{depth:0,height:.68611,italic:.03194,skew:0},923:{depth:0,height:.68611,italic:0,skew:0},926:{depth:0,height:.68611,italic:.07458,skew:0},928:{depth:0,height:.68611,italic:.08229,skew:0},931:{depth:0,height:.68611,italic:.05451,skew:0},933:{depth:0,height:.68611,italic:.15972,skew:0},934:{depth:0,height:.68611,italic:0,skew:0},936:{depth:0,height:.68611,italic:.11653,skew:0},937:{depth:0,height:.68611,italic:.04835,skew:0},945:{depth:0,height:.44444,italic:0,skew:0},946:{depth:.19444,height:.69444,italic:.03403,skew:0},947:{depth:.19444,height:.44444,italic:.06389,skew:0},948:{depth:0,height:.69444,italic:.03819,skew:0},949:{depth:0,height:.44444,italic:0,skew:0},950:{depth:.19444,height:.69444,italic:.06215,skew:0},951:{depth:.19444,height:.44444,italic:.03704,skew:0},952:{depth:0,height:.69444,italic:.03194,skew:0},953:{depth:0,height:.44444,italic:0,skew:0},954:{depth:0,height:.44444,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.44444,italic:0,skew:0},957:{depth:0,height:.44444,italic:.06898,skew:0},958:{depth:.19444,height:.69444,italic:.03021,skew:0},959:{depth:0,height:.44444,italic:0,skew:0},960:{depth:0,height:.44444,italic:.03704,skew:0},961:{depth:.19444,height:.44444,italic:0,skew:0},962:{depth:.09722,height:.44444,italic:.07917,skew:0},963:{depth:0,height:.44444,italic:.03704,skew:0},964:{depth:0,height:.44444,italic:.13472,skew:0},965:{depth:0,height:.44444,italic:.03704,skew:0},966:{depth:.19444,height:.44444,italic:0,skew:0},967:{depth:.19444,height:.44444,italic:0,skew:0},968:{depth:.19444,height:.69444,italic:.03704,skew:0},969:{depth:0,height:.44444,italic:.03704,skew:0},97:{depth:0,height:.44444,italic:0,skew:0},977:{depth:0,height:.69444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},981:{depth:.19444,height:.69444,italic:0,skew:0},982:{depth:0,height:.44444,italic:.03194,skew:0},99:{depth:0,height:.44444,italic:0,skew:0}},"Math-Italic":{100:{depth:0,height:.69444,italic:0,skew:.16667},1009:{depth:.19444,height:.43056,italic:0,skew:.08334},101:{depth:0,height:.43056,italic:0,skew:.05556},1013:{depth:0,height:.43056,italic:0,skew:.05556},102:{depth:.19444,height:.69444,italic:.10764,skew:.16667},103:{depth:.19444,height:.43056,italic:.03588,skew:.02778},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.65952,italic:0,skew:0},106:{depth:.19444,height:.65952,italic:.05724,skew:0},107:{depth:0,height:.69444,italic:.03148,skew:0},108:{depth:0,height:.69444,italic:.01968,skew:.08334},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:.05556},112:{depth:.19444,height:.43056,italic:0,skew:.08334},113:{depth:.19444,height:.43056,italic:.03588,skew:.08334},114:{depth:0,height:.43056,italic:.02778,skew:.05556},115:{depth:0,height:.43056,italic:0,skew:.05556},116:{depth:0,height:.61508,italic:0,skew:.08334},117:{depth:0,height:.43056,italic:0,skew:.02778},118:{depth:0,height:.43056,italic:.03588,skew:.02778},119:{depth:0,height:.43056,italic:.02691,skew:.08334},120:{depth:0,height:.43056,italic:0,skew:.02778},121:{depth:.19444,height:.43056,italic:.03588,skew:.05556},122:{depth:0,height:.43056,italic:.04398,skew:.05556},47:{depth:.19444,height:.69444,italic:0,skew:0},65:{depth:0,height:.68333,italic:0,skew:.13889},66:{depth:0,height:.68333,italic:.05017,skew:.08334},67:{depth:0,height:.68333,italic:.07153,skew:.08334},68:{depth:0,height:.68333,italic:.02778,skew:.05556},69:{depth:0,height:.68333,italic:.05764,skew:.08334},70:{depth:0,height:.68333,italic:.13889,skew:.08334},71:{depth:0,height:.68333,italic:0,skew:.08334},72:{depth:0,height:.68333,italic:.08125,skew:.05556},73:{depth:0,height:.68333,italic:.07847,skew:.11111},74:{depth:0,height:.68333,italic:.09618,skew:.16667},75:{depth:0,height:.68333,italic:.07153,skew:.05556},76:{depth:0,height:.68333,italic:0,skew:.02778},77:{depth:0,height:.68333,italic:.10903,skew:.08334},78:{depth:0,height:.68333,italic:.10903,skew:.08334},79:{depth:0,height:.68333,italic:.02778,skew:.08334},80:{depth:0,height:.68333,italic:.13889,skew:.08334},81:{depth:.19444,height:.68333,italic:0,skew:.08334},82:{depth:0,height:.68333,italic:.00773,skew:.08334},83:{depth:0,height:.68333,italic:.05764,skew:.08334},84:{depth:0,height:.68333,italic:.13889,skew:.08334},85:{depth:0,height:.68333,italic:.10903,skew:.02778},86:{depth:0,height:.68333,italic:.22222,skew:0},87:{depth:0,height:.68333,italic:.13889,skew:0},88:{depth:0,height:.68333,italic:.07847,skew:.08334},89:{depth:0,height:.68333,italic:.22222,skew:0},90:{depth:0,height:.68333,italic:.07153,skew:.08334},915:{depth:0,height:.68333,italic:.13889,skew:.08334},916:{depth:0,height:.68333,italic:0,skew:.16667},920:{depth:0,height:.68333,italic:.02778,skew:.08334},923:{depth:0,height:.68333,italic:0,skew:.16667},926:{depth:0,height:.68333,italic:.07569,skew:.08334},928:{depth:0,height:.68333,italic:.08125,skew:.05556},931:{depth:0,height:.68333,italic:.05764,skew:.08334},933:{depth:0,height:.68333,italic:.13889,skew:.05556},934:{depth:0,height:.68333,italic:0,skew:.08334},936:{depth:0,height:.68333,italic:.11,skew:.05556},937:{depth:0,height:.68333,italic:.05017,skew:.08334},945:{depth:0,height:.43056,italic:.0037,skew:.02778},946:{depth:.19444,height:.69444,italic:.05278,skew:.08334},947:{depth:.19444,height:.43056,italic:.05556,skew:0},948:{depth:0,height:.69444,italic:.03785,skew:.05556},949:{depth:0,height:.43056,italic:0,skew:.08334},950:{depth:.19444,height:.69444,italic:.07378,skew:.08334},951:{depth:.19444,height:.43056,italic:.03588,skew:.05556},952:{depth:0,height:.69444,italic:.02778,skew:.08334},953:{depth:0,height:.43056,italic:0,skew:.05556},954:{depth:0,height:.43056,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.43056,italic:0,skew:.02778},957:{depth:0,height:.43056,italic:.06366,skew:.02778},958:{depth:.19444,height:.69444,italic:.04601,skew:.11111},959:{depth:0,height:.43056,italic:0,skew:.05556},960:{depth:0,height:.43056,italic:.03588,skew:0},961:{depth:.19444,height:.43056,italic:0,skew:.08334},962:{depth:.09722,height:.43056,italic:.07986,skew:.08334},963:{depth:0,height:.43056,italic:.03588,skew:0},964:{depth:0,height:.43056,italic:.1132,skew:.02778},965:{depth:0,height:.43056,italic:.03588,skew:.02778},966:{depth:.19444,height:.43056,italic:0,skew:.08334},967:{depth:.19444,height:.43056,italic:0,skew:.05556},968:{depth:.19444,height:.69444,italic:.03588,skew:.11111},969:{depth:0,height:.43056,italic:.03588,skew:0},97:{depth:0,height:.43056,italic:0,skew:0},977:{depth:0,height:.69444,italic:0,skew:.08334},98:{depth:0,height:.69444,italic:0,skew:0},981:{depth:.19444,height:.69444,italic:0,skew:.08334},982:{depth:0,height:.43056,italic:.02778,skew:0},99:{depth:0,height:.43056,italic:0,skew:.05556}},"Math-Regular":{100:{depth:0,height:.69444,italic:0,skew:.16667},1009:{depth:.19444,height:.43056,italic:0,skew:.08334},101:{depth:0,height:.43056,italic:0,skew:.05556},1013:{depth:0,height:.43056,italic:0,skew:.05556},102:{depth:.19444,height:.69444,italic:.10764,skew:.16667},103:{depth:.19444,height:.43056,italic:.03588,skew:.02778},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.65952,italic:0,skew:0},106:{depth:.19444,height:.65952,italic:.05724,skew:0},107:{depth:0,height:.69444,italic:.03148,skew:0},108:{depth:0,height:.69444,italic:.01968,skew:.08334},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:.05556},112:{depth:.19444,height:.43056,italic:0,skew:.08334},113:{depth:.19444,height:.43056,italic:.03588,skew:.08334},114:{depth:0,height:.43056,italic:.02778,skew:.05556},115:{depth:0,height:.43056,italic:0,skew:.05556},116:{depth:0,height:.61508,italic:0,skew:.08334},117:{depth:0,height:.43056,italic:0,skew:.02778},118:{depth:0,height:.43056,italic:.03588,skew:.02778},119:{depth:0,height:.43056,italic:.02691,skew:.08334},120:{depth:0,height:.43056,italic:0,skew:.02778},121:{depth:.19444,height:.43056,italic:.03588,skew:.05556},122:{depth:0,height:.43056,italic:.04398,skew:.05556},65:{depth:0,height:.68333,italic:0,skew:.13889},66:{depth:0,height:.68333,italic:.05017,skew:.08334},67:{depth:0,height:.68333,italic:.07153,skew:.08334},68:{depth:0,height:.68333,italic:.02778,skew:.05556},69:{depth:0,height:.68333,italic:.05764,skew:.08334},70:{depth:0,height:.68333,italic:.13889,skew:.08334},71:{depth:0,height:.68333,italic:0,skew:.08334},72:{depth:0,height:.68333,italic:.08125,skew:.05556},73:{depth:0,height:.68333,italic:.07847,skew:.11111},74:{depth:0,height:.68333,italic:.09618,skew:.16667},75:{depth:0,height:.68333,italic:.07153,skew:.05556},76:{depth:0,height:.68333,italic:0,skew:.02778},77:{depth:0,height:.68333,italic:.10903,skew:.08334},78:{depth:0,height:.68333,italic:.10903,skew:.08334},79:{depth:0,height:.68333,italic:.02778,skew:.08334},80:{depth:0,height:.68333,italic:.13889,skew:.08334},81:{depth:.19444,height:.68333,italic:0,skew:.08334},82:{depth:0,height:.68333,italic:.00773,skew:.08334},83:{depth:0,height:.68333,italic:.05764,skew:.08334},84:{depth:0,height:.68333,italic:.13889,skew:.08334},85:{depth:0,height:.68333,italic:.10903,skew:.02778},86:{depth:0,height:.68333,italic:.22222,skew:0},87:{depth:0,height:.68333,italic:.13889,skew:0},88:{depth:0,height:.68333,italic:.07847,skew:.08334},89:{depth:0,height:.68333,italic:.22222,skew:0},90:{depth:0,height:.68333,italic:.07153,skew:.08334},915:{depth:0,height:.68333,italic:.13889,skew:.08334},916:{depth:0,height:.68333,italic:0,skew:.16667},920:{depth:0,height:.68333,italic:.02778,skew:.08334},923:{depth:0,height:.68333,italic:0,skew:.16667},926:{depth:0,height:.68333,italic:.07569,skew:.08334},928:{depth:0,height:.68333,italic:.08125,skew:.05556},931:{depth:0,height:.68333,italic:.05764,skew:.08334},933:{depth:0,height:.68333,italic:.13889,skew:.05556},934:{depth:0,height:.68333,italic:0,skew:.08334},936:{depth:0,height:.68333,italic:.11,skew:.05556},937:{depth:0,height:.68333,italic:.05017,skew:.08334},945:{depth:0,height:.43056,italic:.0037,skew:.02778},946:{depth:.19444,height:.69444,italic:.05278,skew:.08334},947:{depth:.19444,height:.43056,italic:.05556,skew:0},948:{depth:0,height:.69444,italic:.03785,skew:.05556},949:{depth:0,height:.43056,italic:0,skew:.08334},950:{depth:.19444,height:.69444,italic:.07378,skew:.08334},951:{depth:.19444,height:.43056,italic:.03588,skew:.05556},952:{depth:0,height:.69444,italic:.02778,skew:.08334},953:{depth:0,height:.43056,italic:0,skew:.05556},954:{depth:0,height:.43056,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.43056,italic:0,skew:.02778},957:{depth:0,height:.43056,italic:.06366,skew:.02778},958:{depth:.19444,height:.69444,italic:.04601,skew:.11111},959:{depth:0,height:.43056,italic:0,skew:.05556},960:{depth:0,height:.43056,italic:.03588,skew:0},961:{depth:.19444,height:.43056,italic:0,skew:.08334},962:{depth:.09722,height:.43056,italic:.07986,skew:.08334},963:{depth:0,height:.43056,italic:.03588,skew:0},964:{depth:0,height:.43056,italic:.1132,skew:.02778},965:{depth:0,height:.43056,italic:.03588,skew:.02778},966:{depth:.19444,height:.43056,italic:0,skew:.08334},967:{depth:.19444,height:.43056,italic:0,skew:.05556},968:{depth:.19444,height:.69444,italic:.03588,skew:.11111},969:{depth:0,height:.43056,italic:.03588,skew:0},97:{depth:0,height:.43056,italic:0,skew:0},977:{depth:0,height:.69444,italic:0,skew:.08334},98:{depth:0,height:.69444,italic:0,skew:0},981:{depth:.19444,height:.69444,italic:0,skew:.08334},982:{depth:0,height:.43056,italic:.02778,skew:0},99:{depth:0,height:.43056,italic:0,skew:.05556}},"Size1-Regular":{8748:{depth:.306,height:.805,italic:.19445,skew:0},8749:{depth:.306,height:.805,italic:.19445,skew:0},10216:{depth:.35001,height:.85,italic:0,skew:0},10217:{depth:.35001,height:.85,italic:0,skew:0},10752:{depth:.25001,height:.75,italic:0,skew:0},10753:{depth:.25001,height:.75,italic:0,skew:0},10754:{depth:.25001,height:.75,italic:0,skew:0},10756:{depth:.25001,height:.75,italic:0,skew:0},10758:{depth:.25001,height:.75,italic:0,skew:0},123:{depth:.35001,height:.85,italic:0,skew:0},125:{depth:.35001,height:.85,italic:0,skew:0},40:{depth:.35001,height:.85,italic:0,skew:0},41:{depth:.35001,height:.85,italic:0,skew:0},47:{depth:.35001,height:.85,italic:0,skew:0},710:{depth:0,height:.72222,italic:0,skew:0},732:{depth:0,height:.72222,italic:0,skew:0},770:{depth:0,height:.72222,italic:0,skew:0},771:{depth:0,height:.72222,italic:0,skew:0},8214:{depth:-99e-5,height:.601,italic:0,skew:0},8593:{depth:1e-5,height:.6,italic:0,skew:0},8595:{depth:1e-5,height:.6,italic:0,skew:0},8657:{depth:1e-5,height:.6,italic:0,skew:0},8659:{depth:1e-5,height:.6,italic:0,skew:0},8719:{depth:.25001,height:.75,italic:0,skew:0},8720:{depth:.25001,height:.75,italic:0,skew:0},8721:{depth:.25001,height:.75,italic:0,skew:0},8730:{depth:.35001,height:.85,italic:0,skew:0},8739:{depth:-.00599,height:.606,italic:0,skew:0},8741:{depth:-.00599,height:.606,italic:0,skew:0},8747:{depth:.30612,height:.805,italic:.19445,skew:0},8750:{depth:.30612,height:.805,italic:.19445,skew:0},8896:{depth:.25001,height:.75,italic:0,skew:0},8897:{depth:.25001,height:.75,italic:0,skew:0},8898:{depth:.25001,height:.75,italic:0,skew:0},8899:{depth:.25001,height:.75,italic:0,skew:0},8968:{depth:.35001,height:.85,italic:0,skew:0},8969:{depth:.35001,height:.85,italic:0,skew:0},8970:{depth:.35001,height:.85,italic:0,skew:0},8971:{depth:.35001,height:.85,italic:0,skew:0},91:{depth:.35001,height:.85,italic:0,skew:0},9168:{depth:-99e-5,height:.601,italic:0,skew:0},92:{depth:.35001,height:.85,italic:0,skew:0},93:{depth:.35001,height:.85,italic:0,skew:0}},"Size2-Regular":{8748:{depth:.862,height:1.36,italic:.44445,skew:0},8749:{depth:.862,height:1.36,italic:.44445,skew:0},10216:{depth:.65002,height:1.15,italic:0,skew:0},10217:{depth:.65002,height:1.15,italic:0,skew:0},10752:{depth:.55001,height:1.05,italic:0,skew:0},10753:{depth:.55001,height:1.05,italic:0,skew:0},10754:{depth:.55001,height:1.05,italic:0,skew:0},10756:{depth:.55001,height:1.05,italic:0,skew:0},10758:{depth:.55001,height:1.05,italic:0,skew:0},123:{depth:.65002,height:1.15,italic:0,skew:0},125:{depth:.65002,height:1.15,italic:0,skew:0},40:{depth:.65002,height:1.15,italic:0,skew:0},41:{depth:.65002,height:1.15,italic:0,skew:0},47:{depth:.65002,height:1.15,italic:0,skew:0},710:{depth:0,height:.75,italic:0,skew:0},732:{depth:0,height:.75,italic:0,skew:0},770:{depth:0,height:.75,italic:0,skew:0},771:{depth:0,height:.75,italic:0,skew:0},8719:{depth:.55001,height:1.05,italic:0,skew:0},8720:{depth:.55001,height:1.05,italic:0,skew:0},8721:{depth:.55001,height:1.05,italic:0,skew:0},8730:{depth:.65002,height:1.15,italic:0,skew:0},8747:{depth:.86225,height:1.36,italic:.44445,skew:0},8750:{depth:.86225,height:1.36,italic:.44445,skew:0},8896:{depth:.55001,height:1.05,italic:0,skew:0},8897:{depth:.55001,height:1.05,italic:0,skew:0},8898:{depth:.55001,height:1.05,italic:0,skew:0},8899:{depth:.55001,height:1.05,italic:0,skew:0},8968:{depth:.65002,height:1.15,italic:0,skew:0},8969:{depth:.65002,height:1.15,italic:0,skew:0},8970:{depth:.65002,height:1.15,italic:0,skew:0},8971:{depth:.65002,height:1.15,italic:0,skew:0},91:{depth:.65002,height:1.15,italic:0,skew:0},92:{depth:.65002,height:1.15,italic:0,skew:0},93:{depth:.65002,height:1.15,italic:0,skew:0}},"Size3-Regular":{10216:{depth:.95003,height:1.45,italic:0,skew:0},10217:{depth:.95003,height:1.45,italic:0,skew:0},123:{depth:.95003,height:1.45,italic:0,skew:0},125:{depth:.95003,height:1.45,italic:0,skew:0},40:{depth:.95003,height:1.45,italic:0,skew:0},41:{depth:.95003,height:1.45,italic:0,skew:0},47:{depth:.95003,height:1.45,italic:0,skew:0},710:{depth:0,height:.75,italic:0,skew:0},732:{depth:0,height:.75,italic:0,skew:0},770:{depth:0,height:.75,italic:0,skew:0},771:{depth:0,height:.75,italic:0,skew:0},8730:{depth:.95003,height:1.45,italic:0,skew:0},8968:{depth:.95003,height:1.45,italic:0,skew:0},8969:{depth:.95003,height:1.45,italic:0,skew:0},8970:{depth:.95003,height:1.45,italic:0,skew:0},8971:{depth:.95003,height:1.45,italic:0,skew:0},91:{depth:.95003,height:1.45,italic:0,skew:0},92:{depth:.95003,height:1.45,italic:0,skew:0},93:{depth:.95003,height:1.45,italic:0,skew:0}},"Size4-Regular":{10216:{depth:1.25003,height:1.75,italic:0,skew:0},10217:{depth:1.25003,height:1.75,italic:0,skew:0},123:{depth:1.25003,height:1.75,italic:0,skew:0},125:{depth:1.25003,height:1.75,italic:0,skew:0},40:{depth:1.25003,height:1.75,italic:0,skew:0},41:{depth:1.25003,height:1.75,italic:0,skew:0},47:{depth:1.25003,height:1.75,italic:0,skew:0},57344:{depth:-.00499,height:.605,italic:0,skew:0},57345:{depth:-.00499,height:.605,italic:0,skew:0},57680:{depth:0,height:.12,italic:0,skew:0},57681:{depth:0,height:.12,italic:0,skew:0},57682:{depth:0,height:.12,italic:0,skew:0},57683:{depth:0,height:.12,italic:0,skew:0},710:{depth:0,height:.825,italic:0,skew:0},732:{depth:0,height:.825,italic:0,skew:0},770:{depth:0,height:.825,italic:0,skew:0},771:{depth:0,height:.825,italic:0,skew:0},8730:{depth:1.25003,height:1.75,italic:0,skew:0},8968:{depth:1.25003,height:1.75,italic:0,skew:0},8969:{depth:1.25003,height:1.75,italic:0,skew:0},8970:{depth:1.25003,height:1.75,italic:0,skew:0},8971:{depth:1.25003,height:1.75,italic:0,skew:0},91:{depth:1.25003,height:1.75,italic:0,skew:0},9115:{depth:.64502,height:1.155,italic:0,skew:0},9116:{depth:1e-5,height:.6,italic:0,skew:0},9117:{depth:.64502,height:1.155,italic:0,skew:0},9118:{depth:.64502,height:1.155,italic:0,skew:0},9119:{depth:1e-5,height:.6,italic:0,skew:0},9120:{depth:.64502,height:1.155,italic:0,skew:0},9121:{depth:.64502,height:1.155,italic:0,skew:0},9122:{depth:-99e-5,height:.601,italic:0,skew:0},9123:{depth:.64502,height:1.155,italic:0,skew:0},9124:{depth:.64502,height:1.155,italic:0,skew:0},9125:{depth:-99e-5,height:.601,italic:0,skew:0},9126:{depth:.64502,height:1.155,italic:0,skew:0},9127:{depth:1e-5,height:.9,italic:0,skew:0},9128:{depth:.65002,height:1.15,italic:0,skew:0},9129:{depth:.90001,height:0,italic:0,skew:0},9130:{depth:0,height:.3,italic:0,skew:0},9131:{depth:1e-5,height:.9,italic:0,skew:0},9132:{depth:.65002,height:1.15,italic:0,skew:0},9133:{depth:.90001,height:0,italic:0,skew:0},9143:{depth:.88502,height:.915,italic:0,skew:0},92:{depth:1.25003,height:1.75,italic:0,skew:0},93:{depth:1.25003,height:1.75,italic:0,skew:0}}};
+var V=function(e,t){return H[t][e.charCodeAt(0)]};t.exports={metrics:G,getCharacterMetrics:V}},{"./Style":7}],15:[function(e,t,i){var h=e("./utils");var a=e("./ParseError");var r={"\\sqrt":{numArgs:1,numOptionalArgs:1,handler:function(e,t,i,h){if(t!=null){throw new a("Optional arguments to \\sqrt aren't supported yet",this.lexer,h[1]-1)}return{type:"sqrt",body:i}}},"\\text":{numArgs:1,argTypes:["text"],greediness:2,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"text",body:i}}},"\\color":{numArgs:2,allowedInText:true,argTypes:["color","original"],handler:function(e,t,i){var h;if(i.type==="ordgroup"){h=i.value}else{h=[i]}return{type:"color",color:t.value,value:h}}},"\\overline":{numArgs:1,handler:function(e,t){return{type:"overline",body:t}}},"\\rule":{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"],handler:function(e,t,i,h){return{type:"rule",shift:t&&t.value,width:i.value,height:h.value}}},"\\KaTeX":{numArgs:0,handler:function(e){return{type:"katex"}}}};var l={"\\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 s=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","<",">","\\langle","\\rangle","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p=[{funcs:["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple"],data:{numArgs:1,allowedInText:true,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:["\\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}}}}];var c=function(e,t){for(var i=0;i<e.length;i++){r[e[i]]=t}};for(var o=0;o<p.length;o++){c(p[o].funcs,p[o].data)}for(var n in r){if(r.hasOwnProperty(n)){var g=r[n];r[n]={numArgs:g.numArgs,argTypes:g.argTypes,greediness:g.greediness===undefined?1:g.greediness,allowedInText:g.allowedInText?g.allowedInText:false,numOptionalArgs:g.numOptionalArgs===undefined?0:g.numOptionalArgs,handler:g.handler}}}t.exports={funcs:r}},{"./ParseError":4,"./utils":19}],16:[function(e,t,i){var h=e("./utils");function a(e,t){this.type=e;this.attributes={};this.children=t||[]}a.prototype.setAttribute=function(e,t){this.attributes[e]=t};a.prototype.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}for(var i=0;i<this.children.length;i++){e.appendChild(this.children[i].toNode())}return e};a.prototype.toMarkup=function(){var e="<"+this.type;for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e+=" "+t+'="';e+=h.escape(this.attributes[t]);e+='"'}}e+=">";for(var i=0;i<this.children.length;i++){e+=this.children[i].toMarkup()}e+="</"+this.type+">";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":19}],17:[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":5}],18:[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"},"\\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"},"\\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"},"\\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:"textord",replace:"\u2299"},"\\oplus":{font:"main",group:"textord",replace:"\u2295"},"\\otimes":{font:"main",group:"textord",replace:"\u2297"},"\\partial":{font:"main",group:"textord",replace:"\u2202"},"\\oslash":{font:"main",group:"textord",replace:"\u2298"},"\\circledcirc":{font:"ams",group:"textord",replace:"\u229a"},"\\boxdot":{font:"ams",group:"textord",replace:"\u22a1"},"\\bigtriangleup":{font:"main",group:"textord",replace:"\u25b3"},"\\bigtriangledown":{font:"main",group:"textord",replace:"\u25bd"},"\\dagger":{font:"main",group:"textord",replace:"\u2020"},"\\diamond":{font:"main",group:"textord",replace:"\u22c4"},"\\star":{font:"main",group:"textord",replace:"\u22c6"},"\\triangleleft":{font:"main",group:"textord",replace:"\u25c3"},"\\triangleright":{font:"main",group:"textord",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"}},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<a.length;r++){var l=a.charAt(r);h.math[l]={font:"main",group:"textord"}}var s="0123456789`!@*()-=+[]'\";:?/.,";for(var r=0;r<s.length;r++){var l=s.charAt(r);h.text[l]={font:"main",group:"textord"}}var p="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(var r=0;r<p.length;r++){var l=p.charAt(r);h.math[l]={font:"main",group:"mathord"};h.text[l]={font:"main",group:"textord"}}t.exports=h},{}],19:[function(e,t,i){var h=Array.prototype.indexOf;var a=function(e,t){if(e==null){return-1}if(h&&e.indexOf===h){return e.indexOf(t)}var i=0,a=e.length;for(;i<a;i++){if(e[i]===t){return i}}return-1};var r=function(e,t){return a(e,t)!==-1};var l=/([A-Z])/g;var s=function(e){return e.replace(l,"-$1").toLowerCase()};var p={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"};var c=/[&><"']/g;function o(e){return p[e]}function n(e){return(""+e).replace(c,o)}var g;if(typeof document!=="undefined"){var d=document.createElement("span");if("textContent"in d){g=function(e,t){e.textContent=t}}else{g=function(e,t){e.innerText=t}}}function u(e){g(e,"")}t.exports={contains:r,escape:n,hyphenate:s,indexOf:a,setTextContent:g,clearNode:u}},{}]},{},[1])(1)});
\ No newline at end of file
diff --git a/pseudocode/pseudocode.js b/pseudocode/pseudocode.js
new file mode 100644
index 0000000000000000000000000000000000000000..721fdd2f9010b014087292acd273bbdeda1c7daa
--- /dev/null
+++ b/pseudocode/pseudocode.js
@@ -0,0 +1,1520 @@
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.pseudocode = f()}})(function(){var define,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);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+/*
+ * The entry points of pseudocode-js
+ *
+ * TODO:
+ *      * Test on IE8 - IE10
+ *      * Support color
+ **/
+
+var ParseError = require('./src/ParseError');
+var Lexer = require('./src/Lexer');
+var Parser = require('./src/Parser');
+var Renderer = require('./src/Renderer');
+
+module.exports = {
+    ParseError: ParseError,
+    renderToString: function(input, options) {
+        if (input === null || input === undefined)
+            throw 'input cannot be empty';
+
+        var lexer = new Lexer(input);
+        var parser = new Parser(lexer);
+        var renderer = new Renderer(parser, options);
+        return renderer.toMarkup();
+    },
+    render: function(input, baseDomEle, options) {
+        if (input === null || input === undefined)
+            throw 'input cannot be empty';
+
+        var lexer = new Lexer(input);
+        var parser = new Parser(lexer);
+        var renderer = new Renderer(parser, options);
+        var ele = renderer.toDOM();
+        if (baseDomEle) baseDomEle.appendChild(ele);
+        return ele;
+    }
+};
+
+},{"./src/Lexer":2,"./src/ParseError":3,"./src/Parser":4,"./src/Renderer":5}],2:[function(require,module,exports){
+/**
+ * The Lexer class tokenizes the input sequentially, looking ahead only one
+ * token.
+ */
+var utils = require('./utils');
+var ParseError = require('./ParseError');
+
+var Lexer = function(input) {
+    this._input = input;
+    this._remain = input;
+    this._pos = 0;
+    this._nextAtom = this._currentAtom = null;
+    this._next(); // get the next atom
+};
+
+Lexer.prototype.accept = function(type, text) {
+    if (this._nextAtom.type === type && this._matchText(text)) {
+        this._next();
+        return this._currentAtom.text;
+    }
+    return null;
+};
+
+Lexer.prototype.expect = function(type, text) {
+    var nextAtom = this._nextAtom;
+    // The next atom is NOT of the right type
+    if (nextAtom.type !== type)
+        throw new ParseError('Expect an atom of ' + type + ' but received ' +
+                             nextAtom.type, this._pos, this._input);
+    // Check whether the text is exactly the same
+    if (!this._matchText(text))
+            throw new ParseError('Expect `' + text + '` but received `' +
+                                 nextAtom.text + '`', this._pos, this._input);
+
+    this._next();
+    return this._currentAtom.text;
+};
+
+Lexer.prototype.get = function() {
+    return this._currentAtom;
+};
+
+/* Math pattern
+    Math environtment like $ $ or \( \) cannot be matched using regular
+    expression. This object simulates a RegEx object
+*/
+var mathPattern = {
+    exec: function(str) {
+        var delimiters = [
+            {start: '$', end: '$'},
+            {start: '\\(', end: '\\)'}
+        ];
+        var totalLen = str.length;
+
+        for (var di = 0; di < delimiters.length; di++) {
+            var startDel = delimiters[di].start;
+            if (str.indexOf(startDel) !== 0) continue;
+
+            var endDel = delimiters[di].end;
+            var endPos = startDel.length;
+            var remain = str.slice(endPos);
+            while (endPos < totalLen) {
+                var pos = remain.indexOf(endDel);
+                if (pos < 0)
+                    throw new ParseError('Math environment is not closed', this._pos, this._input);
+
+                // false positive, it's escaped, not a match
+                if (pos > 0 && remain[pos - 1] === '\\') {
+                    var skipLen = pos + endDel.length;
+                    remain = remain.slice(skipLen);
+                    endPos += skipLen;
+                    continue;
+                }
+
+                var res = [str.slice(0, endPos + pos + endDel.length),
+                        str.slice(startDel.length, endPos + pos)];
+                return res;
+            }
+        }
+
+        return null;
+    }
+};
+var atomRegex = {
+    // TODO: which is correct? func: /^\\(?:[a-zA-Z]+|.)/,
+    special: /^(\\\\|\\{|\\}|\\\$|\\&|\\#|\\%|\\_)/,
+    math: mathPattern, ///^\$.*\$/
+    func: /^\\([a-zA-Z]+)/,
+    open: /^\{/,
+    close: /^\}/,
+    quote: /^(`|``|'|'')/,
+    ordinary: /^[^\\{}$&#%_\s]+/
+};
+var commentRegex = /^%.*/;
+var whitespaceRegex = /^\s+/;
+
+Lexer.prototype._skip = function(len) {
+    this._pos += len;
+    this._remain = this._remain.slice(len);
+};
+
+/* Get the next atom */
+Lexer.prototype._next = function() {
+    var anyWhitespace = false;
+    while (1) {
+        // Skip whitespace (one or more)
+        var whitespaceMatch = whitespaceRegex.exec(this._remain);
+        if (whitespaceMatch) {
+            anyWhitespace = true;
+            var whitespaceLen = whitespaceMatch[0].length;
+            this._skip(whitespaceLen);
+        }
+
+        // Skip comment
+        var commentMatch = commentRegex.exec(this._remain);
+        if (!commentMatch) break;
+        var commentLen = commentMatch[0].length;
+        this._skip(commentLen);
+    }
+
+    // Remember the current atom
+    this._currentAtom = this._nextAtom;
+
+    // Reach the end of string
+    if (this._remain === '') {
+        this._nextAtom = {
+            type: 'EOF',
+            text: null,
+            whitespace: false
+        };
+        return false;
+    }
+
+    // Try all kinds of atoms
+    for (var type in atomRegex) {
+        var regex = atomRegex[type];
+
+        var match = regex.exec(this._remain);
+        if (!match) continue; // not matched
+
+        // match[1] is the useful part, e.g. '123' of '$123$', 'it' of '\\it'
+        var matchText = match[0];
+        var usefulText = match[1] ? match[1] : matchText;
+
+        this._nextAtom = {
+            type: type, /* special, func, open, close, ordinary, math */
+            text: usefulText, /* the text value of the atom */
+            whitespace: anyWhitespace /* any whitespace before the atom */
+        };
+
+        this._pos += matchText.length;
+        this._remain = this._remain.slice(match[0].length);
+
+        return true;
+    }
+
+    throw new ParseError('Unrecoganizable atom', this._pos, this._input);
+};
+
+/* Check whether the text of the next atom matches */
+Lexer.prototype._matchText = function(text) {
+    // don't need to match
+    if (text === null || text === undefined) return true;
+
+    // string comparisons are case-insensitive
+    if (utils.isString(text)) // is a string, exactly the same?
+        return text.toLowerCase() === this._nextAtom.text.toLowerCase();
+    else {// is a list, match any of them?
+        text = text.map(function(str) { return str.toLowerCase(); });
+        return text.indexOf(this._nextAtom.text.toLowerCase()) >= 0;
+    }
+};
+
+module.exports = Lexer;
+
+},{"./ParseError":3,"./utils":6}],3:[function(require,module,exports){
+function ParseError(message, pos, input) {
+    var error = 'Error: ' + message;
+    // If we have the input and a position, make the error a bit fancier
+    if (pos !== undefined && input !== undefined) {
+        error += " at position " + pos + ": `";
+
+        // Insert a combining underscore at the correct position
+        input = input.slice(0, pos) + "\u21B1" + input.slice(pos);
+
+        // Extract some context from the input and add it to the error
+        var begin = Math.max(0, pos - 15);
+        var end = pos + 15;
+        error += input.slice(begin, end) + "`";
+    }
+
+    this.message = error;
+}
+ParseError.prototype = Object.create(Error.prototype);
+ParseError.prototype.constructor = ParseError;
+
+module.exports = ParseError;
+
+},{}],4:[function(require,module,exports){
+/**
+ * The Parser class parses the token stream from Lexer into an abstract syntax
+ * tree, represented by ParseNode.
+ *
+ * The grammar of pseudocode required by Pseudocode.js mimics that of TeX/Latex
+ * and its algorithm packages. It is designed intentionally to be less powerful
+ * than Tex/LaTeX for the convinience of implementation. As a consequence, the
+ * grammar is context-free, which can be expressed in production rules:
+ *
+ *     <pseudo>        :== ( <algorithm> | <algorithmic> )[0..n]
+ *
+ *     <algorithm>     :== \begin{algorithm}
+ *                         + ( <caption> | <algorithmic> )[0..n]
+ *                         \end{algorithm}
+ *     <caption>       :== \caption{ <close-text> }
+ *
+ *     <algorithmic>   :== \begin{algorithmic}
+ *                         + ( <ensure> | <require> | <block> )[0..n]
+ *                         + \end{algorithmic}
+ *     <require>       :== \REQUIRE + <open-text>
+ *     <ensure>        :== \ENSURE + <open-text>
+ *
+ *     <block>         :== ( <control> | <function> | <statement> |
+ *                           <comment> )[0..n]
+ *
+ *     <control>       :== <if> | <for> | <while>
+ *     <if>            :== \IF{<cond>} + <block>
+ *                         + ( \ELIF{<cond>} <block> )[0..n]
+ *                         + ( \ELSE <block> )[0..1]
+ *                         + \ENDIF
+ *     <for>           :== \FOR{<cond>} + <block> + \ENDFOR
+ *     <while>         :== \WHILE{<cond>} + <block> + \ENDWHILE
+ *
+ *     <function>      :== \FUNCTION{<name>}{<params>} <block> \ENDFUNCTION
+ *                         (same for <procedure>)
+ *
+ *     <statement>     :== <state> | <return> | <print>
+ *     <state>         :== \STATE + <open-text>
+ *     <return>        :== \RETURN + <open-text>
+ *     <print>         :== \PRINT + <open-text>
+ *
+ *     <comment>       :== \COMMENT{<close-text>}
+ *
+ *     <cond>          :== <close-text>
+ *     <open-text>     :== ( <atom> | <call> ) + <open-text> |
+ *                         { <close-text> } | <empty>
+ *     <close-text>    :== ( <atom> | <call> ) + <close-text> |
+ *                         { <close-text> } | <empty>
+ *
+ *     <atom>          :== <ordinary>[1..n] | <special> | <symbol>
+ *                         | <size> | <font> | <bool> | <math>
+ *     <name>          :== <ordinary>
+ *
+ *     <call>          :== \CALL{<name>}({<close-text>})
+ *     <special>       :== \\ | \{ | \} | \$ | \& | \# | \% | \_
+ *     <cond-symbol>   :== \AND | \OR | \NOT | \TRUE | \FALSE | \TO
+ *     <text-symbol>   :== \textbackslash
+ *     <quote-symbol>  :== ` | `` | ' | ''
+ *     (More LaTeX symbols can be added if necessary. See
+ *     http://get-software.net/info/symbols/comprehensive/symbols-a4.pdf.)
+ *     <math>          :== \( + ... + \) | $ ... $
+ *     (Math are handled by KaTeX)
+ *     <size>          :== \tiny | \scriptsize | \footnotesize | \small
+ *                         | \normalsize | \large | \Large | \LARGE | \huge
+ *                         | \HUGE
+ *     <font>          :== \rmfamily | \sffamily | \ttfamily
+ *                         | \upshape | \itshape | \slshape | \scshape
+ *     <ordinary>      :== not any of \ { } $ & # % _
+ *     <empty>         :==
+ *
+ * There are many well-known ways to parse a context-free grammar, like the
+ * top-down approach LL(k) or the bottom-up approach like LR(k). Both methods
+ * are usually implemented in a table-driven fashion, which is not suitable to
+ * write by hand. As our grammar is simple enough and its input is not expected
+ * to be large, the performance wouldn't be a problem. Thus, I choose to write
+ * the parser in the most natural form--- a (predictive) recursive descent
+ * parser. The major benefit of a recursive descent parser is **simplity** for
+ * the structure of resulting program closely mirrors that of the grammar. *
+ *
+ */
+var utils = require('./utils');
+
+var ParseNode = function(type, val) {
+    this.type = type;
+    this.value = val;
+    this.children = [];
+};
+
+ParseNode.prototype.toString = function(level) {
+    if (!level) level = 0;
+
+    var indent = '';
+    for (var i = 0; i < level; i++) indent += '  ';
+
+    var res = indent + '<' + this.type + '>';
+    if (this.value) res += ' (' + utils.toString(this.value) + ')';
+    res += '\n';
+
+    if (this.children) {
+        for (var ci = 0; ci < this.children.length; ci++) {
+            var child = this.children[ci];
+            res += child.toString(level + 1);
+        }
+    }
+
+    return res;
+};
+
+ParseNode.prototype.addChild = function(childNode) {
+    if (!childNode) throw 'argument cannot be null';
+    this.children.push(childNode);
+};
+
+/* AtomNode is the leaf node of parse tree */
+var AtomNode = function(type, value, whitespace) {
+    // ParseNode.call(this, type, val);
+    this.type = type;
+    this.value = value;
+    this.children = null; // leaf node, thus no children
+    this.whitespace = !!whitespace; // is there any whitespace before the atom
+};
+AtomNode.prototype = ParseNode.prototype;
+
+var Parser = function(lexer) {
+    this._lexer = lexer;
+};
+
+Parser.prototype.parse = function() {
+    var root = new ParseNode('root');
+
+    while (true) {
+        var envName = this._acceptEnvironment();
+        if (envName === null) break;
+
+        var envNode;
+        if (envName === 'algorithm')
+            envNode = this._parseAlgorithmInner();
+        else if (envName === 'algorithmic')
+            envNode = this._parseAlgorithmicInner();
+        else
+            throw new ParseError('Unexpected environment ' + envName);
+
+        this._closeEnvironment(envName);
+        root.addChild(envNode);
+    }
+    this._lexer.expect('EOF');
+    return root;
+};
+
+Parser.prototype._acceptEnvironment = function() {
+    var lexer = this._lexer;
+    // \begin{XXXXX}
+    if (!lexer.accept('func', 'begin')) return null;
+
+    lexer.expect('open');
+    var envName = lexer.expect('ordinary');
+    lexer.expect('close');
+    return envName;
+};
+
+Parser.prototype._closeEnvironment = function(envName) {
+    // \close{XXXXX}
+    var lexer = this._lexer;
+    lexer.expect('func', 'end');
+    lexer.expect('open');
+    lexer.expect('ordinary', envName);
+    lexer.expect('close');
+};
+
+Parser.prototype._parseAlgorithmInner = function() {
+    var algNode = new ParseNode('algorithm');
+    while (true) {
+        var envName = this._acceptEnvironment();
+        if (envName !== null) {
+            if (envName !== 'algorithmic')
+                throw new ParseError('Unexpected environment ' + envName);
+            var algmicNode = this._parseAlgorithmicInner();
+            this._closeEnvironment();
+            algNode.addChild(algmicNode);
+            continue;
+        }
+
+        var captionNode = this._parseCaption();
+        if (captionNode) {
+            algNode.addChild(captionNode);
+            continue;
+        }
+
+        break;
+    }
+    return algNode;
+};
+
+Parser.prototype._parseAlgorithmicInner = function() {
+    var algmicNode = new ParseNode('algorithmic');
+    var node;
+    while (true) {
+        node = this._parseCommand(INPUTS_OUTPUTS_COMMANDS);
+        if (node) {
+            algmicNode.addChild(node);
+            continue;
+        }
+
+        node = this._parseBlock();
+        if (node.children.length > 0) {
+            algmicNode.addChild(node);
+            continue;
+        }
+
+        break;
+    }
+    return algmicNode;
+};
+
+Parser.prototype._parseCaption = function() {
+    var lexer = this._lexer;
+    if (!lexer.accept('func', 'caption')) return null;
+
+    var captionNode = new ParseNode('caption');
+    lexer.expect('open');
+    captionNode.addChild(this._parseCloseText());
+    lexer.expect('close');
+
+    return captionNode;
+};
+
+Parser.prototype._parseBlock = function() {
+    var blockNode = new ParseNode('block');
+
+    while (true) {
+        var controlNode = this._parseControl();
+        if (controlNode) { blockNode.addChild(controlNode); continue; }
+
+        var functionNode = this._parseFunction();
+        if (functionNode) { blockNode.addChild(functionNode); continue; }
+
+        var commandNode = this._parseCommand(STATEMENT_COMMANDS);
+        if (commandNode) { blockNode.addChild(commandNode); continue; }
+
+        var commentNode = this._parseComment();
+        if (commentNode) { blockNode.addChild(commentNode); continue; }
+
+        break;
+    }
+
+    return blockNode;
+};
+
+Parser.prototype._parseControl = function() {
+    var controlNode;
+    if ((controlNode = this._parseIf())) return controlNode;
+    if ((controlNode = this._parseLoop())) return controlNode;
+};
+
+Parser.prototype._parseFunction = function() {
+    var lexer = this._lexer;
+    if (!lexer.accept('func', ['function', 'procedure'])) return null;
+
+    // \FUNCTION{funcName}{funcArgs}
+    var funcType = this._lexer.get().text; // FUNCTION or PROCEDURE
+    lexer.expect('open');
+    var funcName = lexer.expect('ordinary');
+    lexer.expect('close');
+    lexer.expect('open');
+    var argsNode = this._parseCloseText();
+    lexer.expect('close');
+    // <block>
+    var blockNode = this._parseBlock();
+    // \ENDFUNCTION
+    lexer.expect('func', 'end' + funcType);
+
+    var functionNode = new ParseNode('function',
+                        {type: funcType, name: funcName});
+    functionNode.addChild(argsNode);
+    functionNode.addChild(blockNode);
+    return functionNode;
+};
+
+Parser.prototype._parseIf = function() {
+    if (!this._lexer.accept('func', 'if')) return null;
+
+    var ifNode = new ParseNode('if');
+
+    // { <cond> } <block>
+    this._lexer.expect('open');
+    ifNode.addChild(this._parseCond());
+    this._lexer.expect('close');
+    ifNode.addChild(this._parseBlock());
+
+    // ( \ELIF { <cond> } <block> )[0...n]
+    var numElif = 0;
+    while (this._lexer.accept('func', ['elif', 'elsif', 'elseif'])) {
+        this._lexer.expect('open');
+        ifNode.addChild(this._parseCond());
+        this._lexer.expect('close');
+        ifNode.addChild(this._parseBlock());
+        numElif++;
+    }
+
+    // ( \ELSE <block> )[0..1]
+    var hasElse = false;
+    if (this._lexer.accept('func', 'else')) {
+        hasElse = true;
+        ifNode.addChild(this._parseBlock());
+    }
+
+    // \ENDIF
+    this._lexer.expect('func', 'endif');
+
+    ifNode.value = {numElif: numElif, hasElse: hasElse};
+    return ifNode;
+};
+
+Parser.prototype._parseLoop = function() {
+    if (!this._lexer.accept('func', ['FOR', 'FORALL', 'WHILE'])) return null;
+
+    var loopName = this._lexer.get().text.toLowerCase();
+    var loopNode = new ParseNode('loop', loopName);
+
+    // { <cond> } <block>
+    this._lexer.expect('open');
+    loopNode.addChild(this._parseCond());
+    this._lexer.expect('close');
+    loopNode.addChild(this._parseBlock());
+
+    // \ENDFOR
+    var endLoop = loopName !== 'forall' ? 'end' + loopName : 'endfor';
+    this._lexer.expect('func', endLoop);
+
+    return loopNode;
+};
+
+var INPUTS_OUTPUTS_COMMANDS = ['ensure', 'require'];
+var STATEMENT_COMMANDS = ['state', 'print', 'return'];
+Parser.prototype._parseCommand = function(acceptCommands) {
+    if (!this._lexer.accept('func', acceptCommands)) return null;
+
+    var cmdName = this._lexer.get().text.toLowerCase();
+    var cmdNode = new ParseNode('command', cmdName);
+    cmdNode.addChild(this._parseOpenText());
+    return cmdNode;
+};
+
+Parser.prototype._parseComment = function() {
+    if (!this._lexer.accept('func', 'comment')) return null;
+
+    var commentNode = new ParseNode('comment');
+
+    // { \text }
+    this._lexer.expect('open');
+    commentNode.addChild(this._parseCloseText());
+    this._lexer.expect('close');
+
+    return commentNode;
+};
+
+Parser.prototype._parseCall = function() {
+    var lexer = this._lexer;
+    if (!lexer.accept('func', 'call')) return null;
+
+    var anyWhitespace = lexer.get().whitespace;
+
+    // \CALL { <ordinary> } ({ <text> })[0..1]
+    lexer.expect('open');
+    var funcName = lexer.expect('ordinary');
+    lexer.expect('close');
+
+    var callNode = new ParseNode('call');
+    callNode.whitespace = anyWhitespace;
+    callNode.value = funcName;
+
+    lexer.expect('open');
+    var argsNode = this._parseCloseText();
+    callNode.addChild(argsNode);
+    lexer.expect('close');
+    return callNode;
+};
+
+Parser.prototype._parseCond =
+Parser.prototype._parseCloseText = function() {
+    return this._parseText('close');
+};
+Parser.prototype._parseOpenText = function() {
+    return this._parseText('open');
+};
+
+Parser.prototype._parseText = function(openOrClose) {
+    var textNode = new ParseNode(openOrClose + '-text');
+    // any whitespace between Atom and CloseText
+    var anyWhitespace = false;
+    var subTextNode;
+    while (true) {
+        // atom or call
+        subTextNode = this._parseAtom() || this._parseCall();
+        if (subTextNode) {
+            if (anyWhitespace) subTextNode.whitespace |= anyWhitespace;
+            textNode.addChild(subTextNode);
+            continue;
+        }
+
+        // or close text
+        if (this._lexer.accept('open')) {
+            subTextNode = this._parseCloseText();
+
+            anyWhitespace = this._lexer.get().whitespace;
+            subTextNode.whitespace = anyWhitespace;
+
+            textNode.addChild(subTextNode);
+            this._lexer.expect('close');
+            anyWhitespace = this._lexer.get().whitespace;
+            continue;
+        }
+
+        break;
+    }
+
+    return textNode;
+};
+
+/* The token accepted by atom of specific type */
+var ACCEPTED_TOKEN_BY_ATOM = {
+    'ordinary': { tokenType: 'ordinary' },
+    'math': { tokenType: 'math' },
+    'special': { tokenType: 'special' },
+    'cond-symbol': {
+        tokenType: 'func',
+        tokenValues: ['and', 'or', 'not', 'true', 'false', 'to']
+    },
+    'quote-symbol': {
+        tokenType: 'quote'
+    },
+    'sizing-dclr': {
+        tokenType: 'func',
+        tokenValues: ['tiny', 'scriptsize', 'footnotesize', 'small', 'normalsize',
+    'large', 'Large', 'LARGE', 'huge', 'Huge']
+    },
+    'font-dclr': {
+        tokenType: 'func',
+        tokenValues: ['normalfont', 'rmfamily', 'sffamily', 'ttfamily',
+     'upshape', 'itshape', 'slshape', 'scshape',
+     'bfseries', 'mdseries', 'lfseries']
+    },
+    'font-cmd': {
+        tokenType: 'func',
+        tokenValues: ['textnormal', 'textrm', 'textsf', 'texttt', 'textup', 'textit',
+    'textsl', 'textsc', 'uppercase', 'lowercase', 'textbf', 'textmd',
+    'textlf']
+    },
+    'text-symbol': {
+        tokenType: 'func',
+        tokenValues: ['textbackslash']
+    }
+};
+
+Parser.prototype._parseAtom = function() {
+    for (var atomType in ACCEPTED_TOKEN_BY_ATOM) {
+        var acceptToken = ACCEPTED_TOKEN_BY_ATOM[atomType];
+        var tokenText = this._lexer.accept(
+                            acceptToken.tokenType,
+                            acceptToken.tokenValues);
+        if (tokenText === null) continue;
+
+        var anyWhitespace = this._lexer.get().whitespace;
+        if (atomType !== 'ordinary') tokenText = tokenText.toLowerCase();
+        return new AtomNode(atomType, tokenText, anyWhitespace);
+    }
+    return null;
+};
+
+module.exports = Parser;
+
+},{"./utils":6}],5:[function(require,module,exports){
+/*
+* */
+var utils = require('./utils');
+
+/*
+ * TextStyle - used by TextEnvironment class to  handles LaTeX text-style
+ * commands or declarations.
+ *
+ * The font declarations are:
+ *  \normalfont, \rmfamily, \sffamily, \ttfamily,
+ *  \bfseries, \mdseries, \lfseries,
+ *  \upshape, \itshape, \scshape, \slshape.
+ *
+ * The font commands are:
+ *  \textnormal{}, \textrm{}, \textsf{}, \texttt{},
+ *  \textbf{}, \textmd{}, \textlf{},
+ *  \textup{}, \textit{}, \textsc{}, \textsl{},
+ *  \uppercase{}, \lowercase{}.
+ *
+ * The sizing commands are:
+ *  \tiny, \scriptsize, \footnotesize, \small, \normalsize,
+ *  \large, \Large, \LARGE, \huge, \Huge.
+ **/
+function TextStyle(outerFontSize) {
+    this._css = {};
+
+    this._fontSize = this._outerFontSize =
+        outerFontSize !== undefined ? outerFontSize : 1.0;
+}
+
+/*
+ * Remember the font size of outer TextStyle object.
+ *
+ * As we use relative font size 'em', the outer span (has its own TextStyle
+ * object) affects the size of the span to which this TextStyle object attached.
+ * */
+TextStyle.prototype.outerFontSize = function(size) {
+    if (size !== undefined) this._outerFontSize = size;
+    return this._outerFontSize;
+};
+
+TextStyle.prototype.fontSize = function() {
+    return this._fontSize;
+};
+
+/* Update the font state by TeX command
+    cmd - the name of TeX command that alters current font
+*/
+TextStyle.prototype._fontCommandTable = {
+    // -------------- declaration --------------
+    // font-family
+    normalfont: { 'font-family': 'KaTeX_Main'},
+    rmfamily: { 'font-family': 'KaTeX_Main'},
+    sffamily: { 'font-family': 'KaTeX_SansSerif_Replace'},
+    ttfamily: { 'font-family': 'KaTeX_Typewriter_Replace'},
+    // weight
+    bfseries: { 'font-weight': 'bold'},
+    mdseries: { 'font-weight': 'medium'},
+    lfseries: { 'font-weight': 'lighter'},
+    // shape
+    upshape: { 'font-style': 'normal', 'font-variant': 'normal'},
+    itshape: { 'font-style': 'italic', 'font-variant': 'normal'},
+    scshape: { 'font-style': 'normal', 'font-variant': 'small-caps'},
+    slshape: { 'font-style': 'oblique', 'font-variant': 'normal'},
+    // -------------- command --------------
+    // font-family
+    textnormal: { 'font-family': 'KaTeX_Main'},
+    textrm: { 'font-family': 'KaTeX_Main'},
+    textsf: { 'font-family': 'KaTeX_SansSerif_Replace'},
+    texttt: { 'font-family': 'KaTeX_Typewriter_Replace'},
+    // weight
+    textbf: { 'font-weight': 'bold'},
+    textmd: { 'font-weight': 'medium'},
+    textlf: { 'font-weight': 'lighter'},
+    // shape
+    textup: { 'font-style': 'normal', 'font-variant': 'normal'},
+    textit: { 'font-style': 'italic', 'font-variant': 'normal'},
+    textsc: { 'font-style': 'normal', 'font-variant': 'small-caps'},
+    textsl: { 'font-style': 'oblique', 'font-variant': 'normal'},
+    // case
+    uppercase: { 'text-transform': 'uppercase'},
+    lowercase: { 'text-transform': 'lowercase'}
+};
+
+TextStyle.prototype._sizingScalesTable = {
+    tiny:           0.68,
+    scriptsize:     0.80,
+    footnotesize:   0.85,
+    small:          0.92,
+    normalsize:     1.00,
+    large:          1.17,
+    Large:          1.41,
+    LARGE:          1.58,
+    huge:           1.90,
+    Huge:           2.28
+};
+
+TextStyle.prototype.updateByCommand = function(cmd) {
+    // Font command
+    var cmdStyles = this._fontCommandTable[cmd];
+    if (cmdStyles !== undefined) {
+        for (var attr in cmdStyles)
+            this._css[attr] = cmdStyles[attr];
+        return;
+    }
+
+    // Sizing command
+    var fontSize = this._sizingScalesTable[cmd];
+    if (fontSize !== undefined) {
+        this._outerFontSize = this._fontSize;
+        this._fontSize = fontSize;
+        return;
+    }
+
+    throw new ParserError('unrecogniazed text-style command');
+};
+
+TextStyle.prototype.toCSS = function() {
+    var cssStr = '';
+    for (var attr in this._css) {
+        var val = this._css[attr];
+        if (val === undefined) continue;
+        cssStr += attr + ':' + val + ';';
+    }
+    if (this._fontSize !== this._outerFontSize) {
+        cssStr += 'font-size:' + (this._fontSize / this._outerFontSize) + 'em;';
+    }
+    return cssStr;
+};
+
+/*
+ * TextEnvironment - renders the children nodes in a ParseNode of type
+ * 'close-text' or 'open-text' to HTML.
+ **/
+function TextEnvironment(nodes, textStyle) {
+    this._nodes = nodes;
+    this._textStyle = textStyle;
+}
+
+TextEnvironment.prototype._renderCloseText = function(node) {
+    var newTextStyle = new TextStyle(this._textStyle.fontSize());
+    var closeTextEnv = new TextEnvironment(
+                            node.children, newTextStyle);
+    if (node.whitespace) this._html.putText(' ');
+    this._html.putSpan(closeTextEnv.renderToHTML());
+};
+
+TextEnvironment.prototype.renderToHTML = function() {
+    this._html = new HTMLBuilder();
+
+    var node;
+    while ((node = this._nodes.shift()) !== undefined) {
+        var type = node.type;
+        var text = node.value;
+
+        // Insert whitespace before the atom if necessary
+        if (node.whitespace) this._html.putText(' ');
+
+        switch(type) {
+        case 'ordinary':
+            this._html.putText(text);
+            break;
+        case 'math':
+            if (!katex) {
+                try { katex = require('katex'); }
+                catch(e) { throw 'katex is required to render math'; }
+            }
+            var mathHTML = katex.renderToString(text);
+            this._html.putSpan(mathHTML);
+            break;
+        case 'cond-symbol':
+            this._html.beginSpan('ps-keyword')
+                      .putText(text.toLowerCase())
+                      .endSpan();
+            break;
+        case 'special':
+            if (text === '\\\\') {
+                this._html.putHTML('<br/>');
+                break;
+            }
+            var replace = {
+                '\\{': '{',
+                '\\}': '}',
+                '\\$': '$',
+                '\\&': '&',
+                '\\#': '#',
+                '\\%': '%',
+                '\\_': '_'
+            };
+            var replaceStr = replace[text];
+            this._html.putText(replaceStr);
+            break;
+        case 'text-symbol':
+            var name2Values = {
+                'textbackslash': '\\'
+            };
+            var symbolValue = name2Values[text];
+            this._html.putText(symbolValue);
+            break;
+        case 'quote-symbol':
+            var quoteReplace = {
+                '`': '‘',
+                '``': '“',
+                '\'': '’',
+                '\'\'': '”'
+            };
+            var realQuote = quoteReplace[text];
+            this._html.putText(realQuote);
+            break;
+        case 'call':
+            // \CALL{funcName}{funcArgs}
+            // ==>
+            // funcName(funcArgs)
+            this._html.beginSpan('ps-funcname').putText(text).endSpan();
+            this._html.write('(');
+            var argsTextNode = node.children[0];
+            this._renderCloseText(argsTextNode);
+            this._html.write(')');
+            break;
+        case 'close-text':
+            this._renderCloseText(node);
+            break;
+        // There are two kinds of typestyle commands:
+        //      command (e.g. \textrm{...}).
+        // and
+        //      declaration (e.g. { ... \rmfamily ... })
+        //
+        // For typestyle commands, it works as following:
+        //      \textsf     --> create a new typestyle
+        //      {           --> save the current typestyle, and then use the new one
+        //      ...         --> the new typestyle is in use
+        //      }           --> restore the last typestyle
+        //
+        // For typestyle declaration, it works a little bit diferrently:
+        //      {           --> save the current typestyle, and then create and use
+        //                      an identical one
+        //      ...         --> the new typestyle is in use
+        //      \rmfamily   --> create a new typestyle
+        //      ...         --> the new typestyle is in use
+        //      }           --> restore the last typestyle
+        case 'font-dclr':
+        case 'sizing-dclr':
+            this._textStyle.updateByCommand(text);
+            this._html.beginSpan(null, this._textStyle.toCSS());
+            var textEnvForDclr = new TextEnvironment(this._nodes, this._textStyle);
+            this._html.putSpan(textEnvForDclr.renderToHTML());
+            this._html.endSpan();
+            break;
+        case 'font-cmd':
+            var textNode = this._nodes[0];
+            if (textNode.type !== 'close-text') continue;
+
+            var innerTextStyle = new TextStyle(this._textStyle.fontSize());
+            innerTextStyle.updateByCommand(text);
+            this._html.beginSpan(null, innerTextStyle.toCSS());
+            var textEnvForCmd = new TextEnvironment(textNode.children, innerTextStyle);
+            this._html.putSpan(textEnvForCmd.renderToHTML());
+            this._html.endSpan();
+            break;
+        default:
+            throw new ParseError('Unexpected ParseNode of type ' + node.type);
+        }
+    }
+
+    return this._html.toMarkup();
+};
+
+/* HTMLBuilder - A helper class for constructing HTML */
+function HTMLBuilder() {
+    this._body = [];
+    this._textBuf = [];
+}
+
+HTMLBuilder.prototype.beginDiv = function(className, style, extraStyle) {
+    this._beginTag('div', className, style, extraStyle);
+    this._body.push('\n'); // make the generated HTML more human friendly
+    return this;
+};
+
+HTMLBuilder.prototype.endDiv = function() {
+    this._endTag('div');
+    this._body.push('\n'); // make the generated HTML more human friendly
+    return this;
+};
+
+HTMLBuilder.prototype.beginP = function(className, style, extraStyle) {
+    this._beginTag('p', className, style, extraStyle);
+    this._body.push('\n'); // make the generated HTML more human friendly
+    return this;
+};
+
+HTMLBuilder.prototype.endP = function() {
+    this._flushText();
+    this._endTag('p');
+    this._body.push('\n'); // make the generated HTML more human friendly
+    return this;
+};
+
+HTMLBuilder.prototype.beginSpan = function(className, style, extraStyle) {
+    this._flushText();
+    return this._beginTag('span', className, style, extraStyle);
+};
+
+HTMLBuilder.prototype.endSpan = function() {
+    this._flushText();
+    return this._endTag('span');
+};
+
+HTMLBuilder.prototype.putHTML =
+HTMLBuilder.prototype.putSpan = function(html) {
+    this._flushText();
+    this._body.push(html);
+    return this;
+};
+
+HTMLBuilder.prototype.putText = function(text) {
+    this._textBuf.push(text);
+    return this;
+};
+
+HTMLBuilder.prototype.write = function(html) {
+    this._body.push(html);
+};
+
+HTMLBuilder.prototype.toMarkup = function() {
+    this._flushText();
+    var html = this._body.join('');
+    return html.trim();
+};
+
+HTMLBuilder.prototype.toDOM = function() {
+    var html = this.toMarkup();
+    var div = document.createElement('div');
+    div.innerHTML = html;
+    return div.firstChild;
+};
+
+HTMLBuilder.prototype._flushText = function() {
+    if (this._textBuf.length === 0) return;
+
+    var text = this._textBuf.join('');
+    this._body.push(this._escapeHtml(text));
+    // this._body.push(text);
+    this._textBuf = [];
+};
+
+/* Write the beginning of a DOM element
+    tag - the tag of the element
+    className - the className for the tag
+    style - CSS style that applies directly on the tag. This parameter can be
+            either a string, e.g., 'color:red', or an object, e.g.
+            { color: 'red', margin-left: '1em'}
+*/
+HTMLBuilder.prototype._beginTag = function(tag, className, style, extraStyle) {
+    var spanHTML = '<' + tag;
+    if (className) spanHTML += ' class="' + className + '"';
+    if (style) {
+        var styleCode;
+        if (utils.isString(style)) styleCode = style;
+        else { // style
+            styleCode = '';
+            for (var attrName in style) {
+                attrVal = style[attrName];
+                styleCode += attrName + ':' + attrVal + ';';
+            }
+        }
+        if (extraStyle) styleCode += extraStyle;
+        spanHTML += ' style="' + styleCode + '"';
+    }
+    spanHTML += '>';
+    this._body.push(spanHTML);
+    return this;
+};
+
+HTMLBuilder.prototype._endTag = function(tag) {
+    this._body.push('</' + tag + '>');
+    return this;
+};
+
+var entityMap = {
+   "&": "&amp;",
+   "<": "&lt;",
+   ">": "&gt;",
+   '"': '&quot;',
+   "'": '&#39;',
+   "/": '&#x2F;'
+ };
+
+HTMLBuilder.prototype._escapeHtml = function(string) {
+   return String(string).replace(/[&<>"'\/]/g, function (s) {
+     return entityMap[s];
+   });
+};
+
+/*
+ * RendererOptions - represents options that Renderer accepts.
+ *
+ * The following are possible options:
+ *      indentSize - The indent size of inside a control block, e.g. if, for,
+ *          etc. The unit must be in 'em'. Default value: '1.2em'.
+ *      commentDelimiter  - The delimiters used to start and end a comment region.
+ *          Note that only line comments are supported. Default value: '//'.
+ *      lineNumber - Whether line numbering is enabled. Default value: false.
+ *      lineNumberPunc - The punctuation that follows line number. Default
+ *          value: ':'.
+ *      noEnd - Whether block ending, like `end if`, end procedure`, etc., are
+ *          showned. Default value: false.
+ *      captionCount - Set the caption counter to this new value.
+ *
+ **/
+function RendererOptions(options) {
+    options = options || {};
+    this.indentSize = options.indentSize ?
+                        this._parseEmVal(options.indentSize) : 1.2;
+    this.commentDelimiter  = options.commentDelimiter  || ' // ';
+    this.lineNumberPunc = options.lineNumberPunc || ':';
+    this.lineNumber = options.lineNumber !== undefined ? options.lineNumber : false;
+    this.noEnd = options.noEnd !== undefined ? options.noEnd : false;
+    if (options.captionCount !== undefined)
+        Renderer.captionCount = options.captionCount;
+}
+
+RendererOptions.prototype._parseEmVal = function(emVal) {
+    emVal = emVal.trim();
+    if (emVal.indexOf('em') !== emVal.length - 2)
+        throw 'option unit error; no `em` found';
+    return Number(emVal.substring(0, emVal.length - 2));
+};
+
+/*
+ * Renderer - Converts a parse tree to HTML
+ *
+ * There are three levels for renderer: Group (Block), Line and Segment,
+ * which are rendered to HTML tag, <div>, <p>, and <span>, respectively.
+ **/
+function Renderer(parser, options) {
+    this._root = parser.parse();
+    this._options = new RendererOptions(options);
+    this._openLine = false;
+    this._blockLevel = 0;
+    this._textLevel = -1;
+    this._globalTextStyle = new TextStyle();
+}
+
+/*  The global counter for the numbering of the algorithm environment */
+Renderer.captionCount = 0;
+
+Renderer.prototype.toMarkup = function() {
+    var html = this._html = new HTMLBuilder();
+    this._buildTree(this._root);
+    delete this._html;
+    return html.toMarkup();
+};
+
+Renderer.prototype.toDOM = function() {
+    var html = this.toMarkup();
+    var div = document.createElement('div');
+    div.innerHTML = html;
+    return div.firstChild;
+};
+
+Renderer.prototype._beginGroup = function(name, extraClass, style) {
+    this._closeLineIfAny();
+    this._html.beginDiv('ps-' + name + (extraClass ? ' ' + extraClass : ''),
+                        style);
+};
+
+Renderer.prototype._endGroup = function(name) {
+    this._closeLineIfAny();
+    this._html.endDiv();
+};
+
+Renderer.prototype._beginBlock = function() {
+    // The first block have to extra left margin when line number are displayed
+    var extraIndentForFirstBlock =
+        this._options.lineNumber && this._blockLevel === 0 ? 0.6 : 0;
+    var blockIndent = this._options.indentSize + extraIndentForFirstBlock;
+
+    this._beginGroup('block', null, {
+        'margin-left': blockIndent + 'em'
+    });
+    this._blockLevel++;
+};
+
+Renderer.prototype._endBlock = function() {
+    this._closeLineIfAny();
+    this._endGroup();
+    this._blockLevel--;
+};
+
+Renderer.prototype._newLine = function() {
+    this._closeLineIfAny();
+
+    this._openLine = true;
+
+    // For every new line, reset the relative sizing of text style
+    this._globalTextStyle.outerFontSize(1.0);
+
+    var indentSize = this._options.indentSize;
+    // if this line is for code (e.g. \STATE)
+    if (this._blockLevel > 0) {
+        this._numLOC++;
+
+        this._html.beginP('ps-line ps-code', this._globalTextStyle.toCSS());
+        if (this._options.lineNumber) {
+            this._html.beginSpan('ps-linenum', {
+                'left': - ((this._blockLevel - 1)*(indentSize* 1.25)) + 'em'
+            })
+            .putText(this._numLOC + this._options.lineNumberPunc)
+            .endSpan();
+        }
+    }
+    // if this line is for pre-conditions (e.g. \REQUIRE)
+    else {
+        this._html.beginP('ps-line', {
+            'text-indent': (-indentSize) + 'em',
+            'padding-left': indentSize + 'em'
+        }, this._globalTextStyle.toCSS());
+    }
+};
+
+Renderer.prototype._closeLineIfAny = function() {
+    if (!this._openLine) return;
+
+    this._html.endP();
+
+    this._openLine = false;
+};
+
+Renderer.prototype._typeKeyword = function(keyword) {
+    this._html.beginSpan('ps-keyword').putText(keyword).endSpan();
+};
+
+Renderer.prototype._typeFuncName = function(funcName) {
+    this._html.beginSpan('ps-funcname').putText(funcName).endSpan();
+};
+
+Renderer.prototype._typeText = function(text) {
+    this._html.write(text);
+};
+
+Renderer.prototype._buildTreeForAllChildren = function(node) {
+    var children = node.children;
+    for (var ci = 0; ci < children.length; ci++)
+        this._buildTree(children[ci]);
+};
+
+// The comment nodes at the beginning of blockNode are comments for controls
+// Thus they should be rendered out of block
+Renderer.prototype._buildCommentsFromBlock = function(blockNode) {
+    var children = blockNode.children;
+    while (children.length > 0 && children[0].type === 'comment') {
+        var commentNode = children.shift();
+        this._buildTree(commentNode);
+    }
+};
+
+Renderer.prototype._buildTree = function(node) {
+    var ci, child, textNode;
+    switch(node.type) {
+    // The hierarchicy of build tree: Group (Block) > Line > Text
+    // ----------------- Groups -------------------------------------
+    case 'root':
+        this._beginGroup('root');
+        this._buildTreeForAllChildren(node);
+        this._endGroup();
+        break;
+    case 'algorithm':
+        // First, decide the caption if any
+        var lastCaptionNode;
+        for (ci = 0; ci < node.children.length; ci++) {
+            child = node.children[ci];
+            if (child.type !== 'caption') continue;
+            lastCaptionNode = child;
+            Renderer.captionCount++;
+        }
+        // Then, build the header for algorithm
+        if (lastCaptionNode) {
+            this._beginGroup('algorithm', 'with-caption');
+            this._buildTree(lastCaptionNode);
+        }
+        else {
+            this._beginGroup('algorithm');
+        }
+        // Then, build other nodes
+        for (ci = 0; ci < node.children.length; ci++) {
+            child = node.children[ci];
+            if (child.type === 'caption') continue;
+            this._buildTree(child);
+        }
+        this._endGroup();
+        break;
+    case 'algorithmic':
+        if (this._options.lineNumber) {
+            this._beginGroup('algorithmic', 'with-linenum');
+            this._numLOC = 0;
+        }
+        else {
+            this._beginGroup('algorithmic');
+        }
+        this._buildTreeForAllChildren(node);
+        this._endGroup();
+        break;
+    case 'block':
+        // node: <block>
+        // ==>
+        // HTML: <div class="ps-block"> ... </div>
+        this._beginBlock();
+        this._buildTreeForAllChildren(node);
+        this._endBlock();
+        break;
+    // ----------------- Mixture (Groups + Lines) -------------------
+    case 'function':
+        // \FUNCTION{<ordinary>}{<text>} <block> \ENDFUNCTION
+        // ==>
+        // function <ordinary>(<text>)
+        // ...
+        // end function
+        var funcType = node.value.type.toLowerCase();
+        var defFuncName = node.value.name;
+        textNode = node.children[0];
+        var blockNode = node.children[1];
+        this._newLine();
+        this._typeKeyword(funcType + ' ');
+        this._typeFuncName(defFuncName);
+        this._typeText('(');
+        this._buildTree(textNode);
+        this._typeText(')');
+
+        this._buildCommentsFromBlock(blockNode);
+        this._buildTree(blockNode);
+
+        if (!this._options.noEnd) {
+            this._newLine();
+            this._typeKeyword('end ' + funcType);
+        }
+        break;
+    case 'if':
+        // \IF { <cond> }
+        // ==>
+        // <p class="ps-line">
+        //      <span class="ps-keyword">if</span>
+        //      ...
+        //      <span class="ps-keyword">then</span>
+        // </p>
+        this._newLine();
+        this._typeKeyword('if ');
+        ifCond = node.children[0];
+        this._buildTree(ifCond);
+        this._typeKeyword(' then');
+        // <block>
+        var ifBlock = node.children[1];
+        this._buildCommentsFromBlock(ifBlock);
+        this._buildTree(ifBlock);
+
+        // ( \ELIF {<cond>} <block> )[0..n]
+        var numElif = node.value.numElif;
+        for (var ei = 0 ; ei < numElif; ei++) {
+            // \ELIF {<cond>}
+            // ==>
+            // <p class="ps-line">
+            //      <span class="ps-keyword">elif</span>
+            //      ...
+            //      <span class="ps-keyword">then</span>
+            // </p>
+            this._newLine();
+            this._typeKeyword('else if ');
+            var elifCond = node.children[2 + 2 * ei];
+            this._buildTree(elifCond);
+            this._typeKeyword(' then');
+
+            // <block>
+            var elifBlock = node.children[2 + 2 * ei + 1];
+            this._buildCommentsFromBlock(elifBlock);
+            this._buildTree(elifBlock);
+        }
+
+        // ( \ELSE <block> )[0..1]
+        var hasElse = node.value.hasElse;
+        if (hasElse) {
+            // \ELSE
+            // ==>
+            // <p class="ps-line">
+            //      <span class="ps-keyword">else</span>
+            // </p>
+            this._newLine();
+            this._typeKeyword('else');
+
+            // <block>
+            var elseBlock = node.children[node.children.length - 1];
+            this._buildCommentsFromBlock(elseBlock);
+            this._buildTree(elseBlock);
+        }
+
+        if (!this._options.noEnd) {
+            // ENDIF
+            this._newLine();
+            this._typeKeyword('end if');
+        }
+        break;
+    case 'loop':
+        // \FOR{<cond>} or \WHILE{<cond>}
+        // ==>
+        // <p class="ps-line">
+        //      <span class="ps-keyword">for</span>
+        //      ...
+        //      <span class="ps-keyword">do</span>
+        // </p>
+        this._newLine();
+        var loopType = node.value;
+        var displayLoopName = {
+            'for': 'for',
+            'forall': 'for all',
+            'while': 'while'
+        };
+        this._typeKeyword(displayLoopName[loopType] + ' ');
+        var loopCond = node.children[0];
+        this._buildTree(loopCond);
+        this._typeKeyword(' do');
+
+        // <block>
+        var block = node.children[1];
+        this._buildCommentsFromBlock(block);
+        this._buildTree(block);
+
+        if (!this._options.noEnd) {
+            // \ENDFOR or \ENDWHILE
+            // ==>
+            // <p class="ps-line">
+            //      <span class="ps-keyword">end for</span>
+            // </p>
+            this._newLine();
+            var endLoopName = loopType === 'while' ? 'end while' : 'end for';
+            this._typeKeyword(endLoopName);
+        }
+        break;
+    // ------------------- Lines -------------------
+    case 'command':
+        // commands: \STATE, \ENSURE, \PRINT, \RETURN, etc.
+        var cmdName = node.value;
+        var displayName = {
+            'state': '',
+            'ensure': 'Ensure: ',
+            'require': 'Require: ',
+            'print': 'print ',
+            'return': 'return '
+        }[cmdName];
+
+        this._newLine();
+        if (displayName) this._typeKeyword(displayName);
+        textNode = node.children[0];
+        this._buildTree(textNode);
+        break;
+    case 'caption':
+        this._newLine();
+        this._typeKeyword('Algorithm ' + Renderer.captionCount + ' ');
+        textNode = node.children[0];
+        this._buildTree(textNode);
+        break;
+    case 'comment':
+        textNode = node.children[0];
+        this._html.beginSpan('ps-comment');
+        this._html.putText(this._options.commentDelimiter);
+        this._buildTree(textNode);
+        this._html.endSpan();
+        break;
+    // ------------------- Text -------------------
+    case 'open-text':
+        var openTextEnv = new TextEnvironment(node.children, this._globalTextStyle);
+        this._html.putSpan(openTextEnv.renderToHTML());
+        break;
+    case 'close-text':
+        var outerFontSize = this._globalTextStyle.fontSize();
+        var newTextStyle = new TextStyle(outerFontSize);
+        var closeTextEnv = new TextEnvironment(node.children, newTextStyle);
+        this._html.putSpan(closeTextEnv.renderToHTML());
+        break;
+    default:
+        throw new ParseError('Unexpected ParseNode of type ' + node.type);
+    }
+};
+
+module.exports = Renderer;
+
+},{"./utils":6,"katex":undefined}],6:[function(require,module,exports){
+function isString(str) {
+    return (typeof str === 'string') || (str instanceof String);
+}
+
+function isObject(obj) {
+    return (typeof obj === 'object' && (obj instanceof Object));
+}
+
+function toString(obj) {
+    if (!isObject(obj)) return obj + '';
+
+    var parts = [];
+    for (var member in obj)
+        parts.push(member + ': ' + toString(obj[member]));
+    return parts.join(', ');
+}
+
+module.exports = {
+    isString: isString,
+    isObject: isObject,
+    toString: toString
+};
+
+},{}]},{},[1])(1)
+});
\ No newline at end of file
diff --git a/stylesheets/styles.css b/stylesheets/styles.css
index dacf2e1861be0377092a7fb9a6779b11b837241f..e06f946505a043cd9c927390a27872c2ff974a73 100644
--- a/stylesheets/styles.css
+++ b/stylesheets/styles.css
@@ -1,8 +1,6 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
-
 body {
   padding:50px;
-  font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font:14px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
   color:#777;
   font-weight:300;
 }
@@ -10,6 +8,7 @@ body {
 h1, h2, h3, h4, h5, h6 {
   color:#222;
   margin:0 0 20px;
+  font-weight: bold;
 }
 
 p, ul, ol, table, pre, dl {