From 444f264c508ccd91f686d198ec38ff27c219905b Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 15 Sep 2024 17:23:49 +0000 Subject: [PATCH] Deploy haskell/blog.haskell.org to haskell/blog.haskell.org:gh-pages --- .nojekyll | 0 404.html | 77 ++ CNAME | 1 + _headers | 68 ++ about/index.html | 95 ++ abridge.css | 1 + android-chrome-192x192.png | Bin 0 -> 2832 bytes android-chrome-512x512.png | Bin 0 -> 22233 bytes apple-touch-icon.png | Bin 0 -> 2605 bytes archive/index.html | 93 ++ atom.xml | 96 ++ authors/hecate/index.html | 91 ++ authors/index.html | 100 ++ authors/jmct/index.html | 91 ++ authors/serge-s-gulin/index.html | 91 ++ authors/tom-smeding/index.html | 91 ++ banner.png | Bin 0 -> 4536 bytes browserconfig.xml | 9 + categories/community/atom.xml | 34 + categories/community/index.html | 91 ++ categories/ghc/atom.xml | 30 + categories/ghc/index.html | 91 ++ categories/haddock/atom.xml | 29 + categories/haddock/index.html | 91 ++ categories/index.html | 100 ++ categories/playground/atom.xml | 30 + categories/playground/index.html | 91 ++ .../flow-of-documentation.png | Bin 0 -> 39152 bytes .../index.html | 237 ++++ elasticlunr.min.js | 10 + favicon-16x16.png | Bin 0 -> 843 bytes favicon-32x32.png | Bin 0 -> 1105 bytes favicon-48x48.png | Bin 0 -> 1631 bytes favicon.ico | Bin 0 -> 15086 bytes favicon.svg | 6 + fonts/KaTeX_AMS-Regular.woff2 | Bin 0 -> 28076 bytes fonts/KaTeX_Caligraphic-Bold.woff2 | Bin 0 -> 6912 bytes fonts/KaTeX_Caligraphic-Regular.woff2 | Bin 0 -> 6908 bytes fonts/KaTeX_Fraktur-Bold.woff2 | Bin 0 -> 11348 bytes fonts/KaTeX_Fraktur-Regular.woff2 | Bin 0 -> 11316 bytes fonts/KaTeX_Main-Bold.woff2 | Bin 0 -> 25324 bytes fonts/KaTeX_Main-BoldItalic.woff2 | Bin 0 -> 16780 bytes fonts/KaTeX_Main-Italic.woff2 | Bin 0 -> 16988 bytes fonts/KaTeX_Main-Regular.woff2 | Bin 0 -> 26272 bytes fonts/KaTeX_Math-BoldItalic.woff2 | Bin 0 -> 16400 bytes fonts/KaTeX_Math-Italic.woff2 | Bin 0 -> 16440 bytes fonts/KaTeX_SansSerif-Bold.woff2 | Bin 0 -> 12216 bytes fonts/KaTeX_SansSerif-Italic.woff2 | Bin 0 -> 12028 bytes fonts/KaTeX_SansSerif-Regular.woff2 | Bin 0 -> 10344 bytes fonts/KaTeX_Script-Regular.woff2 | Bin 0 -> 9644 bytes fonts/KaTeX_Size1-Regular.woff2 | Bin 0 -> 5468 bytes fonts/KaTeX_Size2-Regular.woff2 | Bin 0 -> 5208 bytes fonts/KaTeX_Size3-Regular.woff2 | Bin 0 -> 3624 bytes fonts/KaTeX_Size4-Regular.woff2 | Bin 0 -> 4928 bytes fonts/KaTeX_Typewriter-Regular.woff2 | Bin 0 -> 13568 bytes fonts/Roboto-Bold.woff2 | Bin 0 -> 15860 bytes fonts/Roboto-Italic.woff2 | Bin 0 -> 17368 bytes fonts/Roboto-Mono-Italic.woff2 | Bin 0 -> 13572 bytes fonts/Roboto-Mono.woff2 | Bin 0 -> 12312 bytes fonts/Roboto.woff2 | Bin 0 -> 15744 bytes fonts/raleway-v28-latin-700.woff2 | Bin 0 -> 21440 bytes fonts/raleway-v28-latin-900.woff2 | Bin 0 -> 20696 bytes fonts/source-sans-3-v9-latin-regular.woff2 | Bin 0 -> 15008 bytes fonts/ubuntu-mono-v15-latin-regular.woff2 | Bin 0 -> 27384 bytes images/haskell-opengraph.png | Bin 0 -> 5145 bytes images/haskell.svg | 6 + index.html | 159 +++ intro/index.html | 110 ++ js/abridge.min.js | 1 + js/abridge_nopwa.min.js | 1 + js/abridge_nosearch.min.js | 1 + js/abridge_nosearch_nopwa.min.js | 1 + js/codecopy.js | 34 + js/elasticlunr.min.js | 10 + js/email.js | 16 + js/katex-auto-render.min.js | 1 + js/katex.min.js | 1 + js/katexbundle.min.js | 1 + js/katexoptions.js | 3 + js/lunr.da.js | 280 +++++ js/lunr.da.min.js | 1 + js/lunr.de.js | 380 ++++++ js/lunr.de.min.js | 1 + js/lunr.du.js | 444 +++++++ js/lunr.du.min.js | 1 + js/lunr.es.js | 595 +++++++++ js/lunr.es.min.js | 1 + js/lunr.fi.js | 536 +++++++++ js/lunr.fi.min.js | 1 + js/lunr.fr.js | 698 +++++++++++ js/lunr.fr.min.js | 1 + js/lunr.hu.js | 561 +++++++++ js/lunr.hu.min.js | 1 + js/lunr.it.js | 612 ++++++++++ js/lunr.it.min.js | 1 + js/lunr.jp.js | 118 ++ js/lunr.jp.min.js | 1 + js/lunr.no.js | 253 ++++ js/lunr.no.min.js | 1 + js/lunr.pt.js | 566 +++++++++ js/lunr.pt.min.js | 1 + js/lunr.ro.js | 554 +++++++++ js/lunr.ro.min.js | 1 + js/lunr.ru.js | 387 ++++++ js/lunr.ru.min.js | 1 + js/lunr.stemmer.support.js | 295 +++++ js/lunr.stemmer.support.min.js | 1 + js/lunr.sv.js | 252 ++++ js/lunr.sv.min.js | 1 + js/lunr.tr.js | 1070 +++++++++++++++++ js/lunr.tr.min.js | 1 + js/lunr.zh.js | 156 +++ js/lunr.zh.min.js | 1 + js/mathtex-script-type.min.js | 1 + js/pagefind.search.js | 256 ++++ js/prestyle.js | 4 + js/search.js | 366 ++++++ js/searchChange.js | 68 ++ js/search_elasticlunr.min.js | 1 + js/search_tinysearch.min.js | 1 + js/searchjava.js | 354 ++++++ js/searchjavaugly.js | 354 ++++++ js/sw_load.js | 14 + js/sw_load.min.js | 1 + js/theme.js | 4 + js/theme.min.js | 1 + js/theme_button.js | 7 + js/theme_light.js | 4 + js/theme_light.min.js | 1 + js/tinysearch.js | 254 ++++ katex.min.css | 1 + m1024.png | Bin 0 -> 5144 bytes m128.png | Bin 0 -> 811 bytes m192.png | Bin 0 -> 1085 bytes m384.png | Bin 0 -> 1752 bytes m48.png | Bin 0 -> 394 bytes m512.png | Bin 0 -> 2564 bytes m72.png | Bin 0 -> 519 bytes m96.png | Bin 0 -> 615 bytes manifest.json | 19 + manifest.min.json | 1 + mstile-150x150.png | Bin 0 -> 1608 bytes nojs.css | 1 + page/1/index.html | 6 + privacy/index.html | 96 ++ .../general-category-size-reduction.png | Bin 0 -> 212480 bytes report-of-js-code-minification/index.html | 380 ++++++ .../retina-graph-main-to-unicode.png | Bin 0 -> 287234 bytes robots.txt | 5 + safari-pinned-tab.svg | 271 +++++ search_index.en.json | 1 + site.webmanifest | 19 + sitemap.xml | 82 ++ sw.js | 191 +++ sw.min.js | 1 + tags/activities-report/index.html | 91 ++ tags/community/index.html | 91 ++ tags/documentation/index.html | 91 ++ tags/index.html | 102 ++ tags/javascript/index.html | 91 ++ tags/practices/index.html | 91 ++ the-haskell-playground/index.html | 218 ++++ the-haskell-playground/playground-issue.png | Bin 0 -> 40909 bytes tinysearch_engine_bg.wasm | Bin 0 -> 97522 bytes 164 files changed, 13403 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 CNAME create mode 100644 _headers create mode 100644 about/index.html create mode 100644 abridge.css create mode 100644 android-chrome-192x192.png create mode 100644 android-chrome-512x512.png create mode 100644 apple-touch-icon.png create mode 100644 archive/index.html create mode 100644 atom.xml create mode 100644 authors/hecate/index.html create mode 100644 authors/index.html create mode 100644 authors/jmct/index.html create mode 100644 authors/serge-s-gulin/index.html create mode 100644 authors/tom-smeding/index.html create mode 100644 banner.png create mode 100644 browserconfig.xml create mode 100644 categories/community/atom.xml create mode 100644 categories/community/index.html create mode 100644 categories/ghc/atom.xml create mode 100644 categories/ghc/index.html create mode 100644 categories/haddock/atom.xml create mode 100644 categories/haddock/index.html create mode 100644 categories/index.html create mode 100644 categories/playground/atom.xml create mode 100644 categories/playground/index.html create mode 100644 documentation-best-practices-in-2024/flow-of-documentation.png create mode 100644 documentation-best-practices-in-2024/index.html create mode 100644 elasticlunr.min.js create mode 100644 favicon-16x16.png create mode 100644 favicon-32x32.png create mode 100644 favicon-48x48.png create mode 100644 favicon.ico create mode 100644 favicon.svg create mode 100644 fonts/KaTeX_AMS-Regular.woff2 create mode 100644 fonts/KaTeX_Caligraphic-Bold.woff2 create mode 100644 fonts/KaTeX_Caligraphic-Regular.woff2 create mode 100644 fonts/KaTeX_Fraktur-Bold.woff2 create mode 100644 fonts/KaTeX_Fraktur-Regular.woff2 create mode 100644 fonts/KaTeX_Main-Bold.woff2 create mode 100644 fonts/KaTeX_Main-BoldItalic.woff2 create mode 100644 fonts/KaTeX_Main-Italic.woff2 create mode 100644 fonts/KaTeX_Main-Regular.woff2 create mode 100644 fonts/KaTeX_Math-BoldItalic.woff2 create mode 100644 fonts/KaTeX_Math-Italic.woff2 create mode 100644 fonts/KaTeX_SansSerif-Bold.woff2 create mode 100644 fonts/KaTeX_SansSerif-Italic.woff2 create mode 100644 fonts/KaTeX_SansSerif-Regular.woff2 create mode 100644 fonts/KaTeX_Script-Regular.woff2 create mode 100644 fonts/KaTeX_Size1-Regular.woff2 create mode 100644 fonts/KaTeX_Size2-Regular.woff2 create mode 100644 fonts/KaTeX_Size3-Regular.woff2 create mode 100644 fonts/KaTeX_Size4-Regular.woff2 create mode 100644 fonts/KaTeX_Typewriter-Regular.woff2 create mode 100644 fonts/Roboto-Bold.woff2 create mode 100644 fonts/Roboto-Italic.woff2 create mode 100644 fonts/Roboto-Mono-Italic.woff2 create mode 100644 fonts/Roboto-Mono.woff2 create mode 100644 fonts/Roboto.woff2 create mode 100644 fonts/raleway-v28-latin-700.woff2 create mode 100644 fonts/raleway-v28-latin-900.woff2 create mode 100644 fonts/source-sans-3-v9-latin-regular.woff2 create mode 100644 fonts/ubuntu-mono-v15-latin-regular.woff2 create mode 100644 images/haskell-opengraph.png create mode 100644 images/haskell.svg create mode 100644 index.html create mode 100644 intro/index.html create mode 100644 js/abridge.min.js create mode 100644 js/abridge_nopwa.min.js create mode 100644 js/abridge_nosearch.min.js create mode 100644 js/abridge_nosearch_nopwa.min.js create mode 100644 js/codecopy.js create mode 100644 js/elasticlunr.min.js create mode 100644 js/email.js create mode 100644 js/katex-auto-render.min.js create mode 100644 js/katex.min.js create mode 100644 js/katexbundle.min.js create mode 100644 js/katexoptions.js create mode 100644 js/lunr.da.js create mode 100644 js/lunr.da.min.js create mode 100644 js/lunr.de.js create mode 100644 js/lunr.de.min.js create mode 100644 js/lunr.du.js create mode 100644 js/lunr.du.min.js create mode 100644 js/lunr.es.js create mode 100644 js/lunr.es.min.js create mode 100644 js/lunr.fi.js create mode 100644 js/lunr.fi.min.js create mode 100644 js/lunr.fr.js create mode 100644 js/lunr.fr.min.js create mode 100644 js/lunr.hu.js create mode 100644 js/lunr.hu.min.js create mode 100644 js/lunr.it.js create mode 100644 js/lunr.it.min.js create mode 100644 js/lunr.jp.js create mode 100644 js/lunr.jp.min.js create mode 100644 js/lunr.no.js create mode 100644 js/lunr.no.min.js create mode 100644 js/lunr.pt.js create mode 100644 js/lunr.pt.min.js create mode 100644 js/lunr.ro.js create mode 100644 js/lunr.ro.min.js create mode 100644 js/lunr.ru.js create mode 100644 js/lunr.ru.min.js create mode 100644 js/lunr.stemmer.support.js create mode 100644 js/lunr.stemmer.support.min.js create mode 100644 js/lunr.sv.js create mode 100644 js/lunr.sv.min.js create mode 100644 js/lunr.tr.js create mode 100644 js/lunr.tr.min.js create mode 100644 js/lunr.zh.js create mode 100644 js/lunr.zh.min.js create mode 100644 js/mathtex-script-type.min.js create mode 100644 js/pagefind.search.js create mode 100644 js/prestyle.js create mode 100644 js/search.js create mode 100644 js/searchChange.js create mode 100644 js/search_elasticlunr.min.js create mode 100644 js/search_tinysearch.min.js create mode 100644 js/searchjava.js create mode 100644 js/searchjavaugly.js create mode 100644 js/sw_load.js create mode 100644 js/sw_load.min.js create mode 100644 js/theme.js create mode 100644 js/theme.min.js create mode 100644 js/theme_button.js create mode 100644 js/theme_light.js create mode 100644 js/theme_light.min.js create mode 100644 js/tinysearch.js create mode 100644 katex.min.css create mode 100644 m1024.png create mode 100644 m128.png create mode 100644 m192.png create mode 100644 m384.png create mode 100644 m48.png create mode 100644 m512.png create mode 100644 m72.png create mode 100644 m96.png create mode 100644 manifest.json create mode 100644 manifest.min.json create mode 100644 mstile-150x150.png create mode 100644 nojs.css create mode 100644 page/1/index.html create mode 100644 privacy/index.html create mode 100644 report-of-js-code-minification/general-category-size-reduction.png create mode 100644 report-of-js-code-minification/index.html create mode 100644 report-of-js-code-minification/retina-graph-main-to-unicode.png create mode 100644 robots.txt create mode 100644 safari-pinned-tab.svg create mode 100644 search_index.en.json create mode 100644 site.webmanifest create mode 100644 sitemap.xml create mode 100644 sw.js create mode 100644 sw.min.js create mode 100644 tags/activities-report/index.html create mode 100644 tags/community/index.html create mode 100644 tags/documentation/index.html create mode 100644 tags/index.html create mode 100644 tags/javascript/index.html create mode 100644 tags/practices/index.html create mode 100644 the-haskell-playground/index.html create mode 100644 the-haskell-playground/playground-issue.png create mode 100644 tinysearch_engine_bg.wasm diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..de29ae0 --- /dev/null +++ b/404.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 404 Page not found | The Haskell Programming Language's blog + + + + + + + + + +
+ +
+
+
+

404 :(

+

Page not found, maybe moved. Try searching or go to homepage.

+ + +
+
+ + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..e02bff5 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +blog.haskell.org diff --git a/_headers b/_headers new file mode 100644 index 0000000..ccca3e1 --- /dev/null +++ b/_headers @@ -0,0 +1,68 @@ +# This _headers file is used to set headers on cloudflare pages: https://developers.cloudflare.com/pages/configuration/headers/ +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy (disabled everything except autoplay, local-fonts, screen-wake-lock, speaker-selection) +# opt out of Federated Learning of Cohorts (aka "FLoC") - https://amifloced.org/ +/* + X-Frame-Options: DENY + X-Content-Type-Options: nosniff + X-XSS-Protection: 1; mode=block + Referrer-Policy: strict-origin-when-cross-origin + Strict-Transport-Security: max-age=63072000; includeSubdomains + Permissions-Policy: interest-cohort=(), accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), browsing-topics=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), identity-credentials-get=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), otp-credentials=(), payment=(), picture-in-picture=(), publickey-credentials-create=(), publickey-credentials-get=(), serial=(), storage-access=(), sync-xhr=(), usb=(), web-share=(), window-management=(), xr-spatial-tracking=() + Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; object-src 'none'; base-uri 'self'; manifest-src 'self'; worker-src 'self'; form-action 'self'; connect-src 'self' *.hyvor.com ws://*.hyvor.com; script-src 'self' talk.hyvor.com; img-src 'self' data: talk.hyvor.com cdn.cloudflare.com; frame-src 'self' www.youtube-nocookie.com player.vimeo.com streamable.com www.streamable.com; media-src 'self' data: cdn.cloudflare.com www.youtube-nocookie.com player.vimeo.com; font-src 'self' cdn.cloudflare.com cdn.jsdelivr.net fonts.gstatic.com; style-src 'self' talk.hyvor.com cdn.cloudflare.com cdn.jsdelivr.net fonts.googleapis.com; + +/*.js + Cache-Control: public, max-age=604800, must-revalidate + +/*.css + Cache-Control: public, max-age=604800, must-revalidate + +/*.svg + Cache-Control: public, max-age=604800 + +/*.png + Cache-Control: public, max-age=604800 + +/*.ico + Cache-Control: public, max-age=604800 + +/*.jpg + Cache-Control: public, max-age=604800 + +/*.jpeg + Cache-Control: public, max-age=604800 + +/*.gif + Cache-Control: public, max-age=604800 + +/*.webp + Cache-Control: public, max-age=604800 + +/*.avif + Cache-Control: public, max-age=604800 + +/*.mp4 + Cache-Control: public, max-age=604800 + +/*.webm + Cache-Control: public, max-age=604800 + +/*.mp3 + Cache-Control: public, max-age=604800 + +/*.ogg + Cache-Control: public, max-age=604800 + +/*.otf + Cache-Control: public, max-age=604800 + +/*.eot + Cache-Control: public, max-age=604800 + +/*.ttf + Cache-Control: public, max-age=604800 + +/*.woff + Cache-Control: public, max-age=604800 + +/*.woff2 + Cache-Control: public, max-age=604800 diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..c1f498e --- /dev/null +++ b/about/index.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + About this blog | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

About this blog

+

Welcome to the Haskell Project's blog!

+

This is the place where the various teams that power the language and its ecosystem communicate about their progress, innovations, +and new releases.

+

The Haskell.org Committee is the publisher of this website. Please contact us at committee <at> haskell <dot> org if you wish to +signal content that goes against our Guidelines For Respectful Communication.

+ +
+
+ + + diff --git a/abridge.css b/abridge.css new file mode 100644 index 0000000..89d3c6e --- /dev/null +++ b/abridge.css @@ -0,0 +1 @@ +:root{--ff:"Source Sans 3",Roboto,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue","Noto Sans",Helvetica,Arial,sans-serif;--fm:"Ubuntu Mono",ui-monospace,Menlo,Monaco,Consolas,"SF Mono","Cascadia Mono","Segoe UI Mono","DejaVu Sans Mono","Liberation Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",Courier,monospace;color-scheme:var(--cs);--s1: .5rem;--s2: 1rem;--rc: .5rem;--br: 0.25rem;--bw: 0.0625rem;--ow: 0.1875rem;--fs: 1rem;--lh: 1.5;--lhh: 1.2;--fw: 400;--fh: 700}@media (min-width: 576px){:root{--fs: 1rem}}@media (min-width: 768px){:root{--fs: 1.04rem}}@media (min-width: 992px){:root{--fs: 1.08rem}}@media (min-width: 1200px){:root{--fs: 1.12rem}}:root:not(.switch){--cs:light;--f1:#333;--f2:#222;--c1:#fff;--c2:#eee;--c3:#ddd;--c4:#555;--a1:#65225b;--a2:#65225b;--a3:#65225b;--a4:#65225b;--cg:#373;--cr:#d33;--h0:#191919;--h1:#ddd;--h2:#888;--h3:#e65;--h4:#e83;--h5:#eb6;--h6:#ac3;--h7:#8db;--h8:#6ae;--h9:#d6e;--ha:160%}:root.switch{--cs:dark;--f1:#ccc;--f2:#ddd;--c1:#111;--c2:#222;--c3:#333;--c4:#888;--a1:#f90;--a2:#fb0;--a3:#f90;--a4:#f90;--cg:#593;--cr:#e33;--h0:#f7f7f7;--h1:#222;--h2:#666;--h3:#a21;--h4:#930;--h5:#a50;--h6:#350;--h7:#286;--h8:#059;--h9:#a3c;--ha:92%}*,*::before,*::after{box-sizing:border-box}html{text-rendering:optimizeLegibility;background-color:var(--c1);color:var(--f1);font-family:var(--ff);font-weight:var(--fw);font-size:var(--fs);line-height:var(--lh)}h1,h2,h3,h4,h5,h6{padding-left:0;color:var(--f2);margin:var(--s2) 0 var(--s1);font-weight:var(--fh);font-size:var(--fs);line-height:var(--lhh)}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}header h1{margin:0}a{color:var(--a1);text-decoration:none;font-weight:500}a:hover{color:var(--a2);text-decoration:underline}a:visited{color:var(--a4)}h1 a,h2 a,main nav a,header li>a{color:var(--f2);text-decoration:none;font-weight:var(--fh)}h1 a:visited,h2 a:visited,main nav a:visited,header li>a:visited{color:var(--f2)}h1 a:hover,h2 a:hover,main nav a:hover,header li>a:hover{color:var(--a3);text-decoration:none}article{padding-bottom:.2rem}abbr[title]{border-bottom:var(--bw) dotted;text-decoration:none;cursor:help}mark{background-color:var(--c4);color:var(--c1);vertical-align:baseline;padding:.1rem .4rem}blockquote{margin-left:0;padding:.5rem 0 .5rem 1.5rem;border-left:.25rem solid var(--c3)}blockquote>:last-child{margin-bottom:0}small{font-size:.875rem}.footnote-definition sup,.footnote-definition p{display:inline}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}details summary{cursor:pointer}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin:.7rem 0;color:var(--f1);font-style:normal;font-weight:var(--fw);font-size:var(--fs)}ul,ol{padding-right:0;padding-left:var(--s2)}li{margin-bottom:.2rem}ins{color:var(--cg);text-decoration:none}del{color:var(--cr)}main{display:flex}main article,main div{flex:1 1 0;min-width:0}body{width:100%;margin:0}header,main,footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--s1)}@media (min-width: 1200px){header,main,footer{min-width:1200px;max-width:70%}}header,main{padding-top:0;margin-top:0;padding-bottom:0;margin-bottom:0}header hr,main hr{margin:.1rem 0}footer{line-height:var(--lhh)}footer hr,footer p{margin:.2rem 0}header>nav>div{padding-top:var(--s2)}footer>div{padding-top:var(--s1)}header>nav,header>nav>div:nth-child(2){display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;align-items:center}header>nav ul{margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center}header>nav>div:nth-child(2){margin-left:auto;justify-content:center}header nav{margin:var(--s1) auto 0;flex-direction:column}header nav div:nth-child(2){margin:auto}nav{align-items:center;justify-content:center;display:flex}nav li{display:inline-block;margin:0 var(--s2) 0 0}.dropdown{display:inline-block;position:relative;z-index:1;font-weight:var(--fh);font-size:var(--fs)}.dropdown-content{display:none;position:absolute;cursor:pointer;text-align:center;right:-1rem;z-index:1;font-weight:var(--fh);font-size:var(--fs);background:var(--c2)}.dropdown-content a,.dropdown-content span{margin:0 var(--s1);display:block;text-decoration:none}.dropdown:hover .dropdown-content{display:block}article nav div:last-child{text-align:right}footer nav a{margin:.2rem}footer nav i{margin-bottom:.2rem}main nav{margin-top:var(--s2)}main nav a,main nav span{margin:.2rem}.on,.on:visited{font-weight:var(--fh);border:.1rem solid var(--c4);border-radius:var(--br);padding:.1rem var(--s1)}.on:hover{border-color:var(--a3)}.on:hover .svgh{background:var(--a3);opacity:1}.outp{padding:0 .26rem .2rem}.dis{color:var(--c4);font-weight:var(--fh)}.off{color:var(--c4);font-weight:var(--fh);border:.1rem solid var(--c3);border-radius:var(--br)}.off .svgh{background:var(--c3);opacity:1}.on{font-weight:var(--fh);border:.1rem solid var(--c4);border-radius:var(--br)}.mode:hover,.cnav{background-color:var(--c2)}@media (min-width: 768px){header nav,header>nav>div:nth-child(2){flex-direction:row;margin:0 0 0 auto}header>nav>div{padding-top:var(--s1)}}.yvi{position:absolute;top:0;left:0}.yv{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}img,video,svg{max-width:100%;height:auto}embed,iframe,object{max-width:100%}iframe{border-style:none;width:100%;height:100%;border:0;overflow:hidden}table{border-collapse:collapse;width:100%;text-indent:0}table caption{margin-bottom:.5rem}tr{border-bottom:var(--bw) solid var(--c3)}td,th{padding:var(--s1)}th{text-align:left}tbody tr:nth-child(even){background-color:var(--c2)}thead tr{border-top:var(--bw) solid var(--c3);background-color:var(--c2)}pre,code,kbd,samp,tt,var{border-radius:var(--br);background:var(--c2);font-family:var(--fm);overflow-x:auto;line-height:initial;font-size:.8rem;padding:.3rem .2rem}pre{position:relative;padding:2rem .5rem .3rem;display:block;overflow-x:auto;-ms-overflow-style:scrollbar;white-space:pre}pre>code{display:block;background:rgba(0,0,0,0)}kbd{background-color:var(--f2);color:var(--c1);vertical-align:baseline;font-size:1rem;padding:.2rem}pre code[data-lang]::before{content:attr(data-lang);padding:.3rem;display:block;background-color:var(--c3);color:var(--h1);width:100%;position:absolute;top:0;left:0;padding-left:1rem;text-transform:uppercase}code table{font-size:.8rem;margin:0;color:var(--h1)}code mark{display:block;color:unset;padding:0;background-color:var(--h0);filter:brightness(var(--ha))}code td,code th,code tr{padding:0;border-bottom:none}code tbody td:first-child{text-align:center;user-select:none;min-width:60px}code tbody tr:nth-child(even),code thead tr{background-color:unset}.cc{cursor:pointer;z-index:9;position:absolute;top:.2rem;right:.5rem}.cc:hover{background:var(--a3);opacity:1}hr{box-sizing:content-box;height:0;overflow:visible;border:none;border-top:1px solid var(--f1)}header hr,footer hr{border-top:1px solid var(--c4)}figure{display:block;margin:0;padding:0;overflow-x:auto}figure figcaption{padding:var(--s1) 0;color:var(--c4)}button,input,select,textarea{margin:0;padding:.2rem var(--s1);max-width:100%;background:var(--c2);border:0;border-radius:.25rem;font:inherit;line-height:var(--fs);color:var(--f1)}button.del{color:var(--cr)}button,[type=button i],[type=submit i],[type=reset i]{display:inline-block;text-align:center;white-space:nowrap;color:var(--f1);border:0;cursor:pointer;transition:opacity .25s}button:hover,[type=button i]:hover,[type=submit i]:hover,[type=reset i]:hover{opacity:.75}button[disabled],[type=button i][disabled],[type=submit i][disabled],[type=reset i][disabled]{opacity:.5}fieldset{padding:.5rem .75rem;border:var(--bw) solid var(--c3);border-radius:.25rem}legend{padding:0 .25rem}label{cursor:pointer;display:block;margin-bottom:.25rem}[type=color i]{min-height:2.125rem}select:not([multiple]):not([size]){padding-right:1.5rem;background-repeat:no-repeat;background-position:right .5rem center;-moz-appearance:none;-webkit-appearance:none;appearance:none}textarea{width:100%;resize:vertical}textarea:not([rows]){height:8rem}.topout{position:sticky;bottom:1px;padding:20px;place-self:end;margin-top:110vh;pointer-events:none}.topleft{margin-left:calc(100% - 80px)}.top{pointer-events:all;padding:9px;border-radius:9px;font-weight:700;color:var(--a1);background:var(--c2)}.top:hover{text-decoration:none;color:var(--c2);background:var(--a1)}.top:hover .svgh{background:var(--c2);opacity:1}div:empty{display:none}#suggestions{z-index:9;background:var(--c1);border:2px solid var(--c3);position:static;left:0;width:100%;margin-top:var(--s1);max-height:500px;overflow:auto}#suggestions a,#results a{display:block;text-decoration:none;padding:var(--s1);margin:0 var(--s1)}#suggestions a:hover,#suggestions a:focus,#results a:hover,#results a:focus{background:var(--c2)}#suggestions span,#results span{line-height:1.5;display:block}#suggestions span:first-child,#results span:first-child{font-weight:var(--fh)}#suggestions span:nth-child(2),#results span:nth-child(2){color:var(--f1)}.results{display:block;position:relative;width:100%}.searchd{display:flex;position:relative;align-items:center;white-space:nowrap}.searchd>input{max-width:100%;flex-grow:1;padding-right:2rem}.searchd>button{position:absolute;right:.5rem}@media (min-width: 768px){.searchd>input{width:15rem;flex-grow:0}#suggestions{position:absolute;right:0;left:unset;width:500px}}.sticky{position:sticky;top:var(--s2)}.block{max-width:30rem;margin:var(--s2) auto}.blockdiv{border-radius:var(--br);border-top:5px solid var(--a1);background-color:var(--c2);margin-top:var(--s2);padding:.2rem 0 var(--s2) var(--s2);max-height:100vh;overflow:auto;overflow-wrap:break-word}.blockdiv a{color:var(--f1)}.blockdiv a:hover{color:var(--a2)}.blockdiv ol{margin:0}.blockdiv .scur{font-weight:var(--fh);color:var(--a1)}.sblock{width:15rem;max-width:15rem;margin-left:var(--s1);display:none}.sblock details:not([open])+.hidden_li{height:0;visibility:hidden;overflow:hidden}.sblock summary{margin-left:-1em;margin-bottom:.2rem;color:var(--c4)}.sblock ol,.sblock ul{font-size:1em}.desc{display:none}@media (min-width: 768px){.sblock,.desc{display:unset}.block{display:none}}.img-swap-div .img-main{display:block}.img-swap-div .img-swap{display:none}.img-swap-div:hover .img-swap{display:block}.img-swap-div:hover .img-main{display:none}[style*="--c:"],section>section{flex:var(--c, 1);margin:var(--s1);color:var(--f2);padding:var(--s1);text-align:center}section{display:flex;flex-flow:row wrap}section article{padding:20px 30px;min-width:340px}section article div{text-align:center}section article h1,section article h2,section article h3{text-align:center}.adjust{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='none' stroke-width='1' fill='%23000' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C6 0 0 6 0 12s5 12 12 12 12-5 12-12S19 0 12 0Zm0 4c5 0 8 3 8 8s-3 8-8 8V4Z'/%3E%3C/svg%3E");background:var(--f2)}.angu{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='m4 16 8-8 8 8'/%3E%3C/svg%3E");background:var(--f2)}.world{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a11 11 90 0 0 22 0 11 11 90 0 0-22 0m1-4h20M2 16h20M11 1a21 21 90 0 0 0 22m2-22a21 21 90 0 1 0 22'/%3E%3C/svg%3E");background:var(--f2)}.copy{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M11 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1ZM7 9H3a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E");background:var(--f2)}.copy.yes{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background:var(--cg)}.copy.err{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M1 12a1 1 0 0 0 22 0 1 1 0 0 0-22 0m11-7v9m0 5v-2'/%3E%3C/svg%3E");background:var(--cr)}.search{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23000' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Ccircle cx='9.5' cy='9.5' r='8'/%3E%3Cpath d='m23 23-9-9'/%3E%3C/svg%3E");background:var(--f2)}.rss{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23e94' stroke-width='2' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16'/%3E%3Ccircle cx='5' cy='19' r='1'/%3E%3C/svg%3E")}.x{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23f00' stroke-width='3' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M21 3 3 21M3 3l18 18'/%3E%3C/svg%3E")}.svg{width:1.8rem;height:1.8rem;display:inline-block;text-align:center;vertical-align:middle}.svgs{width:var(--fs);height:var(--fs);display:inline-block;text-align:center;vertical-align:middle}.svgm{min-width:24px;min-height:24px}.fa-a:hover{color:var(--a3);opacity:1}.sum,.sum p{margin:.2rem 0}.s150{font-size:1.5em}.s140{font-size:1.4em}.s130{font-size:1.3em}.s120{font-size:1.2em}.s110{font-size:1.1em}.s95{font-size:.95em}.s90{font-size:.9em}.s85{font-size:.85em}.s80{font-size:.8em}.s75{font-size:.75em}.s70{font-size:.7em}.hpad{padding:0 var(--s1)}.rpad{padding-right:var(--s1)}.vpad{padding:var(--s1) 0}.tpad{padding-top:var(--s1)}.b{font-weight:var(--fh)}.c{text-align:center}.fl{float:left}.fr{float:right}.ci{display:block;margin:0 auto}.z-code{color:var(--h1);background-color:var(--h0)}.z-comment{color:var(--h2);font-style:italic}.z-variable{color:var(--h1)}.z-string{color:var(--h6)}.z-constant.z-numeric{color:var(--h4)}.z-constant.z-character.z-escape{color:var(--h7)}.z-constant.z-language{color:var(--h4)}.z-constant.z-other{color:var(--h4)}.z-keyword{color:var(--h8)}.z-keyword.z-operator{color:var(--h9)}.z-punctuation.z-separator,.z-punctuation.z-terminator{color:var(--h1)}.z-punctuation.z-section{color:var(--h1)}.z-punctuation.z-accessor{color:var(--h4)}.z-punctuation.z-definition.z-annotation{color:var(--h1)}.z-storage{color:var(--h8)}.z-storage.z-type{color:var(--h8)}.z-entity.z-name.z-function{color:var(--h5)}.z-entity.z-name{color:var(--h5)}.z-variable.z-parameter{color:var(--h4)}.z-variable.z-language{color:var(--h5);font-style:italic}.z-entity.z-name.z-tag{color:var(--h8)}.z-punctuation.z-definition.z-tag.z-end,.z-punctuation.z-definition.z-tag.z-begin,.z-punctuation.z-definition.z-tag{color:var(--h8)}.z-entity.z-other.z-attribute-name{color:var(--h5)}.z-variable.z-function,.z-variable.z-annotation{color:var(--h5)}.z-support.z-function,.z-support.z-macro{color:var(--h3)}.z-support.z-type,.z-support.z-class{color:var(--h8);font-style:italic}.z-support.z-type.z-property-name{color:var(--h8)}.z-key.z-json{color:var(--h4)}body{font-size:16px}a{color:#9e358f;text-decoration:underline}a:hover,a:focus{color:#65225b;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}h1{font-family:"Raleway",Helvetica,Arial,sans-serif}blockquote>p:first-child{margin-top:0}code{font-size:1rem}@font-face{font-display:swap;font-family:"Raleway";font-style:normal;font-weight:700;src:url("/fonts/raleway-v28-latin-700.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Raleway";font-style:normal;font-weight:900;src:url("/fonts/raleway-v28-latin-900.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:400;src:url("/fonts/source-sans-3-v9-latin-regular.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Ubuntu Mono";font-style:normal;font-weight:400;src:url("/fonts/ubuntu-mono-v15-latin-regular.woff2") format("woff2")} \ No newline at end of file diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8599bc816b07223f38b384d125f61cc0cdae94 GIT binary patch literal 2832 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 GC;tZZX4>Td literal 0 HcmV?d00001 diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..747f5bb0f91619d01cc9eb2b09dbd14b1629fa0e GIT binary patch literal 2605 zcmb_cdpMN&9)DkE%(#z`RZhK;OY3sniW#Y1=H@yVq-e&Najjfp3f*X8W+Y>}*xU*m z#fq&+QO9Z{)}`ZCq;+hCR1}j~6zBEW^>p?;J?EeEd%o}Y{{8*F-_P%TeyMa%imK8Y zB>(_aU8qDRBCD1@tUSV%G^Y^`ph95}7yxc$D1Qn>BR0gNGCcs`un_Y5Q4~rK#Bv8i088DA~I4!;AME8VlzZULNLh=X@etnm$2v} zq63db7m~JeICNn;EscWbMziBtG!YrkBjW?v3^4^C%=Hjbkb|~x*o+is0*8qB>B%gH zh(!}3<9ta=bA3Ty3w_OxV6qbW?|qg%%Lxcp$e74zOU*0|#X+D$LVs4JAST&95CH_C z0D8)@vdj@+mlb53Wrge*h#-LI2q4HN%gzW_oIG!cCzjYUskF_7C|0pUwPmhNRagyb(SE(*yt4CIe| z!e@GVA@cvRB1J;}DuPIuY`t&l(;=ho8coIAA;PW?pALgYJ-0AfBaZ$bH+Ew4z~wa$ z8h{wkDgiX;@R5NEnV|kZLGU|J;{*0^#Whe41@={`Ddgcnd9+bMc{aFbCngK*+%=VB z*yWeov*+VQ7jr}g}&eR5PTAw%ks;A>>ZQfEO_s7|CXJIjH1n@j zk;c6p4X+$0;2MsFoc(<#?f8@SD%7}p_9?})&$rDSt;N2$H=%DrmF$s*PihV6yLH6C zSDJQ9(}o528U*43MCj3Ai^;-aK^q4qBGHiQSU9B73+L8T69ZdByb|=SDH>^H;=<9T zp8Qi+p$oGeuMMb&=Cz9SJMmeT58ZI_IS$YI%OkG}_N=49wM8YnaUOe1q1j2TqJ1(~ zPR>3zX=IgPXjkpy7`S%6$M;Sw*RVPB7gG=(@%z5c6_)zG@P;d4^zWbQ);j@bR$re&&nWvTjTNsYcb~B<1 zlL_XgVimu-vunuGVsc@-+4`X@cz;G&K$CFaG^V1L{u+l|x;7Ch9^TbvKYgcS+2 z`n6F>SIVJQEDA128xolL;)>#+W~Fl-RP?5uY?qIFeJlL_W`RTM)_Y4gZ+i2#w?bK0 zr8cQrFx9x=Gr*UsGovO-E4kJ5@6wfI6^3utUi@LEq33-f4l8?3;h?Q9=3)!W74>_0 zj(*#7>bR#BvdmXwayJHN*52=8It)8>=0MbOld0_CnBN8asf@v~h);dZt?2cyhM|}u zRE;5;b^EoZ{Er7X#Bw8w4ScV^ouTS+zsAiAuC`TU`dsJ-N9104W$S(JaM=+HyB-aT zDtiHGYve>;?-4@Js?RxhxBL4k-83kucMdE=Fho^cmsl%yEp zt`;DDcu+bJ&;iR=I>&=dv*rs*0-^~e7T!BUhu3C4(AoIS$@qgu!V6BcfQf@=m2XCE zSFH-f`(b6;Xxry@{%4?c?V)=3SlAAUb52YZZphMv+7M%_GxRo!UzqMISww|jg9g`i zo;3Q^KX&Twdj>4|T!8T~ZpzsHSw&fvre^#4P=SBOgF)``&*ocg>ul8Lf=(o+)r`+% z7TU2j67_E04A(vLa(XDUFS2{ptdB9jbn@6g;*!cbN8)a+?Smcb??7U`;u5{mTF%_4 zAw(%nylkWWE`K-t&Ng=8g~eq76r)01pKvas*$8bFccnQGQc!=TVm*CB?aa$}xR~U5 zbhh41@^)Gf8TZ@R)t2KY7r}2d8m2b+|K@A#Q#$#f&2U4Rh3u$;sg=BO)2$)uf^<%s z_wsbz&lQJEYGhHSr~zDM+e>3l~q#T`eK=ub_$ z&dF~Y+uM8YvcA>%3J(Pa`o^zaVj}L@K%kQRKN34@D9_^$6HQ04*ayJvCwG~D!Q$7QGH9hg=y@7HOXZB zPDMF+?O$HF>v+uK-6NrjbTs%fr_Gtj5r7NHlUU)z5&RpCKPuM% literal 0 HcmV?d00001 diff --git a/archive/index.html b/archive/index.html new file mode 100644 index 0000000..eb54e37 --- /dev/null +++ b/archive/index.html @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Archive | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

2024

+

Documentation Best Practices in 2024 -

+

JavaScript Code Minification Report -

+

The Haskell Playground -

+

Welcome -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..c5cfe02 --- /dev/null +++ b/atom.xml @@ -0,0 +1,96 @@ + + + The Haskell Programming Language's blog + + + Zola + 2024-09-15T00:00:00+00:00 + https://blog.haskell.org/atom.xml + + Documentation Best Practices in 2024 + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/documentation-best-practices-in-2024/ + + <p>In the Haddock team, part of our mission is to help with writing documentation, and promoting best practices. This article will help you write the best documentation you can!</p> + + + + + JavaScript Code Minification Report + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/report-of-js-code-minification/ + + <p>The JavaScript world has been battling for low bundle size from the very beginning. +It is now our turn to enter the battle</p> + + + + + The Haskell Playground + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/the-haskell-playground/ + + <p>The playground (<a rel="noopener" target="_blank" href="https://play.haskell.org">play.haskell.org</a>) allows you to run single-file Haskell programs right from your browser, and share them with others. +In this post, I will introduce the playground and give some implementation details.</p> + + + + + Welcome + 2024-09-14T00:00:00+00:00 + 2024-09-14T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/intro/ + + <p>The Haskell Ecosystem plays host to some amazing projects. Talented developers spend significant amounts of time, often their free time, helping develop, maintain, and support this ecosystem that all Haskell developers use. This space is for any of the developer teams that work on Haskell core infrastructure and power the Haskell Ecosystem</p> +<p>This blog will provide a space for these efforts to communicate with the wider Haskell community. Things you might see here: call for volunteers, project updates, requests for comments/feedback.</p> +<p>Blogs also form a key part of an ecosystem’s documentation. We’d like to take this idea to its conclusion in the Haskell ecosystem and provide a place for this high-value documentation to live and be maintained. In addition to helping out with editing, by hosting the posts here we’ll also have shared responsibility for maintaining the blog posts, helping prevent the all-to-common bit-rot that occurs on blog posts.</p> +<p>There are already a few posts to get the ball rolling. We’re really excited to share these thoughts with you all.</p> +<p>Happy Hacking,</p> +<p>José Manuel Calderón Trilla</p> + + + + diff --git a/authors/hecate/index.html b/authors/hecate/index.html new file mode 100644 index 0000000..a643ecc --- /dev/null +++ b/authors/hecate/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hécate | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Hécate

+

2024

+

Documentation Best Practices in 2024 -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/authors/index.html b/authors/index.html new file mode 100644 index 0000000..313772f --- /dev/null +++ b/authors/index.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Authors | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/authors/jmct/index.html b/authors/jmct/index.html new file mode 100644 index 0000000..03a0114 --- /dev/null +++ b/authors/jmct/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JMCT | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

JMCT

+

2024

+

Welcome -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/authors/serge-s-gulin/index.html b/authors/serge-s-gulin/index.html new file mode 100644 index 0000000..27615ea --- /dev/null +++ b/authors/serge-s-gulin/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Serge S. Gulin | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Serge S. Gulin

+

2024

+

JavaScript Code Minification Report -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/authors/tom-smeding/index.html b/authors/tom-smeding/index.html new file mode 100644 index 0000000..1461890 --- /dev/null +++ b/authors/tom-smeding/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tom Smeding | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Tom Smeding

+

2024

+

The Haskell Playground -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/banner.png b/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..b80b8e9d07ee2df3fd0d23ca2bbfbfad99c71632 GIT binary patch literal 4536 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 + + + + + #da532c + + + diff --git a/categories/community/atom.xml b/categories/community/atom.xml new file mode 100644 index 0000000..00439f7 --- /dev/null +++ b/categories/community/atom.xml @@ -0,0 +1,34 @@ + + + The Haskell Programming Language's blog - community + + + Zola + 2024-09-14T00:00:00+00:00 + https://blog.haskell.org/categories/community/atom.xml + + Welcome + 2024-09-14T00:00:00+00:00 + 2024-09-14T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/intro/ + + <p>The Haskell Ecosystem plays host to some amazing projects. Talented developers spend significant amounts of time, often their free time, helping develop, maintain, and support this ecosystem that all Haskell developers use. This space is for any of the developer teams that work on Haskell core infrastructure and power the Haskell Ecosystem</p> +<p>This blog will provide a space for these efforts to communicate with the wider Haskell community. Things you might see here: call for volunteers, project updates, requests for comments/feedback.</p> +<p>Blogs also form a key part of an ecosystem’s documentation. We’d like to take this idea to its conclusion in the Haskell ecosystem and provide a place for this high-value documentation to live and be maintained. In addition to helping out with editing, by hosting the posts here we’ll also have shared responsibility for maintaining the blog posts, helping prevent the all-to-common bit-rot that occurs on blog posts.</p> +<p>There are already a few posts to get the ball rolling. We’re really excited to share these thoughts with you all.</p> +<p>Happy Hacking,</p> +<p>José Manuel Calderón Trilla</p> + + + + diff --git a/categories/community/index.html b/categories/community/index.html new file mode 100644 index 0000000..e55def8 --- /dev/null +++ b/categories/community/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + community category | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

community

+

2024

+

Welcome -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/categories/ghc/atom.xml b/categories/ghc/atom.xml new file mode 100644 index 0000000..e5a63fb --- /dev/null +++ b/categories/ghc/atom.xml @@ -0,0 +1,30 @@ + + + The Haskell Programming Language's blog - GHC + + + Zola + 2024-09-15T00:00:00+00:00 + https://blog.haskell.org/categories/ghc/atom.xml + + JavaScript Code Minification Report + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/report-of-js-code-minification/ + + <p>The JavaScript world has been battling for low bundle size from the very beginning. +It is now our turn to enter the battle</p> + + + + diff --git a/categories/ghc/index.html b/categories/ghc/index.html new file mode 100644 index 0000000..e5ebb81 --- /dev/null +++ b/categories/ghc/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GHC category | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

GHC

+

2024

+

JavaScript Code Minification Report -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/categories/haddock/atom.xml b/categories/haddock/atom.xml new file mode 100644 index 0000000..cd0cb3f --- /dev/null +++ b/categories/haddock/atom.xml @@ -0,0 +1,29 @@ + + + The Haskell Programming Language's blog - Haddock + + + Zola + 2024-09-15T00:00:00+00:00 + https://blog.haskell.org/categories/haddock/atom.xml + + Documentation Best Practices in 2024 + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/documentation-best-practices-in-2024/ + + <p>In the Haddock team, part of our mission is to help with writing documentation, and promoting best practices. This article will help you write the best documentation you can!</p> + + + + diff --git a/categories/haddock/index.html b/categories/haddock/index.html new file mode 100644 index 0000000..170adba --- /dev/null +++ b/categories/haddock/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haddock category | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Haddock

+

2024

+

Documentation Best Practices in 2024 -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..3111597 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Categories | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+

4 Categories

+

[community]1 [GHC]1 [Haddock]1 [Playground]1

+
+

community

+

Welcome -

+

GHC

+

JavaScript Code Minification Report -

+

Haddock

+

Documentation Best Practices in 2024 -

+

Playground

+

The Haskell Playground -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/categories/playground/atom.xml b/categories/playground/atom.xml new file mode 100644 index 0000000..cc7ce9c --- /dev/null +++ b/categories/playground/atom.xml @@ -0,0 +1,30 @@ + + + The Haskell Programming Language's blog - Playground + + + Zola + 2024-09-15T00:00:00+00:00 + https://blog.haskell.org/categories/playground/atom.xml + + The Haskell Playground + 2024-09-15T00:00:00+00:00 + 2024-09-15T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.haskell.org/the-haskell-playground/ + + <p>The playground (<a rel="noopener" target="_blank" href="https://play.haskell.org">play.haskell.org</a>) allows you to run single-file Haskell programs right from your browser, and share them with others. +In this post, I will introduce the playground and give some implementation details.</p> + + + + diff --git a/categories/playground/index.html b/categories/playground/index.html new file mode 100644 index 0000000..036f507 --- /dev/null +++ b/categories/playground/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Playground category | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Playground

+

2024

+

The Haskell Playground -

+
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/documentation-best-practices-in-2024/flow-of-documentation.png b/documentation-best-practices-in-2024/flow-of-documentation.png new file mode 100644 index 0000000000000000000000000000000000000000..46b28c1516a106c2e4a01df1ca1ee60620023d56 GIT binary patch literal 39152 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 bU;JleyR7oD)0Hcm0SG)@{an^LB{Ts5e%)%$ literal 0 HcmV?d00001 diff --git a/documentation-best-practices-in-2024/index.html b/documentation-best-practices-in-2024/index.html new file mode 100644 index 0000000..78b6a9e --- /dev/null +++ b/documentation-best-practices-in-2024/index.html @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Documentation Best Practices in 2024 | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Documentation Best Practices in 2024

+ + + Hécate September 15, 2024 [Haddock] #Practices #Documentation + + + + +

In the Haddock team, part of our mission is to help with writing documentation, and promoting best practices. This article will help you write the best documentation you can!

+ +

We adapt documentation outside practices to our ecosystem, and leverage our own technologies to empower Haskell users with their documentation work.

+

Let us see some of these techniques, and how the Haddock team can be of help.

+

Writing documentation for your software project

+

Justify yourself

+

When you create software, there is a pipeline from your brain straight to your code. Your decisions — such as the libraries you’ve used, +or your program architecture — shape how your code is structured and written.

+

Unfortunately, simply writing the code isn’t enough.The reasoning behind the decisions you made is as important as the decisions themselves. In the short term, solving a problem may let you move ahead immediately, but what keeps you on the correct path is understanding what +brought you to that solution.

+

Indeed, your choices may not be as popular as you think they are! Of course, you decided on them because you already convinced yourself +that they’re best. But you have a user base to convince as well, and they may not see things the same way you do.

+

As such, it is vitally important to document which decisions you made and to justify why you made them. If it’s not immediately obvious +why a behaviour or a pattern exists, future maintainers might be tempted to drop it — only to discover too late why it was needed.

+

The reference flow of documentation

+

Not all types of documentation have the same life cycle. Different pieces of documentation are more or less stable, and this determines +which can act as a conceptual and theoretical foundation for your project.

+

Stable documentation

+
    +
  • A README without code
  • +
  • A vision statement
  • +
  • The value proposition and the core domain
  • +
+

These ought not to change much, because they describe the basic problems that your code aims to address, solve or support in the long run. +While it is normal to fiddle around with the boundaries of your project at the beginning, in general these should change infrequently.

+

Volatile documentation

+
    +
  • Documentation generated at runtime
  • +
  • Code examples
  • +
  • Tests
  • +
  • Configuration
  • +
+

These are expected to change frequently, as your project changes, your API evolves, and you change configuration options. +Volatile documentation is expensive to maintain, but also very valuable, as it shows in a concrete way how the user can interact with +your project.

+
+

“When you refer to something, make sure the direction of the reference is from the more volatile to the more stable elements”

+

-- Cyrille Martraire, Living Documentation, 2019

+
+

Documentation cascade

+

Here is a simplified model of the documentation cascade for a typical Haskell project, from the most volatile to the most stable +sources:

+flow of documentation +
Code for this diagram +
flowchart TD
+  A[Docs of your project]
+  B[Architecture document]
+  C[Official specs for your domain]
+  D["Docs of a core library (base, text, containers, etc)"]
+  E[GHC Manual]
+  F[Official specs for what the core libraries provide]
+  G[Papers]
+
+  A --> B
+  A --> D 
+  A --> C
+
+  D --> E
+  D --> F 
+  D --> G
+
+
+

This can be read as:

+
+

The Haddocks of your library or a third-party library have a dependency on the official specs for the domain, on an architecture document, +and on haddocks from the core libraries (base, text, containers, etc.). +The haddocks of these core libraries depend on the GHC manual, official specs for their own domain, and papers.

+
+

Keep in mind that while the Haddocks of a project can refer to the project specs, or to an architecture document, these documents should +never refer to the project's current implementation. If you must refer to the code, point to where it's located. +The (current, volatile) code cannot be the justification for the (planned, stable) architecture.

+

The GHC manual is much more stable than the haddocks of a Core library, which is why documentation should flow from +the library to the manual.

+

Finally, papers serve the same purpose as architecture documents, where they describe techniques that may be implemented, +but they should not point to code that is subject to change – lest they point to a library that has evolved so much +that it no longer relates to the paper.

+

Example: The Set data structure

+

The Haddocks for the Set datatype +(from the containers library) are an example of documentation which follows this model well:

+
    +
  • They point to an overview of the API (here: volatile)
  • +
  • They refer to the papers that have informed the design of its implementation (stable)
  • +
+

Understand for whom you write

+ +
+

-- Diátaxis Framework, by Daniele Procida, diataxis.fr

+
+

It is of utmost importance that documentation answers the needs of the users, and for that we must understand these needs. +Users need specific kinds of documentation depending on the situation they are in.

+

The above quadrant is the Diátaxis Framework, which maps out the entire life cycle of one’s interaction with a system, a program or a library. +It defines four types of documentation where each are a combination of Acquisition or Application, and Action or Cognition.

+

Tutorials

+

If a new user in need of actively acquiring some practice with the project, they can safely be pointed to the "Tutorials" part +of your documentation: it is the part that focuses on "Acquisition" of knowledge through "Action". +The focus of the tutorial is to make a prospective user acquire basic competence in handling the software: It is an ice-breaker.

+

How-to Guides

+

Someone who needs to perform a task that new to them, but well-known to their group or organisation, will be best served by "How-to Guides", +which helps a user get something done in a safe and correct manner. As opposed to Tutorials, How-to Guides are directions that take into account the complexity of the environment +surrounding the the user and the action, instead of providing a

+

Explanations

+

However someone who is in need of a deeper – but perhaps less immediately applicable understanding of the project – +will be better served by the "Explanation", which serves the need for thought (or Cognition)

+

Explanations bring historical and technical context to the current state of affairs.

+

Reference

+

Finally, a "Reference" is a description of the interfaces and mechanisms of the software. +It aims to provide factual informations that is authoritative, with no space for doubt or ambiguity or design questions. +The best way to obtain reference is to make the system aware of its inner workings, and have it spit the reference from its own code.

+

Through the lens of Diátaxis, the module API documentation produced by Haddock is a Reference.

+

The OpenAPI standard for documenting REST APIs is also a Reference, although some less fortunate systems find themselves +with no ability to understand their own mechanisms, and thus must rely on manually-written specifications. +In Haskell, packages like openapi3 help with rendering an OpenAPI specification, +whereas companion libraries for web servers like servant-openapi3 +provide you with a way of declaring REST APIs that can be rendered, even at run-time.

+

Do Not Write The One Documentation

+

It is not just about filling out all the quadrants like a checklist (although they are all good to have!). +Instead, it is about understanding how each section focuses on a particular combination of user needs and situations.

+

The message of Diátaxis is that you are not meant to write The One Documentation that covers everything — +inevitably, this produces documentation which is shallow due to its breadth. Instead, focus on the strategic aspects of your documentation, +and you will produce documentation of better quality, with a clear purpose that it can fulfill more easily.

+

Reach Out

+

Should you need any help in writing or proof-reading documentation, please stop by the Matrix chatroom of the Haddock team, +or ping us with the @haddock group tag on the +Haskell Gitlab. We would be more than happy to lend you a hand and discuss how to best serve your users, +you included.

+

Read More

+ + + +
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + + + diff --git a/elasticlunr.min.js b/elasticlunr.min.js new file mode 100644 index 0000000..79dad65 --- /dev/null +++ b/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>dTKb^e|Ge%(L> zl!9na4rreM=6ZoO#s;*N`F8+CAj*K;X1^{V8=^f0tQc--F<2#>3uHuqU5+dQWCQI2 zl0ZZL|Nno})V&huVegV4KTzN?FfcJP)-Rr5*uJEOJNo^k#=k$3S$aMsZo8!|bMj=w z)5X%^@xHa+bC)v5?z$dO-_pELz2?uq{1xl>-tdanuzJ3Tv+8G>a7Ue;_RL2>!x)pi z-Cg`76ASMHIqW5#zOL*qIQWGH40Kk9^8kewdb&7)+Pn#aROY{tTCW_H`kzBxE2 zUbC{W`f0IygMwwx-OwXvWnW0_xIEL=rgCqCT|+e=%Z-~e4Qu!r+@mBjbQAwv13Ff< z#5JNMC9x#cD!C{XNHG{07@6oASm+v>h8S8}8Jby{SZEsC<#g|S12gTPs_|nRVb+}NL9!zC`o2usF?Hk6AwpWn1;qF|I=qY zp9V27D|725a|bP0l+XkKf#xmO literal 0 HcmV?d00001 diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee39cd66dfd322ff8a4c73efa72f07aef8d380f GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081EX(%Plzi}L0mwat5s5b zKwCsWD?@l`dSE?}3r80E0YC*11Q&!bTr3k4f;!={Xlk6yR_o0(NHhGbBIJj)S;9NmW@Xw+EsmCOf#50W0nGgnD?18x;lakH-)r2RIizB z+sV<8)hT;JsG8k9g!RQV4=c;vI}R~iS(x`u!P~}W@1BEpA3uKm+{%>0)nJ$S@w;fD5{pYMwFx^mZVxG7o`Fz1|tI_ z6I}xfT|?6lLrW_|Gb9nO2Eg!b-ZoOn~VP#?O$s)|c z3N8&Mhf|o9H-{*kzH#NmkuyhRj3$g6vxlGZ)Q4Wl|&3g#V=xF2wEu676^{*1QjxE2@C*0@pIVS5qTN zWu0O-7$@s%9|V+oRv|RUWo99=gIZBCGTw-QqvTK`POp_!+YSsQN_UjeKA;pYawj!0 ze+^@7mjX(yyhAsAAW^!j4+xYP8Gk?wpQHdHN#U*IUdQeS0i|$_49&AMS0OOjDnh-g zk{U{!=+*Knn`0nQ3fqbMic)%F{u&q}lw?N@d03bj>*{(`kNpW0pB#aN9Lcpl|HKAmn z&nTrO<-dW*b|_V)cEA3)!(XjyDPFL3DoE@!A{y_fE4l#vdnk9cNO6(&oC>1R%dNzVd z=>uv&XkN^U$p*=I76HPK4gf(SdcDr;+;diYMhwJtWtt^5LjmLOu-HALWT zYHfb;!iAcS)TF#D1Zh7a=#<`11TF0W-84~^tYDR5EzxfyFvT^!rO7}-Oy)9VtP~OS z;gO&=KLw*t_*_3*7i^ngGz88e;CQvm>HNyLU6nc;oMqc40LW2W*HfwnOwr39)fpns zA;Lu2qzplhr@>JqK6cWR3fu%}K~#VDZ3RL^ndNR<#rFBzM@kXoMZ~Fcd-XX2s_1Yy z({!bIjzA}6QGSL*>=S_Sk&?ZD9w>ddurQiQlIYR~*#$kM7y)x^#!^73ObMM19*RBL zPTZ*L)J>gHx+en(G3iT?=_=&V0V01p56#q!4yU}*s({^MnP?ox zuKEBWY?5}OMEr=WDtD>c!Mk)<1hk+-oN_%rrx?Oi(E)<<7jO7y)z{nG#ips2g6YVh z0TJcueIP_Ut=ye^NQ;TP4D=^D1mvd>#FbUs&i;QGJ4;K_Z$U(x7L?RX++n~Rld%|> z^jUwQLj>=;-2Qw3JMVcAlgVkEG`9J4f1uQDK%k@7M>Yb3C*)l75NxVza1>}khk(vr z`X?}_3!UE5f>MxUN<~%9VWlW^8xZIqz+ymP;TDL7b^T)Nyfc4S|C^FjutGvCk*zvJ z?HxgwdFV^qkMf(_S!$x*&KPb~KG^3*rHX_0V*^N1E za8(70dZW`@CX?MbX{M7~yki>an& zSBF{xc2^|{yb7a3fCDZstIRnX?tN&E&D;x!%Mik&!vTK!)%#1rW$?D8B;_q(z{FpQ zunh}=+JhmQTXAgT?^+IjTbN?WU(XoIPoW5Zg|4tU72o7s@BLoYY4kzYuz{i0a0G^0 d!x0#2{RefmF2OmON9h0n002ovPDHLkV1fqV=T`s# literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..410bcd7bb82b4a1ba3f414ecf3d9140302f4aca4 GIT binary patch literal 15086 zcmeI3U2GIp6vywn$buAFL8QitH4!BtK+%W=4Fx|QKy8;|lmrSzl%S$Cnh;Wfc2i4> zkXQwbuZn~w#vqs=nh^KFkNBX*#6%#3EGX8G2RAX%MVF4hGdp)3rZYR!?hdHgP5yi4 z-h0kH|9j@ly?5{KDiu*tRad8wwW@!bQgfA3wY65cN~zP-RUxH){V1ijqc9yEOjIk7 zdh>O2PL$uv5hzEX9D#pB1Rk4z|C9o#rft0DxjnwB5>$gJE|B_(AfokyN^C}hYk^z8 zQYU?naqAC$uYnWbxC>5Fw+}EoGcU(i#lbh=xC>5D_X&_`dsr`Qo^;Y1`mttLxym4rDy|%ecM+ zvTVv2{QR9q=PBKHA&K4ua1ay~54ep32Y}Z-kov=*(i+3F_>{PK`8`dWZyupjl755} z+-8EHc~o@V;9j!(sP8fSFG(K3z3B04&UOj^OOi*W%o{s@xehyz!pIw!F@%ywVdaer z|4{M>{u@A`d246m%ag%$aBCqrx$ANWdGsmV3$0W6bpyVWz`NjQ@M9rpzHYL_^O4tD zq3c<PJaTfk=grmddS7!3 zBE5Lq>qE{Xd)~Ce`9cuhTF1`Q>pH|dvgb`DoL&HX!S0~&;_R$v46{HAcbk0dpVysPG4b^L*PHG&k4nh3GSh+XTpg*xefGzJwbEEt`}rn@DF7_0S}pP zjsV|z-b=@iKiot3T##R@ll@Tvj6dt-D8?wzIGgMTRVjhnAh*M*rkrRM7FFU-7g z`U;~A|8m~^vuFEX>~F%z6K9|Q@w~aL=jYB?4!2C~FZ=fw!{uz(hyP{&{>aX!d|i$} zIRfPf{8u7im@lPSdfFg}q3LgGk;+B;|KnwO}F0 z|4yrlLitsWfGq;-a~6YTpxJ_4FNn{sk8)021Dajn`kN11w{q4z8!WTg%JqZ5d~UQZ zzIwoUAm`MA3*e_U^X^-;qq+44^uGXdKAp8Nh&%ws={}s2wwu70KynFvfOa6Ux5wcZ>po1y{wrXQfn4{4{C(hB;_j;_ zKAkW8P68h|{0o;r_W{3G0oLn;LEoa|=D&#NfP7y$j((p81Hd!x zy3NDCU;gcJkGq-gbLjgFaLspTz0*Hq_kRBB&GpD@o{@Z?K>vrGJ_?oX{)>ovfA`X* zhWFD{Z|m5b{+heeE(_h-|rg#q3pl?{Fd9x5s(Pv&KE9zk4CeV ziLT6z$wa0hl}tCJT2meA+Eyb|r;?fKNN09TR1H>u(J^Cibfqy^QK7P9s#T`CPG$H* zS-Q5vNVOV9Drp$WgkdDQ3?nMX94;?8r;uZbT97}d;J;?2e({`Lq5JISzZ}e)zW?VC z9j%9b2ax|<^tIjFG>83H4{dLOEg(M!b3F<40%_X@%r@*+fM0>^;a=@-YDv&`0mzfY>*FCVMNEE3xq@VWG{ z2HC#&k>%)}v-IWv2FI-HXRzImexA3!7XNTA6u*5tnzmh!{-eN*nO$P*cmHPSF}g|Yee=i7PS;@{ zD1WuSQ(`~t=f~McG3DG@s8YKJluCf!&y@O@f32Kl@;F-!>cB$kI%wllT>|U|+U{@t C+f}~+ literal 0 HcmV?d00001 diff --git a/favicon.svg b/favicon.svg new file mode 100644 index 0000000..c67110e --- /dev/null +++ b/favicon.svg @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fonts/KaTeX_AMS-Regular.woff2 b/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0acaaff03d4bb7606de02a827aeee338e5a86910 GIT binary patch literal 28076 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 G2<`xUL{2yW literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Caligraphic-Regular.woff2 b/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..75344a1f98e37e2c631e178065854c3a81fb842f GIT binary patch literal 6908 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 CFgb+) literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Fraktur-Bold.woff2 b/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..395f28beac23c7b0f7f3a1e714bd8dac253dd3bc GIT binary patch literal 11348 zcmV-aEUVLZPew8T0RR9104!7h4gdfE08HQj04x0f0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Main-Italic.woff2 b/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b50920e138807f385d0b0359f4f0f09891f18406 GIT binary patch literal 16988 zcmV(>K-j-`Pew8T0RR91076^<4gdfE0E4su073x(0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Main-Regular.woff2 b/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..eb24a7ba282b03d830fa6c63ee897d92a5188736 GIT binary patch literal 26272 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�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 bkH82T%!~T~dOL3iZSfI!+IWoKhyte*`46Vs literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Math-BoldItalic.woff2 b/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..29657023adc09956249f6295746c8ce4469b50d3 GIT binary patch literal 16400 zcmV+rK<~eIPew8T0RR9106-7`4gdfE0D43K06(+<0RR9100000000000000000000 z00006U;u$k2x2I17PZ00bZfi3|sWeGGvz8}4HTsSn}h_&&m_g4$s+7>x}(e0b|zhiFmih3+Y z_JHa$ux;c|a`FyO&iVK5;5haj2M0Us5CRDY31pB2cF2N2#x@CA?hH+IC$1T5oL#Oi zTm8l{f35!3j;S46ZTBB`{Z8%g_kYV-Npt*qbNf{)Q`HU6L<5cyhmJv2>TM?E4I!B; zTrs$#{npsIL(Zb)U1m1L)1HRv;hxQZYYB2DMJ06qtE=2;?F$=%RNirU)ujURtb7>?5s{7KnM;^!<)4(Fm5+BJ{pbl7Y+ig#pY8WtNs@R;Tv}Vb2zWA1jQzm*#o`3DI zY!Lj&klRuUKmwu&j_kk{H`eCp-_vbX8mEgy4^o9{Y;D`8bQQe5ncy0wN9SLFsawuhEI@!jD6#EQ9wi)K3zoxV;?`!a^soM1A0#+O2q9KiRK~gx40mr#h`^il zZVIM5HcJKuSG5?>jK5AE+syVBx&R<)q*ZxDgS_aq3?!Y?rd;$kJ} zznvM-#jF)AbEqu~X<-Qmg2H62$`k9B)$6!d`Tf6NKjrJ0h5H=%>B@|McT8H*%y`vb z(%rk>@RCE*6N6rnrAbrV{r!LUjAD%&0?-v-O(btVFYk|g>A9-v%&i0jKer!j?XGS& z<+bDDY`-WK+F91kb{WD=t*O*|E9?6lh zmQXXHp!8Y@NHBUw0BY;l5r$Z?jtJ14BAd4+e3v8LqOKEP;%_?Ao?k!C_D5stN`Qb#dilpsL~Lt7xl?!e&&4S2=E zR{2+JNlWaH`b0~xsXo`8-vLLO+@wrgzj0rcEa>Pjcu^EFD>bx0qSJ`!4s=W)SB7DX zyeW+chsOzOWsuXMyNTP2sw-^>J9!)tN(MreuiV;}0bNt7IZIc#j3n1`#guNA&>Xg4INZAV3h}GAY<`bg8ox+~@ zEJqxB2|yuNW{M9&^Gdu^OA0)0gm8&_rxmUklFo)kf)TlsEy77;Lqu5J3xzT2=~ME@ za^gr%^4no`_dRXwz8N{T7zGk__bri%5HwFB)V2_IUxXhTJ|DrhfQVmM{8&nc`@9M2 zXW;`Y>&Y(L$PqX$=~u5($l+$x_;fizt0k1976`f_JpvLcZ9z((ubTuD1zh$5Mds0` zz&!azxO&7(+3ute6E`Nj_ec=&1{1U*o(*p996V7+3I&pM9Hm+ZM5e<;t|LUDGl)`W z5|xe;way|M9U~b!dwMn`4h@Oc)x9972tJC&*aY9UL5<3vTYEF-@6WWD;D@_Uf_DBs z#D|;c(4t2%pcqk1C}xyQ6bnigiWNO`fSS0@6sQ>5_QONDm4#ZS})jb=GnDsb<++9`MP5Y5ABCCsK6# z1OcgPe*jTu&{d@OP3B5o+H(0WaRW7mZg_-({3&wupt@5#7L1uiz|q?Lg($F4&rmf* z$WS!B%X!n#M3@kc4ExS+zAZ>;>*i}1Sp-59rFWX)PddDH;Yom8c8+t70d+3;Or*FI z)w110%}-KbC%4S+y9uWZomHd4JiD)+af=)x8zy=(h%+`qq zmZ*8+O%8%Zp*R`>iz92bPPMa`3&xBf%8CvUVcQ{1?HmCwk#{g3!1tVj8kNlHDUYCV zCf$!chN=Cl7$!5g27GqiTIP&Rn~YVsBsv``>Y&5RP2xNK$2M`Sg*GAhZ2!et{QvfwD0HP(pY?U`~n}OR6++i?h=qBvW(Wt8fh;DSXe-#52$2u#kmt|A1y7QWd-)-cPnK@ma;NS8P8HC zHlbAow7S5)rnEBFW*O_UjP+T@hD~T=0c|R9ZnmA|9&rCZfhtcjU?kjR&?$Az&4KI_ zSnmnMm{_!G_h+6R0wTPR5NfxX2gN>xR`3V}X}clF^apfh;T(gnCpvu?0v`_i$`RIJ z+Ei@jh**$?k( zrfOsK`lg4QEV~?;Acltu=zD_V2Gcbn0mUMMVXrW?ONwM8CNz}N%W`~)Fa2-mI?xqH z!=N}Tl>ha&5U`|`{o@E=_R_WwIpVYF@9)~n#%%{z+rHfnV>?n^r`pF48%*NN(_bN4xTXWen6;A%fKBKh1AkiwDiLZ5&f>9 zg6qVZ=o(X4(&5o8S8@M0zKaYHDqr?5a=E zEK_S6$4%#%s)VqJaa^@Wc2!dE(cH(>hnNPUfp4xOAMInBCg>BMxNJH>Vx6eEDN|;k zWsNxONPv6#KWMji)PKrkuxR;KDvp3|cq2+8OEhoN0yNqtEY33b$_ElD0u4qA8=%$w zrdX|JEL;}($`?0GP9_Y4R3IJ4_z#+i!Z&M|Cbq^qQ3x!+n}|Nqk6ZrHqX!R`N~Ii4 zD7-q8SgYl}cH)xD{2a1TONpR}Mqp5s^kiCvHD!ZaZO|>_#-ti&1=q5@&qQ&tkVxIl?8Z4h|EbuVLwU+pt@owAm0E^WOR5=hOs!SOS zzo8!zCdTiapnT20---od64lN*=@I5;d^zd~UOhY51+b^!Y4-`-{PgMza2~SCY|?}- ziWU^4tah0Mo|cbXAB;O~U~nrmvYx_@S~m}jRc*f5oo*DLdJ%FCmh2w{u|@%=#s4LH zuz-N8_2!GfNKk?7&sfh5&W6yEVtNgvS5W`T_^ekX-cR+KtghXko+AH|f3eI(a$I4V z-$?PV=3h6i(*|nqd5=Qs328S_{l>p?b(wGOGEKf9drHgyIC99<0tT*Dd=xMLMALs4 zz~ZI|RQt*5Dw(pa6)s1w*#dg<{{j$IV{8_*zaddF@mwSDtR$a5!siYB!5jaZ_!2+l z!GLS2*Rhz}ED=hmEUj$0f%`%wFW>3wl5ON@gn+Z$C|{wi;Xe1gFebxk3{!{ICZ}x5 zy6}uB%p!i68ptk%+5c|NWSubWzH?q!Ur;VE7Fz9b zU#Y}Tf{TQ~*=rojW{X*8c9z>Wh+uZP19(*Xk5I%S6VFfB$SXr5>|bN|he758U|MC1>v`4Kuj+J5F5e=O??MH`ZIJS3 zP`wEK?CCHbTC%q?E3Z+e+Inww88OH?d&7t^n{C?>;U0gb9bD`y<0~?sC`A51fIQuP zjpSp0f+q@#eWQEcr8pkTz-BwjdC@XgWwYRfN`t%1My+#D6v3pjAbl2=FUT3K^~_X; z-)IRK3&;npTt)lwr~Mkw83e=JpAF&P2&i(%_q{I-9wNP6x^Hm_T*K$A`&v`qr72NI zAT#W*r374hzJySJ=EeRmYcp?SLp8c=C1gpvw7P9iNfD!OvU_WbrzG-%o9(0`_u3WDGFa2TGgpJ(A z$gPglL(;}e=q)r5p z$C&ZESV}y}fXdDSBS$Tq#l4Uo6w|`O-S#&P!yA!Xtd`P$;ZwWnf_d zCPTWG$P9uqtUnC)sO^n~XLTIotH33S6oNm{sx1*t3HGAV|Adx}?W8^PrScYg!g`C5NLJZnUXz zjkx(TKcyL9VuAB0#5mUJ^cW=&%2B)4JHSt#7w<4FGE9XwW1e2l#4$Qi<-9n(Ndbq> zDA1>pu#v21wC_<6Z)9dssviDd!Plha?NOTdBUG$;%&LOS#8SJ8^C5^_&O zZFfZ+rPymKad?K45-M|L>?8*G%?14%aRexz3Xef%&~Qze=aUy2x26^Fd7#`-@81lw ztb&CD#SN~Qv*+|TZDJlv{mdJ1`Z8c`e61a894SihH5^)_htbfyD|5`boYb!7d5Pq! zR8ms_BZ(+_IO|0h8hXSu!De&hVR?+DHYGrL-`$e!iLPP+yzCnT*EQIw``4Im5yIfo zHwm_9N(T2vHL!fcYXwbK=0g{+KuaGHa7D=Rt&>ouMP|TMt+SDjx^u%D;Rd=Jm#hm} z9Wkw}<4w!_DTn$Ikm2^1=n3pLLy%fyWk&mC4Rsr*wedJ*a*eqnZF!5cT+QXIuB=Aq z^nqRh;hf5^;-J|F4iAO;Fz5p{&X1ejZHCObnYNyp;x0tFGFc@P^-pPuARS#X41}la z#yzkwF1#5ge%dZk75)UGbA#BubbLSl=PDr;*tRIjd+`RioSg)Up-}G5_9TUx0;g>? zpMi;hvTL*62<32`S2^s&Qw-DoXfIQy)EdRo`Iwk1LI3r5*!&BPoM5l4OJgL{u+ItB zmksAdF5DI_yKMF0T%norSxNWfvVj`HgSuuLfgVuB4agXWSf%fQyA6PS&@ zYy`e31PHvlZF#G$W!A(?)`>qRFO}PE5OZcDIhQn!FDOp-a}^hXqpRj!&J>a5XlN2n z(!Mk8&{Vd!&@$hm3d65bph~~cv4oQ~Z^RwlU9C|7dr!n&I)@79of-(sss6QKrCv7O zxpQ@TB0lgeu1>bhD%x zCRsyN+PlK=A{E&666s=KU8n)e%ysM2HF5cvJ5=lCVZcd75wD7?DyNU~k{!xe3_ z_tnCtqhWQMmiMS2C^sy-OJ@Y}P?5BBJpuX_e0w4t*tTVZICA{oTg8MjI|2ReT<@7s zbe^vKsJiSluHja24Zox_G_e!Vd(NBFrsc6($Tp8sF4GPB*I3 z-Eu@eJc4}B>#{hqAS=mMGK@-w6FQUx@f3%SpLFYMwfyk@qxEV$psgl>mhTC$snT%g z!aD2L8J~qt^f)l5W}My7{l548+*C1aZlp`^Cor15-g5Prw%n0OS&R;yno~ow0gNay z?SR5dGgdLRJzO>oTJtu&2voqcAcdW`1an$ylZzD*N@NCwfmp}e8VyP$IwZPZt*-gL zhibS@3G3AknSHpHW?no!$pSw_E42yJQ0lDRgTb(#-t^#Ia zE>Ibs7ZwbJr9IW1RRfC^EQFfVvRg5+o7PM#nuosWc1Ke-jzFWWT8p$eCQBQ;CD9Tl zhT?vr81M8BT{U(Zww$@4*RRj$AnMOFk)9F?-;_TzMP~xGX=9A>3mCglYeWj$WsuiU zNG-9RE7zF$1gUDU9%95iXmhMHl@$ekaWa(EGKuE+@S9vMRJ(ZHL<5UNqzG&ILeSPQcPQVt0G1u<%snZ#+RfxNC5_a#ZkrUB z%?xOP5$)#JjE#`_iBGGZWsf{#N)0rHCx90dMT`2FjYEdR zu`Uu&rm;daO4$z)8~j6LMH?v#E)#I{z zs5<7Er7N#oLZg(I=Xsvd{m&%$&nUn|G5`w|G}#2pd3YQrG0>-^=R`JY_&%-pu#x}A zh+YjFRJZnGiqn4EeRcI}#b#10@;4T|%AAZz?0G-F5A1S+O>zHZPml=&W-X_1B<0!^ zE#AsNMnGUuEYBC_IaayCi>ZYCBwD%jolp!Rg(>{_6!PS|&gL$Hu1JOdY#u=7tr#H) z3NA(xs0}Py(t71K=N1WImneZ{RuMd94IX7EMK^wVD@88x-?0|n50D#-VqX9iqQ#l! zDa5$E{<}U)kX!$>6|2LCIRI*w-N88K_7c{cWw#l}dkq(^L_iq5U*<-{)2~WgILP7K z_&R+ek5G)t)*r%!8ZKHQk(kjdl~YpFHQcYjtIXA&#(vq*pdlp|fUzuQ>v_6m>Y~;6 zD&To@qjl#nrVluR^Y?geX0iv4@3gx3p9t{HolhNn^QF$d9~a*mRKQAegth8RSlfcr z@az+Qm5pu_U9r*(*6n;AElIu8B#K+RSt5(5bVcXNAU~t!62n+#3KywdzrJNtdzqVD z7yIE&xb_U&cQ(wcB-ZJR=rH`9Bpsu^N}q=tyR3)eP`67rnCFwBHGj~oMt72Z-~vK1 zVu%yZy+$V7nUJN+Z&HBjoF32xB8sz<*r;)!`*M*EIu%8 zc`n~x_Pu5BjKhR<1w>-K0n-2KPPFG>I9@EZ2^Av?ydwkIa;#J|=fgg($eMzR* z7;=_JQ|NZWsruzoiTeWVP(kKN9ppq4bAf7)ke|Bs*r1c5d&B9;!;+j-?=;w&her@D zMx1?W9A}feTCxkevkf4Xpt|sK=gn+>v$Kn$xi;1{E8kemsH=SYOh2+&MUN60iM2Xn~Y7jKc2U5Xo0+k%r zd5ib#1`h;~9|tkhP76AfnFkcAw+A+OPxN#DN_#Q_<115kEiIij>rv=Bclm&JH%ZWI zSS-zcu_Q^q_PVaSkf4ID!BE=!!}pNU8<+fHwXp!Pl~kZ77Qqfff2dzil)l>^sHmRh zXgjZ_?|%5ysW0oqONVkpCx4!6@z;-6aQsZJ@nN&^?|SPCP#^%M=`-E=;p|aQ<-9AK ze#te{Jz}u-C*t&W)~F?yWwoOpUft;-*@Crx2fb$9S~_VGNhwcaGp$D$jO(aEmo$>s zUNC3UQ;sP*)4axzeFOJ3L@P8srBr*ni z)Pd6O+$SR8-l^fC)>m(Pb^QiEtCWzQ_|PxXuXi>%%2(W}?>r~YtshvjMkuWiJ=0e2 zhd{s-QPjn&mG7Wai9&{pYYS!xTj72IG1q48Jif25I+%{V7bzbZthlw!*BI^Hz$J=* z2xcTSE^nSPlXWBDmo>e9sV|V4_p2dreP9HN^Zf{=BA>_c5D)npfym@NVreFH3=D?keIqZr`w&dacO7X^{_t`i|h3w&rbM?4Ygh8z_NKe+XC2=mWvusAs^1c3oaP1LRGg9fmJCCsoiM8Hk{ z?kq-GeK-B}HR#9R8u={aceaKl8e~WdqeDm{&X2cQO>l;PbxkvK{LVLri)cpue@s_@ zTX3Qa>Q;|w#^AaXbg%_CG#zj$!-svdp;_8B+BFc|(*sR=0~LF;9Nx2HTW71_@Qo|l zS_FFuWt2f8&s-L{@Kw(a0(OY1i^3#_^{ z#;{O{ZOc1lm-2h|hH5NzjoB@pkx#dw_B`#6ZjH}mEg#@@Vp<6*eE8)LcFMl`>@sxI zg1?S!4}~g%Ae0h^)=}%z zN8wo0m$eu)X6-UoiFzhERHF&73f5e{Os?)S?2Ktt_XNK8SFI;1qWqqAD2X7NG4+_? z`mfL8QO9mEL9b<@K8DymgiE8I+*u-}`?NEmSu{)FD=USIigZUfBpsHxzQEcK#6*qS z?|&yPmWqf8gOfHG5Z7xU#9{~a8?c_FG{er;F%yyM?amzMg8cqi~5=UZApsGcaP8&Y?H91(Mw z$c6i9TD3s65KK+ov%#w`$y~#g%mkU{G$5t#7>ZloW~Zmny6)uU?98-sLO7k5r^@MY;{$Wzz{lghuQ}X@QhpaIembKa zkmy(>5PDo?FaEjoF7#6ze)cuD^^Y16has{&kXb9pFep_&G$X(9v+Ntbp%#Ay18>Ru zY=u!tE$UhIjPfdHq2~izVH55|J5l<51`CE*7ompfhQHyf>|CDIdTnI53l%j2#N^p*b3Kscl1Y{iw>PjYJ|=C$+GBh=VZuA z#xz4fA-h;`am&g)^)!tUVl!28Y{5D)J{%D2N3mG{TdPhkF@A7 zNr?BAphkZoG#3u?dki+Bkc^*^8HzhW&_>+N#MA%=CkRz@}8}W_% z){c`*-p16tlGNq&*ysa2WJ`}aD2?PFovfb~IC-}+kt%m|WRaJ(!`emu>guNQ$j7O| z>~TdEw{j*MckNCNQc_k>tNY|j2*x`@?7GT;|DwNPjg-*~bt>jH{kxGq&A%6%B$FpQd&3vafE2R@r;eN}(8#7uAmyy}TzyHIh6KCLs;5Sq?jYFTQbzh zzp8C``r4tpy{cdk=d#iuUol@j1zchEOj5MG@zuSoVo~H*WEV_xp?QwtDeXF^n0QR z5hJ1>twUe{QwR7zPbeTH5WfuXEg)F{24iqoLe!ka^CJ+0D4>2 z7zw1DJ!mNTjPf9tRohKQKOS114nb?XNwGg^D7=Dfy0z(Mh*-D^muL^8lsV6w$1s}c z>YPb^Exscyp8=$@jjSq}G6Lqg_A_!T3tI=CY;A{)#`VwDk?1hY*emH0+^l$eJOq%{ z@Azj0W=$0;2u4X+bXc1}-zVUnK9YpLU}Bvo1x4nmbFd)^joUI*RI9D_$KU>{$g(ZP ztL=7rCkM@jO9*#j68ouN(FbHiDWfd-coEJpC5=e{;)z9zhP#9ZF;9uX`V=&|sT4cL zZw=qV>kz_z1?gdrdfE1Myp&%!XM+{qQ&IOOy?amRl&pce6rJM<5Y*Cr; zZY8FL=Q6>M(6axIO}wL);jH;apif(g_qj+NM?|jXlO)Ismcjk~5B~R9_~Dm7Y*@WD zQU!Hhn~}&g&hzdPi9;zi9Jod1`*chc8sTKaQZXPg6{h+u`FuUQrBl;_6eDhJHygdl zs_(9=)$PQ~yXS>uw;g^*9+9e%OJAkfnk9zKc}$^NBw4_0jHd0#%8WRYQ?4GR77xA(~^ z3}*F=HZ%>Snrq_|Y}}j}4b3dkIG)za?oe4@FNDomX1~6;Mc6Y(8Sj|*>-*trJl3W1 zsGXaGnz3hmR>8L^AnlfQ!`cQXD-ofZz;`^-Y_rd!%Tw(u0wt=)$C37-YIY@)Xv;5; z4?M!9hrBgT2M;;>{fm#95$n$TugUjk(3_S?0woZzG(jETU@xUiszEONrH|<*n%LR|;674!$p*ILlQhMnBQ&KiA3sBhzl^1Iz@+U$LZyjnt+fWb=E)(BYL) z7?Ld0oVcu6u}=Ts1eyD%MgO^8b_e~kzPlkV*5f@}*AHN{zo0z?0|JNQeP6+prgiIe zYcD^mRYkHEE<$c8^tTQ2n~Kb=aj(l2SOCBE3;?IEcFa-P)y2ohp0pg=JaYGu9NJj&n`G@w+dVNaqKc}$U2inV1IYR%RVG8XxLK6(lzrhn9fQT? zC!9CGkN4uJ|A&Sk%%Q^YG~0A5<|Mx?eh3A$>`h7)Tekz1-;rrc({r7XTpK0_U4Mcg zN62G8SO1^ev!sPT6{wBmS-*P3B6Kp<`9H|d6D(9`O$77xYkttm@5t4k>7;)Nb}F*h zn=;M*zrLs$toDvxI|Rc{^7!w9`5MV$s@6gCnyi!9ryJK}BciOT!eXL}bR1 zwFhM(%frGfXE1ArgbCZS7_$P} zk39=RXZ}-fn8%ATHtZF0^sA{l1*M$%qN&>@60nuxkNgWmcX}9`=(-A5F}+SF`pVFL zXSLLsox8Q=S+e-&!njj%SHjL%ty_=CMXH2}lQ@**HR^4t(=BF*<0ee0-(H=mS*BSk ziKBn9(j(1{a~tb?WogkGa*&O7E^4gTjEhsNM_LHx*xF>v?5x2#+$tt6AG^5QS$S-Y zD1iqsJ1c)FWSoMPs@-k?AzlF#@*CXe|6-cBgskZMHKMA29k-Xj>;dl+k<1G4r`ZO; zFS$hOyX$NDCB)2!wmVzYABerOQ1udjk?<>g=m)ZjOk$s~xKJNNUnr1@54(SQeep#W z`VtrRl7i^hl&9eW<40~Q{V7zylPZe#t zW}GtZ63s*RdLAlte|F7EyeNBNFm(v*r_9+mZPEFb&Ps09N+M&ET5?{Z42{8S6Y^?) z0f)cuKe7P#AIYNJkKJ|Kmo^`wj5mz(n~DPTIkc#P&K2r5>NkR%TzV&mI9KO(5#>aA ztR+YKF~ue#rK@E!(Drm!C7gD-#JbJ8b+Ak*S}sTi7K`SUV>!z0ACC8<)FsJX3CpmH zh!PPR#mE0U`7Z`PmU_LoBmTg+ zG3Ufa32PR;YI(#zK0H00SkIKDqE1&Z&m{WV(7a|J`v0M5NV_lN``O~UQh{m5kIUw^ z2((56zqU83UhnvFApZ?hum0!<#yLL<3OPi~x#p-L!&N`U0CXWLU1+-bHm?6e5KrB{^07#wixzbShT z#LOV>l>8y)rzZ=Wd+PuD7kb~>F4kW$$nHpW-=9=awfp=P!ll3;xR3tv4+oDtS-Ij+Om^sB z@4Vs=$ifB$Jw9^#yL5GJXHveOToPP;-V5c0nV5%On*mwEcHcZT81y2q7A@$` z1VplhAUnSKG!|R~*a=iK=8`0@?SNUk9)TX&5HY9@>Bp+Pp!Chs>!7l|b@=hOzJ{<~ zeCwe#D>WFWA@#@~3kRO&N?j+eNOC4Wb@a7e2o!P_&hQ?&wqRPh}g>$Z3%hri-?ekpg-wI_~0`Y=@ekkjuqEX9ZWMo*N<%sYY zkO!|gfFyUhj`X?o%je=74pG7byQQ$(6b9v@*HbGnc2D|Pc9pVaIGl3`>?`if3a)$$ zKp?O~ZWGGypg+e35saz7cN=;eac_GR*nkJ=X0y0x03`1?8L4$TO;nrcoz!1k%+_$lMsNUZG zsEfFYa+vmuH~fki{NtSNi26 zr;l*4dT^y9JmO&7Y(5f6>q} zGa)>ep+6elLHe8q4x8*M(-^C%{JFz>CHn39^#Cp`4IBbO*MB=P`5qU|x*PVgQl??6 zaVOZ4D`*tQDsn!qFWN~{zBGmwOS)^&A4_C2*Z{kc!sZm-n<37fQ{8x)Bp5J^L$V$i z6cu^{4w9~wy1{UX7fdy?v`iSD07SS^87}B$a1}Qzll2AbIoGc~58$GrZ6o{a`j~A9 zP@?frc4#LA^GBnisku2C!N1;vwZQxHV_%?}rAI%CfQ0Y&VBoTp(hqWqt{F&dKTGw6 zuGs6}P^6xDMr{wwalA;sG%-Q=5=b&MuAL9$g4NqaYF9X}1$*SFklIjv{jqgd81e}felRvCH9SlCWcp02g_|A$_x7LtN#*e*2Bq%z1k6zgq+R%SbEqXN`&AcfTK(YOmGbMd92PbiWS*M z+kz~>;W8vUV#1u7&xQUnm@G^u9!Up8EWv3ub9>#Cch^2XBdQp<|J6Ulg5L=7hg6d^ zloq5~{co-AYo2kmD~mw?V0DbN)R+0k{u}iRTUxUl3q4<|SUg6l0fl-gITSuH$Sk~^O zIDfL4Lp3M@9XzRM%aMH6AB44^Kzo>VV_p&6R+W+5mOT_yM@aNonLk(CAX$>f;^a=U z+?$TR^o3>`*5WW=%A`NDJWC~8O&awenW!c!DCD`iYyYIVbp_wLUiTEy($^^Vg11<* zd`Z2_O12EQ4_KF)X9db@YFjzTbwK_7sY8Z@3jovk_y=F z#-fjkc}76qxkyF9r?b$mWeq#qc1F@5X&9-LQ-4tW58gq*9mA7x-^UB2t&o{HGQye0b#J^gR)*Q8$*Qh&*1`7Zs}fGFAE z8E^cnlt<+k#Z0FO!<+KOoDs}ygIBt2<^yA=CqM9-*;j7Drzffgbnhv(%= z?n;CeYFUni40S$YM!)g}v;)a{#(oab8zs?(l*6T81@IrQL=mA_$jm-vKmB!!u{_e! zs2z69?zU2&Q0#1FUn;e0*Kal-UzT2rmhTqh>@~XALb9-qTVwG_n&PD&FN(M=9(&7} zg$C&VqD_XRC6o1(TN8R$>>JC!jXMCC z`sva?tvt#7n~U+=)%Y)k9L7RR!2}iCzgm{TWto@HenWOReLWXNdIe0Z6HV;+N`n0Y z5RT^h?t7V~%6P_HaETYrhaEHmW`EH56xFy_(z9GjaV6XW>cjGNGT)bs*a5@QqX|me zgE1dY&QD^{$H#mlZ3^megChz>l$dUoqv8OrDMG=XptagE9%9#~qN(}~Kl_b|qJk8F z2(n(<>M3$aKc=wGwY8>xt3Xks3U5-fEarz`^ya>t3VpySN)ll`CeM39z}uVGnd8eK z3^@_2yDa@l%-Mm7;_oSNL6Z>8E{%2(-Z>um5Gk5CsnGwe!T+F(u1e*Rf38bY_j%}{ z_oV3OtcHO^jcS>6#)gSr43Ix&<;ho#kF+VQweOea!}%5_H5!lC)@G^=577CG?klRC zvD!Lwd`dMJd+{Q4@j~qlGoD?0WV$vDL*h-6NmKnch4fVk8)3Ba3SbvS-wSO`A|}$X2$;)I?G>(tl5h)MDZDz?PefA z&5$$ruWg*OY;FsBZh!tGen&vqQGG#1sb{H2=HGVU5?TJNC-*60GGB&x`CFRo+(e#ch# zW3OO^R}~uW&AUG*sjQijcF0U2g3Irz=}2m2JGg>x8mku{d|nYt`Y*g7roy*F+d6I(lM z+3QDCrhU6-S#P2HPktnAOb&MCTtrX=_I3VuUl33*33Lbyh^sIpCClR*KbVMV=*p(d z6IPjA$)GxrBQ|0aOZo-^!?N3xHu|p1;d9!)S=e$j1!mF zZl9OoWv-^D?#|2RGB!jFJGtEoVB^BlOXx#wxbHxf5o+6VF_}QrMUy zw{Ez(s|FzO&Q3BbV2?CeH+;WN4LI(uYPkxR_K}H!@n2q1hw88ca03LwEluKHh5e7S zl{11}QHlMI9x}$qtbtmVUcE~fAI`gMw?V&pTRhTighe>RB7e3(JE1c;zKYeqoqa?? z1Qvv8Y)>9@AxH81x2fq+FZ5EqN5-G;Sg_#!8SKd>i~9abJr*`2{Svg z7X;7c8IMTXUG0m*crb_ylC(duxVW4F28FJLV**dpkJ=qIJY{q>3fekwvq-tecLm;n zUVPpSO&qc;z?bs7;}vawAd%q3oaxgqJFXREF0QPOZ=FN9q(=Yrj#N2^!Jj%r1teW- zu^ec9=6EK9U_r1m`;>wQ6s)L~!7ZIBE>aLgSiU*wwr5b5Tejz%KcCK2@)7btj$XFw zOmjT}!F8rGQtZiEJLO~ZCml95Uvvlnsbm6+7?pgOc@V*7CY*doA%kk3(Mj15YSLe7 z6SUP<7Un826>5H80R+vNFhNTsBomhhErc2tIhb&FS-vW;%dLV1saRRY;bd+m#YIg< zF;b#sZ^FP+RsoCJbn`G6Hf9t-24xgUh(4s3a*D}Vp*pBRd<2!*C9Rap`~TYL>Ngzap7zOP~KKw;VsGl zh?d`DW5ZnJh%60Wga8CBKjpP%em6tt{S_0Iu^$3K%btg~(tG`j<(|JP0%6cw5Mc)F zz;uU}8x3iW(82y$a~}7!l@_Sh?(M*3a{lQF-K9HpZKiNb_Zf~G>SeE6b~H~%^|V#C z(^F##dcVH=G!|*?wYm07;YK4oE1kpgeMh=p`3)5N8D%amhuF7^Y#;2GYx@MiS9uuASL`vFHt(OcSrWFLRJcb;dLI(s_+{G7h#nYyemTSDnI?dpnf2 z&K73CRF3|Oi)aP2qkdm`QVa&+)Y%#HAZa<0#ReAu=geD`2g_h)??q~q%mR6xE?GgG zm#q)UDX+1`#@JjtTx&kJh=S^Ev9=KK_NzQ-(I@k4rl{fJj56?l~7EUsyz^LI7zo6UoZ7>c<^96@cSc z32DO`o`jR5uqwU}=yEUFm95emI9kRT(FOKt_Lc!Yf)kR#{0KZ(_#@iz_^}xv#wt3t zUf=U4;shGkh0Kof{+Cn7ymt}bNRpTYMM_3aK}p5P#4M9V7OQMFb~$n%((kX6OP+jg z9t8>&DdtrogeMS5WD1o=XE0f84wuIl2t{IvR3;B3O0uGAx?x(j<9Y}pBryq!l#HB$ zk}5n%O(TPrj-G*$iCHF#ELPcUb>URb{wbmygPV_a7UnVQdi@x+S^ev#MKVip)try* z?^n;7ZgsgeVi$csj4wRWp-D?D1O>iV=}fb0>F{=-pTg@6*|1up@(uT9+@hFVlK^Y` z-=0c`uTqR2p8JXyyj!rgeBJt262GDyc`M^%3yZnhI34tsG|h0hG eto0caMqseOdLG;#8C$2}qx2NB2Zcf*0001K|EysE literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Math-Italic.woff2 b/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..215c143fd7805a5c2b222bd7892a1a2b09610020 GIT binary patch literal 16440 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 G>;nKVNojrn literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_SansSerif-Italic.woff2 b/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..349c06dc609f896392fd5bc8b364d3bc3efc9330 GIT binary patch literal 12028 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 GG{*pT{>~Tx literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Script-Regular.woff2 b/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3048fc115681ee6c1bc86b0aa158cfbbf59daa3 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd4gdfE06`=G03}%f0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Size1-Regular.woff2 b/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c5a8462fbfe2c39a7c1857b9e296e62500a8a8a5 GIT binary patch literal 5468 zcmV-i6{G5RPew8T0RR9102N#S4gdfE059|a02KrP0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Size4-Regular.woff2 b/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..680c13085076a2f6c5a7e695935ec3f21cddb65f GIT binary patch literal 4928 zcmV-G6Tj?tPew8T0RR91024p}4gdfE04S^g021l|0RR9100000000000000000000 z00006U;u$M2o4FH3=s$lpb(dJ0X7081A$BnXaEEt1&II$gDMPx92+(xvye7xR)-Qr zuyF+D<2}WHmB5qvtDzk>iwqJnL*(fZs|06Yb!k(1`ETc1I4-BI5fi@^u8fdm)_=e` zdp}9j)YFz0DG~@_Kr>cMHY70C!K^ZDLNTA1b7Br>uDhMiy#E2l3s-l)|7lD20$2hm z@RXnGF4_PYHl#gB*k&mx`PNs|E@~BRiaIk-Yp%L*)p~xqH)tK24LDPq+9^`k`Cgg@ z?wr3yPQ)iMi`0C({fo<{L5l+`f3Eib=1O^!+?5mxbFzfbmnAs&^Jiy+y`4!4(_Cp% zqD;z%tlFv-x2E;!;w zVW0LxIo!N76;gG%@Hb~*66P0cigm@!%!Cno$kKtF{J6eOf$5?ZhZ zGxUV~z5L(+ewzJn*7bz*N{9T6&S$7sY0!Etm|_zlZIG>ifQcfRwh5_SQlHslg9^@7tlD^wLmOxkR|-Rl>&iBW8}oeXg=l3PGl0WW7UOHQ$AH=-*sQ_FPT5-1d5EJQD9Pn$NP z=&ex`C2L6`ubBa-+$U+ol!uAv{MKA*F%G6?$zgGfC`t3*GI6_Eb;)%5MJ*?0ruoG$O;U?7n^){QDYAVGaEVAHLqZB9$dHf<2?`{n zLBa$`NQZCJlm;XxcSy38uj#vUF*`Hs$Te_xywo5!OD#vP&QtM_|MGmbfNp9M$0RSK=0_8_ zABCw>{ZyuM9=Qack^&VKMj|Ak)m~&+sFoKh!y*qw(#BI)DONKBw}KKQLVnAX zG1&USa_<#$+$JX-mDDDeb~MggE1*$BlEb77LoKF}k$@k0xv!=(a9U`DIxRMzDx4M- zby_$y8F)ug0CH(Ej8jTz)P`gfLQ@?uVB-n6GIj$~)F}})=^B$un~SNqEM_044HB;N zhGmM31%SFVDb>`A0h1#dQO?j~Y^-I)6a-yTPH)gB2)PoKXk{Nguv@^n30~1Uz4`%@ zD`m4i&uZq$jbBlIr!`;~fTB|CWScMarV3S1Y6Ge}8#%>J_FVVI{x3$o9E61rv-C=)ljThD#+}}^zAw|gQO7_rj>e?#e`;j4(=L3iD8l>nvKp>+j@jEgyUwZEikoU zHWST>2naBxf=JYIC;){c0_HLu-=J;+&@vhwQB#6|W=GUg1Q6yqqWK8|7C1^ROpF?C z4J(R71hg?xdm%6l9Zb|25zxhC-Rw}!J;^ooCJ5+rWc?5T1CD4gLBNosqr+-OSs87_ zHo}VL7ojq>IQPjFsy3FWnUJ(p$So71-$xwI z?-zDt94hM6EP-*1I$K5)wa*E%kwg-TMNvt2=HcQl{g&m$ZUSxtJ5FpQZ$aTfFJ)Q^ zKqdy3I8BgEQ0@SJBhqaonQ$$rn0XLeCP8yU{np*|Vs>g`NUiHm1r*-6C^Ak@npARd z+~sMJ@odvPOygYR7IQ1sqae%e#;7iVVvO(o1Ck$0* zFd;Bmk#K2Cdlr&B;k#c9JTX4=Tb+%hn~s0mmbsT+pj5fN?boKS1uqw}iVm{fn@Pzy zlBeJ}FNK{1rNjm{l2+_Gjs>rRH35$8i)y?pjmO2P18mc2)B)8;a&4%GCor|!ue2l0 z@X11NoM#Ltr=3&ntIU+uA7Q!Dp}Y!^&Ni{D-6snT!|DB3i!jgBoFj`Q*i^tK&VyE& zvw)M1orI5?t@f#>&HD zak^D@rlVy+5kEoOn_MXLu0H+IQn&56%Sqs?@mfCVarak6{Uy;q{3a2bl}wz`wDWW2 zFe_eM+Gu$l-T;AwdpZ%+8c>Xjj9L02w!{{t3%dFTa16K4; zIWgrd&P@RPxY}Dr-k_JC=$4!E7KBmC2$MP#w->H5!6_>Pr9I@t|HRTurr;U-+c_17 zle`RDGL=Dw*u?=Af_22JyfNP9Y9`_6ee?*coA&SST${*$%I)9i# z>QCny1#6hw;;UEI`#w-TSOu)Bv#Nl9%?K)BC3UGOY|qXa&%vaQ&-k$DKw$9Uzn^>N z;eYm}h<1CJ|M-dDT8kDhn~;uxfl>{O`#pnGusBQTSLWLp4DhWwVxo*Jch`sW+*@`` z_ak7SJRpZ@zrTH5oMa}J_!{pz=N{2)H*N16;-^2s^hBQjFPN0S{9v~~X*yzY_B#zO zZ`@+Co5ek=JsDu`K7U@w>p@27n{aZ>nzEX1pWoc#*^kkriEAA7%^NB*>>W^ey;Zpi zK!h)^cg;i*qx(Fqr!ofnW(o(Jlf!m9yX8!vY0LMzT4C!J!MLHRZ~Cm6X}7Ig@)HLQ zN4^)s3V-w0A8ldnFz_#kX$F&6{MfvW3#FaG49`9U;jg#Mja*)<+B@LVi8>dBl55q- z<(9ei@FTF_lM#&RYYcTxSBh`d_^9v-bF)Asgvwz@xrQ-KuWBg<$S|DWP7O|s(zdQE(#);lqcVpr9 zSKNgW-))N`jHq|DB)ATJ8H}+79&pVt6y$wTZJe&42aC)hH};_9m($#@|E1)$CS3N4 z`O|W9wY%3hVY)?s53f)8=JJ$umzkl$!eV3YQ)MfaYwE79zY^UoH*1k01Af^b>H%ZG z^-DO;E}HCzW9!w$_j~-7$l*4@;Rv(b4R1>?|7ShTT$e0)e4>665*$kjchBvGYlW zVFf{88Rp5xs_ysr^`=9=Fi?M47nbk1E?9R>W>`1R@MHqzN_m-wSvrhkCVj<4pSw2P z9)=TJ^AcaxXRvNtuJ_T1AAF?ccXZ%oE_l%9(r`;hs!%jQG?KAQ^?y|NMm0=%m zDp3wQk=5Rfussmr&7R<7&lQCop?gBz@77;ie_dPVir%j-KZ3*88_esm=dk1WcPGAg zto?*Wm=AMA!|Wqb!MEldKGJdgGeJxdqsAN-1>yD|6?!3WhqDhm>PHM>j@5nhx#9SC zj^p2-XK{?-drRD44zlS_--hSvOCM?YJ?{7N{K3&Z!TxDjURSqu!?e!HYXw&1>@L0Z zZ=-jKj*UzCrvgQ_uG{h>He8n&ugf-VTVA_iTHV%la@cN*S^%7Rg7*2Tf+kR*!tk*_@q85UwF!pw(p|nk`ns4bNmF3u!6WrJ!9# zT^44B(E|fR(rr2R^(;aba*?6@{ZjXVY_1F|9y?hWL?q1gppPxAM3zE_WC}8Bbh)$x z{n%R~yGzrnT4THQvNK6vTcWBi$4ecM>e*PrOhhnvRW%Hq7FP?Yee05N4RUnp3c%t4 z38w?h+SS7nbYPivurP_2byCduQ6FY!VI<&E`djO1pk75!^k?zAa`GJs5iIxC+f{{a z7`Rzd#v*CwDlx~hw-hBXRw<4;5_Hl%w*>9g(~%NK%i=IJp!MrN39~R2^?_pyOs5yO z6ge2o{ae&O0u#(|U<%4nfdyzK24CVUVu`~Yq$8g6B#?oOWFj+J$VxU6$xaS(QWUw! zP0CfBZ=4xqAJKL2sICSTTqTeI literal 0 HcmV?d00001 diff --git a/fonts/KaTeX_Typewriter-Regular.woff2 b/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..771f1af705f5cef5f578b3a1e7d8eff66f9b76b0 GIT binary patch literal 13568 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 G0ssIW1eg_~7 zf+-saenkiJu9M!b9*Gb(4ggBn<&lA4;{YH!mj(Zy4mcS*x4|{5=nxvak|Bz0A8O_$ zQ&_fBL~Xao0a93KsO!4rCi0C~ro8*K?ie+Tm(^d4n2jI0o3+q}#|{g@h5oldxE14y zILL_vp+{-nrLAXxJ2|2eCl677_5I1n$cr)i!8P-RRnNDu7O@m}kSm60Zui@WlEIM3 z4YUykW5fWVw-GglBYTVyCD9|KN>D147-B1L#MBGIv;r)%r> zTl<`Qmp_nXGQ0bUvU>oavCPhvjjZ0f$|_gO!uJ2BzTdr5x}?!)R4mz+Y`xMar8$2) zTR@fukY5l?_^*5`@4U|8DF~*)0nDD#Q-9mL`8h@w1_%KL_Eeawbbz1_Ej?HeI!1I_ zz5jJu1Y6@j@$hCm{r#&A{6N;|t>qlsnW=jhwLJ>wWK97bq zrGH;rhSObrRzV|JfbuS5v&-MV4WuO&D04M12fX}kyBQc>hn)s7;RX^X4kT47NV;?o z78Xd39FTMJL0WZyx#K4Y1O_+(a0&>}K;l4v;~b(0ah>Z~*n=bYjti%QBli#Y4F*RZ z;u*;RM?eq0Z#V-WK@JcB&;S7l!a9MY)u+(-4Fuo@Q_?!Rj!qd<#cH_PtO2XrbYXUz zeb#_EXpWq7=L_@j{Agv&^YilBzQC4yEPiYE+Pw}eWlQUNeHq8r*X!u=H6=#{tcGlx zbwf+Q7RK7nRsy&l8U4|~)(r%(zWumu(!{kLr@2*q?u%1;s^MCrW0!lz9I@Jp$vPJ3 zXZ5JB^$puTXshgkvL}36*&46v_owRLVY1th?dh+aUZZ03nGKR}i$0+i0cV(o?+DA^ ziVOQ@z%DO$Cxq__;k!y<>Tf7d?z(m4t+ez)H!t?7TnnvWxi2FW7oalI=U$rE>{UUH zwO&0T!Zq1^+XOx;D}+iSvH~&{P;GtD7Iw3m9j)%Y@gigmG`^+R?Sm(x51H!Q{!7 zRo@7PE%$rdzJ20FT6*OQAv;=+ggQiJwj6G|5(c*)sA*HFIyF&xTP;Us_uyvLeBye; z&KqP-8$IiT<33$mh4nnnHCt~+%q~+o=TYTJUm7&a`DSGu*W|s#E@Zpa|9Cef2%Pxv zLpkiIV~#sP85WKjJaw7~wCOrc51APY)@<3Ka6se4nJagds#L3S$G8cTrc9eL>#lq5 zdtlBp&%N-{I|~*qS+-%*mTfzB{qWN-zwLu));I(L5!#N>CF&hf5L9s|EaY~RFwH+) z`jiSwGe6&?-Xqo;5UREl~XNqEml4%=eL_K0JVwn^i5zAQ<%m~;(hOZ zz(;(-JU%DBv}OT|Si&+kv4w5yU^lVXs;~Hl?};BR`&orJ*BE(I?}4E?Aa(l!2hI9` zP+w@*I^BBb9V|qM2i8V_NAKE4xFKqsLyd5*$3luOp%_xj2&+2fR09M7A`A$ntMfde z0739$O&-W%{sK-)wMk3k6<*^F-fk;~6B1wAa=I{LEh7PBn1jkGtbALkgj7YSMor>N z%NDSRB`ha?LHdpTwINkig%7dTkqXE#2Nn7Ff(0yM3Crsvm=Qsv%9&8o3KvSvI|Xr@ z)!M4q#twG3<$$aV!Z?o$sO7@3j&-bKT?gK7i$bg_B#>cVp%fFf&OcM)obk!`tS^KG zEMf`EiOra{u#Fw;zUpua)q_@Boa+NPfm&oxUwH-<7_-`pE2|)>sp`{Z7!jOG;CLZOVT9M= z4m%D(ks2PFPDfJ{L=wnQnnfkcpg3 zrPM0rP7WD2 z17`L&A$L8%Va`jCSKi|FuH^jQ`;60<{GbKPxNXc4Htm8R5#{l#74s7zghGT6Jw;tD zh?JZmU`~=SN{Yb=gBM2QdBDR0FFYIsg&=$&kM50R5OXRa-++S%I4Xpkk)Pv}!^2(N zaF+u2HUX1I!sO2(p!clfd`1-SZs>+^x`E z(#8u03>cro@!scQp&@|vAMd<@yoUt(dx8qWh2{2#Frq>L`yrv;bTBk~g@c=q5Qf`t zSf9qLNR@i+*sdDI^pTfl0W5G`b|(`wBzkQ-d$V>uI|DRWzh{AlU^lzW!Fa2iTgGi} zWuE#9Xt)6#CoVjEf|W^6+zoqy0{{*gqc;s8YG)Rzp!rep8BzTi~nL2>IB`~&L0 zW;O>d+<1iO97H@v7r?_gBLMeA3+zBhCkWIwj4s&!k+}q>9e?Xa{qfg7|Dgmv*Ps?8 zNrS1z@0MXw4iY6soP=V186se+AR4F%vmq4C(8Y@DNQ+gw(2wT1XPyc`L z{{ufN{Foy@Cutv(C5abn%DGbd@Z-a?-j_m`b%V66*VK9)r{%-AuZ|xz)g4c-jDPlN z(!KK98*janA=7&weDuk@&segqnExzh%dzLHZ@&8>*H0&`X!eg4kEWv2ggFUL0nXTZ z5Q!Rc(q0%vQcYIJ=1PqbaaHZtZUl!nRR8 ze;c-Y2xC*Xqvb~3H+sQ-;G##Rx!rlu4R3bmdim>oV;-QX6KmY<9qYXI0B>{YhbXwK z(a_AhY9n>7FPi!#ord$znxdZ+-_C!7vAOZe^@DfOfzLRLxN9^jN z_0ql9#S66eidFsRBc4UvcWZFx1s~5yT%FU;fI0tjlLkGG`unc_w=sBSUf>8@y6MY+9 zCb^IU`(xhTEe>1$E)L5BnyPWaAWSLdk>DD6qPs9~luWrvs5({DL=N1C|kxR;~C%L$Tbc#pI=m#5N0pv)xY*~$! zcTc-rg>o$piY*$MTeaP{>LH4EFi?tm+6(`=7@12!E5-*PoPHNPmR!awS+hCgg(%Ch zbLm;R^;0?zaLPj(eOYZ~;HAqQjW1kkv|SJ5)oTv-J5ywbD_G6V&l??ZCopygv8jR> zrGANosayGmjYu4w5_3)^8Qc0*2o^?Lh8J5Yook%>$@sC<%dZ+-&HRoud!1~aGM6y= zT#c`Fn%}X$TDc}!P2>r+E^N&nswKVaDDQWZp1^7jar%)na`bokYvi22CP-OKO`a=& zaCvv8`3t;sK9?OIDqIDsd&4>TXr}?opR@{3y!X5uMTtI3Z`L%G^F5`ge#ksGBFM#& zcCMQl4AilS?Ca9A_5{o{w>_rm+NcuCX&&CA6cmS2ug=3ONV_JOHOxu&6X1E-yDxAn zV;@&-bnpA+&WIk;wC&viIgKdJ?$L{O&b#Y9XA+e^tzi3V$f7Jsypr?bN5(%}Pu1O~YI6w#7j}%w03t5ReMAOV!AszpnsuQBYMfY=;N{ht$ zoAj~>7->hQmBCY!3X|7;UM*K;cD4wmQCfs@cK!xUiqjai!Z{ZOLXk-$pugie76Fu3 zIU1;9&gO0KD6ydWyBZEeUif?Uob+tvuve5UsV&RCJh6+?a|MDw_=#O=6ptLl5%Rk? zc4Va4#tvhCpVI8w-*Qftcmf%5LAEiR_cbQ`%zo~MiQ43FNFto>Os{VbCMMFwiI--6 zRBpTuB#v_4UZlm<7&4}c@@F)A^&A0|3x^^}LQ1oSM=0Eb6SrDVBJO$OOb-*Ae{AN1RSZM7{xf`SgUF)EZOc2&Kg@&)NB zE{%(G-|U5bHtmbD&RSS97X-q*aL5DYER9q!;IwD8Chl||n{f4@ZhyI7Sjesi zdM`OM*26iLxQzaG!g!S3^8+z%*i2J|99LA1>Zpu^|60(^4?xj?Vn<(^yIaeGX*3|% z;)c$Xgjj88J9pej#UYz!#-Q&V$eG*=)TA8=Tk`!I)HpVAb6zkaPh(%ahU^VB>8_Ic zER8};DUl+X(&&xQ;ICR&Av^sJRAAY1BdO1nOa@ekDNfK%|^C$ zWKA-ahIQI9`$9KigPM)NvSHbfO5W^eJJB>kvG}W3a~{04H3bqB*Qnu;C+ba+qb+jC zB~)C&YU_$FcFp;N?b9Ys_RFdFxiyi!E?g;jwq-%)S(elsW3>=|yX0g%okWAzW_etT zkIziU`8q`~1fmsTP3M>6mvqL@I(ZbSA&V0%JHB^Ac9jPu{{|ivKtL$%Kx_!SuGv%| z^>3jqT9GNkY0gy)ajIX0;c6{TLl`HA=xx(bqCe8cwU`BApcct&>luHDWZyWUbEZ8_ zg!v%CL@aEQlF&@JS$C?UHP(2;>E1Ru;=fZWi}Oys<9ps06L+%(UZMI@;l%&`=u+Rs zwKwcF*9XL=YtC_Or@r37#Ck>OR}EY3J@x}UcX4ARJUzV!6zHQ}kc$$JMse!q{2VI~F9 zd|kphzE-iiTJsCLn)69nT}}A~-OYI;96H7%rUCi1nT`ROpkYKZkV{w2>S@j^=x!_| zu`V|k7In4cjKDRBmg;A-EOd-WOe2yW^fk|1F)}>QJj*o8mwCA&K;MB}MY;5RZm8+e zSaEkxMySni1wusLcj>gASAR%m)cU~3FX8hmhyWKYS#v9zx&Ijk9YRH!p9!;2ZBZop zkjaG8X4a8H_z>yRD@W(V;;k3rE^eI8)zzpe4sN=mB&XakQ5vdIm8G+)7GDZ~gY?jx zPi@%K%hlGX$`5L~1;gM^Hcl0Xz5fGE*v4nnz}_McQf_O}2m|T~D3@`Rx6)a{kRI(Z zPc3s$pV7Z}#57bv4}C#7F{JDdAjutWSRf3)B3Yr+npB?i5k1N}TM zz*@cfJUWAeTw9<^Bn-xh7PRK{LXJRQoP7SxBhcj{(bJRR?8Rg;C-%1F%F1hz zgXDDu zpymAN_wUYDW_$`t8-vHoay!v|XkLMNsR?oEO#g4!LNxFro6>h+n-gL^5mCLv9|YeQ zoL%^sT(Bsq#}}~C7i2a07OcE94I^Eq6^AwYyM~uU#Y7al86P~LfIpz3U_3duioh9U zoC*qTa=`|w#`neD=K46v^Jy$DzCS?41sl*5bp6NMXLCPaBXK6~Az`jAAxsa~;4lxj zpb(iiR7XEMTSsr&8OOk8T3`w`+?2_v99!c4RG6^&AtSHoLt(rC=nAF>)|m^Kf}QPH zWW%tj53wYsG_=9(OlWOv486*Olam&xH7$;R9I~#DEiS6>wVJe^ba9oVH|fT+qUvEG zYvseh5EFG8&NFHmsMq$Gxk2$P*V2|H6zrV2BvZ%3w;b$RSkHo)G0bH@y|KB zkS>I1{Me~GT>-qyf}YxG+LXaV2C|3GPd&f}a!1S!)$+;lp*|00Z~oX1eBNKEmm0yF zZj^1Ia)v5xbNnU!ctp~jB<)ni1Kua~Fbix^`Gagdj4XW!O-utE?0-B$v*W=bjh=@? zrBXWLpYXl-0rAA;Kta(yj?)id!cX7N!+X8M9TJ{YSQjrKS2YEIxPC0z@kyzk@TH+Y zI03OeMczDCQf@`rbLbOez2H^#x$GpKj7i?k+<#@v#%{c z&n(|x`O>R>dOk*<)x7fvaIhcjH9G6l7JDfA6h#>y*vpP}K8!Z#t2Q1-g9dI%H&<&x zPrYB4oEB-n4p;atxpoMZkR1_wzHR}`yDoICw097R`$F$@BkZtX!z44UW-D5etrRWC z-rrIg#b<2A?Q>`6K1Ad%L8~v6f*pN59ekrguw-IQTfO$xC`%s*e;*UG$1%JodKb&?QUPWm#!G;v~z2?9siT0H9_fu$kxH9 zKVmX4v4tn)DU)dgg53c_G@N@kEI!=VKQbzA$6LcTi5lai;p2q;k@-0~A=$m zy`?mJB~S9(^9mw(|9KqizmELo*!H;ZovYa2hv{l{Zv#il(R8#@AxY+QJyHc}-jigN zk?r?8RQ4%^z{5S`PE+~JkpjSpEBL?$Ts!PTV6cxK;XHK=1-@4+41Op~tyXwc8qwG_ zy?EmJlYYv=Q7!P3LjLcNq=NnI1`4k&I176Zb}4;xn=MFi9yl50)ctS^fuSn{91kIcYeI-u?|5I2ZBq)Ab0P8=wZKxxdxY^ zN7FZT98j;pc07=-0aPOrKXApD(9qLCWKmkc%;&+_cP+dxB%DBa+XC z5xkjAceb&A(A=d_t^OIBUQ=3LsR7X)>Efm1;W^zNh^j$Mm#a0+HCfXW!hi{2%^C<;E@&Q2KNlma+*RSw&NBbe>+f&2rvL3z zG>9U`&aB(*(H184@?Zk;GGbo{+_B+#Gnky}>(EJ#Yl?o8c4E5Tdwu zvh7r}Dq|c&5aLR4D67U^AYMIz573DaOSSn?v^hHV;QLq&=Crj9m27Q*!#WXOoFGen zp*$@6J2aF1#3QENOBikuXzNI^KkX`AZp?da?wYjDQvSEQczwcCMD!{(DGJ z>aFgfDQI*8bEBiWRNeQVJOODB_n3aEBsxbB5uGC_X&Q{>+uj0wB<+V8dR2pJQ^ z@_HtE9((Y9A2h_{g!GT9k5Wb`8u~|7h14mqs;PQ)DYf}nkEb8>^o8HB?QB#6F*LCO zT@B;w%R(z@>_2sztKOGQ$^QO6^r@$P54+)$bJzMm_p55un@d^dLT8`M_c`@Bf1X3E zRNziI3-kca;T{xbq7n~Zo0}gxGjwL@F?_jFQ=`65rGFk=c>$m7e%SZ;6_=~K*C`8% z#Pw@SrDjQ*Ew!cuqPNv^==#8?3ae!8#%d#Nvp@@6N74=qwT(j!9yW5O<~dVYXWSuG z+dc1#4+#~GKB<;oonE;v^HgqL^z~!RO}UTLpBkmFzJnT(5Y^ky*3Y*L)M48FitKTE z9J%qjr2HL)9T%cd1EQvJy_$1=_WR1ixt))ra#ROLTSEs=5AJ#VdZZCDxHf6_?#0BE z^t?h=ws+0MJ$ij%iML9AQFZv(?dr(FQdy<6BB*wD%(Esp536W~$43Xx4o8MEv~DjG z9TPl#D`m<-HR=;Is^8UiY9Q(A{WJMN!pm)d{?r1id((B{z6lU+;aw1KPjFF~pIF>t) zRtH$vCPb&54P>;%cKP9wBMnHZ*iM0f?v(7Tn!-#SPYE0M)MJ!G?b$)*fU2!RW9kS+ zPb1*x?NgjF8&;#o7xY^rj1f+<0SCyqd9j5YaqQiD&i4nmLrQz<*LLy;y zF*Jo7l@r}E_x;+>rWap|4vt}|lpiY$97-xHxSSFGK;8(eremz&5(ivLg`)62?$+D`zXy_JpCV8A7%ID_DK+(9L7DQL!ikE+5bO;oIsXW38mR z8@Dgk-n!G&jqq{_v9WRr1|Bw^E+N)dE_6RU@_bsRZc}ZkCQ+KKc(K~j$q}-_KqEWP zpFCTey;)aP<>4ZI#1o<^sO*>T6o<$nkSbs?+-gBlIn4gK?r^~C`}(?IPLL(!s3E2m zuOF$Zsit(aDXU}EO`5wn7O#xgq}W|tt=pVtVqbK#U}yYxfYx=;YdX}EYfFy5kvZQt zK_R4QcVd~tUr9Q_mqa(Mi$zo(4!E*pqU2iHxDMv2lD=%d#Rjm+NWRCK71`TD?8;%l zV59d2K18KPjVHx~LXPbi%eOx^=0_GMFVlm%ED!5gow2OQEbCnue_?x3E(ZU_6BlPq zA?Ya@JJ=eO$5eQP3|O1e?2PLWb552YMSkR#=o#O$OuYWAx8dTC%e$am%fg0gY3F9D zh88YI+6hphVV7SU*_DQcm!&de3cUQ|25Oy*Rkaa|h$cB>Cklz^VrOFHXlG`A zhO)}%Tu+uC6<>R4lY$1nCsSpnzYZ#{y4y$)OB?*2J}5?Or5&?`qjXOOMKljrh99#1 zPwH4;RDFQa?&i zTfKCyEVJS{^!yvNURxl@OiS>mW}if<| zGzA5QH4)g&mY!jPL7|eKE}q32k<0vx=Znr4%_EPZ+O@c%PC2ATySk)B(x}N1?w*NJ z;dY9(KDCNU-Co@%)P28(rB}HhsrT1-E2RJ_wef_e)ws)A#b~{eP(Ujg3N6ZKSy8iK z=h_x3+ydq>{0ck%sw`Mx$6}3>_hZZqmS3V}BCK?96SM%D*L~C@xgm& zrpYSoy2?3ANun*QtP`wD^)hxD?j(kXXNqiXWN2b&xopaMZ)#6LPd2@hp(k(ezV0qO zcrE$vQHAb)fBPwGlyH30Q#u%VdbVHj+1xX~EO~-_rkV+w%40U(M!v$d<)eOr_Rx)` z*||zPIWWG-yIqWCeAe8-y4_4q{pQ*C@w0gZ&O`m}9l|RO@)2j2SxRd~c~M<1lyq0P^rTj@n!Ag(lfII(#f;PJ zrCGCngcQJuT66c%1`p;rTBgtcmtk&}KlzN6|~ zYJUdg^8jw*8xV%;)Kxt(6Ryy7xVh!`H8Y$W-^v2lYqSjb?Y8rv5#SFL@!&@75?S^fT zzwNO+ta6@kF!>CXYN z%Xs61;!$~iRGZ@=HjmW7!^0fYc?%O9AzYx%wer7TIttoct#Lx0WxzpoKL*Xk=7nvq zA4+{In0`oCz27Q2d_$AN-Dd3Q20mMTGjs>v-&$NcJ5ugwqX~Am0IsixQq(Zj@+)BR zRsER#&w}6m^b@vME~U!mj%}|xsjI35whGUQLxkH$noFGxWU&W`SJ^pPclL6z)vG@B zYrqCSIw#5h0vSmIMh8C!u#%A5L5GvPjhkS*Dw{^N@wC9LS&_+63x0#V)Qk(8dn@PY zIIfM?e~!P6Js&NkQSDr>K*q-UREP7a`0rvNjY8-Zl-e5AvUb&cS$15R$Oy+1;kYXt zbHcHB)-tR5B`vz8MVo6i+|G52Ucyb9b{Zg)T!a0a6kNXR6yrVNA1^GRs23brn%Z^zoX?NQcG&%d%i)jZhs!J0IO(!yyBzJ7PAQ8TQLu>= zyJ4i*ts=$l|ORfNslRQSM26{3hC9wdT_84PRh9Y+Paw zjIRtfH()wpd`eZ=XLHvV687Us*T+op&N1yp>N_z%0r1@VHlo^b_^64|!A6Yy=o?qz zqe_%6CRQ)Ov~p+Mf{Uq7=qpB%7u|IG?zMi*#>g)djWNy-h#!qUjJ6*Q@dXz!?lP;- zVz?OZPfsC-txE2XacMx_YSx-f7pUt%`vOsUYrJl-dVqJKtN4ytp!u#CduJSnTECQL zbqL*NUXg9*kv~#Mz<~TCjPD1|3F2d${SMZ;Bg3sq|DIMz<$jQz0Q9|8svT(W7&};K zjhD97MZ5wvYrkwv2n6!vv1N$+!Ds@AkAKRXfO8-?N#zpo?Tr&Mkg5s2{;Hu8yZudA zC$8CdTHO5W0eQnQPJiFRk)`1$?mpN8EkhtS;XOt~SmwD&huTd=h-Q5@lPkIgNsB>- zmme>HR&WQ)2=r!~nuulsDm0f&<0FaU$hoFZGB z{ph_!M4cviYsa|<&sp|rxp~NFZfBgS`115{*?tLtouij@n38hhd79Qqp};xLnb<>^ zj7d=wtq)3l^vCUUczQF_M31$1=6)V|BJ5GC#}{_BjQ?bBSb}cW=)$|O6uoW|N(p2C zxv>MOCz=*{_50D$J{~YokUQy^iSg9(E*U0EMS`8~My1^Yi?Vrno(*XZO-b`KeN2h0 zS0fxK&#E>dqgRI~@<@WjLA14tx>#VsS)ieYUBOh0ytr*zVy5bPJV8O(R(MwkTd)r> zcpYBkZNMKDmVzR$5NhjxIL~@qbRTtSz0!&p<~uNiOQm(9x>jGMI;hbZI*yXp2dJ7W zO!nlWiq*IZruGdcXBgWsuMmm0Pq@X7`&mSk6aG9Zl@Dn$YZU0A_EKptbIExcy^5y5 zkt{!?!EAP;qP7S%gfq@YsVJ*NSPOYF`*>8htOJ`7B}#TsON$Z{GbC%b7ga7Nv)s{k z#im=*x@F$ZDE-;?wde&A5DvNtlCT*xJ)68L`xpWO8^EFDAa!J{fisAnG5^V4*oPR2 zf^NoGz17v)x2b(|n|ugk`*gdtc;2vYM=V8SwY#{7xt6ReLe*3K-GI@88?5^Cl}~j`PxyLS5(zD0O~Da4?Ea!E7j5x zshb871Us-f&fN2Qivz^EHI6L{DI5`Kde<`5GUvK&YOn3@AdD$W%#{lypq9uV2W%6u zHtS?@>Ow%4ZkfMs7(#1vol}aIkivo)+&s?nISsQS@rYKH6bo% zL+HjSIE$J;NigAtY&U&l+8`mr$*TTaXZF$*5H|pTJJMH1fr4!H|eU&q?5gUcP z;`ic1c2@#`0D>^XGl4v6h2V{CP!U*0{*D^nn01&?h@?L#Konf;?0XGDa_tG4}seX?*}E8+2E{B z<-S4zgd-G?r@2@`*YTTM8g$)E5>TuqX5va(5OB#k!<_M~%OL!_+sK z1(}g5BP=8CR0`sL(gJHkCQG4A%ydoltpYs$gYall%WuXsca;sY)Oree66M{Fo5$XB zCbk?=F8XCX5k}8qEM-w5%8IhQAG(;}Tb=RNN@J^5C>*>}Lqz(Pp}(trBpwg}m9Tcy z_Q{a~<8}JhBI$kTZw;2SL<%ed&CJn!#j3`oG}~o|1{4_ZQTVInM}1PcbENs}7t}(A z{IODn;MLRyLk&>_lybgbcwLO%gM<(DJ>sFPMD4XT zMIPjS>}D2I&Mx-`IKzE$Ib8*!Szrhb(-|q-MRyk7b$TM&HDEA3q9;1Ttns7`e1a3g zA9_a*1qf#=4KWj!=IlrUyiW>V0n^#A#I8&k>D9KoD$^N*5>K00-&qVMtMl zY%@9v!&!V9)TEk~IHb;)pGjt#ezJpv^d5+~pwWmX+PDdeHW}vSe;Xjtf<0)?{oumn z^#K5PY*=9H>0}F%4MF1sM>9li%R+>n{a+EaH}|yGOmnhm<1>E=HHh2LGRh8d6%3)4 z=*=?yb*aB<)`6f-q{^t1(JlX7%1orNGObBs@gJUWnxF+kV`@umDAUDmopc7F2`ZWT zRI5f(ot0+ynP{`~J~TyE(bp`@Tf)e~qWiLnhA=~Y4ym>562StmIWWR-;T$0*)_rb& zyMm8;6k@hmZ0?m5yN^4>y;UJ@cOo{~CfmJDiaQaTOpnHL^y|8azOD|URG<lOicR!tZCk3f;RqhaseJH|36!uGtJGUG zuuI)$xSKDMo|QcCJ_&TI)DD?i9N(;U+S<165Q8ia*kocdBK!3n^YUFgD`a3b{LG7jLlSV9c_vUGf+5 zE3cG8okTwuK7_V*i;Bc>0jYRmE<3g404*icB)PzdQX^4WLPG>fWBg*C;tBV!A0b_d zQ%;u?;1EOpnM8&3Ow;U@G*_CdEsM4p>A3o^?=>GzX>ab!=HUQ2PI$c8);}KM2_(%G z!*H5Z?u);=cXa-jeHJ}%7rz_uOg@{Bhn^jkf!1jiS&KoBLTUs+;z@|MX}<-+{-dBurp+L-9qcM!?Mbzi|L}kHr#7$i4fb^icK9VVSjN^0eY#)U z@}N&s><;X@*j?&G_x-oi_~46=FNCB3x$r|>9zNIEWEBF=BDXG0nDy@*Od?$sWw?j1=D_r8J{rL`x<^nzXve*v;Ny1mj zj1W6N;a~7y8LpjQp-uLf4Ek<8vpvG^3_Heh0znjA2-|Z1YNYwF`UhoNXBoE!_hRcq z#5`3N%n0(*^8Bx)Z|i*KSWop;|EhBhuJQF8{g(co{+0f_zNu?e`*)5&|@2Ev`-3W1!EG#d0El{{^vnvP~#rh8IOzpHAU6xT_1;fTd zl(TqNvS4Qp%Y3{y)hc?cjJ_-H`j>cgri?GqIE-s38p0L~Ro~5$j}bsP#AOA+GWjI^ z24-MGG|`n@-iP7lP>YgAPf%IX@-k$cV1vrsbaSc_a+!a`fBxd!=YMzYRi?i%ozxT; zbSjNpB1v^qI^QMVIxbA>+Z#9J=9s1vPIUS)wE1*;U(`1zNMq(}w5xgntHd=o3>SkB zxze3^o@)a*rOBV?yi^b=p(9joIQRm#W?qR*I`|6l?Xm;;U!b8pf+0IkzllKCFE?0l zU3_OZcYG0*o$nB%kyza$E=OsXGEjS#s549CoZAx9j1GNz$zxmY5wx#R>2>i?y~*vg zTPzjC{xMy3Ko}e0lHKA9J&h<$Ee|7O3#Kv-!ScGk@<=p0#v}13m(H61)xDR50G`5a zc#2e^TKVvI1`o-%4_dCj8=Mp#vYS4$IZz%{sJ$Gz$(h@JD<%XNhn1;Sa_u!JXL<5v z=HY1$%ob=fFO-+=!K~T|yV;)p@ zovK;IH#u49j}0>XS*X)a)X>*u<=Lh8 zS|ot}9d#EQuwJ$GmW@QV=0sZueHSCgJQq^jdq|u+x9(+q!EJOVsLVLuWzJk1%BL~6 zi(&!f-YgtNZih?O#dK%z{f?V9e`uBzx^?Z)jket=LhGrHI(H5o8jAaEjC-c+4n!XJ ziEb8ZEn!a51ehe^>aZ^`ObR>f?Dk~B#?9~WC!NlI!TXN2#s$Xx-30yQsd_$rTZ9oL z3fo(5SmoFwIk9zQkx{v_C{NU1-P86bkq<*n_jWK6F&(;;`K{^j>v4Hb3^m9?uwzY~m~3d#?lJV8>{{3Ba zaifTkqd@9JvGovJBGKGVdAYG6x^*L$+vnalIu&o6e(3W*g zAR_u0^VE9J5xw^@xwpB;P;!}ctBcu1jzI&om}7IaXSUSMkfB&OHs%5Sg=ywAV#+xs zO6pdgFjLH#tmTxPRxZW5WG0gh=Nuj7{yz7flc$moalz9AZ)96^0~qLw3E&EIOu$k@r8gYq)D5js|W#dXNW10KVM{MTw;$h}ZdE!{FCzWor+E)r) z5+f**;&1KkS?+{3m_i>K2!u~oSNE=V2t$b>K`Vu+XPNAj7u)xpnvXLdUbx2j(uNL) zfs>Xgu)O@O5!^=G8bMW_v5pOqn5Y9YjM_%4#oCj{scmmFE!UXjUj8e|Sme;gH5J%5 z4ie2>u>2u%Xo>9}KwN`Be>%lp0*bd#OEboqDl`=tW*Wn!AjNw!SaCXod|=T^}C#ffW>n zQnH$Nj`1G3Y|{*Hq?EzMrQhT>nR4j)a{7O8(+rfvZE$w~Oxo!EMJd-${)96vM6WGnq5Na+kqK=bGtS{iq^`v< zKFS(vG9w8+g4pz8vat`Jl^lnF$P8DS?}_9RnK=Y&0xVbI62EB_WPu1Q@GyaC7AIGX zVjmH}!vv;ToFt8Ek;BZ>H2WOC+UHs>4cl6;LEnaJ(x^uf7*1VpbZV=fTvsi6g6q%) z2G^Q@$SBsG3rB}awYOrm)x}&*&3S_B%>@R7_g~(xd7F6epVKdk%@Gkc;_xv50WB30 zWrYI-;3Ocxu80!^Sond1as}KC;BF1!=VrmOv7lSSi3+bp;MN?D$hJ5U>wZ%Yus6;~ zD5f~!0{IIN2~8E2ib|jnh3c_F=esQ#gEuA1AOOAJE?P#g1z!=m5H8vjd?*ElP+o*c z7+Unu)%Bwx9pVcS0wEc>KWd*F>l;>Pfy{^rD-)oLW;^WPH{|P7G4=43CzBuMeQ#m~C2;e^U zF=Bj8MJ1}sF5E`A?BW_59-Cpc1I+cl-0-& zT1P@7g^`}ff08pIBT*E^7!(x0ZiXT?XU5(F$rU3%=-xyMBM&40Z9RRP@@R*mRe8~) K;xZEf00030kB~Y5 literal 0 HcmV?d00001 diff --git a/fonts/Roboto-Italic.woff2 b/fonts/Roboto-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1b7a79f91f29f10e58c3a255fe0f2804a9c19b9 GIT binary patch literal 17368 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 KJ?Uy^J9`0KbrV(q literal 0 HcmV?d00001 diff --git a/fonts/Roboto-Mono.woff2 b/fonts/Roboto-Mono.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f8894bab50f641e86f695e85830a74dd395732fa GIT binary patch literal 12312 zcmV+zFz3&APew8T0RR9105BK;4gdfE09Tv<0584(0RR9100000000000000000000 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 PAGLQTD4PfcpsxY|`I*Iq literal 0 HcmV?d00001 diff --git a/fonts/source-sans-3-v9-latin-regular.woff2 b/fonts/source-sans-3-v9-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..59d087a6db8a88b74a61d58b06f08ce91c8baae5 GIT binary patch literal 15008 zcmV;RI$y06IYc0RR9100000000000000000000 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 z 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 literal 0 HcmV?d00001 diff --git a/images/haskell-opengraph.png b/images/haskell-opengraph.png new file mode 100644 index 0000000000000000000000000000000000000000..29b4a755bd375dc2136c825921ce0fa9c522e797 GIT binary patch literal 5145 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 literal 0 HcmV?d00001 diff --git a/images/haskell.svg b/images/haskell.svg new file mode 100644 index 0000000..d7b1862 --- /dev/null +++ b/images/haskell.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..0991488 --- /dev/null +++ b/index.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Haskell Programming Language's blog | Fast & Lightweight Zola Theme + + + + + + + + + + + + + + + + + + + + + + +

+
+
+ + + +
+

Welcome

+
+

+ The Haskell Ecosystem plays host to some amazing projects. Talented developers spend significant amounts of time, often their free time, helping devel… + + ...more + +

+ + + JMCT September 14, 2024 [community] #Community +
+
+ +
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/intro/index.html b/intro/index.html new file mode 100644 index 0000000..0f5167b --- /dev/null +++ b/intro/index.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Welcome | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Welcome

+ + + JMCT September 14, 2024 [community] #Community + + + + +

The Haskell Ecosystem plays host to some amazing projects. Talented developers spend significant amounts of time, often their free time, helping develop, maintain, and support this ecosystem that all Haskell developers use. This space is for any of the developer teams that work on Haskell core infrastructure and power the Haskell Ecosystem

+

This blog will provide a space for these efforts to communicate with the wider Haskell community. Things you might see here: call for volunteers, project updates, requests for comments/feedback.

+

Blogs also form a key part of an ecosystem’s documentation. We’d like to take this idea to its conclusion in the Haskell ecosystem and provide a place for this high-value documentation to live and be maintained. In addition to helping out with editing, by hosting the posts here we’ll also have shared responsibility for maintaining the blog posts, helping prevent the all-to-common bit-rot that occurs on blog posts.

+

There are already a few posts to get the ball rolling. We’re really excited to share these thoughts with you all.

+

Happy Hacking,

+

José Manuel Calderón Trilla

+ + +
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/js/abridge.min.js b/js/abridge.min.js new file mode 100644 index 0000000..b3d44fe --- /dev/null +++ b/js/abridge.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var a,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,C,D,F,k,_,N,L,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i{if(null===e||"object"!=typeof e)return e;var t,n=e.constructor();for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n})(t):null},g.DocumentStore.prototype.getDoc=function(e){return!1===this.hasDoc(e)?null:this.docs[e]},g.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},g.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},g.DocumentStore.prototype.addFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},g.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},g.DocumentStore.prototype.getFieldLength=function(e,t){return null!=e&&e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},g.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},a={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,h=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,f=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$/,p=/^([^aeiou][^aeiouy]*)?[aeiouy]/,m=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,x=/.$/,b=/(at|bl|iz)$/,w=/([^aeiouylsz])\1$/,I=RegExp("^"+(t="[^aeiou][^aeiouy]*")+(e="[aeiouy]")+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,C=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,D=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,k=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,N=/ll$/,L=RegExp("^"+t+e+"[^aeiouwxy]$"),g.Pipeline.registerFunction(g.stemmer=function(e){var t,n,o,i,r,s,u,l;return e.length<3||("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),u=v,(r=m).test(e)?e=e.replace(r,"$1$2"):u.test(e)&&(e=e.replace(u,"$1$2")),u=S,(r=y).test(e)?(l=r.exec(e),(r=d).test(l[1])&&(e=e.replace(r=x,""))):u.test(e)&&(s=(l=u.exec(e))[1],(u=p).test(s))&&(e=s,o=w,i=I,(u=b).test(e)?e+="e":o.test(e)?e=e.replace(r=x,""):i.test(e)&&(e+="e")),(r=E).test(e)&&(e=(s=(l=r.exec(e))[1])+"i"),(r=C).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+a[t]),(r=D).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+c[t]),u=k,(r=F).test(e)?(s=(l=r.exec(e))[1],(r=h).test(s)&&(e=s)):u.test(e)&&(s=(l=u.exec(e))[1]+l[2],(u=h).test(s))&&(e=s),(r=_).test(e)&&(s=(l=r.exec(e))[1],u=f,o=L,(r=h).test(s)||u.test(s)&&!o.test(s))&&(e=s),u=h,(r=N).test(e)&&u.test(e)&&(e=e.replace(r=x,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1))),e},"stemmer"),g.stopWordFilter=function(e){return e&&!0!==g.stopWordFilter.stopWords[e]?e:void 0},g.clearStopWords=function(){g.stopWordFilter.stopWords={}},g.addStopWords=function(e){null!=e&&!1!==Array.isArray(e)&&e.forEach(function(e){g.stopWordFilter.stopWords[e]=!0},this)},g.resetStopWords=function(){g.stopWordFilter.stopWords=g.defaultStopWords},g.stopWordFilter.stopWords=g.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,do:!0,does:!0,either:!0,else:!0,ever:!0,every:!0,for:!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,if:!0,in:!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,this:!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,while:!0,who:!0,whom:!0,why:!0,will:!0,with:!0,would:!0,yet:!0,you:!0,your:!0},g.Pipeline.registerFunction(g.stopWordFilter,"stopWordFilter"),g.Pipeline.registerFunction(g.trimmer=function(e){if(null==e)throw Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},"trimmer"),(g.InvertedIndex=function(){this.root={docs:{},df:0}}).load=function(e){var t=new this;return t.root=e.root,t},g.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,o=0;o<=e.length-1;){var i=e[o];i in n||(n[i]={docs:{},df:0}),o+=1,n=n[i]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},g.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=((e,t)=>{var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,l=s[p].split(/[\s\n]/),a=8;for(u in l){if(0<(v=l[u]).length){for(var c in n)elasticlunr.stemmer(v).startsWith(n[c])&&(a=40,o=!0);r.push([v,a,i]),a=2}i=i+v.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),x=v[2]+v[0].length;40===v[1]||v[0].length<12||/^[\x00-\xff]+$/.test(v[0])?S.push(e.substring(v[2],x)):(y=((e,t)=>{for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return S.push("…"),S.join("")})(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)}; \ No newline at end of file diff --git a/js/abridge_nopwa.min.js b/js/abridge_nopwa.min.js new file mode 100644 index 0000000..b3d44fe --- /dev/null +++ b/js/abridge_nopwa.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),(()=>{for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var a,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,C,D,F,k,_,N,L,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i{if(null===e||"object"!=typeof e)return e;var t,n=e.constructor();for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n})(t):null},g.DocumentStore.prototype.getDoc=function(e){return!1===this.hasDoc(e)?null:this.docs[e]},g.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},g.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},g.DocumentStore.prototype.addFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},g.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!=e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},g.DocumentStore.prototype.getFieldLength=function(e,t){return null!=e&&e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},g.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},a={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,h=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*/,f=/^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$/,p=/^([^aeiou][^aeiouy]*)?[aeiouy]/,m=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,x=/.$/,b=/(at|bl|iz)$/,w=/([^aeiouylsz])\1$/,I=RegExp("^"+(t="[^aeiou][^aeiouy]*")+(e="[aeiouy]")+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,C=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,D=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,k=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,N=/ll$/,L=RegExp("^"+t+e+"[^aeiouwxy]$"),g.Pipeline.registerFunction(g.stemmer=function(e){var t,n,o,i,r,s,u,l;return e.length<3||("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),u=v,(r=m).test(e)?e=e.replace(r,"$1$2"):u.test(e)&&(e=e.replace(u,"$1$2")),u=S,(r=y).test(e)?(l=r.exec(e),(r=d).test(l[1])&&(e=e.replace(r=x,""))):u.test(e)&&(s=(l=u.exec(e))[1],(u=p).test(s))&&(e=s,o=w,i=I,(u=b).test(e)?e+="e":o.test(e)?e=e.replace(r=x,""):i.test(e)&&(e+="e")),(r=E).test(e)&&(e=(s=(l=r.exec(e))[1])+"i"),(r=C).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+a[t]),(r=D).test(e)&&(s=(l=r.exec(e))[1],t=l[2],(r=d).test(s))&&(e=s+c[t]),u=k,(r=F).test(e)?(s=(l=r.exec(e))[1],(r=h).test(s)&&(e=s)):u.test(e)&&(s=(l=u.exec(e))[1]+l[2],(u=h).test(s))&&(e=s),(r=_).test(e)&&(s=(l=r.exec(e))[1],u=f,o=L,(r=h).test(s)||u.test(s)&&!o.test(s))&&(e=s),u=h,(r=N).test(e)&&u.test(e)&&(e=e.replace(r=x,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1))),e},"stemmer"),g.stopWordFilter=function(e){return e&&!0!==g.stopWordFilter.stopWords[e]?e:void 0},g.clearStopWords=function(){g.stopWordFilter.stopWords={}},g.addStopWords=function(e){null!=e&&!1!==Array.isArray(e)&&e.forEach(function(e){g.stopWordFilter.stopWords[e]=!0},this)},g.resetStopWords=function(){g.stopWordFilter.stopWords=g.defaultStopWords},g.stopWordFilter.stopWords=g.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,do:!0,does:!0,either:!0,else:!0,ever:!0,every:!0,for:!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,if:!0,in:!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,this:!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,while:!0,who:!0,whom:!0,why:!0,will:!0,with:!0,would:!0,yet:!0,you:!0,your:!0},g.Pipeline.registerFunction(g.stopWordFilter,"stopWordFilter"),g.Pipeline.registerFunction(g.trimmer=function(e){if(null==e)throw Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},"trimmer"),(g.InvertedIndex=function(){this.root={docs:{},df:0}}).load=function(e){var t=new this;return t.root=e.root,t},g.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,o=0;o<=e.length-1;){var i=e[o];i in n||(n[i]={docs:{},df:0}),o+=1,n=n[i]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},g.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=((e,t)=>{var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,l=s[p].split(/[\s\n]/),a=8;for(u in l){if(0<(v=l[u]).length){for(var c in n)elasticlunr.stemmer(v).startsWith(n[c])&&(a=40,o=!0);r.push([v,a,i]),a=2}i=i+v.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),x=v[2]+v[0].length;40===v[1]||v[0].length<12||/^[\x00-\xff]+$/.test(v[0])?S.push(e.substring(v[2],x)):(y=((e,t)=>{for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return S.push("…"),S.join("")})(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)}; \ No newline at end of file diff --git a/js/abridge_nosearch.min.js b/js/abridge_nosearch.min.js new file mode 100644 index 0000000..4036082 --- /dev/null +++ b/js/abridge_nosearch.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),!function(){for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}),"serviceWorker"in navigator&&(navigator.serviceWorker.register("/sw.min.js?v=3.12.1",{scope:"/"}).then(()=>{},e=>{}),navigator.serviceWorker.ready.then(()=>{})); \ No newline at end of file diff --git a/js/abridge_nosearch_nopwa.min.js b/js/abridge_nosearch_nopwa.min.js new file mode 100644 index 0000000..a262b38 --- /dev/null +++ b/js/abridge_nosearch_nopwa.min.js @@ -0,0 +1 @@ +let items=document.querySelectorAll(".preStyle"),changeIcon=(items.forEach(e=>{e.rel="stylesheet"}),document.getElementById("mode")&&document.getElementById("mode").addEventListener("click",()=>{document.documentElement.classList.toggle("switch"),localStorage.setItem("theme",document.documentElement.classList.contains("switch")?"switch":"default")}),!function(){for(var e=document.getElementsByClassName("m-protected"),t=0;t{e.classList.add(t),setTimeout(()=>e.classList.remove(t),2500)}),copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"yes")}catch(e){changeIcon(t,"err")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre").forEach(e=>{let t=document.createElement("div");t.className="cc svgs svgh copy",t.innerHTML=" ",e.prepend(t),t.addEventListener("click",()=>copyCodeAndChangeIcon(t,e))}); \ No newline at end of file diff --git a/js/codecopy.js b/js/codecopy.js new file mode 100644 index 0000000..9e00c79 --- /dev/null +++ b/js/codecopy.js @@ -0,0 +1,34 @@ +const changeIcon = (copyDiv, className) => { + copyDiv.classList.add(className); + setTimeout(() => copyDiv.classList.remove(className), 2500); +}; + +const copyCodeAndChangeIcon = async (copyDiv, block) => { + const code = block.querySelector('table') ? getTableCode(block) : getNonTableCode(block); + try { + await navigator.clipboard.writeText(code); + changeIcon(copyDiv, "yes"); + } catch (error) { + changeIcon(copyDiv, "err"); + } +}; + +const getNonTableCode = (block) => { + return [...block.querySelectorAll('code')] + .map(code => code.textContent) + .join(''); +}; + +const getTableCode = (block) => { + return [...block.querySelectorAll('tr')] + .map(row => row.querySelector('td:last-child')?.innerText ?? '') + .join(''); +}; + +document.querySelectorAll("pre").forEach((block) => { + const copyDiv = document.createElement("div"); + copyDiv.className = "cc svgs svgh copy"; + copyDiv.innerHTML = " "; + block.prepend(copyDiv); + copyDiv.addEventListener("click", () => copyCodeAndChangeIcon(copyDiv, block));; +}); diff --git a/js/elasticlunr.min.js b/js/elasticlunr.min.js new file mode 100644 index 0000000..79dad65 --- /dev/null +++ b/js/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o0&&(a.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=i.test(d)?d:e.slice(t[l].left.length,n);a.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&a.push({type:"text",data:e}),a},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var a=document.createDocumentFragment(),i=0;i15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function m(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var c=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:m(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[b[this.id]]},t.text=function(){return p[y[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=N[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return N[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();H.BASESIZE=6;var E=H,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},P=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},F=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},V=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=V(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,be,"\u2208","\\in",!0),ie(oe,le,be,"\ue020","\\@not"),ie(oe,le,be,"\u2282","\\subset",!0),ie(oe,le,be,"\u2283","\\supset",!0),ie(oe,le,be,"\u2286","\\subseteq",!0),ie(oe,le,be,"\u2287","\\supseteq",!0),ie(oe,he,be,"\u2288","\\nsubseteq",!0),ie(oe,he,be,"\u2289","\\nsupseteq",!0),ie(oe,le,be,"\u22a8","\\models"),ie(oe,le,be,"\u2190","\\leftarrow",!0),ie(oe,le,be,"\u2264","\\le"),ie(oe,le,be,"\u2264","\\leq",!0),ie(oe,le,be,"<","\\lt",!0),ie(oe,le,be,"\u2192","\\rightarrow",!0),ie(oe,le,be,"\u2192","\\to"),ie(oe,he,be,"\u2271","\\ngeq",!0),ie(oe,he,be,"\u2270","\\nleq",!0),ie(oe,le,ye,"\xa0","\\ "),ie(oe,le,ye,"\xa0","\\space"),ie(oe,le,ye,"\xa0","\\nobreakspace"),ie(se,le,ye,"\xa0","\\ "),ie(se,le,ye,"\xa0"," "),ie(se,le,ye,"\xa0","\\space"),ie(se,le,ye,"\xa0","\\nobreakspace"),ie(oe,le,ye,null,"\\nobreak"),ie(oe,le,ye,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,ce,"\u22bc","\\barwedge",!0),ie(oe,he,ce,"\u22bb","\\veebar",!0),ie(oe,le,ce,"\u2299","\\odot",!0),ie(oe,le,ce,"\u2295","\\oplus",!0),ie(oe,le,ce,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,ce,"\u2298","\\oslash",!0),ie(oe,he,ce,"\u229a","\\circledcirc",!0),ie(oe,he,ce,"\u22a1","\\boxdot",!0),ie(oe,le,ce,"\u25b3","\\bigtriangleup"),ie(oe,le,ce,"\u25bd","\\bigtriangledown"),ie(oe,le,ce,"\u2020","\\dagger"),ie(oe,le,ce,"\u22c4","\\diamond"),ie(oe,le,ce,"\u22c6","\\star"),ie(oe,le,ce,"\u25c3","\\triangleleft"),ie(oe,le,ce,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,be,"\u2191","\\uparrow",!0),ie(oe,le,be,"\u21d1","\\Uparrow",!0),ie(oe,le,be,"\u2193","\\downarrow",!0),ie(oe,le,be,"\u21d3","\\Downarrow",!0),ie(oe,le,be,"\u2195","\\updownarrow",!0),ie(oe,le,be,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,me,"\u02ca","\\acute"),ie(oe,le,me,"\u02cb","\\grave"),ie(oe,le,me,"\xa8","\\ddot"),ie(oe,le,me,"~","\\tilde"),ie(oe,le,me,"\u02c9","\\bar"),ie(oe,le,me,"\u02d8","\\breve"),ie(oe,le,me,"\u02c7","\\check"),ie(oe,le,me,"^","\\hat"),ie(oe,le,me,"\u20d7","\\vec"),ie(oe,le,me,"\u02d9","\\dot"),ie(oe,le,me,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,me,"\u02ca","\\'"),ie(se,le,me,"\u02cb","\\`"),ie(se,le,me,"\u02c6","\\^"),ie(se,le,me,"\u02dc","\\~"),ie(se,le,me,"\u02c9","\\="),ie(se,le,me,"\u02d8","\\u"),ie(se,le,me,"\u02d9","\\."),ie(se,le,me,"\xb8","\\c"),ie(se,le,me,"\u02da","\\r"),ie(se,le,me,"\u02c7","\\v"),ie(se,le,me,"\xa8",'\\"'),ie(se,le,me,"\u02dd","\\H"),ie(se,le,me,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Ve(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=V(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var m=mt(["katex-html"],o);if(m.setAttribute("aria-hidden","true"),i){var c=i.children[0];c.style.height=V(m.height+m.depth),m.depth&&(c.style.verticalAlign=V(-m.depth))}return m}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",V(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},qt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),q(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},Nt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(Nt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ot(e,t,r,n,a){var i,o=Nt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),m=new Tt.MathNode("math",[h]);m.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&m.setAttribute("display","block");var c=a?"katex":"katex-mathml";return Ke.makeSpan([c],[m])}var Ht=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ht(r);if("mathml"===r.output)return Ot(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ot(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Pt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ft=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:V(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=V(o),i},Vt=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.substr(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var m=new J(i),c=new K([m],{width:"100%",height:V(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[c],t),minWidth:0,height:o}}var u,p,d,f=[],g=Pt[n],v=g[0],b=g[1],y=g[2],x=y/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=V(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,m="\\c"===n.label,c=m?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+V(2*o)+")",marginLeft:V(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,m&&(c+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),c=i.height);var f=o;d||(f-=p/2),h.style.left=V(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-c},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Vt(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Vt(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=i.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Vt(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Kt=function(e){return"textord"===e.type&&"@"===e.text};function Jt(e,t,r){var n=Zt[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=V(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var Qt=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},er=function(e,t){var r=Nt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=r[0],i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=V(F(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",V(F(e.size,t)))),r}});var tr={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rr=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},nr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(tr[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=tr[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===tr[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return nr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return nr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var ar=function(e,t,r){var n=q(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},ir=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},or=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=V(a),e.height-=a,e.depth+=a},sr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=ir(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&or(s,n,x.TEXT),s},lr=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},hr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:V(n),height:V(t),style:"width:"+V(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=V(t),o.style.width=V(n),{type:"elem",elem:o}},mr={type:"kern",size:-.008},cr=["|","\\lvert","\\rvert","\\vert"],ur=["\\|","\\lVert","\\rVert","\\Vert"],pr=function(e,t,r,n,a,i){var o,s,h,m;o=h=m=e,s=null;var c="Size1-Regular";"\\uparrow"===e?h=m="\u23d0":"\\Uparrow"===e?h=m="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",m="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",m="\\Downarrow"):l.contains(cr,e)?h="\u2223":l.contains(ur,e)?h="\u2225":"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",m="\u23a3",c="Size4-Regular"):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",m="\u23a6",c="Size4-Regular"):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",m="\u23a3",c="Size4-Regular"):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=m="\u23a2",c="Size4-Regular"):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",m="\u23a6",c="Size4-Regular"):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=m="\u23a5",c="Size4-Regular"):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",m="\u239d",c="Size4-Regular"):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",m="\u23a0",c="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",m="\u23a9",h="\u23aa",c="Size4-Regular");var u=ar(o,c,a),p=u.height+u.depth,d=ar(h,c,a),f=d.height+d.depth,g=ar(m,c,a),v=g.height+g.depth,b=0,y=1;if(null!==s){var w=ar(s,c,a);b=w.height+w.depth,y=2}var k=p+v+b,S=k+Math.max(0,Math.ceil((t-k)/(y*f)))*y*f,M=n.fontMetrics().axisHeight;r&&(M*=n.sizeMultiplier);var z=S/2-M,A=[];if(A.push(lr(m,c,a)),A.push(mr),null===s){var T=S-p-v+.016;A.push(hr(h,T,n))}else{var B=(S-p-v-b)/2+.016;A.push(hr(h,B,n)),A.push(mr),A.push(lr(s,c,a)),A.push(mr),A.push(hr(h,B,n))}A.push(mr),A.push(lr(o,c,a));var C=n.havingBaseStyle(x.TEXT),q=Ke.makeVList({positionType:"bottom",positionData:z,children:A},C);return ir(Ke.makeSpan(["delimsizing","mult"],[q],C),x.TEXT,n,i)},dr=.08,fr=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:V(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},gr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],vr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],br=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],yr=[0,1.2,1.8,2.4,3],xr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],wr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],kr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Sr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Mr=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},zr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(br,e)?xr:l.contains(gr,e)?kr:wr;var s=Mr(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=ir(o,t,n,i);return r&&or(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?sr(e,s.size,r,n,a,i):pr(e,t,r,n,a,i)},Ar={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Mr("\\surd",e*a.sizeMultiplier,kr,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=fr("sqrtMain",l=(1+s+dr)/o,m=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(m=1080*yr[i.size],h=(yr[i.size]+s)/o,l=(yr[i.size]+s+dr)/o,(r=fr("sqrtSize"+i.size,l,m,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+dr,h=e+s,m=Math.floor(1e3*e+s)+80,(r=fr("sqrtTall",l,m,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=V(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(gr,e)||l.contains(br,e))return sr(e,t,!1,r,a,i);if(l.contains(vr,e))return pr(e,yr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:yr,customSizedDelim:zr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return zr(e,h,!0,n,a,i)}},Tr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Br=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Cr(e,t){var r=Xt(e);if(r&&l.contains(Br,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function qr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Cr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:Tr[e.funcName].size,mclass:Tr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Ar.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=V(Ar.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Cr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Cr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){qr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Rr={};function Or(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!c)&&g.pop(),b.length0&&(y+=.25),m.push({pos:y,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=b)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,y+=S,z.pos=y,y+=M+B,h[r]=z,w(o[r+1])}var C,q,N=y/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],O=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(P.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=V(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,c),J=Ke.makeLineSpan("hdashline",t,c),Q=[{type:"elem",elem:h,shift:0}];m.length>0;){var ee=m.pop(),te=ee.pos-N;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===O.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:O},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},Xr={c:"center ",l:"left ",r:"right "},Wr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(c+="top ",g=1),"separator"===p[p.length-1].type&&(c+="bottom ",v-=1);for(var b=g;b0?"left ":"",c+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Gr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Vr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Or({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Gr(e.parser,a,Ur(e.envName))},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Gr(e.parser,a,Ur(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Gr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},Ur(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Fr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Vr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Fr(e);var t={autoTag:Vr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Fr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[c]);for(var d=0;d<2;d++){for(var f=!0,g=c+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=t.fontMetrics().denom1):(m>0?(u=t.fontMetrics().num2,p=c):(u=t.fontMetrics().num3,p=3*c),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*m)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,m=Ut(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Vt(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=F(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=F(e.width,t));var i={height:V(r+n)};a>0&&(i.width=V(a)),n>0&&(i.verticalAlign=V(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=F(e.height,t),a=0;if(e.totalheight.number>0&&(a=F(e.totalheight,t)-n,r.setAttribute("valign",V(-a))),r.setAttribute("height",V(n+a)),e.width.number>0){var i=F(e.width,t);r.setAttribute("width",V(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=F(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=V(a.height+a.depth),a.depth&&(i.style.verticalAlign=V(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var mn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=mn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=mn(e,t);return It(r,t)}});var cn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,m,c=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;m=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[m];if(s&&0!==i&&!c){var b=Ke.makeSpan(["mspace"],[],n);b.style.marginRight=V(i),v.unshift(b)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var m=h?"Size2-Regular":"Size1-Regular",c="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(c=a.name.substr(1),a.name="oiint"===c?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,m,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),c.length>0){var u=o.italic,p=Ke.staticSvg(c+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+c,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",V(a)):(s.setAttribute("height",V(a)),s.setAttribute("depth",V(-a))),s.setAttribute("voffset",V(a)),s}});var yn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:yn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:yn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return bn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=Nt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",V(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=V(m);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),b=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[b,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return bn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=Nt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,m=wt(o,t),c=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=m.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=m.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var v,b=t.sizeMultiplier,y=V(.5/c.ptPerEm/b),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof Z||k)&&(w=V(-m.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*c.xHeight),p=Math.max(p,c.sub2);var S=4*c.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:y,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:y}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,c.sub1,a.height-.8*c.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:y}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*c.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:y}]},t)}var T=yt(m,"right")||"mord";return Ke.makeSpan([T],[m,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=qt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=qt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=qt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=qn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),Hn=Hr;Er("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Er("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Er("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Er("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Er("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Er("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Er("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var En={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Er("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=En[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=En[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Er("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Dn?t=Dn[r]:("\\not"===r.substr(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Pn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Er("\\dotso",(function(e){return e.future().text in Pn?"\\ldots\\,":"\\ldots"})),Er("\\dotsc",(function(e){var t=e.future().text;return t in Pn&&","!==t?"\\ldots\\,":"\\ldots"})),Er("\\cdots",(function(e){return e.future().text in Pn?"\\@cdots\\,":"\\@cdots"})),Er("\\dotsb","\\cdots"),Er("\\dotsm","\\cdots"),Er("\\dotsi","\\!\\cdots"),Er("\\dotsx","\\ldots\\,"),Er("\\DOTSI","\\relax"),Er("\\DOTSB","\\relax"),Er("\\DOTSX","\\relax"),Er("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Er("\\,","\\tmspace+{3mu}{.1667em}"),Er("\\thinspace","\\,"),Er("\\>","\\mskip{4mu}"),Er("\\:","\\tmspace+{4mu}{.2222em}"),Er("\\medspace","\\:"),Er("\\;","\\tmspace+{5mu}{.2777em}"),Er("\\thickspace","\\;"),Er("\\!","\\tmspace-{3mu}{.1667em}"),Er("\\negthinspace","\\!"),Er("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Er("\\negthickspace","\\tmspace-{5mu}{.277em}"),Er("\\enspace","\\kern.5em "),Er("\\enskip","\\hskip.5em\\relax"),Er("\\quad","\\hskip1em\\relax"),Er("\\qquad","\\hskip2em\\relax"),Er("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Er("\\tag@paren","\\tag@literal{({#1})}"),Er("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Er("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Er("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Er("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Er("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Er("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),Er("\\newline","\\\\\\relax"),Er("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Fn=V(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Er("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Er("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Er("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Er("\\@hspace","\\hskip #1\\relax"),Er("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Er("\\ordinarycolon",":"),Er("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Er("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Er("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Er("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Er("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Er("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Er("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Er("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Er("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Er("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Er("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Er("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Er("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Er("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Er("\u2237","\\dblcolon"),Er("\u2239","\\eqcolon"),Er("\u2254","\\coloneqq"),Er("\u2255","\\eqqcolon"),Er("\u2a74","\\Coloneqq"),Er("\\ratio","\\vcentcolon"),Er("\\coloncolon","\\dblcolon"),Er("\\colonequals","\\coloneqq"),Er("\\coloncolonequals","\\Coloneqq"),Er("\\equalscolon","\\eqqcolon"),Er("\\equalscoloncolon","\\Eqqcolon"),Er("\\colonminus","\\coloneq"),Er("\\coloncolonminus","\\Coloneq"),Er("\\minuscolon","\\eqcolon"),Er("\\minuscoloncolon","\\Eqcolon"),Er("\\coloncolonapprox","\\Colonapprox"),Er("\\coloncolonsim","\\Colonsim"),Er("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Er("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Er("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Er("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Er("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Er("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Er("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Er("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Er("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Er("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Er("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Er("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Er("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Er("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Er("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Er("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Er("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Er("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Er("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Er("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Er("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Er("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Er("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Er("\\imath","\\html@mathml{\\@imath}{\u0131}"),Er("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Er("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Er("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Er("\u27e6","\\llbracket"),Er("\u27e7","\\rrbracket"),Er("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Er("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Er("\u2983","\\lBrace"),Er("\u2984","\\rBrace"),Er("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Er("\u29b5","\\minuso"),Er("\\darr","\\downarrow"),Er("\\dArr","\\Downarrow"),Er("\\Darr","\\Downarrow"),Er("\\lang","\\langle"),Er("\\rang","\\rangle"),Er("\\uarr","\\uparrow"),Er("\\uArr","\\Uparrow"),Er("\\Uarr","\\Uparrow"),Er("\\N","\\mathbb{N}"),Er("\\R","\\mathbb{R}"),Er("\\Z","\\mathbb{Z}"),Er("\\alef","\\aleph"),Er("\\alefsym","\\aleph"),Er("\\Alpha","\\mathrm{A}"),Er("\\Beta","\\mathrm{B}"),Er("\\bull","\\bullet"),Er("\\Chi","\\mathrm{X}"),Er("\\clubs","\\clubsuit"),Er("\\cnums","\\mathbb{C}"),Er("\\Complex","\\mathbb{C}"),Er("\\Dagger","\\ddagger"),Er("\\diamonds","\\diamondsuit"),Er("\\empty","\\emptyset"),Er("\\Epsilon","\\mathrm{E}"),Er("\\Eta","\\mathrm{H}"),Er("\\exist","\\exists"),Er("\\harr","\\leftrightarrow"),Er("\\hArr","\\Leftrightarrow"),Er("\\Harr","\\Leftrightarrow"),Er("\\hearts","\\heartsuit"),Er("\\image","\\Im"),Er("\\infin","\\infty"),Er("\\Iota","\\mathrm{I}"),Er("\\isin","\\in"),Er("\\Kappa","\\mathrm{K}"),Er("\\larr","\\leftarrow"),Er("\\lArr","\\Leftarrow"),Er("\\Larr","\\Leftarrow"),Er("\\lrarr","\\leftrightarrow"),Er("\\lrArr","\\Leftrightarrow"),Er("\\Lrarr","\\Leftrightarrow"),Er("\\Mu","\\mathrm{M}"),Er("\\natnums","\\mathbb{N}"),Er("\\Nu","\\mathrm{N}"),Er("\\Omicron","\\mathrm{O}"),Er("\\plusmn","\\pm"),Er("\\rarr","\\rightarrow"),Er("\\rArr","\\Rightarrow"),Er("\\Rarr","\\Rightarrow"),Er("\\real","\\Re"),Er("\\reals","\\mathbb{R}"),Er("\\Reals","\\mathbb{R}"),Er("\\Rho","\\mathrm{P}"),Er("\\sdot","\\cdot"),Er("\\sect","\\S"),Er("\\spades","\\spadesuit"),Er("\\sub","\\subset"),Er("\\sube","\\subseteq"),Er("\\supe","\\supseteq"),Er("\\Tau","\\mathrm{T}"),Er("\\thetasym","\\vartheta"),Er("\\weierp","\\wp"),Er("\\Zeta","\\mathrm{Z}"),Er("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Er("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Er("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Er("\\bra","\\mathinner{\\langle{#1}|}"),Er("\\ket","\\mathinner{|{#1}\\rangle}"),Er("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Er("\\Bra","\\left\\langle#1\\right|"),Er("\\Ket","\\left|#1\\right\\rangle");var Vn=function(e){return function(t){var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=function(t){return function(r){e&&(r.macros.set("|",o),a.length&&r.macros.set("\\|",s));var i=t;!t&&a.length&&("|"===r.future().text&&(r.popToken(),i=!0));return{tokens:i?a:n,numArgs:0}}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,m=t.expandTokens([].concat(i,h,r));return t.macros.endGroup(),{tokens:m.reverse(),numArgs:0}}};Er("\\bra@ket",Vn(!1)),Er("\\bra@set",Vn(!0)),Er("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Er("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Er("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Er("\\angln","{\\angl n}"),Er("\\blue","\\textcolor{##6495ed}{#1}"),Er("\\orange","\\textcolor{##ffa500}{#1}"),Er("\\pink","\\textcolor{##ff00af}{#1}"),Er("\\red","\\textcolor{##df0030}{#1}"),Er("\\green","\\textcolor{##28ae7b}{#1}"),Er("\\gray","\\textcolor{gray}{#1}"),Er("\\purple","\\textcolor{##9d38bd}{#1}"),Er("\\blueA","\\textcolor{##ccfaff}{#1}"),Er("\\blueB","\\textcolor{##80f6ff}{#1}"),Er("\\blueC","\\textcolor{##63d9ea}{#1}"),Er("\\blueD","\\textcolor{##11accd}{#1}"),Er("\\blueE","\\textcolor{##0c7f99}{#1}"),Er("\\tealA","\\textcolor{##94fff5}{#1}"),Er("\\tealB","\\textcolor{##26edd5}{#1}"),Er("\\tealC","\\textcolor{##01d1c1}{#1}"),Er("\\tealD","\\textcolor{##01a995}{#1}"),Er("\\tealE","\\textcolor{##208170}{#1}"),Er("\\greenA","\\textcolor{##b6ffb0}{#1}"),Er("\\greenB","\\textcolor{##8af281}{#1}"),Er("\\greenC","\\textcolor{##74cf70}{#1}"),Er("\\greenD","\\textcolor{##1fab54}{#1}"),Er("\\greenE","\\textcolor{##0d923f}{#1}"),Er("\\goldA","\\textcolor{##ffd0a9}{#1}"),Er("\\goldB","\\textcolor{##ffbb71}{#1}"),Er("\\goldC","\\textcolor{##ff9c39}{#1}"),Er("\\goldD","\\textcolor{##e07d10}{#1}"),Er("\\goldE","\\textcolor{##a75a05}{#1}"),Er("\\redA","\\textcolor{##fca9a9}{#1}"),Er("\\redB","\\textcolor{##ff8482}{#1}"),Er("\\redC","\\textcolor{##f9685d}{#1}"),Er("\\redD","\\textcolor{##e84d39}{#1}"),Er("\\redE","\\textcolor{##bc2612}{#1}"),Er("\\maroonA","\\textcolor{##ffbde0}{#1}"),Er("\\maroonB","\\textcolor{##ff92c6}{#1}"),Er("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Er("\\maroonD","\\textcolor{##ca337c}{#1}"),Er("\\maroonE","\\textcolor{##9e034e}{#1}"),Er("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Er("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Er("\\purpleC","\\textcolor{##aa87ff}{#1}"),Er("\\purpleD","\\textcolor{##7854ab}{#1}"),Er("\\purpleE","\\textcolor{##543b78}{#1}"),Er("\\mintA","\\textcolor{##f5f9e8}{#1}"),Er("\\mintB","\\textcolor{##edf2df}{#1}"),Er("\\mintC","\\textcolor{##e0e5cc}{#1}"),Er("\\grayA","\\textcolor{##f6f7f7}{#1}"),Er("\\grayB","\\textcolor{##f0f1f2}{#1}"),Er("\\grayC","\\textcolor{##e3e5e6}{#1}"),Er("\\grayD","\\textcolor{##d6d8da}{#1}"),Er("\\grayE","\\textcolor{##babec2}{#1}"),Er("\\grayF","\\textcolor{##888d93}{#1}"),Er("\\grayG","\\textcolor{##626569}{#1}"),Er("\\grayH","\\textcolor{##3b3e40}{#1}"),Er("\\grayI","\\textcolor{##21242c}{#1}"),Er("\\kaBlue","\\textcolor{##314453}{#1}"),Er("\\kaGreen","\\textcolor{##71B307}{#1}");var Gn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Un=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new On(Hn,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Rn(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Dr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof Dr)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Dr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof Dr&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Rn(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||Nn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Gn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Nn.hasOwnProperty(e)&&!Nn[e].primitive},e}(),Yn=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,Xn=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Wn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},_n={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},jn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Un(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Dr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&Nn[a.text]&&Nn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Lr.range(e);if(te.hasOwnProperty(l)){var m=l;s={type:"atom",mode:this.mode,family:m,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Lr.range(e),text:t}}if(this.consume(),o)for(var c=0;c=we[t]&&e<=we[t+1])return 1}function C(e,t,r){if(!Me[t])throw Error("Font metrics not found for font: "+t+".");var n=e.charCodeAt(0),i=Me[t][n];if(!i&&e[0]in Ae&&(n=Ae[e[0]].charCodeAt(0),i=Me[t][n]),i||"text"!==r||B(n)&&(i=Me[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function q(e){if(e instanceof b)return e;throw Error("Expected symbolNode but got "+e+".")}function e(e,t,r,n,i,a){nt[e][i]={font:t,group:r,replace:n},a&&n&&(nt[e][n]=nt[e][i])}function t(e){for(var t=e.type,r=e.names,n=e.props,i=e.handler,a=e.htmlBuilder,e=e.mathmlBuilder,o={type:t,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:void 0===n.allowedInMath||n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},s=0;s=g.length&&u||g.pop(),b.length":">","<":"<",'"':""","'":"'"},le=/[&><"']/g,Z={contains:function(e,t){return!!~e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return(""+e).replace(le,function(e){return se[e]})},hyphenate:function(e){return e.replace(oe,"-$1").toLowerCase()},getBaseElem:ne,isCharacterBox:function(e){e=ne(e);return"mathord"===e.type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(e){e=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=e?e[1]:"_relative"}},he={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}},me=((o=ve.prototype).reportNonstrict=function(e,t,r){var n=this.strict;if((n="function"==typeof n?n(e,t,r):n)&&"ignore"!==n&&(!0===n||"error"===n))throw new j("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r)},o.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n||!0!==n&&"error"!==n)},o.isTrusted=function(e){return e.url&&!e.protocol&&(e.protocol=Z.protocolFromUrl(e.url)),!!("function"==typeof this.trust?this.trust(e):this.trust)},ve);(o=xe.prototype).sup=function(){return ce[ue[this.id]]},o.sub=function(){return ce[pe[this.id]]},o.fracNum=function(){return ce[de[this.id]]},o.fracDen=function(){return ce[fe[this.id]]},o.cramp=function(){return ce[ge[this.id]]},o.text=function(){return ce[ye[this.id]]};var ce=[new(s=xe)(0,0,!(o.isTight=function(){return 2<=this.size})),new s(1,0,!0),new s(2,1,!1),new s(3,1,!0),new s(4,2,!1),new s(5,2,!0),new s(6,3,!1),new s(7,3,!0)],ue=[4,5,4,5,6,7,6,7],pe=[5,5,5,5,7,7,7,7],de=[2,3,4,5,6,7,6,7],fe=[3,3,5,5,7,7,7,7],ge=[1,1,3,3,5,5,7,7],ye=[0,1,2,3,2,3,2,3],K={DISPLAY:ce[0],TEXT:ce[2],SCRIPT:ce[4],SCRIPTSCRIPT:ce[6]},be=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function xe(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}function ve(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},he){var r;he.hasOwnProperty(t)&&(r=he[t],this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:function(e){if(e.default)return e.default;if(e=e.type,"string"!=typeof(e=Array.isArray(e)?e[0]:e))return e.enum[0];switch(e){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}(r))}}var we=[],ke=(be.forEach(function(e){return e.blocks.forEach(function(e){return we.push.apply(we,e)})}),{doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"}),Se=((o=Te.prototype).hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t"}(s=Ie.prototype).extend=function(e){var t,r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return new Ie(r)},s.havingStyle=function(e){return this.style===e?this:this.extend({style:e,size:Be(this.textSize,e)})},s.havingCrampedStyle=function(){return this.havingStyle(this.style.cramp())},s.havingSize=function(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ne[e-1]})},s.havingBaseStyle=function(e){e=e||this.style.text();var t=Be(Ie.BASESIZE,e);return this.size===t&&this.textSize===Ie.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})},s.havingBaseSizing=function(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})},s.withColor=function(e){return this.extend({color:e})},s.withPhantom=function(){return this.extend({phantom:!0})},s.withFont=function(e){return this.extend({font:e})},s.withTextFontFamily=function(e){return this.extend({fontFamily:e,font:""})},s.withTextFontWeight=function(e){return this.extend({fontWeight:e,font:""})},s.withTextFontShape=function(e){return this.extend({fontShape:e,font:""})},s.sizingClasses=function(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]},s.baseSizingClasses=function(){return this.size!==Ie.BASESIZE?["sizing","reset-size"+this.size,"size"+Ie.BASESIZE]:[]},s.fontMetrics=function(){return this._fontMetrics||(this._fontMetrics=function(e){var t;if(!Ce[t=e<5?e<3?2:1:0]){var r,n=Ce[t]={cssEmPerMu:ze.quad[t]/18};for(r in ze)ze.hasOwnProperty(r)&&(n[r]=ze[r][t])}return Ce[t]}(this.size)),this._fontMetrics},s.getColor=function(){return this.phantom?"transparent":this.color},(o=Ie).BASESIZE=6;var Le=o,Pe={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},Fe={ex:!0,em:!0,mu:!0},Q=function(e){return+e.toFixed(4)+"em"},Ve=((s=et.prototype).setAttribute=function(e,t){this.attributes[e]=t},s.hasClass=function(e){return Z.contains(this.classes,e)},s.toNode=function(){return He.call(this,"span")},s.toMarkup=function(){return De.call(this,"span")},et),Ge=((o=Qe.prototype).setAttribute=function(e,t){this.attributes[e]=t},o.hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){return He.call(this,"a")},o.toMarkup=function(){return De.call(this,"a")},Qe),Ue=((s=Je.prototype).hasClass=function(e){return Z.contains(this.classes,e)},s.toNode=function(){var e,t=document.createElement("img");for(e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t},s.toMarkup=function(){var e,t=""+this.alt+""},Je),Ye={"î":"ı̂","ï":"ı̈","í":"ı́","ì":"ı̀"},b=((o=Ke.prototype).hasClass=function(e){return Z.contains(this.classes,e)},o.toNode=function(){var e,t=document.createTextNode(this.text),r=null;for(e in 0"+i)+"":i},Ke),We=((s=Ze.prototype).toNode=function(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(e in this.attributes)!{}.hasOwnProperty.call(this.attributes,e)||t.setAttribute(e,this.attributes[e]);for(var r=0;r"},Ze),Xe=((o=je.prototype).toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?e.setAttribute("d",this.alternate):e.setAttribute("d",ke[this.pathName]),e},o.toMarkup=function(){return this.alternate?"":""},je),_e=((s=$e.prototype).toNode=function(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","line");for(e in this.attributes)!{}.hasOwnProperty.call(this.attributes,e)||t.setAttribute(e,this.attributes[e]);return t},s.toMarkup=function(){var e,t=""},$e);function $e(e){this.attributes=void 0,this.attributes=e||{}}function je(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}function Ze(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}function Ke(e,t,r,n,i,a,o,s){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=t||0,this.depth=r||0,this.italic=n||0,this.skew=i||0,this.width=a||0,this.classes=o||[],this.style=s||{},this.maxFontSize=0;e=function(e){for(var t=0;t=i[0]&&e<=i[1])return r.name}return null}(this.text.charCodeAt(0));e&&this.classes.push(e+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=Ye[this.text])}function Je(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}function Qe(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Ee.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}function et(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Ee.call(this,e,r,n),this.children=t||[]}var tt={bin:1,close:1,inner:1,open:1,punct:1,rel:1},rt={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},nt={math:{},text:{}},p=nt,n="math",i="text",a="main",o="ams",s="accent-token",l="bin",h="close",it="inner",m="mathord",c="op-token",u="open",f="punct",g="rel",y="spacing",x="textord",at=(e(n,a,g,"≡","\\equiv",!0),e(n,a,g,"≺","\\prec",!0),e(n,a,g,"≻","\\succ",!0),e(n,a,g,"∼","\\sim",!0),e(n,a,g,"⊥","\\perp"),e(n,a,g,"⪯","\\preceq",!0),e(n,a,g,"⪰","\\succeq",!0),e(n,a,g,"≃","\\simeq",!0),e(n,a,g,"∣","\\mid",!0),e(n,a,g,"≪","\\ll",!0),e(n,a,g,"≫","\\gg",!0),e(n,a,g,"≍","\\asymp",!0),e(n,a,g,"∥","\\parallel"),e(n,a,g,"⋈","\\bowtie",!0),e(n,a,g,"⌣","\\smile",!0),e(n,a,g,"⊑","\\sqsubseteq",!0),e(n,a,g,"⊒","\\sqsupseteq",!0),e(n,a,g,"≐","\\doteq",!0),e(n,a,g,"⌢","\\frown",!0),e(n,a,g,"∋","\\ni",!0),e(n,a,g,"∝","\\propto",!0),e(n,a,g,"⊢","\\vdash",!0),e(n,a,g,"⊣","\\dashv",!0),e(n,a,g,"∋","\\owns"),e(n,a,f,".","\\ldotp"),e(n,a,f,"⋅","\\cdotp"),e(n,a,x,"#","\\#"),e(i,a,x,"#","\\#"),e(n,a,x,"&","\\&"),e(i,a,x,"&","\\&"),e(n,a,x,"ℵ","\\aleph",!0),e(n,a,x,"∀","\\forall",!0),e(n,a,x,"ℏ","\\hbar",!0),e(n,a,x,"∃","\\exists",!0),e(n,a,x,"∇","\\nabla",!0),e(n,a,x,"♭","\\flat",!0),e(n,a,x,"ℓ","\\ell",!0),e(n,a,x,"♮","\\natural",!0),e(n,a,x,"♣","\\clubsuit",!0),e(n,a,x,"℘","\\wp",!0),e(n,a,x,"♯","\\sharp",!0),e(n,a,x,"♢","\\diamondsuit",!0),e(n,a,x,"ℜ","\\Re",!0),e(n,a,x,"♡","\\heartsuit",!0),e(n,a,x,"ℑ","\\Im",!0),e(n,a,x,"♠","\\spadesuit",!0),e(n,a,x,"§","\\S",!0),e(i,a,x,"§","\\S"),e(n,a,x,"¶","\\P",!0),e(i,a,x,"¶","\\P"),e(n,a,x,"†","\\dag"),e(i,a,x,"†","\\dag"),e(i,a,x,"†","\\textdagger"),e(n,a,x,"‡","\\ddag"),e(i,a,x,"‡","\\ddag"),e(i,a,x,"‡","\\textdaggerdbl"),e(n,a,h,"⎱","\\rmoustache",!0),e(n,a,u,"⎰","\\lmoustache",!0),e(n,a,h,"⟯","\\rgroup",!0),e(n,a,u,"⟮","\\lgroup",!0),e(n,a,l,"∓","\\mp",!0),e(n,a,l,"⊖","\\ominus",!0),e(n,a,l,"⊎","\\uplus",!0),e(n,a,l,"⊓","\\sqcap",!0),e(n,a,l,"∗","\\ast"),e(n,a,l,"⊔","\\sqcup",!0),e(n,a,l,"◯","\\bigcirc",!0),e(n,a,l,"∙","\\bullet",!0),e(n,a,l,"‡","\\ddagger"),e(n,a,l,"≀","\\wr",!0),e(n,a,l,"⨿","\\amalg"),e(n,a,l,"&","\\And"),e(n,a,g,"⟵","\\longleftarrow",!0),e(n,a,g,"⇐","\\Leftarrow",!0),e(n,a,g,"⟸","\\Longleftarrow",!0),e(n,a,g,"⟶","\\longrightarrow",!0),e(n,a,g,"⇒","\\Rightarrow",!0),e(n,a,g,"⟹","\\Longrightarrow",!0),e(n,a,g,"↔","\\leftrightarrow",!0),e(n,a,g,"⟷","\\longleftrightarrow",!0),e(n,a,g,"⇔","\\Leftrightarrow",!0),e(n,a,g,"⟺","\\Longleftrightarrow",!0),e(n,a,g,"↦","\\mapsto",!0),e(n,a,g,"⟼","\\longmapsto",!0),e(n,a,g,"↗","\\nearrow",!0),e(n,a,g,"↩","\\hookleftarrow",!0),e(n,a,g,"↪","\\hookrightarrow",!0),e(n,a,g,"↘","\\searrow",!0),e(n,a,g,"↼","\\leftharpoonup",!0),e(n,a,g,"⇀","\\rightharpoonup",!0),e(n,a,g,"↙","\\swarrow",!0),e(n,a,g,"↽","\\leftharpoondown",!0),e(n,a,g,"⇁","\\rightharpoondown",!0),e(n,a,g,"↖","\\nwarrow",!0),e(n,a,g,"⇌","\\rightleftharpoons",!0),e(n,o,g,"≮","\\nless",!0),e(n,o,g,"","\\@nleqslant"),e(n,o,g,"","\\@nleqq"),e(n,o,g,"⪇","\\lneq",!0),e(n,o,g,"≨","\\lneqq",!0),e(n,o,g,"","\\@lvertneqq"),e(n,o,g,"⋦","\\lnsim",!0),e(n,o,g,"⪉","\\lnapprox",!0),e(n,o,g,"⊀","\\nprec",!0),e(n,o,g,"⋠","\\npreceq",!0),e(n,o,g,"⋨","\\precnsim",!0),e(n,o,g,"⪹","\\precnapprox",!0),e(n,o,g,"≁","\\nsim",!0),e(n,o,g,"","\\@nshortmid"),e(n,o,g,"∤","\\nmid",!0),e(n,o,g,"⊬","\\nvdash",!0),e(n,o,g,"⊭","\\nvDash",!0),e(n,o,g,"⋪","\\ntriangleleft"),e(n,o,g,"⋬","\\ntrianglelefteq",!0),e(n,o,g,"⊊","\\subsetneq",!0),e(n,o,g,"","\\@varsubsetneq"),e(n,o,g,"⫋","\\subsetneqq",!0),e(n,o,g,"","\\@varsubsetneqq"),e(n,o,g,"≯","\\ngtr",!0),e(n,o,g,"","\\@ngeqslant"),e(n,o,g,"","\\@ngeqq"),e(n,o,g,"⪈","\\gneq",!0),e(n,o,g,"≩","\\gneqq",!0),e(n,o,g,"","\\@gvertneqq"),e(n,o,g,"⋧","\\gnsim",!0),e(n,o,g,"⪊","\\gnapprox",!0),e(n,o,g,"⊁","\\nsucc",!0),e(n,o,g,"⋡","\\nsucceq",!0),e(n,o,g,"⋩","\\succnsim",!0),e(n,o,g,"⪺","\\succnapprox",!0),e(n,o,g,"≆","\\ncong",!0),e(n,o,g,"","\\@nshortparallel"),e(n,o,g,"∦","\\nparallel",!0),e(n,o,g,"⊯","\\nVDash",!0),e(n,o,g,"⋫","\\ntriangleright"),e(n,o,g,"⋭","\\ntrianglerighteq",!0),e(n,o,g,"","\\@nsupseteqq"),e(n,o,g,"⊋","\\supsetneq",!0),e(n,o,g,"","\\@varsupsetneq"),e(n,o,g,"⫌","\\supsetneqq",!0),e(n,o,g,"","\\@varsupsetneqq"),e(n,o,g,"⊮","\\nVdash",!0),e(n,o,g,"⪵","\\precneqq",!0),e(n,o,g,"⪶","\\succneqq",!0),e(n,o,g,"","\\@nsubseteqq"),e(n,o,l,"⊴","\\unlhd"),e(n,o,l,"⊵","\\unrhd"),e(n,o,g,"↚","\\nleftarrow",!0),e(n,o,g,"↛","\\nrightarrow",!0),e(n,o,g,"⇍","\\nLeftarrow",!0),e(n,o,g,"⇏","\\nRightarrow",!0),e(n,o,g,"↮","\\nleftrightarrow",!0),e(n,o,g,"⇎","\\nLeftrightarrow",!0),e(n,o,g,"△","\\vartriangle"),e(n,o,x,"ℏ","\\hslash"),e(n,o,x,"▽","\\triangledown"),e(n,o,x,"◊","\\lozenge"),e(n,o,x,"Ⓢ","\\circledS"),e(n,o,x,"®","\\circledR"),e(i,o,x,"®","\\circledR"),e(n,o,x,"∡","\\measuredangle",!0),e(n,o,x,"∄","\\nexists"),e(n,o,x,"℧","\\mho"),e(n,o,x,"Ⅎ","\\Finv",!0),e(n,o,x,"⅁","\\Game",!0),e(n,o,x,"‵","\\backprime"),e(n,o,x,"▲","\\blacktriangle"),e(n,o,x,"▼","\\blacktriangledown"),e(n,o,x,"■","\\blacksquare"),e(n,o,x,"⧫","\\blacklozenge"),e(n,o,x,"★","\\bigstar"),e(n,o,x,"∢","\\sphericalangle",!0),e(n,o,x,"∁","\\complement",!0),e(n,o,x,"ð","\\eth",!0),e(i,a,x,"ð","ð"),e(n,o,x,"╱","\\diagup"),e(n,o,x,"╲","\\diagdown"),e(n,o,x,"□","\\square"),e(n,o,x,"□","\\Box"),e(n,o,x,"◊","\\Diamond"),e(n,o,x,"¥","\\yen",!0),e(i,o,x,"¥","\\yen",!0),e(n,o,x,"✓","\\checkmark",!0),e(i,o,x,"✓","\\checkmark"),e(n,o,x,"ℶ","\\beth",!0),e(n,o,x,"ℸ","\\daleth",!0),e(n,o,x,"ℷ","\\gimel",!0),e(n,o,x,"ϝ","\\digamma",!0),e(n,o,x,"ϰ","\\varkappa"),e(n,o,u,"┌","\\@ulcorner",!0),e(n,o,h,"┐","\\@urcorner",!0),e(n,o,u,"└","\\@llcorner",!0),e(n,o,h,"┘","\\@lrcorner",!0),e(n,o,g,"≦","\\leqq",!0),e(n,o,g,"⩽","\\leqslant",!0),e(n,o,g,"⪕","\\eqslantless",!0),e(n,o,g,"≲","\\lesssim",!0),e(n,o,g,"⪅","\\lessapprox",!0),e(n,o,g,"≊","\\approxeq",!0),e(n,o,l,"⋖","\\lessdot"),e(n,o,g,"⋘","\\lll",!0),e(n,o,g,"≶","\\lessgtr",!0),e(n,o,g,"⋚","\\lesseqgtr",!0),e(n,o,g,"⪋","\\lesseqqgtr",!0),e(n,o,g,"≑","\\doteqdot"),e(n,o,g,"≓","\\risingdotseq",!0),e(n,o,g,"≒","\\fallingdotseq",!0),e(n,o,g,"∽","\\backsim",!0),e(n,o,g,"⋍","\\backsimeq",!0),e(n,o,g,"⫅","\\subseteqq",!0),e(n,o,g,"⋐","\\Subset",!0),e(n,o,g,"⊏","\\sqsubset",!0),e(n,o,g,"≼","\\preccurlyeq",!0),e(n,o,g,"⋞","\\curlyeqprec",!0),e(n,o,g,"≾","\\precsim",!0),e(n,o,g,"⪷","\\precapprox",!0),e(n,o,g,"⊲","\\vartriangleleft"),e(n,o,g,"⊴","\\trianglelefteq"),e(n,o,g,"⊨","\\vDash",!0),e(n,o,g,"⊪","\\Vvdash",!0),e(n,o,g,"⌣","\\smallsmile"),e(n,o,g,"⌢","\\smallfrown"),e(n,o,g,"≏","\\bumpeq",!0),e(n,o,g,"≎","\\Bumpeq",!0),e(n,o,g,"≧","\\geqq",!0),e(n,o,g,"⩾","\\geqslant",!0),e(n,o,g,"⪖","\\eqslantgtr",!0),e(n,o,g,"≳","\\gtrsim",!0),e(n,o,g,"⪆","\\gtrapprox",!0),e(n,o,l,"⋗","\\gtrdot"),e(n,o,g,"⋙","\\ggg",!0),e(n,o,g,"≷","\\gtrless",!0),e(n,o,g,"⋛","\\gtreqless",!0),e(n,o,g,"⪌","\\gtreqqless",!0),e(n,o,g,"≖","\\eqcirc",!0),e(n,o,g,"≗","\\circeq",!0),e(n,o,g,"≜","\\triangleq",!0),e(n,o,g,"∼","\\thicksim"),e(n,o,g,"≈","\\thickapprox"),e(n,o,g,"⫆","\\supseteqq",!0),e(n,o,g,"⋑","\\Supset",!0),e(n,o,g,"⊐","\\sqsupset",!0),e(n,o,g,"≽","\\succcurlyeq",!0),e(n,o,g,"⋟","\\curlyeqsucc",!0),e(n,o,g,"≿","\\succsim",!0),e(n,o,g,"⪸","\\succapprox",!0),e(n,o,g,"⊳","\\vartriangleright"),e(n,o,g,"⊵","\\trianglerighteq"),e(n,o,g,"⊩","\\Vdash",!0),e(n,o,g,"∣","\\shortmid"),e(n,o,g,"∥","\\shortparallel"),e(n,o,g,"≬","\\between",!0),e(n,o,g,"⋔","\\pitchfork",!0),e(n,o,g,"∝","\\varpropto"),e(n,o,g,"◀","\\blacktriangleleft"),e(n,o,g,"∴","\\therefore",!0),e(n,o,g,"∍","\\backepsilon"),e(n,o,g,"▶","\\blacktriangleright"),e(n,o,g,"∵","\\because",!0),e(n,o,g,"⋘","\\llless"),e(n,o,g,"⋙","\\gggtr"),e(n,o,l,"⊲","\\lhd"),e(n,o,l,"⊳","\\rhd"),e(n,o,g,"≂","\\eqsim",!0),e(n,a,g,"⋈","\\Join"),e(n,o,g,"≑","\\Doteq",!0),e(n,o,l,"∔","\\dotplus",!0),e(n,o,l,"∖","\\smallsetminus"),e(n,o,l,"⋒","\\Cap",!0),e(n,o,l,"⋓","\\Cup",!0),e(n,o,l,"⩞","\\doublebarwedge",!0),e(n,o,l,"⊟","\\boxminus",!0),e(n,o,l,"⊞","\\boxplus",!0),e(n,o,l,"⋇","\\divideontimes",!0),e(n,o,l,"⋉","\\ltimes",!0),e(n,o,l,"⋊","\\rtimes",!0),e(n,o,l,"⋋","\\leftthreetimes",!0),e(n,o,l,"⋌","\\rightthreetimes",!0),e(n,o,l,"⋏","\\curlywedge",!0),e(n,o,l,"⋎","\\curlyvee",!0),e(n,o,l,"⊝","\\circleddash",!0),e(n,o,l,"⊛","\\circledast",!0),e(n,o,l,"⋅","\\centerdot"),e(n,o,l,"⊺","\\intercal",!0),e(n,o,l,"⋒","\\doublecap"),e(n,o,l,"⋓","\\doublecup"),e(n,o,l,"⊠","\\boxtimes",!0),e(n,o,g,"⇢","\\dashrightarrow",!0),e(n,o,g,"⇠","\\dashleftarrow",!0),e(n,o,g,"⇇","\\leftleftarrows",!0),e(n,o,g,"⇆","\\leftrightarrows",!0),e(n,o,g,"⇚","\\Lleftarrow",!0),e(n,o,g,"↞","\\twoheadleftarrow",!0),e(n,o,g,"↢","\\leftarrowtail",!0),e(n,o,g,"↫","\\looparrowleft",!0),e(n,o,g,"⇋","\\leftrightharpoons",!0),e(n,o,g,"↶","\\curvearrowleft",!0),e(n,o,g,"↺","\\circlearrowleft",!0),e(n,o,g,"↰","\\Lsh",!0),e(n,o,g,"⇈","\\upuparrows",!0),e(n,o,g,"↿","\\upharpoonleft",!0),e(n,o,g,"⇃","\\downharpoonleft",!0),e(n,a,g,"⊶","\\origof",!0),e(n,a,g,"⊷","\\imageof",!0),e(n,o,g,"⊸","\\multimap",!0),e(n,o,g,"↭","\\leftrightsquigarrow",!0),e(n,o,g,"⇉","\\rightrightarrows",!0),e(n,o,g,"⇄","\\rightleftarrows",!0),e(n,o,g,"↠","\\twoheadrightarrow",!0),e(n,o,g,"↣","\\rightarrowtail",!0),e(n,o,g,"↬","\\looparrowright",!0),e(n,o,g,"↷","\\curvearrowright",!0),e(n,o,g,"↻","\\circlearrowright",!0),e(n,o,g,"↱","\\Rsh",!0),e(n,o,g,"⇊","\\downdownarrows",!0),e(n,o,g,"↾","\\upharpoonright",!0),e(n,o,g,"⇂","\\downharpoonright",!0),e(n,o,g,"⇝","\\rightsquigarrow",!0),e(n,o,g,"⇝","\\leadsto"),e(n,o,g,"⇛","\\Rrightarrow",!0),e(n,o,g,"↾","\\restriction"),e(n,a,x,"‘","`"),e(n,a,x,"$","\\$"),e(i,a,x,"$","\\$"),e(i,a,x,"$","\\textdollar"),e(n,a,x,"%","\\%"),e(i,a,x,"%","\\%"),e(n,a,x,"_","\\_"),e(i,a,x,"_","\\_"),e(i,a,x,"_","\\textunderscore"),e(n,a,x,"∠","\\angle",!0),e(n,a,x,"∞","\\infty",!0),e(n,a,x,"′","\\prime"),e(n,a,x,"△","\\triangle"),e(n,a,x,"Γ","\\Gamma",!0),e(n,a,x,"Δ","\\Delta",!0),e(n,a,x,"Θ","\\Theta",!0),e(n,a,x,"Λ","\\Lambda",!0),e(n,a,x,"Ξ","\\Xi",!0),e(n,a,x,"Π","\\Pi",!0),e(n,a,x,"Σ","\\Sigma",!0),e(n,a,x,"Υ","\\Upsilon",!0),e(n,a,x,"Φ","\\Phi",!0),e(n,a,x,"Ψ","\\Psi",!0),e(n,a,x,"Ω","\\Omega",!0),e(n,a,x,"A","Α"),e(n,a,x,"B","Β"),e(n,a,x,"E","Ε"),e(n,a,x,"Z","Ζ"),e(n,a,x,"H","Η"),e(n,a,x,"I","Ι"),e(n,a,x,"K","Κ"),e(n,a,x,"M","Μ"),e(n,a,x,"N","Ν"),e(n,a,x,"O","Ο"),e(n,a,x,"P","Ρ"),e(n,a,x,"T","Τ"),e(n,a,x,"X","Χ"),e(n,a,x,"¬","\\neg",!0),e(n,a,x,"¬","\\lnot"),e(n,a,x,"⊤","\\top"),e(n,a,x,"⊥","\\bot"),e(n,a,x,"∅","\\emptyset"),e(n,o,x,"∅","\\varnothing"),e(n,a,m,"α","\\alpha",!0),e(n,a,m,"β","\\beta",!0),e(n,a,m,"γ","\\gamma",!0),e(n,a,m,"δ","\\delta",!0),e(n,a,m,"ϵ","\\epsilon",!0),e(n,a,m,"ζ","\\zeta",!0),e(n,a,m,"η","\\eta",!0),e(n,a,m,"θ","\\theta",!0),e(n,a,m,"ι","\\iota",!0),e(n,a,m,"κ","\\kappa",!0),e(n,a,m,"λ","\\lambda",!0),e(n,a,m,"μ","\\mu",!0),e(n,a,m,"ν","\\nu",!0),e(n,a,m,"ξ","\\xi",!0),e(n,a,m,"ο","\\omicron",!0),e(n,a,m,"π","\\pi",!0),e(n,a,m,"ρ","\\rho",!0),e(n,a,m,"σ","\\sigma",!0),e(n,a,m,"τ","\\tau",!0),e(n,a,m,"υ","\\upsilon",!0),e(n,a,m,"ϕ","\\phi",!0),e(n,a,m,"χ","\\chi",!0),e(n,a,m,"ψ","\\psi",!0),e(n,a,m,"ω","\\omega",!0),e(n,a,m,"ε","\\varepsilon",!0),e(n,a,m,"ϑ","\\vartheta",!0),e(n,a,m,"ϖ","\\varpi",!0),e(n,a,m,"ϱ","\\varrho",!0),e(n,a,m,"ς","\\varsigma",!0),e(n,a,m,"φ","\\varphi",!0),e(n,a,l,"∗","*",!0),e(n,a,l,"+","+"),e(n,a,l,"−","-",!0),e(n,a,l,"⋅","\\cdot",!0),e(n,a,l,"∘","\\circ",!0),e(n,a,l,"÷","\\div",!0),e(n,a,l,"±","\\pm",!0),e(n,a,l,"×","\\times",!0),e(n,a,l,"∩","\\cap",!0),e(n,a,l,"∪","\\cup",!0),e(n,a,l,"∖","\\setminus",!0),e(n,a,l,"∧","\\land"),e(n,a,l,"∨","\\lor"),e(n,a,l,"∧","\\wedge",!0),e(n,a,l,"∨","\\vee",!0),e(n,a,x,"√","\\surd"),e(n,a,u,"⟨","\\langle",!0),e(n,a,u,"∣","\\lvert"),e(n,a,u,"∥","\\lVert"),e(n,a,h,"?","?"),e(n,a,h,"!","!"),e(n,a,h,"⟩","\\rangle",!0),e(n,a,h,"∣","\\rvert"),e(n,a,h,"∥","\\rVert"),e(n,a,g,"=","="),e(n,a,g,":",":"),e(n,a,g,"≈","\\approx",!0),e(n,a,g,"≅","\\cong",!0),e(n,a,g,"≥","\\ge"),e(n,a,g,"≥","\\geq",!0),e(n,a,g,"←","\\gets"),e(n,a,g,">","\\gt",!0),e(n,a,g,"∈","\\in",!0),e(n,a,g,"","\\@not"),e(n,a,g,"⊂","\\subset",!0),e(n,a,g,"⊃","\\supset",!0),e(n,a,g,"⊆","\\subseteq",!0),e(n,a,g,"⊇","\\supseteq",!0),e(n,o,g,"⊈","\\nsubseteq",!0),e(n,o,g,"⊉","\\nsupseteq",!0),e(n,a,g,"⊨","\\models"),e(n,a,g,"←","\\leftarrow",!0),e(n,a,g,"≤","\\le"),e(n,a,g,"≤","\\leq",!0),e(n,a,g,"<","\\lt",!0),e(n,a,g,"→","\\rightarrow",!0),e(n,a,g,"→","\\to"),e(n,o,g,"≱","\\ngeq",!0),e(n,o,g,"≰","\\nleq",!0),e(n,a,y," ","\\ "),e(n,a,y," ","\\space"),e(n,a,y," ","\\nobreakspace"),e(i,a,y," ","\\ "),e(i,a,y," "," "),e(i,a,y," ","\\space"),e(i,a,y," ","\\nobreakspace"),e(n,a,y,null,"\\nobreak"),e(n,a,y,null,"\\allowbreak"),e(n,a,f,",",","),e(n,a,f,";",";"),e(n,o,l,"⊼","\\barwedge",!0),e(n,o,l,"⊻","\\veebar",!0),e(n,a,l,"⊙","\\odot",!0),e(n,a,l,"⊕","\\oplus",!0),e(n,a,l,"⊗","\\otimes",!0),e(n,a,x,"∂","\\partial",!0),e(n,a,l,"⊘","\\oslash",!0),e(n,o,l,"⊚","\\circledcirc",!0),e(n,o,l,"⊡","\\boxdot",!0),e(n,a,l,"△","\\bigtriangleup"),e(n,a,l,"▽","\\bigtriangledown"),e(n,a,l,"†","\\dagger"),e(n,a,l,"⋄","\\diamond"),e(n,a,l,"⋆","\\star"),e(n,a,l,"◃","\\triangleleft"),e(n,a,l,"▹","\\triangleright"),e(n,a,u,"{","\\{"),e(i,a,x,"{","\\{"),e(i,a,x,"{","\\textbraceleft"),e(n,a,h,"}","\\}"),e(i,a,x,"}","\\}"),e(i,a,x,"}","\\textbraceright"),e(n,a,u,"{","\\lbrace"),e(n,a,h,"}","\\rbrace"),e(n,a,u,"[","\\lbrack",!0),e(i,a,x,"[","\\lbrack",!0),e(n,a,h,"]","\\rbrack",!0),e(i,a,x,"]","\\rbrack",!0),e(n,a,u,"(","\\lparen",!0),e(n,a,h,")","\\rparen",!0),e(i,a,x,"<","\\textless",!0),e(i,a,x,">","\\textgreater",!0),e(n,a,u,"⌊","\\lfloor",!0),e(n,a,h,"⌋","\\rfloor",!0),e(n,a,u,"⌈","\\lceil",!0),e(n,a,h,"⌉","\\rceil",!0),e(n,a,x,"\\","\\backslash"),e(n,a,x,"∣","|"),e(n,a,x,"∣","\\vert"),e(i,a,x,"|","\\textbar",!0),e(n,a,x,"∥","\\|"),e(n,a,x,"∥","\\Vert"),e(i,a,x,"∥","\\textbardbl"),e(i,a,x,"~","\\textasciitilde"),e(i,a,x,"\\","\\textbackslash"),e(i,a,x,"^","\\textasciicircum"),e(n,a,g,"↑","\\uparrow",!0),e(n,a,g,"⇑","\\Uparrow",!0),e(n,a,g,"↓","\\downarrow",!0),e(n,a,g,"⇓","\\Downarrow",!0),e(n,a,g,"↕","\\updownarrow",!0),e(n,a,g,"⇕","\\Updownarrow",!0),e(n,a,c,"∐","\\coprod"),e(n,a,c,"⋁","\\bigvee"),e(n,a,c,"⋀","\\bigwedge"),e(n,a,c,"⨄","\\biguplus"),e(n,a,c,"⋂","\\bigcap"),e(n,a,c,"⋃","\\bigcup"),e(n,a,c,"∫","\\int"),e(n,a,c,"∫","\\intop"),e(n,a,c,"∬","\\iint"),e(n,a,c,"∭","\\iiint"),e(n,a,c,"∏","\\prod"),e(n,a,c,"∑","\\sum"),e(n,a,c,"⨂","\\bigotimes"),e(n,a,c,"⨁","\\bigoplus"),e(n,a,c,"⨀","\\bigodot"),e(n,a,c,"∮","\\oint"),e(n,a,c,"∯","\\oiint"),e(n,a,c,"∰","\\oiiint"),e(n,a,c,"⨆","\\bigsqcup"),e(n,a,c,"∫","\\smallint"),e(i,a,it,"…","\\textellipsis"),e(n,a,it,"…","\\mathellipsis"),e(i,a,it,"…","\\ldots",!0),e(n,a,it,"…","\\ldots",!0),e(n,a,it,"⋯","\\@cdots",!0),e(n,a,it,"⋱","\\ddots",!0),e(n,a,x,"⋮","\\varvdots"),e(n,a,s,"ˊ","\\acute"),e(n,a,s,"ˋ","\\grave"),e(n,a,s,"¨","\\ddot"),e(n,a,s,"~","\\tilde"),e(n,a,s,"ˉ","\\bar"),e(n,a,s,"˘","\\breve"),e(n,a,s,"ˇ","\\check"),e(n,a,s,"^","\\hat"),e(n,a,s,"⃗","\\vec"),e(n,a,s,"˙","\\dot"),e(n,a,s,"˚","\\mathring"),e(n,a,m,"","\\@imath"),e(n,a,m,"","\\@jmath"),e(n,a,x,"ı","ı"),e(n,a,x,"ȷ","ȷ"),e(i,a,x,"ı","\\i",!0),e(i,a,x,"ȷ","\\j",!0),e(i,a,x,"ß","\\ss",!0),e(i,a,x,"æ","\\ae",!0),e(i,a,x,"œ","\\oe",!0),e(i,a,x,"ø","\\o",!0),e(i,a,x,"Æ","\\AE",!0),e(i,a,x,"Œ","\\OE",!0),e(i,a,x,"Ø","\\O",!0),e(i,a,s,"ˊ","\\'"),e(i,a,s,"ˋ","\\`"),e(i,a,s,"ˆ","\\^"),e(i,a,s,"˜","\\~"),e(i,a,s,"ˉ","\\="),e(i,a,s,"˘","\\u"),e(i,a,s,"˙","\\."),e(i,a,s,"¸","\\c"),e(i,a,s,"˚","\\r"),e(i,a,s,"ˇ","\\v"),e(i,a,s,"¨",'\\"'),e(i,a,s,"˝","\\H"),e(i,a,s,"◯","\\textcircled"),{"--":!0,"---":!0,"``":!0,"''":!0});e(i,a,x,"–","--",!0),e(i,a,x,"–","\\textendash"),e(i,a,x,"—","---",!0),e(i,a,x,"—","\\textemdash"),e(i,a,x,"‘","`",!0),e(i,a,x,"‘","\\textquoteleft"),e(i,a,x,"’","'",!0),e(i,a,x,"’","\\textquoteright"),e(i,a,x,"“","``",!0),e(i,a,x,"“","\\textquotedblleft"),e(i,a,x,"”","''",!0),e(i,a,x,"”","\\textquotedblright"),e(n,a,x,"°","\\degree",!0),e(i,a,x,"°","\\degree"),e(i,a,x,"°","\\textdegree",!0),e(n,a,x,"£","\\pounds"),e(n,a,x,"£","\\mathsterling",!0),e(i,a,x,"£","\\pounds"),e(i,a,x,"£","\\textsterling",!0),e(n,o,x,"✠","\\maltese"),e(i,o,x,"✠","\\maltese");for(var ot='0123456789/@."',st=0;st<14;st++){var lt=ot[0|st]||"";e(n,a,x,lt,lt)}for(var ht='0123456789!@*()-=+";:?/.,',mt=0;mt<25;mt++){var ct=ht[0|mt]||"";e(i,a,x,ct,ct)}for(var ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pt=0;pt<52;pt++){var dt=ut[0|pt]||"";e(n,a,m,dt,dt),e(i,a,x,dt,dt)}e(n,o,x,"C","ℂ"),e(i,o,x,"C","ℂ"),e(n,o,x,"H","ℍ"),e(i,o,x,"H","ℍ"),e(n,o,x,"N","ℕ"),e(i,o,x,"N","ℕ"),e(n,o,x,"P","ℙ"),e(i,o,x,"P","ℙ"),e(n,o,x,"Q","ℚ"),e(i,o,x,"Q","ℚ"),e(n,o,x,"R","ℝ"),e(i,o,x,"R","ℝ"),e(n,o,x,"Z","ℤ"),e(i,o,x,"Z","ℤ"),e(n,a,m,"h","ℎ"),e(i,a,m,"h","ℎ");for(var v="",w=0;w<52;w++){var k=ut[0|w]||"";e(n,a,m,k,v=String.fromCharCode(55349,56320+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56372+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56424+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56580+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56736+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56788+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56840+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56944+w)),e(i,a,x,k,v),w<26&&(e(n,a,m,k,v=String.fromCharCode(55349,56632+w)),e(i,a,x,k,v),e(n,a,m,k,v=String.fromCharCode(55349,56476+w)),e(i,a,x,k,v))}e(n,a,m,"k",v="𝕜"),e(i,a,x,"k",v);for(var ft=0;ft<10;ft++){var gt=ft.toString();e(n,a,m,gt,v=String.fromCharCode(55349,57294+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57314+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57324+ft)),e(i,a,x,gt,v),e(n,a,m,gt,v=String.fromCharCode(55349,57334+ft)),e(i,a,x,gt,v)}for(var yt=0;yt<3;yt++){var bt="ÐÞþ"[0|yt]||"";e(n,a,m,bt,bt),e(i,a,x,bt,bt)}function xt(e,t,r){return{value:e=p[r][e]&&p[r][e].replace?p[r][e].replace:e,metrics:C(e,t,r)}}function vt(e,t,r,n,i){var a=(t=xt(e,t,r)).metrics;return e=t.value,r=a?(t=a.italic,("text"===r||n&&"mathit"===n.font)&&(t=0),new b(e,a.height,a.depth,t,a.skew,a.width,i)):new b(e,0,0,0,0,0,i),n&&(r.maxFontSize=n.sizeMultiplier,n.style.isTight()&&r.classes.push("mtight"),t=n.getColor())&&(r.style.color=t),r}function wt(e){for(var t=0,r=0,n=0,i=0;it&&(t=a.height),a.depth>r&&(r=a.depth),a.maxFontSize>n&&(n=a.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n}function S(e,t,r,n){return e=new Ve(e,t,r,n),wt(e),e}function kt(e,t,r,n){return new Ve(e,t,r,n)}function St(e){return e=new Se(e),wt(e),e}function Mt(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")}function zt(e){return"ordgroup"===e.type&&1===e.body.length?e.body[0]:e}function M(e){return"ordgroup"===e.type?e.body:[e]}function ee(e,t,r,n){void 0===n&&(n=[null,null]);for(var i,a,o=[],s=0;s"},u.toText=function(){return this.children.map(function(e){return e.toText()}).join("")},Qt),Zt=((h=Jt.prototype).toNode=function(){return document.createTextNode(this.text)},h.toMarkup=function(){return Z.escape(this.toText())},h.toText=function(){return this.text},Jt),z={MathNode:jt,TextNode:Zt,SpaceNode:((g=Kt.prototype).toNode=function(){var e;return this.character?document.createTextNode(this.character):((e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace")).setAttribute("width",Q(this.width)),e)},g.toMarkup=function(){return this.character?""+this.character+"":''},g.toText=function(){return this.character||" "},Kt),newDocumentFragment:O},A=function(e,t,r){var n;if(1===e.length)return n=T(e[0],t),r&&n instanceof jt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n];for(var i,a=[],o=0;o but got "+e+".")}(re(e,t)),e.base=r):s=(r=d(e,"accent")).base;var r,n,e=re(s,t.havingCrampedStyle()),i=0;r.isShifty&&Z.isCharacterBox(s)&&(s=Z.getBaseElem(s),i=q(re(s,t.havingCrampedStyle())).skew);var a,o,s="\\c"===r.label,l=s?e.height+e.depth:Math.min(e.height,t.fontMetrics().xHeight),h=r.isStretchy?(h=r0(r,t),te.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:0"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),c=Z.contains(E0,e)?D0:Z.contains(R0,e)?P0:L0;var o,s,l,h,m,c=x0(e,t,c,n);return"small"===c.type?(o=e,s=c.style,l=r,h=n,m=a,o=te.makeSymbol(o,"Main-Regular",i,h),o=u0(o,s,h,m),l&&p0(o,h,s),o):"large"===c.type?d0(e,c.size,r,n,i,a):y0(e,t,r,n,i,a)}function w0(e,t){var r,n,i,a,o,s,l,h,m=te.wrapFragment(re(e.body,t),t),c=e.label.substr(1),u=t.sizeMultiplier,p=0,d=Z.isCharacterBox(e.body);return"sout"==c?((r=te.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/u,p=-.5*t.fontMetrics().xHeight):"phase"==c?(n=J({number:.6,unit:"pt"},t),o=J({number:.35,unit:"ex"},t),u/=t.havingBaseSizing().sizeMultiplier,i=m.height+m.depth+n+o,m.style.paddingLeft=Q(i/2+n),u=new We([new Xe("phase","M400000 "+(u=Math.floor(1e3*i*u))+" H0 L"+u/2+" 0 l65 45 L145 "+(u-80)+" H400000z")],{width:"400em",height:Q(u/1e3),viewBox:"0 0 400000 "+u,preserveAspectRatio:"xMinYMin slice"}),(r=te.makeSvgSpan(["hide-tail"],[u],t)).style.height=Q(i),p=m.depth+n+o):(/cancel/.test(c)?d||m.classes.push("cancel-pad"):"angl"==c?m.classes.push("anglpad"):m.classes.push("boxpad"),n=i=u=0,i=/box/.test(c)?(n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),u=t.fontMetrics().fboxsep+("colorbox"==c?0:n)):"angl"==c?(u=4*(n=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness)),Math.max(0,.25-m.depth)):u=d?.2:0,o=c,u=u,h=i,s=t,a=(a=m).height+a.depth+u+h,/fbox|color|angl/.test(o)?(l=te.makeSpan(["stretchy",o],[],s),"fbox"===o&&(u=s.color&&s.getColor())&&(l.style.borderColor=u)):(h=[],/^[bx]cancel$/.test(o)&&h.push(new _e({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(o)&&h.push(new _e({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"})),u=new We(h,{width:"100%",height:Q(a)}),l=te.makeSvgSpan([],[u],s)),l.height=a,l.style.height=Q(a),r=l,/fbox|boxed|fcolorbox/.test(c)?(r.style.borderStyle="solid",r.style.borderWidth=Q(n)):"angl"==c&&.049!==n&&(r.style.borderTopWidth=Q(n),r.style.borderRightWidth=Q(n)),p=m.depth+i,e.backgroundColor&&(r.style.backgroundColor=e.backgroundColor,e.borderColor)&&(r.style.borderColor=e.borderColor)),h=e.backgroundColor?te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:p},{type:"elem",elem:m,shift:0}]},t):te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:m,shift:0},{type:"elem",elem:r,shift:p,wrapperClasses:/cancel|phase/.test(c)?["svg-align"]:[]}]},t),/cancel/.test(c)&&(h.height=m.height,h.depth=m.depth),/cancel/.test(c)&&!d?te.makeSpan(["mord","cancel-lap"],[h],t):te.makeSpan(["mord"],[h],t)}function k0(e,t){var r=new z.MathNode(~e.label.indexOf("colorbox")?"mpadded":"menclose",[T(e.body,t)]);switch(e.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":var n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm;r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),"\\fcolorbox"===e.label&&(n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),r.setAttribute("style","border: "+n+"em solid "+e.borderColor));break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r}var S0=function(e){return new Le({style:e.displayMode?K.DISPLAY:K.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},M0=function(e,t){var r;return t.displayMode&&(r=["katex-display"],t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=te.makeSpan(r,[e])),e},z0={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},A0={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},T0=RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(e){return"\\"+e}).join("|")),B0=(t({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var t=zt(t[0]),r=!T0.test(e.funcName),n=!r||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:n,base:t}},htmlBuilder:n0,mathmlBuilder:i0}),t({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var t=t[0],r=e.parser.mode;return"math"===r&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:n0,mathmlBuilder:i0}),t({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,e=e.funcName,t=t[0];return{type:"accentUnder",mode:r.mode,label:e,base:t}},htmlBuilder:function(e,t){var r=re(e.base,t),n=r0(e,t),e="\\utilde"===e.label?.12:0,n=te.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:e},{type:"elem",elem:r}]},t);return te.makeSpan(["mord","accentunder"],[n],t)},mathmlBuilder:function(e,t){var r=t0(e.label),e=new z.MathNode("munder",[T(e.base,t),r]);return e.setAttribute("accentunder","true"),e}}),t({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,e=e.funcName;return{type:"xArrow",mode:n.mode,label:e,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r=t.style,n=t.havingStyle(r.sup()),i=te.wrapFragment(re(e.body,n,t),t),a="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(a+"-arrow-pad"),e.below&&(n=t.havingStyle(r.sub()),(o=te.wrapFragment(re(e.below,n,t),t)).classes.push(a+"-arrow-pad"));var o,r=r0(e,t),n=-t.fontMetrics().axisHeight+.5*r.height,a=-t.fontMetrics().axisHeight-.5*r.height-.111;return i.depth<=.25&&"\\xleftequilibrium"!==e.label||(a-=i.depth),(o=o?(e=-t.fontMetrics().axisHeight+o.height+.5*r.height+.111,te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:a},{type:"elem",elem:r,shift:n},{type:"elem",elem:o,shift:e}]},t)):te.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:a},{type:"elem",elem:r,shift:n}]},t)).children[0].children[0].children[1].classes.push("svg-align"),te.makeSpan(["mrel","x-arrow"],[o],t)},mathmlBuilder:function(e,t){var r,n,i,a=t0(e.label);return a.setAttribute("minsize","x"==(e.label[0]||"")?"1.75em":"3.0em"),n=e.body?(r=a0(T(e.body,t)),e.below?(i=a0(T(e.below,t)),new z.MathNode("munderover",[a,i,r])):new z.MathNode("mover",[a,r])):e.below?(i=a0(T(e.below,t)),new z.MathNode("munder",[a,i])):(n=a0(),new z.MathNode("mover",[a,n]))}}),{">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"}),C0=(t({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,e=e.funcName;return{type:"cdlabel",mode:r.mode,side:e.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),r=te.wrapFragment(re(e.label,r,t),t);return r.classes.push("cd-label-"+e.side),r.style.bottom=Q(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder:function(e,t){t=new z.MathNode("mrow",[T(e.label,t)]);return(t=new z.MathNode("mpadded",[t])).setAttribute("width","0"),"left"===e.side&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),(t=new z.MathNode("mstyle",[t])).setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}}),t({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){e=te.wrapFragment(re(e.fragment,t),t);return e.classes.push("cd-vert-arrow"),e},mathmlBuilder:function(e,t){return new z.MathNode("mrow",[T(e.fragment,t)])}}),t({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var e=e.parser,r=d(t[0],"ordgroup").body,n="",i=0;i>10),56320+(1023&t)):String.fromCharCode(t),{type:"textord",mode:e.mode,text:t}}}),t({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var e=e.parser,r=d(t[0],"color-token").color,t=t[1];return{type:"color",mode:e.mode,color:r,body:M(t)}},htmlBuilder:s0,mathmlBuilder:l0}),t({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,e=e.breakOnTokenText,t=d(t[0],"color-token").color,e=(r.gullet.macros.set("\\current@color",t),r.parseExpression(!0,e));return{type:"color",mode:r.mode,color:t,body:e}},htmlBuilder:s0,mathmlBuilder:l0}),t({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var e=e.parser,r=r[0],n=!e.settings.displayMode||!e.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:e.mode,newLine:n,size:r&&d(r,"size").value}},htmlBuilder:function(e,t){var r=te.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size)&&(r.style.marginTop=Q(J(e.size,t))),r},mathmlBuilder:function(e,t){var r=new z.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size)&&r.setAttribute("height",Q(J(e.size,t))),r}}),{"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"}),q0=(t({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,e=e.funcName,r=(t.consumeSpaces(),t.fetch());if(C0[r.text])return"\\global"!==e&&"\\\\globallong"!==e||(r.text=C0[r.text]),d(t.parseFunction(),"internal");throw new j("Invalid token after macro prefix",r)}}),t({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,e=e.funcName,r=t.gullet.popToken(),n=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new j("Expected a control sequence",r);for(var i,a=0,o=[[]];"{"!==t.gullet.future().text;)if("#"===(r=t.gullet.popToken()).text){if("{"===t.gullet.future().text){i=t.gullet.future(),o[a].push("{");break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new j('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==a+1)throw new j('Argument number "'+r.text+'" out of order');a++,o.push([])}else{if("EOF"===r.text)throw new j("Expected a macro definition");o[a].push(r.text)}var s=t.gullet.consumeArg().tokens;return i&&s.unshift(i),"\\edef"!==e&&"\\xdef"!==e||(s=t.gullet.expandTokens(s)).reverse(),t.gullet.macros.set(n,{tokens:s,numArgs:a,delimiters:o},e===C0[e]),{type:"internal",mode:t.mode}}}),t({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t,r,n=e.parser,e=e.funcName,i=h0(n.gullet.popToken());n.gullet.consumeSpaces(),r="="===(r=(t=n).gullet.popToken()).text&&" "===(r=t.gullet.popToken()).text?t.gullet.popToken():r;return m0(n,i,r,"\\\\globallet"===e),{type:"internal",mode:n.mode}}}),t({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,e=e.funcName,r=h0(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return m0(t,r,i,"\\\\globalfuture"===e),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}}),{type:"kern",size:-.008}),N0=["|","\\lvert","\\rvert","\\vert"],I0=["\\|","\\lVert","\\rVert","\\Vert"],R0=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],O0=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],E0=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],H0=[0,1.2,1.8,2.4,3],D0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],L0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"stack"}],P0=[{type:"small",style:K.SCRIPTSCRIPT},{type:"small",style:K.SCRIPT},{type:"small",style:K.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],F0={sqrtImage:function(e,t){var r,n=t.havingBaseSizing(),i=x0("\\surd",e*n.sizeMultiplier,P0,n),n=n.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o=0,s=0,l=0,i="small"===i.type?(e<1?n=1:e<1.4&&(n=.7),s=(1+a)/n,(r=b0("sqrtMain",o=(1.08+a)/n,l=1080+1e3*a,a,t)).style.minWidth="0.853em",.833/n):"large"===i.type?(l=1080*H0[i.size],s=(H0[i.size]+a)/n,o=(H0[i.size]+a+.08)/n,(r=b0("sqrtSize"+i.size,o,l,a,t)).style.minWidth="1.02em",1/n):((r=b0("sqrtTall",o=(s=e+a)+.08,l=80+Math.floor(1e3*e+a),a,t)).style.minWidth="0.742em",1.056);return r.height=s,r.style.height=Q(o),{span:r,advanceWidth:i,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*n}},sizedDelim:function(e,t,r,n,i){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),Z.contains(R0,e)||Z.contains(E0,e))return d0(e,t,!1,r,n,i);if(Z.contains(O0,e))return y0(e,H0[t],!1,r,n,i);throw new j("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:H0,customSizedDelim:v0,leftRightDelim:function(e,t,r,n,i,a){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,t=Math.max(t-o,r+o);return v0(e,Math.max(t/500*901,2*t-s),!0,n,i,a)}},V0={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},G0=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."],U0=(t({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){t=L(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:V0[e.funcName].size,mclass:V0[e.funcName].mclass,delim:t.text}},htmlBuilder:function(e,t){return"."===e.delim?te.makeSpan([e.mclass]):F0.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[],t=("."!==e.delim&&t.push(Bt(e.delim,e.mode)),new z.MathNode("mo",t)),e=("mopen"===e.mclass||"mclose"===e.mclass?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true"),Q(F0.sizeToMaxHeight[e.size]));return t.setAttribute("minsize",e),t.setAttribute("maxsize",e),t}}),t({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new j("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:L(t[0],e).text,color:r}}}),t({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var t=L(t[0],e),e=e.parser,r=(++e.leftrightDepth,e.parseExpression(!1)),n=(--e.leftrightDepth,e.expect("\\right",!1),d(e.parseFunction(),"leftright-right"));return{type:"leftright",mode:e.mode,body:r,left:t.text,right:n.delim,rightColor:n.color}},htmlBuilder:function(e,t){P(e);for(var r,n=ee(e.body,t,!0,["mopen","mclose"]),i=0,a=0,o=!1,s=0;sf){for(var q=void 0,N=((0AV".indexOf(c))throw new j('Expected one of "<>AV=|." after @',l[m]);for(var p=0;p<2;p++){for(var d=!0,f=m+1;fr.height+r.depth+i&&(i=(i+s-r.height-r.depth)/2),a.height-r.height-i-o),i=(r.style.paddingLeft=Q(n),te.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+s)},{type:"elem",elem:a},{type:"kern",size:o}]},t));return e.index?(n=t.havingStyle(K.SCRIPTSCRIPT),r=re(e.index,n,t),s=.6*(i.height-i.depth),a=te.makeVList({positionType:"shift",positionData:-s,children:[{type:"elem",elem:r}]},t),o=te.makeSpan(["root"],[a]),te.makeSpan(["mord","sqrt"],[o,i],t)):te.makeSpan(["mord","sqrt"],[i],t)},mathmlBuilder:function(e,t){var r=e.body,e=e.index;return e?new z.MathNode("mroot",[T(r,t),T(e,t)]):new z.MathNode("msqrt",[T(r,t)])}}),{display:K.DISPLAY,text:K.TEXT,script:K.SCRIPT,scriptscript:K.SCRIPTSCRIPT}),zr=(t({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,e=e.parser,r=e.parseExpression(!0,r),n=n.slice(1,n.length-5);return{type:"styling",mode:e.mode,style:n,body:r}},htmlBuilder:function(e,t){var r=Mr[e.style],r=t.havingStyle(r).withFont("");return _(e.body,r,t)},mathmlBuilder:function(e,t){var r=Mr[e.style],t=t.havingStyle(r),r=A(e.body,t),t=new z.MathNode("mstyle",r),r={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return t.setAttribute("scriptlevel",r[0]),t.setAttribute("displaystyle",r[1]),t}}),N({type:"supsub",htmlBuilder:function(e,t){r=t;var r=(o=(a=e).base)?"op"===o.type?o.limits&&(r.style.size===K.DISPLAY.size||o.alwaysHandleSupSub)?mr:null:"operatorname"===o.type?o.alwaysHandleSupSub&&(r.style.size===K.DISPLAY.size||o.limits)?ur:null:"accent"===o.type?Z.isCharacterBox(o.base)?n0:null:"horizBrace"===o.type&&!a.sub===o.isOver?or:null:null;if(r)return r(e,t);var n,i,a=e.base,o=e.sup,r=e.sub,s=re(a,t),l=t.fontMetrics(),h=0,m=0,a=a&&Z.isCharacterBox(a),c=(o&&(c=t.havingStyle(t.style.sup()),n=re(o,c,t),a||(h=s.height-c.fontMetrics().supDrop*c.sizeMultiplier/t.sizeMultiplier)),r&&(o=t.havingStyle(t.style.sub()),i=re(r,o,t),a||(m=s.depth+o.fontMetrics().subDrop*o.sizeMultiplier/t.sizeMultiplier)),t.style===K.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2),r=t.sizeMultiplier,a=Q(.5/l.ptPerEm/r),o=null;if(i&&(r=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name),s instanceof b||r)&&(o=Q(-s.italic)),n&&i){h=Math.max(h,c,n.depth+.25*l.xHeight),m=Math.max(m,l.sub2);e=4*l.defaultRuleThickness;h-n.depth-(i.height-m)":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"}),Ur=(r("\\dots",function(e){var t="\\dotso",e=e.expandAfterFuture().text;return e in Gr?t=Gr[e]:("\\not"==e.substr(0,4)||e in p.math&&Z.contains(["bin","rel"],p.math[e].group))&&(t="\\dotsb"),t}),{")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0}),s=(r("\\dotso",function(e){return e.future().text in Ur?"\\ldots\\,":"\\ldots"}),r("\\dotsc",function(e){e=e.future().text;return e in Ur&&","!==e?"\\ldots\\,":"\\ldots"}),r("\\cdots",function(e){return e.future().text in Ur?"\\@cdots\\,":"\\@cdots"}),r("\\dotsb","\\cdots"),r("\\dotsm","\\cdots"),r("\\dotsi","\\!\\cdots"),r("\\dotsx","\\ldots\\,"),r("\\DOTSI","\\relax"),r("\\DOTSB","\\relax"),r("\\DOTSX","\\relax"),r("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),r("\\,","\\tmspace+{3mu}{.1667em}"),r("\\thinspace","\\,"),r("\\>","\\mskip{4mu}"),r("\\:","\\tmspace+{4mu}{.2222em}"),r("\\medspace","\\:"),r("\\;","\\tmspace+{5mu}{.2777em}"),r("\\thickspace","\\;"),r("\\!","\\tmspace-{3mu}{.1667em}"),r("\\negthinspace","\\!"),r("\\negmedspace","\\tmspace-{4mu}{.2222em}"),r("\\negthickspace","\\tmspace-{5mu}{.277em}"),r("\\enspace","\\kern.5em "),r("\\enskip","\\hskip.5em\\relax"),r("\\quad","\\hskip1em\\relax"),r("\\qquad","\\hskip2em\\relax"),r("\\tag","\\@ifstar\\tag@literal\\tag@paren"),r("\\tag@paren","\\tag@literal{({#1})}"),r("\\tag@literal",function(e){if(e.macros.get("\\df@tag"))throw new j("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),r("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),r("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),r("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),r("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),r("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),r("\\newline","\\\\\\relax"),r("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"),Q(Me["Main-Regular"][84][1]-.7*Me["Main-Regular"][65][1])),Yr=(r("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+s+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),r("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+s+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),r("\\hspace","\\@ifstar\\@hspacer\\@hspace"),r("\\@hspace","\\hskip #1\\relax"),r("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),r("\\ordinarycolon",":"),r("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),r("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),r("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),r("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),r("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),r("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),r("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),r("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),r("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),r("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),r("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),r("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),r("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),r("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),r("∷","\\dblcolon"),r("∹","\\eqcolon"),r("≔","\\coloneqq"),r("≕","\\eqqcolon"),r("⩴","\\Coloneqq"),r("\\ratio","\\vcentcolon"),r("\\coloncolon","\\dblcolon"),r("\\colonequals","\\coloneqq"),r("\\coloncolonequals","\\Coloneqq"),r("\\equalscolon","\\eqqcolon"),r("\\equalscoloncolon","\\Eqqcolon"),r("\\colonminus","\\coloneq"),r("\\coloncolonminus","\\Coloneq"),r("\\minuscolon","\\eqcolon"),r("\\minuscoloncolon","\\Eqcolon"),r("\\coloncolonapprox","\\Colonapprox"),r("\\coloncolonsim","\\Colonsim"),r("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),r("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),r("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),r("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),r("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),r("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),r("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),r("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),r("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),r("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),r("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),r("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),r("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),r("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),r("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),r("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),r("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),r("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),r("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),r("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),r("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),r("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),r("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),r("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),r("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),r("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),r("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),r("\\imath","\\html@mathml{\\@imath}{ı}"),r("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),r("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),r("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),r("⟦","\\llbracket"),r("⟧","\\rrbracket"),r("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),r("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),r("⦃","\\lBrace"),r("⦄","\\rBrace"),r("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),r("⦵","\\minuso"),r("\\darr","\\downarrow"),r("\\dArr","\\Downarrow"),r("\\Darr","\\Downarrow"),r("\\lang","\\langle"),r("\\rang","\\rangle"),r("\\uarr","\\uparrow"),r("\\uArr","\\Uparrow"),r("\\Uarr","\\Uparrow"),r("\\N","\\mathbb{N}"),r("\\R","\\mathbb{R}"),r("\\Z","\\mathbb{Z}"),r("\\alef","\\aleph"),r("\\alefsym","\\aleph"),r("\\Alpha","\\mathrm{A}"),r("\\Beta","\\mathrm{B}"),r("\\bull","\\bullet"),r("\\Chi","\\mathrm{X}"),r("\\clubs","\\clubsuit"),r("\\cnums","\\mathbb{C}"),r("\\Complex","\\mathbb{C}"),r("\\Dagger","\\ddagger"),r("\\diamonds","\\diamondsuit"),r("\\empty","\\emptyset"),r("\\Epsilon","\\mathrm{E}"),r("\\Eta","\\mathrm{H}"),r("\\exist","\\exists"),r("\\harr","\\leftrightarrow"),r("\\hArr","\\Leftrightarrow"),r("\\Harr","\\Leftrightarrow"),r("\\hearts","\\heartsuit"),r("\\image","\\Im"),r("\\infin","\\infty"),r("\\Iota","\\mathrm{I}"),r("\\isin","\\in"),r("\\Kappa","\\mathrm{K}"),r("\\larr","\\leftarrow"),r("\\lArr","\\Leftarrow"),r("\\Larr","\\Leftarrow"),r("\\lrarr","\\leftrightarrow"),r("\\lrArr","\\Leftrightarrow"),r("\\Lrarr","\\Leftrightarrow"),r("\\Mu","\\mathrm{M}"),r("\\natnums","\\mathbb{N}"),r("\\Nu","\\mathrm{N}"),r("\\Omicron","\\mathrm{O}"),r("\\plusmn","\\pm"),r("\\rarr","\\rightarrow"),r("\\rArr","\\Rightarrow"),r("\\Rarr","\\Rightarrow"),r("\\real","\\Re"),r("\\reals","\\mathbb{R}"),r("\\Reals","\\mathbb{R}"),r("\\Rho","\\mathrm{P}"),r("\\sdot","\\cdot"),r("\\sect","\\S"),r("\\spades","\\spadesuit"),r("\\sub","\\subset"),r("\\sube","\\subseteq"),r("\\supe","\\supseteq"),r("\\Tau","\\mathrm{T}"),r("\\thetasym","\\vartheta"),r("\\weierp","\\wp"),r("\\Zeta","\\mathrm{Z}"),r("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),r("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),r("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),r("\\bra","\\mathinner{\\langle{#1}|}"),r("\\ket","\\mathinner{|{#1}\\rangle}"),r("\\braket","\\mathinner{\\langle{#1}\\rangle}"),r("\\Bra","\\left\\langle#1\\right|"),r("\\Ket","\\left|#1\\right\\rangle"),r("\\bra@ket",Fr(!1)),r("\\bra@set",Fr(!0)),r("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),r("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),r("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),r("\\angln","{\\angl n}"),r("\\blue","\\textcolor{##6495ed}{#1}"),r("\\orange","\\textcolor{##ffa500}{#1}"),r("\\pink","\\textcolor{##ff00af}{#1}"),r("\\red","\\textcolor{##df0030}{#1}"),r("\\green","\\textcolor{##28ae7b}{#1}"),r("\\gray","\\textcolor{gray}{#1}"),r("\\purple","\\textcolor{##9d38bd}{#1}"),r("\\blueA","\\textcolor{##ccfaff}{#1}"),r("\\blueB","\\textcolor{##80f6ff}{#1}"),r("\\blueC","\\textcolor{##63d9ea}{#1}"),r("\\blueD","\\textcolor{##11accd}{#1}"),r("\\blueE","\\textcolor{##0c7f99}{#1}"),r("\\tealA","\\textcolor{##94fff5}{#1}"),r("\\tealB","\\textcolor{##26edd5}{#1}"),r("\\tealC","\\textcolor{##01d1c1}{#1}"),r("\\tealD","\\textcolor{##01a995}{#1}"),r("\\tealE","\\textcolor{##208170}{#1}"),r("\\greenA","\\textcolor{##b6ffb0}{#1}"),r("\\greenB","\\textcolor{##8af281}{#1}"),r("\\greenC","\\textcolor{##74cf70}{#1}"),r("\\greenD","\\textcolor{##1fab54}{#1}"),r("\\greenE","\\textcolor{##0d923f}{#1}"),r("\\goldA","\\textcolor{##ffd0a9}{#1}"),r("\\goldB","\\textcolor{##ffbb71}{#1}"),r("\\goldC","\\textcolor{##ff9c39}{#1}"),r("\\goldD","\\textcolor{##e07d10}{#1}"),r("\\goldE","\\textcolor{##a75a05}{#1}"),r("\\redA","\\textcolor{##fca9a9}{#1}"),r("\\redB","\\textcolor{##ff8482}{#1}"),r("\\redC","\\textcolor{##f9685d}{#1}"),r("\\redD","\\textcolor{##e84d39}{#1}"),r("\\redE","\\textcolor{##bc2612}{#1}"),r("\\maroonA","\\textcolor{##ffbde0}{#1}"),r("\\maroonB","\\textcolor{##ff92c6}{#1}"),r("\\maroonC","\\textcolor{##ed5fa6}{#1}"),r("\\maroonD","\\textcolor{##ca337c}{#1}"),r("\\maroonE","\\textcolor{##9e034e}{#1}"),r("\\purpleA","\\textcolor{##ddd7ff}{#1}"),r("\\purpleB","\\textcolor{##c6b9fc}{#1}"),r("\\purpleC","\\textcolor{##aa87ff}{#1}"),r("\\purpleD","\\textcolor{##7854ab}{#1}"),r("\\purpleE","\\textcolor{##543b78}{#1}"),r("\\mintA","\\textcolor{##f5f9e8}{#1}"),r("\\mintB","\\textcolor{##edf2df}{#1}"),r("\\mintC","\\textcolor{##e0e5cc}{#1}"),r("\\grayA","\\textcolor{##f6f7f7}{#1}"),r("\\grayB","\\textcolor{##f0f1f2}{#1}"),r("\\grayC","\\textcolor{##e3e5e6}{#1}"),r("\\grayD","\\textcolor{##d6d8da}{#1}"),r("\\grayE","\\textcolor{##babec2}{#1}"),r("\\grayF","\\textcolor{##888d93}{#1}"),r("\\grayG","\\textcolor{##626569}{#1}"),r("\\grayH","\\textcolor{##3b3e40}{#1}"),r("\\grayI","\\textcolor{##21242c}{#1}"),r("\\kaBlue","\\textcolor{##314453}{#1}"),r("\\kaGreen","\\textcolor{##71B307}{#1}"),{"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0}),Wr=((o=Jr.prototype).feed=function(e){this.lexer=new Or(e,this.settings)},o.switchMode=function(e){this.mode=e},o.beginGroup=function(){this.macros.beginGroup()},o.endGroup=function(){this.macros.endGroup()},o.endGroups=function(){this.macros.endGroups()},o.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},o.popToken=function(){return this.future(),this.stack.pop()},o.pushToken=function(e){this.stack.push(e)},o.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},o.scanArgument=function(e){if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;var t=this.popToken(),e=this.consumeArg(["]"]),r=e.tokens,n=e.end}else{e=this.consumeArg();r=e.tokens,t=e.start,n=e.end}return this.pushToken(new X0("EOF",n.loc)),this.pushTokens(r),t.range(n,"")},o.consumeSpaces=function(){for(;" "===this.future().text;)this.stack.pop()},o.consumeArg=function(e){var t=[],r=e&&0this.settings.maxExpand)throw new j("Too many expansions: infinite loop or need to increase maxExpand setting");var i=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs)for(var o=(i=i.slice()).length-1;0<=o;--o){var s=i[o];if("#"===s.text){if(0===o)throw new j("Incomplete placeholder at end of macro body",s);if("#"===(s=i[--o]).text)i.splice(o+1,1);else{if(!/^[1-9]$/.test(s.text))throw new j("Not a valid argument number",s);i.splice.apply(i,[o,2].concat(a[+s.text-1]))}}}return this.pushTokens(i),i},o.expandAfterFuture=function(){return this.expandOnce(),this.future()},o.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof X0)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw Error()},o.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new X0(e)]):void 0},o.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof X0&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},o.expandMacroAsText=function(e){e=this.expandMacro(e);return e&&e.map(function(e){return e.text}).join("")},o._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){e=this.lexer.catcodes[e];if(null!=e&&13!==e)return}e="function"==typeof t?t(this):t;if("string"!=typeof e)return e;var r=0;if(~e.indexOf("#"))for(var n=e.replace(/##/g,"");~n.indexOf("#"+(r+1));)++r;for(var i=new Or(e,this.settings),a=[],o=i.lex();"EOF"!==o.text;)a.push(o),o=i.lex();return a.reverse(),{tokens:a,numArgs:r}},o.isDefined=function(e){return this.macros.has(e)||Ir.hasOwnProperty(e)||p.math.hasOwnProperty(e)||p.text.hasOwnProperty(e)||Yr.hasOwnProperty(e)},o.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Ir.hasOwnProperty(e)&&!Ir[e].primitive},Jr),Xr=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,_r=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),$r={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},jr={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"},Zr=((f=Kr.prototype).expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new j("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},f.consume=function(){this.nextToken=null},f.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},f.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},f.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},f.subparse=function(e){var t=this.nextToken,e=(this.consume(),this.gullet.pushToken(new X0("}")),this.gullet.pushTokens(e),this.parseExpression(!1));return this.expect("}"),this.nextToken=t,e},f.parseExpression=function(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(~Kr.endOfExpression.indexOf(n.text))break;if(t&&n.text===t)break;if(e&&Ir[n.text]&&Ir[n.text].infix)break;n=this.parseAtom(t);if(!n)break;"internal"!==n.type&&r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)},f.handleInfixNodes=function(e){for(var t,r,n,i=-1,a=0;at.charCodeAt(0))return null;this.settings.strict&&(B(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),a={type:"textord",mode:"text",loc:W0.range(e),text:t}}if(this.consume(),i)for(var o=0;o= sbp.limit) + return; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 248)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 32); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_s_ending, 97, 229)) + sbp.slice_del(); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 4)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_2; + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } else + sbp.limit_backward = v_2; + } + } + + function r_other_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "st")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 5); + sbp.limit_backward = v_2; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + r_consonant_pair(); + sbp.cursor = sbp.limit - v_3; + break; + case 2: + sbp.slice_from("l\u00F8s"); + break; + } + } + } + } + + function r_undouble() { + var v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 248)) { + sbp.bra = sbp.cursor; + S_ch = sbp.slice_to(S_ch); + sbp.limit_backward = v_1; + if (sbp.eq_v_b(S_ch)) + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + sbp.cursor = sbp.limit; + r_undouble(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.da.stemmer, 'stemmer-da'); + + /* stop word filter function */ + lunr.da.stopWordFilter = function(token) { + if (lunr.da.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.da.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.da.stopWordFilter.stopWords.length = 95; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.da.stopWordFilter.stopWords.elements = ' ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været'.split(' '); + + lunr.Pipeline.registerFunction(lunr.da.stopWordFilter, 'stopWordFilter-da'); + }; +})) \ No newline at end of file diff --git a/js/lunr.da.min.js b/js/lunr.da.min.js new file mode 100644 index 0000000..2c3f742 --- /dev/null +++ b/js/lunr.da.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,t,i;r.da=function(){this.pipeline.reset(),this.pipeline.add(r.da.trimmer,r.da.stopWordFilter,r.da.stemmer)},r.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.da.trimmer=r.trimmerSupport.generateTrimmer(r.da.wordCharacters),r.Pipeline.registerFunction(r.da.trimmer,"trimmer-da"),r.da.stemmer=(e=r.stemmerSupport.Among,t=r.stemmerSupport.SnowballProgram,i=new function(){var n,s,o,d=[new e("hed",-1,1),new e("ethed",0,1),new e("ered",-1,1),new e("e",-1,1),new e("erede",3,1),new e("ende",3,1),new e("erende",5,1),new e("ene",3,1),new e("erne",3,1),new e("ere",3,1),new e("en",-1,1),new e("heden",10,1),new e("eren",10,1),new e("er",-1,1),new e("heder",13,1),new e("erer",13,1),new e("s",-1,2),new e("heds",16,1),new e("es",16,1),new e("endes",18,1),new e("erendes",19,1),new e("enes",18,1),new e("ernes",18,1),new e("eres",18,1),new e("ens",16,1),new e("hedens",24,1),new e("erens",24,1),new e("ers",16,1),new e("ets",16,1),new e("erets",28,1),new e("et",-1,1),new e("eret",30,1)],i=[new e("gd",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("elig",1,1),new e("els",-1,1),new e("løst",-1,2)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],l=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new t;function m(){var e,r=c.limit-c.cursor;c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(i,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;if(!function(){var e,r=c.cursor+3;if(s=c.limit,0<=r&&r<=c.limit){for(n=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(d,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(l,97,229)&&c.slice_del()}c.cursor=c.limit,m(),c.cursor=c.limit;var i,t,r=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig"))&&c.slice_del(),c.cursor=c.limit-r,c.cursor>=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,i=c.find_among_b(a,5),c.limit_backward=r,i))switch(c.bra=c.cursor,i){case 1:c.slice_del(),t=c.limit-c.cursor,m(),c.cursor=c.limit-t;break;case 2:c.slice_from("løs")}return c.cursor=c.limit,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.out_grouping_b(u,97,248)?(c.bra=c.cursor,o=c.slice_to(o),c.limit_backward=e,c.eq_v_b(o)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.da.stemmer,"stemmer-da"),r.da.stopWordFilter=function(e){if(-1===r.da.stopWordFilter.stopWords.indexOf(e))return e},r.da.stopWordFilter.stopWords=new r.SortedSet,r.da.stopWordFilter.stopWords.length=95,r.da.stopWordFilter.stopWords.elements=" ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" "),r.Pipeline.registerFunction(r.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/js/lunr.de.js b/js/lunr.de.js new file mode 100644 index 0000000..3ed2b93 --- /dev/null +++ b/js/lunr.de.js @@ -0,0 +1,380 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.de = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.de.trimmer, + lunr.de.stopWordFilter, + lunr.de.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.de.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.de.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.de.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.de.trimmer, 'trimmer-de'); + + /* lunr stemmer function */ + lunr.de.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function GermanStemmer() { + var a_0 = [new Among("", -1, 6), new Among("U", 0, 2), + new Among("Y", 0, 1), new Among("\u00E4", 0, 3), + new Among("\u00F6", 0, 4), new Among("\u00FC", 0, 5) + ], + a_1 = [ + new Among("e", -1, 2), new Among("em", -1, 1), + new Among("en", -1, 2), new Among("ern", -1, 1), + new Among("er", -1, 1), new Among("s", -1, 3), + new Among("es", 5, 2) + ], + a_2 = [new Among("en", -1, 1), + new Among("er", -1, 1), new Among("st", -1, 2), + new Among("est", 2, 1) + ], + a_3 = [new Among("ig", -1, 1), + new Among("lich", -1, 1) + ], + a_4 = [new Among("end", -1, 1), + new Among("ig", -1, 2), new Among("ung", -1, 1), + new Among("lich", -1, 3), new Among("isch", -1, 2), + new Among("ik", -1, 2), new Among("heit", -1, 3), + new Among("keit", -1, 4) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 + ], + g_s_ending = [117, 30, 5], + g_st_ending = [ + 117, 30, 4 + ], + I_x, I_p2, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 252)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function r_prelude() { + var v_1 = sbp.cursor, + v_2, v_3, v_4, v_5; + while (true) { + v_2 = sbp.cursor; + sbp.bra = v_2; + if (sbp.eq_s(1, "\u00DF")) { + sbp.ket = sbp.cursor; + sbp.slice_from("ss"); + } else { + if (v_2 >= sbp.limit) + break; + sbp.cursor = v_2 + 1; + } + } + sbp.cursor = v_1; + while (true) { + v_3 = sbp.cursor; + while (true) { + v_4 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 252)) { + v_5 = sbp.cursor; + sbp.bra = v_5; + if (habr1("u", "U", v_4)) + break; + sbp.cursor = v_5; + if (habr1("y", "Y", v_4)) + break; + } + if (v_4 >= sbp.limit) { + sbp.cursor = v_3; + return; + } + sbp.cursor = v_4 + 1; + } + } + } + + function habr2() { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + var c = sbp.cursor + 3; + if (0 <= c && c <= sbp.limit) { + I_x = c; + if (!habr2()) { + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + if (!habr2()) + I_p2 = sbp.cursor; + } + } + } + + function r_postlude() { + var among_var, v_1; + while (true) { + v_1 = sbp.cursor; + sbp.bra = v_1; + among_var = sbp.find_among(a_0, 6); + if (!among_var) + return; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("y"); + break; + case 2: + case 5: + sbp.slice_from("u"); + break; + case 3: + sbp.slice_from("a"); + break; + case 4: + sbp.slice_from("o"); + break; + case 6: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3, v_4; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "s")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(3, "nis")) + sbp.slice_del(); + } + break; + case 3: + if (sbp.in_grouping_b(g_s_ending, 98, 116)) + sbp.slice_del(); + break; + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_st_ending, 98, 116)) { + var c = sbp.cursor - 3; + if (sbp.limit_backward <= c && c <= sbp.limit) { + sbp.cursor = c; + sbp.slice_del(); + } + } + break; + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 8); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + switch (among_var) { + case 1: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_2; + if (r_R2()) + sbp.slice_del(); + } + } + break; + case 2: + v_3 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_3; + sbp.slice_del(); + } + break; + case 3: + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_4 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(2, "er")) { + sbp.cursor = sbp.limit - v_4; + if (!sbp.eq_s_b(2, "en")) + break; + } + sbp.bra = sbp.cursor; + if (r_R1()) + sbp.slice_del(); + break; + case 4: + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2() && among_var == 1) + sbp.slice_del(); + } + break; + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.de.stemmer, 'stemmer-de'); + + /* stop word filter function */ + lunr.de.stopWordFilter = function(token) { + if (lunr.de.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.de.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.de.stopWordFilter.stopWords.length = 232; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.de.stopWordFilter.stopWords.elements = ' aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über'.split(' '); + + lunr.Pipeline.registerFunction(lunr.de.stopWordFilter, 'stopWordFilter-de'); + }; +})) \ No newline at end of file diff --git a/js/lunr.de.min.js b/js/lunr.de.min.js new file mode 100644 index 0000000..a10d26b --- /dev/null +++ b/js/lunr.de.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.de=function(){this.pipeline.reset(),this.pipeline.add(r.de.trimmer,r.de.stopWordFilter,r.de.stemmer)},r.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.de.trimmer=r.trimmerSupport.generateTrimmer(r.de.wordCharacters),r.Pipeline.registerFunction(r.de.trimmer,"trimmer-de"),r.de.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var t,o,c,u=[new e("",-1,6),new e("U",0,2),new e("Y",0,1),new e("ä",0,3),new e("ö",0,4),new e("ü",0,5)],d=[new e("e",-1,2),new e("em",-1,1),new e("en",-1,2),new e("ern",-1,1),new e("er",-1,1),new e("s",-1,3),new e("es",5,2)],l=[new e("en",-1,1),new e("er",-1,1),new e("st",-1,2),new e("est",2,1)],a=[new e("ig",-1,1),new e("lich",-1,1)],m=[new e("end",-1,1),new e("ig",-1,2),new e("ung",-1,1),new e("lich",-1,3),new e("isch",-1,2),new e("ik",-1,2),new e("heit",-1,3),new e("keit",-1,4)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],h=[117,30,5],b=[117,30,4],f=new n;function _(e,r,n){return f.eq_s(1,e)&&(f.ket=f.cursor,f.in_grouping(w,97,252))&&(f.slice_from(r),f.cursor=n,1)}function p(){for(;!f.in_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}for(;!f.out_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}}function g(){return c<=f.cursor}function k(){return o<=f.cursor}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;!function(){for(var e,r,n,i,s=f.cursor;;)if(e=f.cursor,f.bra=e,f.eq_s(1,"ß"))f.ket=f.cursor,f.slice_from("ss");else{if(e>=f.limit)break;f.cursor=e+1}for(f.cursor=s;;)for(r=f.cursor;;){if(n=f.cursor,f.in_grouping(w,97,252)){if(i=f.cursor,f.bra=i,_("u","U",n))break;if(f.cursor=i,_("y","Y",n))break}if(n>=f.limit)return f.cursor=r;f.cursor=n+1}}(),f.cursor=e,c=f.limit,o=c,0<=(s=f.cursor+3)&&s<=f.limit&&(t=s,p()||((c=f.cursor)=f.limit)return;f.cursor++}}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.de.stemmer,"stemmer-de"),r.de.stopWordFilter=function(e){if(-1===r.de.stopWordFilter.stopWords.indexOf(e))return e},r.de.stopWordFilter.stopWords=new r.SortedSet,r.de.stopWordFilter.stopWords.length=232,r.de.stopWordFilter.stopWords.elements=" aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" "),r.Pipeline.registerFunction(r.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/js/lunr.du.js b/js/lunr.du.js new file mode 100644 index 0000000..7d13826 --- /dev/null +++ b/js/lunr.du.js @@ -0,0 +1,444 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.du = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.du.trimmer, + lunr.du.stopWordFilter, + lunr.du.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.du.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.du.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.du.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.du.trimmer, 'trimmer-du'); + + /* lunr stemmer function */ + lunr.du.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function DutchStemmer() { + var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), + new Among("\u00E4", 0, 1), new Among("\u00E9", 0, 2), + new Among("\u00EB", 0, 2), new Among("\u00ED", 0, 3), + new Among("\u00EF", 0, 3), new Among("\u00F3", 0, 4), + new Among("\u00F6", 0, 4), new Among("\u00FA", 0, 5), + new Among("\u00FC", 0, 5) + ], + a_1 = [new Among("", -1, 3), + new Among("I", 0, 2), new Among("Y", 0, 1) + ], + a_2 = [ + new Among("dd", -1, -1), new Among("kk", -1, -1), + new Among("tt", -1, -1) + ], + a_3 = [new Among("ene", -1, 2), + new Among("se", -1, 3), new Among("en", -1, 2), + new Among("heden", 2, 1), new Among("s", -1, 3) + ], + a_4 = [ + new Among("end", -1, 1), new Among("ig", -1, 2), + new Among("ing", -1, 1), new Among("lijk", -1, 3), + new Among("baar", -1, 4), new Among("bar", -1, 5) + ], + a_5 = [ + new Among("aa", -1, -1), new Among("ee", -1, -1), + new Among("oo", -1, -1), new Among("uu", -1, -1) + ], + g_v = [17, 65, + 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + g_v_I = [1, 0, 0, + 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + g_v_j = [ + 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + I_p2, I_p1, B_e_found, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_prelude() { + var among_var, v_1 = sbp.cursor, + v_2, v_3; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 11); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a"); + continue; + case 2: + sbp.slice_from("e"); + continue; + case 3: + sbp.slice_from("i"); + continue; + case 4: + sbp.slice_from("o"); + continue; + case 5: + sbp.slice_from("u"); + continue; + case 6: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + sbp.cursor = v_1; + sbp.bra = v_1; + if (sbp.eq_s(1, "y")) { + sbp.ket = sbp.cursor; + sbp.slice_from("Y"); + } else + sbp.cursor = v_1; + while (true) { + v_2 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 232)) { + v_3 = sbp.cursor; + sbp.bra = v_3; + if (sbp.eq_s(1, "i")) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 232)) { + sbp.slice_from("I"); + sbp.cursor = v_2; + } + } else { + sbp.cursor = v_3; + if (sbp.eq_s(1, "y")) { + sbp.ket = sbp.cursor; + sbp.slice_from("Y"); + sbp.cursor = v_2; + } else if (habr1(v_2)) + break; + } + } else if (habr1(v_2)) + break; + } + } + + function habr1(v_1) { + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return true; + sbp.cursor++; + return false; + } + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + if (!habr2()) { + I_p1 = sbp.cursor; + if (I_p1 < 3) + I_p1 = 3; + if (!habr2()) + I_p2 = sbp.cursor; + } + } + + function habr2() { + while (!sbp.in_grouping(g_v, 97, 232)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 232)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("y"); + break; + case 2: + sbp.slice_from("i"); + break; + case 3: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_undouble() { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_2, 3)) { + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + + function r_e_ending() { + var v_1; + B_e_found = false; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "e")) { + sbp.bra = sbp.cursor; + if (r_R1()) { + v_1 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + B_e_found = true; + r_undouble(); + } + } + } + } + + function r_en_ending() { + var v_1; + if (r_R1()) { + v_1 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(3, "gem")) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + r_undouble(); + } + } + } + } + + function r_standard_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_3, v_4, v_5, v_6; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 5); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R1()) + sbp.slice_from("heid"); + break; + case 2: + r_en_ending(); + break; + case 3: + if (r_R1() && sbp.out_grouping_b(g_v_j, 97, 232)) + sbp.slice_del(); + break; + } + } + sbp.cursor = sbp.limit - v_1; + r_e_ending(); + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(4, "heid")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "c")) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "en")) { + sbp.bra = sbp.cursor; + r_en_ending(); + } + } + } + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 6); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ig")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + v_4 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_4; + sbp.slice_del(); + break; + } + } + } + sbp.cursor = sbp.limit - v_3; + r_undouble(); + } + break; + case 2: + if (r_R2()) { + v_5 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "e")) { + sbp.cursor = sbp.limit - v_5; + sbp.slice_del(); + } + } + break; + case 3: + if (r_R2()) { + sbp.slice_del(); + r_e_ending(); + } + break; + case 4: + if (r_R2()) + sbp.slice_del(); + break; + case 5: + if (r_R2() && B_e_found) + sbp.slice_del(); + break; + } + } + sbp.cursor = sbp.limit - v_1; + if (sbp.out_grouping_b(g_v_I, 73, 232)) { + v_6 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_5, 4) && sbp.out_grouping_b(g_v, 97, 232)) { + sbp.cursor = sbp.limit - v_6; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.du.stemmer, 'stemmer-du'); + + /* stop word filter function */ + lunr.du.stopWordFilter = function(token) { + if (lunr.du.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.du.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.du.stopWordFilter.stopWords.length = 103; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.du.stopWordFilter.stopWords.elements = ' aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou'.split(' '); + + lunr.Pipeline.registerFunction(lunr.du.stopWordFilter, 'stopWordFilter-du'); + }; +})) \ No newline at end of file diff --git a/js/lunr.du.min.js b/js/lunr.du.min.js new file mode 100644 index 0000000..a93f314 --- /dev/null +++ b/js/lunr.du.min.js @@ -0,0 +1 @@ +!function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,i,o;e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer)},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,o=new function(){var c,a,l,m=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],d=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],e=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],f=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],w=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],p=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],g=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],k=new i;function h(r){if((k.cursor=r)>=k.limit)return 1;k.cursor++}function v(){for(;!k.in_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}for(;!k.out_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}}function q(){return a<=k.cursor}function z(){return c<=k.cursor}function W(){var r=k.limit-k.cursor;k.find_among_b(e,3)&&(k.cursor=k.limit-r,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del())}function j(){var r;l=!1,k.ket=k.cursor,k.eq_s_b(1,"e")&&(k.bra=k.cursor,q())&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.slice_del(),l=!0,W())}function F(){var r;q()&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.eq_s_b(3,"gem")||(k.cursor=k.limit-r,k.slice_del(),W()))}this.setCurrent=function(r){k.setCurrent(r)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){for(var r,e,i,o=k.cursor,t=k.cursor;;){if(k.bra=k.cursor,r=k.find_among(m,11))switch(k.ket=k.cursor,r){case 1:k.slice_from("a");continue;case 2:k.slice_from("e");continue;case 3:k.slice_from("i");continue;case 4:k.slice_from("o");continue;case 5:k.slice_from("u");continue;case 6:if(!(k.cursor>=k.limit)){k.cursor++;continue}}break}for(k.cursor=t,k.bra=t,k.eq_s(1,"y")?(k.ket=k.cursor,k.slice_from("Y")):k.cursor=t;;)if(e=k.cursor,k.in_grouping(b,97,232)){if(i=k.cursor,k.bra=i,k.eq_s(1,"i"))k.ket=k.cursor,k.in_grouping(b,97,232)&&(k.slice_from("I"),k.cursor=e);else if(k.cursor=i,k.eq_s(1,"y"))k.ket=k.cursor,k.slice_from("Y"),k.cursor=e;else if(h(e))break}else if(h(e))break;k.cursor=o,a=k.limit,c=a,v()||((a=k.cursor)<3&&(a=3),v())||(c=k.cursor),k.limit_backward=o,k.cursor=k.limit;var s,n,u,t=k.limit-k.cursor;if(k.ket=k.cursor,o=k.find_among_b(f,5))switch(k.bra=k.cursor,o){case 1:q()&&k.slice_from("heid");break;case 2:F();break;case 3:q()&&k.out_grouping_b(g,97,232)&&k.slice_del()}if(k.cursor=k.limit-t,j(),k.cursor=k.limit-t,k.ket=k.cursor,k.eq_s_b(4,"heid")&&(k.bra=k.cursor,z())&&(u=k.limit-k.cursor,k.eq_s_b(1,"c")||(k.cursor=k.limit-u,k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"en")&&(k.bra=k.cursor,F()))),k.cursor=k.limit-t,k.ket=k.cursor,o=k.find_among_b(_,6))switch(k.bra=k.cursor,o){case 1:if(z()){if(k.slice_del(),s=k.limit-k.cursor,k.ket=k.cursor,k.eq_s_b(2,"ig")&&(k.bra=k.cursor,z())&&(n=k.limit-k.cursor,!k.eq_s_b(1,"e"))){k.cursor=k.limit-n,k.slice_del();break}k.cursor=k.limit-s,W()}break;case 2:z()&&(n=k.limit-k.cursor,k.eq_s_b(1,"e")||(k.cursor=k.limit-n,k.slice_del()));break;case 3:z()&&(k.slice_del(),j());break;case 4:z()&&k.slice_del();break;case 5:z()&&l&&k.slice_del()}return k.cursor=k.limit-t,k.out_grouping_b(p,73,232)&&(u=k.limit-k.cursor,k.find_among_b(w,4))&&k.out_grouping_b(b,97,232)&&(k.cursor=k.limit-u,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del()),k.cursor=k.limit_backward,function(){for(var r;;)if(k.bra=k.cursor,r=k.find_among(d,3))switch(k.ket=k.cursor,r){case 1:k.slice_from("y");break;case 2:k.slice_from("i");break;case 3:if(k.cursor>=k.limit)return;k.cursor++}}(),!0}},function(r){return o.setCurrent(r),o.stem(),o.getCurrent()}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=function(r){if(-1===e.du.stopWordFilter.stopWords.indexOf(r))return r},e.du.stopWordFilter.stopWords=new e.SortedSet,e.du.stopWordFilter.stopWords.length=103,e.du.stopWordFilter.stopWords.elements=" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" "),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/js/lunr.es.js b/js/lunr.es.js new file mode 100644 index 0000000..f8c382d --- /dev/null +++ b/js/lunr.es.js @@ -0,0 +1,595 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.es = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.es.trimmer, + lunr.es.stopWordFilter, + lunr.es.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.es.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.es.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.es.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.es.trimmer, 'trimmer-es'); + + /* lunr stemmer function */ + lunr.es.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function SpanishStemmer() { + var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), + new Among("\u00E9", 0, 2), new Among("\u00ED", 0, 3), + new Among("\u00F3", 0, 4), new Among("\u00FA", 0, 5) + ], + a_1 = [ + new Among("la", -1, -1), new Among("sela", 0, -1), + new Among("le", -1, -1), new Among("me", -1, -1), + new Among("se", -1, -1), new Among("lo", -1, -1), + new Among("selo", 5, -1), new Among("las", -1, -1), + new Among("selas", 7, -1), new Among("les", -1, -1), + new Among("los", -1, -1), new Among("selos", 10, -1), + new Among("nos", -1, -1) + ], + a_2 = [new Among("ando", -1, 6), + new Among("iendo", -1, 6), new Among("yendo", -1, 7), + new Among("\u00E1ndo", -1, 2), new Among("i\u00E9ndo", -1, 1), + new Among("ar", -1, 6), new Among("er", -1, 6), + new Among("ir", -1, 6), new Among("\u00E1r", -1, 3), + new Among("\u00E9r", -1, 4), new Among("\u00EDr", -1, 5) + ], + a_3 = [ + new Among("ic", -1, -1), new Among("ad", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_4 = [ + new Among("able", -1, 1), new Among("ible", -1, 1), + new Among("ante", -1, 1) + ], + a_5 = [new Among("ic", -1, 1), + new Among("abil", -1, 1), new Among("iv", -1, 1) + ], + a_6 = [ + new Among("ica", -1, 1), new Among("ancia", -1, 2), + new Among("encia", -1, 5), new Among("adora", -1, 2), + new Among("osa", -1, 1), new Among("ista", -1, 1), + new Among("iva", -1, 9), new Among("anza", -1, 1), + new Among("log\u00EDa", -1, 3), new Among("idad", -1, 8), + new Among("able", -1, 1), new Among("ible", -1, 1), + new Among("ante", -1, 2), new Among("mente", -1, 7), + new Among("amente", 13, 6), new Among("aci\u00F3n", -1, 2), + new Among("uci\u00F3n", -1, 4), new Among("ico", -1, 1), + new Among("ismo", -1, 1), new Among("oso", -1, 1), + new Among("amiento", -1, 1), new Among("imiento", -1, 1), + new Among("ivo", -1, 9), new Among("ador", -1, 2), + new Among("icas", -1, 1), new Among("ancias", -1, 2), + new Among("encias", -1, 5), new Among("adoras", -1, 2), + new Among("osas", -1, 1), new Among("istas", -1, 1), + new Among("ivas", -1, 9), new Among("anzas", -1, 1), + new Among("log\u00EDas", -1, 3), new Among("idades", -1, 8), + new Among("ables", -1, 1), new Among("ibles", -1, 1), + new Among("aciones", -1, 2), new Among("uciones", -1, 4), + new Among("adores", -1, 2), new Among("antes", -1, 2), + new Among("icos", -1, 1), new Among("ismos", -1, 1), + new Among("osos", -1, 1), new Among("amientos", -1, 1), + new Among("imientos", -1, 1), new Among("ivos", -1, 9) + ], + a_7 = [ + new Among("ya", -1, 1), new Among("ye", -1, 1), + new Among("yan", -1, 1), new Among("yen", -1, 1), + new Among("yeron", -1, 1), new Among("yendo", -1, 1), + new Among("yo", -1, 1), new Among("yas", -1, 1), + new Among("yes", -1, 1), new Among("yais", -1, 1), + new Among("yamos", -1, 1), new Among("y\u00F3", -1, 1) + ], + a_8 = [ + new Among("aba", -1, 2), new Among("ada", -1, 2), + new Among("ida", -1, 2), new Among("ara", -1, 2), + new Among("iera", -1, 2), new Among("\u00EDa", -1, 2), + new Among("ar\u00EDa", 5, 2), new Among("er\u00EDa", 5, 2), + new Among("ir\u00EDa", 5, 2), new Among("ad", -1, 2), + new Among("ed", -1, 2), new Among("id", -1, 2), + new Among("ase", -1, 2), new Among("iese", -1, 2), + new Among("aste", -1, 2), new Among("iste", -1, 2), + new Among("an", -1, 2), new Among("aban", 16, 2), + new Among("aran", 16, 2), new Among("ieran", 16, 2), + new Among("\u00EDan", 16, 2), new Among("ar\u00EDan", 20, 2), + new Among("er\u00EDan", 20, 2), new Among("ir\u00EDan", 20, 2), + new Among("en", -1, 1), new Among("asen", 24, 2), + new Among("iesen", 24, 2), new Among("aron", -1, 2), + new Among("ieron", -1, 2), new Among("ar\u00E1n", -1, 2), + new Among("er\u00E1n", -1, 2), new Among("ir\u00E1n", -1, 2), + new Among("ado", -1, 2), new Among("ido", -1, 2), + new Among("ando", -1, 2), new Among("iendo", -1, 2), + new Among("ar", -1, 2), new Among("er", -1, 2), + new Among("ir", -1, 2), new Among("as", -1, 2), + new Among("abas", 39, 2), new Among("adas", 39, 2), + new Among("idas", 39, 2), new Among("aras", 39, 2), + new Among("ieras", 39, 2), new Among("\u00EDas", 39, 2), + new Among("ar\u00EDas", 45, 2), new Among("er\u00EDas", 45, 2), + new Among("ir\u00EDas", 45, 2), new Among("es", -1, 1), + new Among("ases", 49, 2), new Among("ieses", 49, 2), + new Among("abais", -1, 2), new Among("arais", -1, 2), + new Among("ierais", -1, 2), new Among("\u00EDais", -1, 2), + new Among("ar\u00EDais", 55, 2), new Among("er\u00EDais", 55, 2), + new Among("ir\u00EDais", 55, 2), new Among("aseis", -1, 2), + new Among("ieseis", -1, 2), new Among("asteis", -1, 2), + new Among("isteis", -1, 2), new Among("\u00E1is", -1, 2), + new Among("\u00E9is", -1, 1), new Among("ar\u00E9is", 64, 2), + new Among("er\u00E9is", 64, 2), new Among("ir\u00E9is", 64, 2), + new Among("ados", -1, 2), new Among("idos", -1, 2), + new Among("amos", -1, 2), new Among("\u00E1bamos", 70, 2), + new Among("\u00E1ramos", 70, 2), new Among("i\u00E9ramos", 70, 2), + new Among("\u00EDamos", 70, 2), new Among("ar\u00EDamos", 74, 2), + new Among("er\u00EDamos", 74, 2), new Among("ir\u00EDamos", 74, 2), + new Among("emos", -1, 1), new Among("aremos", 78, 2), + new Among("eremos", 78, 2), new Among("iremos", 78, 2), + new Among("\u00E1semos", 78, 2), new Among("i\u00E9semos", 78, 2), + new Among("imos", -1, 2), new Among("ar\u00E1s", -1, 2), + new Among("er\u00E1s", -1, 2), new Among("ir\u00E1s", -1, 2), + new Among("\u00EDs", -1, 2), new Among("ar\u00E1", -1, 2), + new Among("er\u00E1", -1, 2), new Among("ir\u00E1", -1, 2), + new Among("ar\u00E9", -1, 2), new Among("er\u00E9", -1, 2), + new Among("ir\u00E9", -1, 2), new Among("i\u00F3", -1, 2) + ], + a_9 = [ + new Among("a", -1, 1), new Among("e", -1, 2), + new Among("o", -1, 1), new Among("os", -1, 1), + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2), + new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) + ], + g_v = [17, + 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1() { + if (sbp.out_grouping(g_v, 97, 252)) { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr2() { + if (sbp.in_grouping(g_v, 97, 252)) { + var v_1 = sbp.cursor; + if (habr1()) { + sbp.cursor = v_1; + if (!sbp.in_grouping(g_v, 97, 252)) + return true; + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + } + return false; + } + return true; + } + + function habr3() { + var v_1 = sbp.cursor, + v_2; + if (habr2()) { + sbp.cursor = v_1; + if (!sbp.out_grouping(g_v, 97, 252)) + return; + v_2 = sbp.cursor; + if (habr1()) { + sbp.cursor = v_2; + if (!sbp.in_grouping(g_v, 97, 252) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + } + I_pV = sbp.cursor; + } + + function habr4() { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr3(); + sbp.cursor = v_1; + if (habr4()) { + I_p1 = sbp.cursor; + if (habr4()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 6); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a"); + continue; + case 2: + sbp.slice_from("e"); + continue; + case 3: + sbp.slice_from("i"); + continue; + case 4: + sbp.slice_from("o"); + continue; + case 5: + sbp.slice_from("u"); + continue; + case 6: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_attached_pronoun() { + var among_var; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 13)) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among_b(a_2, 11); + if (among_var && r_RV()) + switch (among_var) { + case 1: + sbp.bra = sbp.cursor; + sbp.slice_from("iendo"); + break; + case 2: + sbp.bra = sbp.cursor; + sbp.slice_from("ando"); + break; + case 3: + sbp.bra = sbp.cursor; + sbp.slice_from("ar"); + break; + case 4: + sbp.bra = sbp.cursor; + sbp.slice_from("er"); + break; + case 5: + sbp.bra = sbp.cursor; + sbp.slice_from("ir"); + break; + case 6: + sbp.slice_del(); + break; + case 7: + if (sbp.eq_s_b(1, "u")) + sbp.slice_del(); + break; + } + } + } + + function habr5(a, n) { + if (!r_R2()) + return true; + sbp.slice_del(); + sbp.ket = sbp.cursor; + var among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1 && r_R2()) + sbp.slice_del(); + } + return false; + } + + function habr6(c1) { + if (!r_R2()) + return true; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, c1)) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + return false; + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 46); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (habr6("ic")) + return false; + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 6: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 7: + if (habr5(a_4, 3)) + return false; + break; + case 8: + if (habr5(a_5, 3)) + return false; + break; + case 9: + if (habr6("at")) + return false; + break; + } + return true; + } + return false; + } + + function r_y_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 12); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) { + if (!sbp.eq_s_b(1, "u")) + return false; + sbp.slice_del(); + } + return true; + } + } + return false; + } + + function r_verb_suffix() { + var among_var, v_1, v_2, v_3; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 96); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "u")) { + v_3 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "g")) + sbp.cursor = sbp.limit - v_3; + else + sbp.cursor = sbp.limit - v_2; + } else + sbp.cursor = sbp.limit - v_2; + sbp.bra = sbp.cursor; + case 2: + sbp.slice_del(); + break; + } + } + } + } + + function r_residual_suffix() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 8); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_RV()) + sbp.slice_del(); + break; + case 2: + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "u")) { + sbp.bra = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, "g")) { + sbp.cursor = sbp.limit - v_1; + if (r_RV()) + sbp.slice_del(); + } + } + } + break; + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_attached_pronoun(); + sbp.cursor = sbp.limit; + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_y_verb_suffix()) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + } + } + sbp.cursor = sbp.limit; + r_residual_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.es.stemmer, 'stemmer-es'); + + /* stop word filter function */ + lunr.es.stopWordFilter = function(token) { + if (lunr.es.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.es.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.es.stopWordFilter.stopWords.length = 309; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.es.stopWordFilter.stopWords.elements = ' a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos'.split(' '); + + lunr.Pipeline.registerFunction(lunr.es.stopWordFilter, 'stopWordFilter-es'); + }; +})) \ No newline at end of file diff --git a/js/lunr.es.min.js b/js/lunr.es.min.js new file mode 100644 index 0000000..f8463d4 --- /dev/null +++ b/js/lunr.es.min.js @@ -0,0 +1 @@ +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(s){if(void 0===s)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===s.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,W,r;s.es=function(){this.pipeline.reset(),this.pipeline.add(s.es.trimmer,s.es.stopWordFilter,s.es.stemmer)},s.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",s.es.trimmer=s.trimmerSupport.generateTrimmer(s.es.wordCharacters),s.Pipeline.registerFunction(s.es.trimmer,"trimmer-es"),s.es.stemmer=(e=s.stemmerSupport.Among,W=s.stemmerSupport.SnowballProgram,r=new function(){var u,w,c,m=[new e("",-1,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],l=[new e("la",-1,-1),new e("sela",0,-1),new e("le",-1,-1),new e("me",-1,-1),new e("se",-1,-1),new e("lo",-1,-1),new e("selo",5,-1),new e("las",-1,-1),new e("selas",7,-1),new e("les",-1,-1),new e("los",-1,-1),new e("selos",10,-1),new e("nos",-1,-1)],d=[new e("ando",-1,6),new e("iendo",-1,6),new e("yendo",-1,7),new e("ándo",-1,2),new e("iéndo",-1,1),new e("ar",-1,6),new e("er",-1,6),new e("ir",-1,6),new e("ár",-1,3),new e("ér",-1,4),new e("ír",-1,5)],s=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],r=[new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,1)],n=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],i=[new e("ica",-1,1),new e("ancia",-1,2),new e("encia",-1,5),new e("adora",-1,2),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("logía",-1,3),new e("idad",-1,8),new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,2),new e("mente",-1,7),new e("amente",13,6),new e("ación",-1,2),new e("ución",-1,4),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amiento",-1,1),new e("imiento",-1,1),new e("ivo",-1,9),new e("ador",-1,2),new e("icas",-1,1),new e("ancias",-1,2),new e("encias",-1,5),new e("adoras",-1,2),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,9),new e("anzas",-1,1),new e("logías",-1,3),new e("idades",-1,8),new e("ables",-1,1),new e("ibles",-1,1),new e("aciones",-1,2),new e("uciones",-1,4),new e("adores",-1,2),new e("antes",-1,2),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amientos",-1,1),new e("imientos",-1,1),new e("ivos",-1,9)],b=[new e("ya",-1,1),new e("ye",-1,1),new e("yan",-1,1),new e("yen",-1,1),new e("yeron",-1,1),new e("yendo",-1,1),new e("yo",-1,1),new e("yas",-1,1),new e("yes",-1,1),new e("yais",-1,1),new e("yamos",-1,1),new e("yó",-1,1)],f=[new e("aba",-1,2),new e("ada",-1,2),new e("ida",-1,2),new e("ara",-1,2),new e("iera",-1,2),new e("ía",-1,2),new e("aría",5,2),new e("ería",5,2),new e("iría",5,2),new e("ad",-1,2),new e("ed",-1,2),new e("id",-1,2),new e("ase",-1,2),new e("iese",-1,2),new e("aste",-1,2),new e("iste",-1,2),new e("an",-1,2),new e("aban",16,2),new e("aran",16,2),new e("ieran",16,2),new e("ían",16,2),new e("arían",20,2),new e("erían",20,2),new e("irían",20,2),new e("en",-1,1),new e("asen",24,2),new e("iesen",24,2),new e("aron",-1,2),new e("ieron",-1,2),new e("arán",-1,2),new e("erán",-1,2),new e("irán",-1,2),new e("ado",-1,2),new e("ido",-1,2),new e("ando",-1,2),new e("iendo",-1,2),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2),new e("as",-1,2),new e("abas",39,2),new e("adas",39,2),new e("idas",39,2),new e("aras",39,2),new e("ieras",39,2),new e("ías",39,2),new e("arías",45,2),new e("erías",45,2),new e("irías",45,2),new e("es",-1,1),new e("ases",49,2),new e("ieses",49,2),new e("abais",-1,2),new e("arais",-1,2),new e("ierais",-1,2),new e("íais",-1,2),new e("aríais",55,2),new e("eríais",55,2),new e("iríais",55,2),new e("aseis",-1,2),new e("ieseis",-1,2),new e("asteis",-1,2),new e("isteis",-1,2),new e("áis",-1,2),new e("éis",-1,1),new e("aréis",64,2),new e("eréis",64,2),new e("iréis",64,2),new e("ados",-1,2),new e("idos",-1,2),new e("amos",-1,2),new e("ábamos",70,2),new e("áramos",70,2),new e("iéramos",70,2),new e("íamos",70,2),new e("aríamos",74,2),new e("eríamos",74,2),new e("iríamos",74,2),new e("emos",-1,1),new e("aremos",78,2),new e("eremos",78,2),new e("iremos",78,2),new e("ásemos",78,2),new e("iésemos",78,2),new e("imos",-1,2),new e("arás",-1,2),new e("erás",-1,2),new e("irás",-1,2),new e("ís",-1,2),new e("ará",-1,2),new e("erá",-1,2),new e("irá",-1,2),new e("aré",-1,2),new e("eré",-1,2),new e("iré",-1,2),new e("ió",-1,2)],_=[new e("a",-1,1),new e("e",-1,2),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("é",-1,2),new e("í",-1,1),new e("ó",-1,1)],a=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],h=new W;function o(){if(!h.out_grouping(a,97,252))return 1;for(;!h.in_grouping(a,97,252);){if(h.cursor>=h.limit)return 1;h.cursor++}}function p(){var e=h.cursor;if(function(){if(!h.in_grouping(a,97,252))return 1;var e=h.cursor;if(o()){if(h.cursor=e,!h.in_grouping(a,97,252))return 1;for(;!h.out_grouping(a,97,252);){if(h.cursor>=h.limit)return 1;h.cursor++}}}()){if(h.cursor=e,!h.out_grouping(a,97,252))return;if(e=h.cursor,o()){if(h.cursor=e,!h.in_grouping(a,97,252)||h.cursor>=h.limit)return;h.cursor++}}c=h.cursor}function v(){for(;!h.in_grouping(a,97,252);){if(h.cursor>=h.limit)return;h.cursor++}for(;!h.out_grouping(a,97,252);){if(h.cursor>=h.limit)return;h.cursor++}return 1}function g(){return c<=h.cursor}function t(){return u<=h.cursor}function k(e,s){if(!t())return 1;h.slice_del(),h.ket=h.cursor;e=h.find_among_b(e,s);e&&(h.bra=h.cursor,1==e)&&t()&&h.slice_del()}function y(e){if(!t())return 1;h.slice_del(),h.ket=h.cursor,h.eq_s_b(2,e)&&(h.bra=h.cursor,t())&&h.slice_del()}function q(){var e;if(h.ket=h.cursor,e=h.find_among_b(i,46)){switch(h.bra=h.cursor,e){case 1:if(!t())return;h.slice_del();break;case 2:if(y("ic"))return;break;case 3:if(!t())return;h.slice_from("log");break;case 4:if(!t())return;h.slice_from("u");break;case 5:if(!t())return;h.slice_from("ente");break;case 6:if(!(w<=h.cursor))return;h.slice_del(),h.ket=h.cursor,(e=h.find_among_b(s,4))&&(h.bra=h.cursor,t())&&(h.slice_del(),1==e)&&(h.ket=h.cursor,h.eq_s_b(2,"at"))&&(h.bra=h.cursor,t())&&h.slice_del();break;case 7:if(k(r,3))return;break;case 8:if(k(n,3))return;break;case 9:if(y("at"))return}return 1}}this.setCurrent=function(e){h.setCurrent(e)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var e,s,r,n,i,a,o,t=h.cursor;if(r=h.cursor,c=h.limit,u=w=c,p(),h.cursor=r,v()&&(w=h.cursor,v())&&(u=h.cursor),h.limit_backward=t,h.cursor=h.limit,h.ket=h.cursor,h.find_among_b(l,13)&&(h.bra=h.cursor,e=h.find_among_b(d,11))&&g())switch(e){case 1:h.bra=h.cursor,h.slice_from("iendo");break;case 2:h.bra=h.cursor,h.slice_from("ando");break;case 3:h.bra=h.cursor,h.slice_from("ar");break;case 4:h.bra=h.cursor,h.slice_from("er");break;case 5:h.bra=h.cursor,h.slice_from("ir");break;case 6:h.slice_del();break;case 7:h.eq_s_b(1,"u")&&h.slice_del()}if((h.cursor=h.limit,!q())&&(h.cursor=h.limit,!function(){var e,s;if(h.cursor>=c&&(s=h.limit_backward,h.limit_backward=c,h.ket=h.cursor,e=h.find_among_b(b,12),h.limit_backward=s,e)){if(h.bra=h.cursor,1==e){if(!h.eq_s_b(1,"u"))return;h.slice_del()}return 1}}()&&(h.cursor=h.limit,h.cursor>=c)&&(r=h.limit_backward,h.limit_backward=c,h.ket=h.cursor,s=h.find_among_b(f,96),h.limit_backward=r,s)))switch(h.bra=h.cursor,s){case 1:n=h.limit-h.cursor,h.eq_s_b(1,"u")&&(i=h.limit-h.cursor,h.eq_s_b(1,"g"))?h.cursor=h.limit-i:h.cursor=h.limit-n,h.bra=h.cursor;case 2:h.slice_del()}if(h.cursor=h.limit,h.ket=h.cursor,t=h.find_among_b(_,8))switch(h.bra=h.cursor,t){case 1:g()&&h.slice_del();break;case 2:g()&&(h.slice_del(),h.ket=h.cursor,h.eq_s_b(1,"u"))&&(h.bra=h.cursor,a=h.limit-h.cursor,h.eq_s_b(1,"g"))&&(h.cursor=h.limit-a,g())&&h.slice_del()}for(h.cursor=h.limit_backward;;){if(h.bra=h.cursor,o=h.find_among(m,6))switch(h.ket=h.cursor,o){case 1:h.slice_from("a");continue;case 2:h.slice_from("e");continue;case 3:h.slice_from("i");continue;case 4:h.slice_from("o");continue;case 5:h.slice_from("u");continue;case 6:if(!(h.cursor>=h.limit)){h.cursor++;continue}}break}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),s.Pipeline.registerFunction(s.es.stemmer,"stemmer-es"),s.es.stopWordFilter=function(e){if(-1===s.es.stopWordFilter.stopWords.indexOf(e))return e},s.es.stopWordFilter.stopWords=new s.SortedSet,s.es.stopWordFilter.stopWords.length=309,s.es.stopWordFilter.stopWords.elements=" a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" "),s.Pipeline.registerFunction(s.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/js/lunr.fi.js b/js/lunr.fi.js new file mode 100644 index 0000000..c49d7de --- /dev/null +++ b/js/lunr.fi.js @@ -0,0 +1,536 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.fi = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.fi.trimmer, + lunr.fi.stopWordFilter, + lunr.fi.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.fi.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.fi.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fi.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.fi.trimmer, 'trimmer-fi'); + + /* lunr stemmer function */ + lunr.fi.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function FinnishStemmer() { + var a_0 = [new Among("pa", -1, 1), new Among("sti", -1, 2), + new Among("kaan", -1, 1), new Among("han", -1, 1), + new Among("kin", -1, 1), new Among("h\u00E4n", -1, 1), + new Among("k\u00E4\u00E4n", -1, 1), new Among("ko", -1, 1), + new Among("p\u00E4", -1, 1), new Among("k\u00F6", -1, 1) + ], + a_1 = [ + new Among("lla", -1, -1), new Among("na", -1, -1), + new Among("ssa", -1, -1), new Among("ta", -1, -1), + new Among("lta", 3, -1), new Among("sta", 3, -1) + ], + a_2 = [ + new Among("ll\u00E4", -1, -1), new Among("n\u00E4", -1, -1), + new Among("ss\u00E4", -1, -1), new Among("t\u00E4", -1, -1), + new Among("lt\u00E4", 3, -1), new Among("st\u00E4", 3, -1) + ], + a_3 = [ + new Among("lle", -1, -1), new Among("ine", -1, -1) + ], + a_4 = [ + new Among("nsa", -1, 3), new Among("mme", -1, 3), + new Among("nne", -1, 3), new Among("ni", -1, 2), + new Among("si", -1, 1), new Among("an", -1, 4), + new Among("en", -1, 6), new Among("\u00E4n", -1, 5), + new Among("ns\u00E4", -1, 3) + ], + a_5 = [new Among("aa", -1, -1), + new Among("ee", -1, -1), new Among("ii", -1, -1), + new Among("oo", -1, -1), new Among("uu", -1, -1), + new Among("\u00E4\u00E4", -1, -1), + new Among("\u00F6\u00F6", -1, -1) + ], + a_6 = [new Among("a", -1, 8), + new Among("lla", 0, -1), new Among("na", 0, -1), + new Among("ssa", 0, -1), new Among("ta", 0, -1), + new Among("lta", 4, -1), new Among("sta", 4, -1), + new Among("tta", 4, 9), new Among("lle", -1, -1), + new Among("ine", -1, -1), new Among("ksi", -1, -1), + new Among("n", -1, 7), new Among("han", 11, 1), + new Among("den", 11, -1, r_VI), new Among("seen", 11, -1, r_LONG), + new Among("hen", 11, 2), new Among("tten", 11, -1, r_VI), + new Among("hin", 11, 3), new Among("siin", 11, -1, r_VI), + new Among("hon", 11, 4), new Among("h\u00E4n", 11, 5), + new Among("h\u00F6n", 11, 6), new Among("\u00E4", -1, 8), + new Among("ll\u00E4", 22, -1), new Among("n\u00E4", 22, -1), + new Among("ss\u00E4", 22, -1), new Among("t\u00E4", 22, -1), + new Among("lt\u00E4", 26, -1), new Among("st\u00E4", 26, -1), + new Among("tt\u00E4", 26, 9) + ], + a_7 = [new Among("eja", -1, -1), + new Among("mma", -1, 1), new Among("imma", 1, -1), + new Among("mpa", -1, 1), new Among("impa", 3, -1), + new Among("mmi", -1, 1), new Among("immi", 5, -1), + new Among("mpi", -1, 1), new Among("impi", 7, -1), + new Among("ej\u00E4", -1, -1), new Among("mm\u00E4", -1, 1), + new Among("imm\u00E4", 10, -1), new Among("mp\u00E4", -1, 1), + new Among("imp\u00E4", 12, -1) + ], + a_8 = [new Among("i", -1, -1), + new Among("j", -1, -1) + ], + a_9 = [new Among("mma", -1, 1), + new Among("imma", 0, -1) + ], + g_AEI = [17, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8 + ], + g_V1 = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 32 + ], + g_V2 = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 32 + ], + g_particle_end = [17, 97, 24, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 + ], + B_ending_removed, S_x, I_p2, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + I_p1 = sbp.limit; + I_p2 = I_p1; + if (!habr1()) { + I_p1 = sbp.cursor; + if (!habr1()) + I_p2 = sbp.cursor; + } + } + + function habr1() { + var v_1; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_V1, 97, 246)) + break; + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return true; + sbp.cursor++; + } + sbp.cursor = v_1; + while (!sbp.out_grouping(g_V1, 97, 246)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_particle_etc() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 10); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + if (!sbp.in_grouping_b(g_particle_end, 97, 246)) + return; + break; + case 2: + if (!r_R2()) + return; + break; + } + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_possessive() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 9); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "k")) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + } + break; + case 2: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(3, "kse")) { + sbp.bra = sbp.cursor; + sbp.slice_from("ksi"); + } + break; + case 3: + sbp.slice_del(); + break; + case 4: + if (sbp.find_among_b(a_1, 6)) + sbp.slice_del(); + break; + case 5: + if (sbp.find_among_b(a_2, 6)) + sbp.slice_del(); + break; + case 6: + if (sbp.find_among_b(a_3, 2)) + sbp.slice_del(); + break; + } + } else + sbp.limit_backward = v_1; + } + } + + function r_LONG() { + return sbp.find_among_b(a_5, 7); + } + + function r_VI() { + return sbp.eq_s_b(1, "i") && sbp.in_grouping_b(g_V2, 97, 246); + } + + function r_case_ending() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 30); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + switch (among_var) { + case 1: + if (!sbp.eq_s_b(1, "a")) + return; + break; + case 2: + case 9: + if (!sbp.eq_s_b(1, "e")) + return; + break; + case 3: + if (!sbp.eq_s_b(1, "i")) + return; + break; + case 4: + if (!sbp.eq_s_b(1, "o")) + return; + break; + case 5: + if (!sbp.eq_s_b(1, "\u00E4")) + return; + break; + case 6: + if (!sbp.eq_s_b(1, "\u00F6")) + return; + break; + case 7: + v_2 = sbp.limit - sbp.cursor; + if (!r_LONG()) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(2, "ie")) { + sbp.cursor = sbp.limit - v_2; + break; + } + } + sbp.cursor = sbp.limit - v_2; + if (sbp.cursor <= sbp.limit_backward) { + sbp.cursor = sbp.limit - v_2; + break; + } + sbp.cursor--; + sbp.bra = sbp.cursor; + break; + case 8: + if (!sbp.in_grouping_b(g_V1, 97, 246) || !sbp.out_grouping_b(g_V1, 97, 246)) + return; + break; + } + sbp.slice_del(); + B_ending_removed = true; + } else + sbp.limit_backward = v_1; + } + } + + function r_other_endings() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p2) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p2; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 14); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + if (among_var == 1) { + v_2 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(2, "po")) + return; + sbp.cursor = sbp.limit - v_2; + } + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_i_plural() { + var v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_8, 2)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + + function r_t_plural() { + var among_var, v_1, v_2, v_3, v_4, v_5; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "t")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_V1, 97, 246)) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + sbp.limit_backward = v_1; + v_3 = sbp.limit - sbp.cursor; + if (sbp.cursor >= I_p2) { + sbp.cursor = I_p2; + v_4 = sbp.limit_backward; + sbp.limit_backward = sbp.cursor; + sbp.cursor = sbp.limit - v_3; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 2); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_4; + if (among_var == 1) { + v_5 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(2, "po")) + return; + sbp.cursor = sbp.limit - v_5; + } + sbp.slice_del(); + return; + } + } + } + } + sbp.limit_backward = v_1; + } + } + + function r_tidy() { + var v_1, v_2, v_3, v_4; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + v_2 = sbp.limit - sbp.cursor; + if (r_LONG()) { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.in_grouping_b(g_AEI, 97, 228)) { + sbp.bra = sbp.cursor; + if (sbp.out_grouping_b(g_V1, 97, 246)) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "j")) { + sbp.bra = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "o")) { + sbp.cursor = sbp.limit - v_3; + if (sbp.eq_s_b(1, "u")) + sbp.slice_del(); + } else + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "o")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(1, "j")) + sbp.slice_del(); + } + sbp.cursor = sbp.limit - v_2; + sbp.limit_backward = v_1; + while (true) { + v_4 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_V1, 97, 246)) { + sbp.cursor = sbp.limit - v_4; + break; + } + sbp.cursor = sbp.limit - v_4; + if (sbp.cursor <= sbp.limit_backward) + return; + sbp.cursor--; + } + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + S_x = sbp.slice_to(); + if (sbp.eq_v_b(S_x)) + sbp.slice_del(); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + B_ending_removed = false; + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_particle_etc(); + sbp.cursor = sbp.limit; + r_possessive(); + sbp.cursor = sbp.limit; + r_case_ending(); + sbp.cursor = sbp.limit; + r_other_endings(); + sbp.cursor = sbp.limit; + if (B_ending_removed) { + r_i_plural(); + sbp.cursor = sbp.limit; + } else { + sbp.cursor = sbp.limit; + r_t_plural(); + sbp.cursor = sbp.limit; + } + r_tidy(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.fi.stemmer, 'stemmer-fi'); + + /* stop word filter function */ + lunr.fi.stopWordFilter = function(token) { + if (lunr.fi.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.fi.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.fi.stopWordFilter.stopWords.length = 236; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.fi.stopWordFilter.stopWords.elements = ' ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli'.split(' '); + + lunr.Pipeline.registerFunction(lunr.fi.stopWordFilter, 'stopWordFilter-fi'); + }; +})) \ No newline at end of file diff --git a/js/lunr.fi.min.js b/js/lunr.fi.min.js new file mode 100644 index 0000000..4d8f82e --- /dev/null +++ b/js/lunr.fi.min.js @@ -0,0 +1 @@ +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,W,r;e.fi=function(){this.pipeline.reset(),this.pipeline.add(e.fi.trimmer,e.fi.stopWordFilter,e.fi.stemmer)},e.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fi.trimmer=e.trimmerSupport.generateTrimmer(e.fi.wordCharacters),e.Pipeline.registerFunction(e.fi.trimmer,"trimmer-fi"),e.fi.stemmer=(v=e.stemmerSupport.Among,W=e.stemmerSupport.SnowballProgram,r=new function(){var n,t,s,o,r=[new v("pa",-1,1),new v("sti",-1,2),new v("kaan",-1,1),new v("han",-1,1),new v("kin",-1,1),new v("hän",-1,1),new v("kään",-1,1),new v("ko",-1,1),new v("pä",-1,1),new v("kö",-1,1)],l=[new v("lla",-1,-1),new v("na",-1,-1),new v("ssa",-1,-1),new v("ta",-1,-1),new v("lta",3,-1),new v("sta",3,-1)],a=[new v("llä",-1,-1),new v("nä",-1,-1),new v("ssä",-1,-1),new v("tä",-1,-1),new v("ltä",3,-1),new v("stä",3,-1)],u=[new v("lle",-1,-1),new v("ine",-1,-1)],c=[new v("nsa",-1,3),new v("mme",-1,3),new v("nne",-1,3),new v("ni",-1,2),new v("si",-1,1),new v("an",-1,4),new v("en",-1,6),new v("än",-1,5),new v("nsä",-1,3)],i=[new v("aa",-1,-1),new v("ee",-1,-1),new v("ii",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1),new v("ää",-1,-1),new v("öö",-1,-1)],m=[new v("a",-1,8),new v("lla",0,-1),new v("na",0,-1),new v("ssa",0,-1),new v("ta",0,-1),new v("lta",4,-1),new v("sta",4,-1),new v("tta",4,9),new v("lle",-1,-1),new v("ine",-1,-1),new v("ksi",-1,-1),new v("n",-1,7),new v("han",11,1),new v("den",11,-1,q),new v("seen",11,-1,j),new v("hen",11,2),new v("tten",11,-1,q),new v("hin",11,3),new v("siin",11,-1,q),new v("hon",11,4),new v("hän",11,5),new v("hön",11,6),new v("ä",-1,8),new v("llä",22,-1),new v("nä",22,-1),new v("ssä",22,-1),new v("tä",22,-1),new v("ltä",26,-1),new v("stä",26,-1),new v("ttä",26,9)],w=[new v("eja",-1,-1),new v("mma",-1,1),new v("imma",1,-1),new v("mpa",-1,1),new v("impa",3,-1),new v("mmi",-1,1),new v("immi",5,-1),new v("mpi",-1,1),new v("impi",7,-1),new v("ejä",-1,-1),new v("mmä",-1,1),new v("immä",10,-1),new v("mpä",-1,1),new v("impä",12,-1)],_=[new v("i",-1,-1),new v("j",-1,-1)],k=[new v("mma",-1,1),new v("imma",0,-1)],b=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],f=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],p=new W;function h(){for(var i;i=p.cursor,!p.in_grouping(d,97,246);){if((p.cursor=i)>=p.limit)return 1;p.cursor++}for(p.cursor=i;!p.out_grouping(d,97,246);){if(p.cursor>=p.limit)return 1;p.cursor++}}function g(){var i,e;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,i=p.find_among_b(r,10)){switch(p.bra=p.cursor,p.limit_backward=e,i){case 1:if(p.in_grouping_b(f,97,246))break;return;case 2:if(s<=p.cursor)break;return}p.slice_del()}else p.limit_backward=e}function j(){return p.find_among_b(i,7)}function q(){return p.eq_s_b(1,"i")&&p.in_grouping_b(e,97,246)}this.setCurrent=function(i){p.setCurrent(i)},this.getCurrent=function(){return p.getCurrent()},this.stem=function(){var i,e,r=p.cursor;if(o=p.limit,s=o,h()||(o=p.cursor,h())||(s=p.cursor),n=!1,p.limit_backward=r,p.cursor=p.limit,g(),p.cursor=p.limit,p.cursor>=o)if(r=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,e=p.find_among_b(c,9))switch(p.bra=p.cursor,p.limit_backward=r,e){case 1:i=p.limit-p.cursor,p.eq_s_b(1,"k")||(p.cursor=p.limit-i,p.slice_del());break;case 2:p.slice_del(),p.ket=p.cursor,p.eq_s_b(3,"kse")&&(p.bra=p.cursor,p.slice_from("ksi"));break;case 3:p.slice_del();break;case 4:p.find_among_b(l,6)&&p.slice_del();break;case 5:p.find_among_b(a,6)&&p.slice_del();break;case 6:p.find_among_b(u,2)&&p.slice_del()}else p.limit_backward=r;return p.cursor=p.limit,function(){var i,e,r;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,i=p.find_among_b(m,30)){switch(p.bra=p.cursor,p.limit_backward=e,i){case 1:if(p.eq_s_b(1,"a"))break;return;case 2:case 9:if(p.eq_s_b(1,"e"))break;return;case 3:if(p.eq_s_b(1,"i"))break;return;case 4:if(p.eq_s_b(1,"o"))break;return;case 5:if(p.eq_s_b(1,"ä"))break;return;case 6:if(p.eq_s_b(1,"ö"))break;return;case 7:r=p.limit-p.cursor,j()||(p.cursor=p.limit-r,p.eq_s_b(2,"ie"))?(p.cursor=p.limit-r,p.cursor<=p.limit_backward?p.cursor=p.limit-r:(p.cursor--,p.bra=p.cursor)):p.cursor=p.limit-r;break;case 8:if(p.in_grouping_b(d,97,246)&&p.out_grouping_b(d,97,246))break;return}p.slice_del(),n=!0}else p.limit_backward=e}(),p.cursor=p.limit,function(){var i,e;if(p.cursor>=s)if(i=p.limit_backward,p.limit_backward=s,p.ket=p.cursor,e=p.find_among_b(w,14)){if(p.bra=p.cursor,p.limit_backward=i,1==e){if(e=p.limit-p.cursor,p.eq_s_b(2,"po"))return;p.cursor=p.limit-e}p.slice_del()}else p.limit_backward=i}(),p.cursor=p.limit,n?p.cursor>=o&&(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,p.find_among_b(_,2)?(p.bra=p.cursor,p.limit_backward=e,p.slice_del()):p.limit_backward=e):(p.cursor=p.limit,function(){var i,e,r,n;if(p.cursor>=o)if(e=p.limit_backward,p.limit_backward=o,p.ket=p.cursor,p.eq_s_b(1,"t")&&(p.bra=p.cursor,n=p.limit-p.cursor,p.in_grouping_b(d,97,246))&&(p.cursor=p.limit-n,p.slice_del(),p.limit_backward=e,n=p.limit-p.cursor,p.cursor>=s)&&(p.cursor=s,r=p.limit_backward,p.limit_backward=p.cursor,p.cursor=p.limit-n,p.ket=p.cursor,i=p.find_among_b(k,2))){if(p.bra=p.cursor,p.limit_backward=r,1==i){if(n=p.limit-p.cursor,p.eq_s_b(2,"po"))return;p.cursor=p.limit-n}p.slice_del()}else p.limit_backward=e}()),p.cursor=p.limit,function(){var i,e,r,n;if(p.cursor>=o){for(i=p.limit_backward,p.limit_backward=o,e=p.limit-p.cursor,j()&&(p.cursor=p.limit-e,p.ket=p.cursor,p.cursor>p.limit_backward)&&(p.cursor--,p.bra=p.cursor,p.slice_del()),p.cursor=p.limit-e,p.ket=p.cursor,p.in_grouping_b(b,97,228)&&(p.bra=p.cursor,p.out_grouping_b(d,97,246))&&p.slice_del(),p.cursor=p.limit-e,p.ket=p.cursor,p.eq_s_b(1,"j")&&(p.bra=p.cursor,r=p.limit-p.cursor,p.eq_s_b(1,"o")||(p.cursor=p.limit-r,p.eq_s_b(1,"u")))&&p.slice_del(),p.cursor=p.limit-e,p.ket=p.cursor,p.eq_s_b(1,"o")&&(p.bra=p.cursor,p.eq_s_b(1,"j"))&&p.slice_del(),p.cursor=p.limit-e,p.limit_backward=i;;){if(n=p.limit-p.cursor,p.out_grouping_b(d,97,246)){p.cursor=p.limit-n;break}if(p.cursor=p.limit-n,p.cursor<=p.limit_backward)return;p.cursor--}p.ket=p.cursor,p.cursor>p.limit_backward&&(p.cursor--,p.bra=p.cursor,t=p.slice_to(),p.eq_v_b(t))&&p.slice_del()}}(),!0}},function(i){return r.setCurrent(i),r.stem(),r.getCurrent()}),e.Pipeline.registerFunction(e.fi.stemmer,"stemmer-fi"),e.fi.stopWordFilter=function(i){if(-1===e.fi.stopWordFilter.stopWords.indexOf(i))return i},e.fi.stopWordFilter.stopWords=new e.SortedSet,e.fi.stopWordFilter.stopWords.length=236,e.fi.stopWordFilter.stopWords.elements=" ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" "),e.Pipeline.registerFunction(e.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/js/lunr.fr.js b/js/lunr.fr.js new file mode 100644 index 0000000..07978b2 --- /dev/null +++ b/js/lunr.fr.js @@ -0,0 +1,698 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.fr = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.fr.trimmer, + lunr.fr.stopWordFilter, + lunr.fr.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.fr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.fr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fr.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.fr.trimmer, 'trimmer-fr'); + + /* lunr stemmer function */ + lunr.fr.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function FrenchStemmer() { + var a_0 = [new Among("col", -1, -1), new Among("par", -1, -1), + new Among("tap", -1, -1) + ], + a_1 = [new Among("", -1, 4), + new Among("I", 0, 1), new Among("U", 0, 2), new Among("Y", 0, 3) + ], + a_2 = [ + new Among("iqU", -1, 3), new Among("abl", -1, 3), + new Among("I\u00E8r", -1, 4), new Among("i\u00E8r", -1, 4), + new Among("eus", -1, 2), new Among("iv", -1, 1) + ], + a_3 = [ + new Among("ic", -1, 2), new Among("abil", -1, 1), + new Among("iv", -1, 3) + ], + a_4 = [new Among("iqUe", -1, 1), + new Among("atrice", -1, 2), new Among("ance", -1, 1), + new Among("ence", -1, 5), new Among("logie", -1, 3), + new Among("able", -1, 1), new Among("isme", -1, 1), + new Among("euse", -1, 11), new Among("iste", -1, 1), + new Among("ive", -1, 8), new Among("if", -1, 8), + new Among("usion", -1, 4), new Among("ation", -1, 2), + new Among("ution", -1, 4), new Among("ateur", -1, 2), + new Among("iqUes", -1, 1), new Among("atrices", -1, 2), + new Among("ances", -1, 1), new Among("ences", -1, 5), + new Among("logies", -1, 3), new Among("ables", -1, 1), + new Among("ismes", -1, 1), new Among("euses", -1, 11), + new Among("istes", -1, 1), new Among("ives", -1, 8), + new Among("ifs", -1, 8), new Among("usions", -1, 4), + new Among("ations", -1, 2), new Among("utions", -1, 4), + new Among("ateurs", -1, 2), new Among("ments", -1, 15), + new Among("ements", 30, 6), new Among("issements", 31, 12), + new Among("it\u00E9s", -1, 7), new Among("ment", -1, 15), + new Among("ement", 34, 6), new Among("issement", 35, 12), + new Among("amment", 34, 13), new Among("emment", 34, 14), + new Among("aux", -1, 10), new Among("eaux", 39, 9), + new Among("eux", -1, 1), new Among("it\u00E9", -1, 7) + ], + a_5 = [ + new Among("ira", -1, 1), new Among("ie", -1, 1), + new Among("isse", -1, 1), new Among("issante", -1, 1), + new Among("i", -1, 1), new Among("irai", 4, 1), + new Among("ir", -1, 1), new Among("iras", -1, 1), + new Among("ies", -1, 1), new Among("\u00EEmes", -1, 1), + new Among("isses", -1, 1), new Among("issantes", -1, 1), + new Among("\u00EEtes", -1, 1), new Among("is", -1, 1), + new Among("irais", 13, 1), new Among("issais", 13, 1), + new Among("irions", -1, 1), new Among("issions", -1, 1), + new Among("irons", -1, 1), new Among("issons", -1, 1), + new Among("issants", -1, 1), new Among("it", -1, 1), + new Among("irait", 21, 1), new Among("issait", 21, 1), + new Among("issant", -1, 1), new Among("iraIent", -1, 1), + new Among("issaIent", -1, 1), new Among("irent", -1, 1), + new Among("issent", -1, 1), new Among("iront", -1, 1), + new Among("\u00EEt", -1, 1), new Among("iriez", -1, 1), + new Among("issiez", -1, 1), new Among("irez", -1, 1), + new Among("issez", -1, 1) + ], + a_6 = [new Among("a", -1, 3), + new Among("era", 0, 2), new Among("asse", -1, 3), + new Among("ante", -1, 3), new Among("\u00E9e", -1, 2), + new Among("ai", -1, 3), new Among("erai", 5, 2), + new Among("er", -1, 2), new Among("as", -1, 3), + new Among("eras", 8, 2), new Among("\u00E2mes", -1, 3), + new Among("asses", -1, 3), new Among("antes", -1, 3), + new Among("\u00E2tes", -1, 3), new Among("\u00E9es", -1, 2), + new Among("ais", -1, 3), new Among("erais", 15, 2), + new Among("ions", -1, 1), new Among("erions", 17, 2), + new Among("assions", 17, 3), new Among("erons", -1, 2), + new Among("ants", -1, 3), new Among("\u00E9s", -1, 2), + new Among("ait", -1, 3), new Among("erait", 23, 2), + new Among("ant", -1, 3), new Among("aIent", -1, 3), + new Among("eraIent", 26, 2), new Among("\u00E8rent", -1, 2), + new Among("assent", -1, 3), new Among("eront", -1, 2), + new Among("\u00E2t", -1, 3), new Among("ez", -1, 2), + new Among("iez", 32, 2), new Among("eriez", 33, 2), + new Among("assiez", 33, 3), new Among("erez", 32, 2), + new Among("\u00E9", -1, 2) + ], + a_7 = [new Among("e", -1, 3), + new Among("I\u00E8re", 0, 2), new Among("i\u00E8re", 0, 2), + new Among("ion", -1, 1), new Among("Ier", -1, 2), + new Among("ier", -1, 2), new Among("\u00EB", -1, 4) + ], + a_8 = [ + new Among("ell", -1, -1), new Among("eill", -1, -1), + new Among("enn", -1, -1), new Among("onn", -1, -1), + new Among("ett", -1, -1) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 + ], + g_keep_with_s = [1, 65, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 251)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function habr2(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + return false; + } + + function r_prelude() { + var v_1, v_2; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 251)) { + sbp.bra = sbp.cursor; + v_2 = sbp.cursor; + if (habr1("u", "U", v_1)) + continue; + sbp.cursor = v_2; + if (habr1("i", "I", v_1)) + continue; + sbp.cursor = v_2; + if (habr2("y", "Y", v_1)) + continue; + } + sbp.cursor = v_1; + sbp.bra = v_1; + if (!habr1("y", "Y", v_1)) { + sbp.cursor = v_1; + if (sbp.eq_s(1, "q")) { + sbp.bra = sbp.cursor; + if (habr2("u", "U", v_1)) + continue; + } + sbp.cursor = v_1; + if (v_1 >= sbp.limit) + return; + sbp.cursor++; + } + } + } + + function habr3() { + while (!sbp.in_grouping(g_v, 97, 251)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 251)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + if (sbp.in_grouping(g_v, 97, 251) && sbp.in_grouping(g_v, 97, 251) && sbp.cursor < sbp.limit) + sbp.cursor++; + else { + sbp.cursor = v_1; + if (!sbp.find_among(a_0, 3)) { + sbp.cursor = v_1; + do { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = I_pV; + break; + } + sbp.cursor++; + } while (!sbp.in_grouping(g_v, 97, 251)); + } + } + I_pV = sbp.cursor; + sbp.cursor = v_1; + if (!habr3()) { + I_p1 = sbp.cursor; + if (!habr3()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var, v_1; + while (true) { + v_1 = sbp.cursor; + sbp.bra = v_1; + among_var = sbp.find_among(a_1, 4); + if (!among_var) + break; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + break; + case 2: + sbp.slice_from("u"); + break; + case 3: + sbp.slice_from("y"); + break; + case 4: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 43); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (!r_R2()) + sbp.slice_from("iqU"); + else + sbp.slice_del(); + } + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ent"); + break; + case 6: + if (!r_RV()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 6); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + break; + case 2: + if (r_R2()) + sbp.slice_del(); + else if (r_R1()) + sbp.slice_from("eux"); + break; + case 3: + if (r_R2()) + sbp.slice_del(); + break; + case 4: + if (r_RV()) + sbp.slice_from("i"); + break; + } + } + break; + case 7: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 3); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("abl"); + break; + case 2: + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("iqU"); + break; + case 3: + if (r_R2()) + sbp.slice_del(); + break; + } + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + else + sbp.slice_from("iqU"); + break; + } + } + } + break; + case 9: + sbp.slice_from("eau"); + break; + case 10: + if (!r_R1()) + return false; + sbp.slice_from("al"); + break; + case 11: + if (r_R2()) + sbp.slice_del(); + else if (!r_R1()) + return false; + else + sbp.slice_from("eux"); + break; + case 12: + if (!r_R1() || !sbp.out_grouping_b(g_v, 97, 251)) + return false; + sbp.slice_del(); + break; + case 13: + if (r_RV()) + sbp.slice_from("ant"); + return false; + case 14: + if (r_RV()) + sbp.slice_from("ent"); + return false; + case 15: + v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_v, 97, 251) && r_RV()) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_del(); + } + return false; + } + return true; + } + return false; + } + + function r_i_verb_suffix() { + var among_var, v_1; + if (sbp.cursor < I_pV) + return false; + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 35); + if (!among_var) { + sbp.limit_backward = v_1; + return false; + } + sbp.bra = sbp.cursor; + if (among_var == 1) { + if (!sbp.out_grouping_b(g_v, 97, 251)) { + sbp.limit_backward = v_1; + return false; + } + sbp.slice_del(); + } + sbp.limit_backward = v_1; + return true; + } + + function r_verb_suffix() { + var among_var, v_2, v_3; + if (sbp.cursor < I_pV) + return false; + v_2 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 38); + if (!among_var) { + sbp.limit_backward = v_2; + return false; + } + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) { + sbp.limit_backward = v_2; + return false; + } + sbp.slice_del(); + break; + case 2: + sbp.slice_del(); + break; + case 3: + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "e")) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit - v_3; + break; + } + sbp.limit_backward = v_2; + return true; + } + + function r_residual_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor, + v_2, v_4, v_5; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "s")) { + sbp.bra = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (sbp.out_grouping_b(g_keep_with_s, 97, 232)) { + sbp.cursor = sbp.limit - v_2; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit - v_1; + } else + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor >= I_pV) { + v_4 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 7); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_R2()) { + v_5 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "s")) { + sbp.cursor = sbp.limit - v_5; + if (!sbp.eq_s_b(1, "t")) + break; + } + sbp.slice_del(); + } + break; + case 2: + sbp.slice_from("i"); + break; + case 3: + sbp.slice_del(); + break; + case 4: + if (sbp.eq_s_b(2, "gu")) + sbp.slice_del(); + break; + } + } + sbp.limit_backward = v_4; + } + } + + function r_un_double() { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.find_among_b(a_8, 5)) { + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } + } + + function r_un_accent() { + var v_1, v_2 = 1; + while (sbp.out_grouping_b(g_v, 97, 251)) + v_2--; + if (v_2 <= 0) { + sbp.ket = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "\u00E9")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "\u00E8")) + return; + } + sbp.bra = sbp.cursor; + sbp.slice_from("e"); + } + } + + function habr5() { + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_i_verb_suffix()) { + sbp.cursor = sbp.limit; + if (!r_verb_suffix()) { + sbp.cursor = sbp.limit; + r_residual_suffix(); + return; + } + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "Y")) { + sbp.bra = sbp.cursor; + sbp.slice_from("i"); + } else { + sbp.cursor = sbp.limit; + if (sbp.eq_s_b(1, "\u00E7")) { + sbp.bra = sbp.cursor; + sbp.slice_from("c"); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + habr5(); + sbp.cursor = sbp.limit; + r_un_double(); + sbp.cursor = sbp.limit; + r_un_accent(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.fr.stemmer, 'stemmer-fr'); + + /* stop word filter function */ + lunr.fr.stopWordFilter = function(token) { + if (lunr.fr.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.fr.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.fr.stopWordFilter.stopWords.length = 164; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.fr.stopWordFilter.stopWords.elements = ' ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes'.split(' '); + + lunr.Pipeline.registerFunction(lunr.fr.stopWordFilter, 'stopWordFilter-fr'); + }; +})) \ No newline at end of file diff --git a/js/lunr.fr.min.js b/js/lunr.fr.min.js new file mode 100644 index 0000000..2f29909 --- /dev/null +++ b/js/lunr.fr.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,s,i;r.fr=function(){this.pipeline.reset(),this.pipeline.add(r.fr.trimmer,r.fr.stopWordFilter,r.fr.stemmer)},r.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.fr.trimmer=r.trimmerSupport.generateTrimmer(r.fr.wordCharacters),r.Pipeline.registerFunction(r.fr.trimmer,"trimmer-fr"),r.fr.stemmer=(e=r.stemmerSupport.Among,s=r.stemmerSupport.SnowballProgram,i=new function(){var i,n,t,o=[new e("col",-1,-1),new e("par",-1,-1),new e("tap",-1,-1)],u=[new e("",-1,4),new e("I",0,1),new e("U",0,2),new e("Y",0,3)],c=[new e("iqU",-1,3),new e("abl",-1,3),new e("Ièr",-1,4),new e("ièr",-1,4),new e("eus",-1,2),new e("iv",-1,1)],a=[new e("ic",-1,2),new e("abil",-1,1),new e("iv",-1,3)],l=[new e("iqUe",-1,1),new e("atrice",-1,2),new e("ance",-1,1),new e("ence",-1,5),new e("logie",-1,3),new e("able",-1,1),new e("isme",-1,1),new e("euse",-1,11),new e("iste",-1,1),new e("ive",-1,8),new e("if",-1,8),new e("usion",-1,4),new e("ation",-1,2),new e("ution",-1,4),new e("ateur",-1,2),new e("iqUes",-1,1),new e("atrices",-1,2),new e("ances",-1,1),new e("ences",-1,5),new e("logies",-1,3),new e("ables",-1,1),new e("ismes",-1,1),new e("euses",-1,11),new e("istes",-1,1),new e("ives",-1,8),new e("ifs",-1,8),new e("usions",-1,4),new e("ations",-1,2),new e("utions",-1,4),new e("ateurs",-1,2),new e("ments",-1,15),new e("ements",30,6),new e("issements",31,12),new e("ités",-1,7),new e("ment",-1,15),new e("ement",34,6),new e("issement",35,12),new e("amment",34,13),new e("emment",34,14),new e("aux",-1,10),new e("eaux",39,9),new e("eux",-1,1),new e("ité",-1,7)],w=[new e("ira",-1,1),new e("ie",-1,1),new e("isse",-1,1),new e("issante",-1,1),new e("i",-1,1),new e("irai",4,1),new e("ir",-1,1),new e("iras",-1,1),new e("ies",-1,1),new e("îmes",-1,1),new e("isses",-1,1),new e("issantes",-1,1),new e("îtes",-1,1),new e("is",-1,1),new e("irais",13,1),new e("issais",13,1),new e("irions",-1,1),new e("issions",-1,1),new e("irons",-1,1),new e("issons",-1,1),new e("issants",-1,1),new e("it",-1,1),new e("irait",21,1),new e("issait",21,1),new e("issant",-1,1),new e("iraIent",-1,1),new e("issaIent",-1,1),new e("irent",-1,1),new e("issent",-1,1),new e("iront",-1,1),new e("ît",-1,1),new e("iriez",-1,1),new e("issiez",-1,1),new e("irez",-1,1),new e("issez",-1,1)],f=[new e("a",-1,3),new e("era",0,2),new e("asse",-1,3),new e("ante",-1,3),new e("ée",-1,2),new e("ai",-1,3),new e("erai",5,2),new e("er",-1,2),new e("as",-1,3),new e("eras",8,2),new e("âmes",-1,3),new e("asses",-1,3),new e("antes",-1,3),new e("âtes",-1,3),new e("ées",-1,2),new e("ais",-1,3),new e("erais",15,2),new e("ions",-1,1),new e("erions",17,2),new e("assions",17,3),new e("erons",-1,2),new e("ants",-1,3),new e("és",-1,2),new e("ait",-1,3),new e("erait",23,2),new e("ant",-1,3),new e("aIent",-1,3),new e("eraIent",26,2),new e("èrent",-1,2),new e("assent",-1,3),new e("eront",-1,2),new e("ât",-1,3),new e("ez",-1,2),new e("iez",32,2),new e("eriez",33,2),new e("assiez",33,3),new e("erez",32,2),new e("é",-1,2)],m=[new e("e",-1,3),new e("Ière",0,2),new e("ière",0,2),new e("ion",-1,1),new e("Ier",-1,2),new e("ier",-1,2),new e("ë",-1,4)],_=[new e("ell",-1,-1),new e("eill",-1,-1),new e("enn",-1,-1),new e("onn",-1,-1),new e("ett",-1,-1)],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],d=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],k=new s;function p(e,r,s){return k.eq_s(1,e)&&(k.ket=k.cursor,k.in_grouping(b,97,251))&&(k.slice_from(r),k.cursor=s,1)}function g(e,r,s){return k.eq_s(1,e)&&(k.ket=k.cursor,k.slice_from(r),k.cursor=s,1)}function q(){for(;!k.in_grouping(b,97,251);){if(k.cursor>=k.limit)return 1;k.cursor++}for(;!k.out_grouping(b,97,251);){if(k.cursor>=k.limit)return 1;k.cursor++}}function v(){return t<=k.cursor}function z(){return n<=k.cursor}function h(){return i<=k.cursor}function W(){if(function(){var e,r;if(k.ket=k.cursor,e=k.find_among_b(l,43)){switch(k.bra=k.cursor,e){case 1:if(!h())return;k.slice_del();break;case 2:if(!h())return;k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"ic")&&(k.bra=k.cursor,h()?k.slice_del():k.slice_from("iqU"));break;case 3:if(!h())return;k.slice_from("log");break;case 4:if(!h())return;k.slice_from("u");break;case 5:if(!h())return;k.slice_from("ent");break;case 6:if(!v())return;if(k.slice_del(),k.ket=k.cursor,e=k.find_among_b(c,6))switch(k.bra=k.cursor,e){case 1:h()&&(k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"at"))&&(k.bra=k.cursor,h())&&k.slice_del();break;case 2:h()?k.slice_del():z()&&k.slice_from("eux");break;case 3:h()&&k.slice_del();break;case 4:v()&&k.slice_from("i")}break;case 7:if(!h())return;if(k.slice_del(),k.ket=k.cursor,e=k.find_among_b(a,3))switch(k.bra=k.cursor,e){case 1:h()?k.slice_del():k.slice_from("abl");break;case 2:h()?k.slice_del():k.slice_from("iqU");break;case 3:h()&&k.slice_del()}break;case 8:if(!h())return;k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"at")&&(k.bra=k.cursor,h())&&(k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"ic"))&&(k.bra=k.cursor,h()?k.slice_del():k.slice_from("iqU"));break;case 9:k.slice_from("eau");break;case 10:if(!z())return;k.slice_from("al");break;case 11:if(h())k.slice_del();else{if(!z())return;k.slice_from("eux")}break;case 12:if(!z()||!k.out_grouping_b(b,97,251))return;k.slice_del();break;case 13:return v()&&k.slice_from("ant"),0;case 14:return v()&&k.slice_from("ent"),0;case 15:return r=k.limit-k.cursor,k.in_grouping_b(b,97,251)&&v()&&(k.cursor=k.limit-r,k.slice_del()),0}return 1}}()||(k.cursor=k.limit,function(){var e,r;if(!(k.cursor=t){if(e=k.limit_backward,k.limit_backward=t,k.ket=k.cursor,s=k.find_among_b(m,7))switch(k.bra=k.cursor,s){case 1:if(h()){if(r=k.limit-k.cursor,!k.eq_s_b(1,"s")&&(k.cursor=k.limit-r,!k.eq_s_b(1,"t")))break;k.slice_del()}break;case 2:k.slice_from("i");break;case 3:k.slice_del();break;case 4:k.eq_s_b(2,"gu")&&k.slice_del()}k.limit_backward=e}}}this.setCurrent=function(e){k.setCurrent(e)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){var e=k.cursor,r=(!function(){for(var e,r;;){if(e=k.cursor,k.in_grouping(b,97,251)){if(k.bra=k.cursor,r=k.cursor,p("u","U",e))continue;if(k.cursor=r,p("i","I",e))continue;if(k.cursor=r,g("y","Y",e))continue}if(k.cursor=e,k.bra=e,!p("y","Y",e)&&(k.cursor=e,!k.eq_s(1,"q")||(k.bra=k.cursor,!g("u","U",e)))){if((k.cursor=e)>=k.limit)return;k.cursor++}}}(),k.cursor=e,k.cursor);if(t=k.limit,i=n=t,k.in_grouping(b,97,251)&&k.in_grouping(b,97,251)&&k.cursor=k.limit){k.cursor=t;break}}while(k.cursor++,!k.in_grouping(b,97,251))}t=k.cursor,k.cursor=r,q()||(n=k.cursor,q())||(i=k.cursor),k.limit_backward=e,k.cursor=k.limit,W(),k.cursor=k.limit,r=k.limit-k.cursor,k.find_among_b(_,5)&&(k.cursor=k.limit-r,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del()),k.cursor=k.limit;for(var s=1;k.out_grouping_b(b,97,251);)s--;return s<=0&&(k.ket=k.cursor,e=k.limit-k.cursor,k.eq_s_b(1,"é")||(k.cursor=k.limit-e,k.eq_s_b(1,"è")))&&(k.bra=k.cursor,k.slice_from("e")),k.cursor=k.limit_backward,function(){for(var e;e=k.cursor,k.bra=e,e=k.find_among(u,4);)switch(k.ket=k.cursor,e){case 1:k.slice_from("i");break;case 2:k.slice_from("u");break;case 3:k.slice_from("y");break;case 4:if(k.cursor>=k.limit)return;k.cursor++}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.fr.stemmer,"stemmer-fr"),r.fr.stopWordFilter=function(e){if(-1===r.fr.stopWordFilter.stopWords.indexOf(e))return e},r.fr.stopWordFilter.stopWords=new r.SortedSet,r.fr.stopWordFilter.stopWords.length=164,r.fr.stopWordFilter.stopWords.elements=" ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" "),r.Pipeline.registerFunction(r.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/js/lunr.hu.js b/js/lunr.hu.js new file mode 100644 index 0000000..de7dc97 --- /dev/null +++ b/js/lunr.hu.js @@ -0,0 +1,561 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.hu = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.hu.trimmer, + lunr.hu.stopWordFilter, + lunr.hu.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.hu.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.hu.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.hu.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.hu.trimmer, 'trimmer-hu'); + + /* lunr stemmer function */ + lunr.hu.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function HungarianStemmer() { + var a_0 = [new Among("cs", -1, -1), new Among("dzs", -1, -1), + new Among("gy", -1, -1), new Among("ly", -1, -1), + new Among("ny", -1, -1), new Among("sz", -1, -1), + new Among("ty", -1, -1), new Among("zs", -1, -1) + ], + a_1 = [ + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) + ], + a_2 = [ + new Among("bb", -1, -1), new Among("cc", -1, -1), + new Among("dd", -1, -1), new Among("ff", -1, -1), + new Among("gg", -1, -1), new Among("jj", -1, -1), + new Among("kk", -1, -1), new Among("ll", -1, -1), + new Among("mm", -1, -1), new Among("nn", -1, -1), + new Among("pp", -1, -1), new Among("rr", -1, -1), + new Among("ccs", -1, -1), new Among("ss", -1, -1), + new Among("zzs", -1, -1), new Among("tt", -1, -1), + new Among("vv", -1, -1), new Among("ggy", -1, -1), + new Among("lly", -1, -1), new Among("nny", -1, -1), + new Among("tty", -1, -1), new Among("ssz", -1, -1), + new Among("zz", -1, -1) + ], + a_3 = [new Among("al", -1, 1), + new Among("el", -1, 2) + ], + a_4 = [new Among("ba", -1, -1), + new Among("ra", -1, -1), new Among("be", -1, -1), + new Among("re", -1, -1), new Among("ig", -1, -1), + new Among("nak", -1, -1), new Among("nek", -1, -1), + new Among("val", -1, -1), new Among("vel", -1, -1), + new Among("ul", -1, -1), new Among("n\u00E1l", -1, -1), + new Among("n\u00E9l", -1, -1), new Among("b\u00F3l", -1, -1), + new Among("r\u00F3l", -1, -1), new Among("t\u00F3l", -1, -1), + new Among("b\u00F5l", -1, -1), new Among("r\u00F5l", -1, -1), + new Among("t\u00F5l", -1, -1), new Among("\u00FCl", -1, -1), + new Among("n", -1, -1), new Among("an", 19, -1), + new Among("ban", 20, -1), new Among("en", 19, -1), + new Among("ben", 22, -1), new Among("k\u00E9ppen", 22, -1), + new Among("on", 19, -1), new Among("\u00F6n", 19, -1), + new Among("k\u00E9pp", -1, -1), new Among("kor", -1, -1), + new Among("t", -1, -1), new Among("at", 29, -1), + new Among("et", 29, -1), new Among("k\u00E9nt", 29, -1), + new Among("ank\u00E9nt", 32, -1), new Among("enk\u00E9nt", 32, -1), + new Among("onk\u00E9nt", 32, -1), new Among("ot", 29, -1), + new Among("\u00E9rt", 29, -1), new Among("\u00F6t", 29, -1), + new Among("hez", -1, -1), new Among("hoz", -1, -1), + new Among("h\u00F6z", -1, -1), new Among("v\u00E1", -1, -1), + new Among("v\u00E9", -1, -1) + ], + a_5 = [new Among("\u00E1n", -1, 2), + new Among("\u00E9n", -1, 1), new Among("\u00E1nk\u00E9nt", -1, 3) + ], + a_6 = [ + new Among("stul", -1, 2), new Among("astul", 0, 1), + new Among("\u00E1stul", 0, 3), new Among("st\u00FCl", -1, 2), + new Among("est\u00FCl", 3, 1), new Among("\u00E9st\u00FCl", 3, 4) + ], + a_7 = [ + new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) + ], + a_8 = [ + new Among("k", -1, 7), new Among("ak", 0, 4), + new Among("ek", 0, 6), new Among("ok", 0, 5), + new Among("\u00E1k", 0, 1), new Among("\u00E9k", 0, 2), + new Among("\u00F6k", 0, 3) + ], + a_9 = [new Among("\u00E9i", -1, 7), + new Among("\u00E1\u00E9i", 0, 6), new Among("\u00E9\u00E9i", 0, 5), + new Among("\u00E9", -1, 9), new Among("k\u00E9", 3, 4), + new Among("ak\u00E9", 4, 1), new Among("ek\u00E9", 4, 1), + new Among("ok\u00E9", 4, 1), new Among("\u00E1k\u00E9", 4, 3), + new Among("\u00E9k\u00E9", 4, 2), new Among("\u00F6k\u00E9", 4, 1), + new Among("\u00E9\u00E9", 3, 8) + ], + a_10 = [new Among("a", -1, 18), + new Among("ja", 0, 17), new Among("d", -1, 16), + new Among("ad", 2, 13), new Among("ed", 2, 13), + new Among("od", 2, 13), new Among("\u00E1d", 2, 14), + new Among("\u00E9d", 2, 15), new Among("\u00F6d", 2, 13), + new Among("e", -1, 18), new Among("je", 9, 17), + new Among("nk", -1, 4), new Among("unk", 11, 1), + new Among("\u00E1nk", 11, 2), new Among("\u00E9nk", 11, 3), + new Among("\u00FCnk", 11, 1), new Among("uk", -1, 8), + new Among("juk", 16, 7), new Among("\u00E1juk", 17, 5), + new Among("\u00FCk", -1, 8), new Among("j\u00FCk", 19, 7), + new Among("\u00E9j\u00FCk", 20, 6), new Among("m", -1, 12), + new Among("am", 22, 9), new Among("em", 22, 9), + new Among("om", 22, 9), new Among("\u00E1m", 22, 10), + new Among("\u00E9m", 22, 11), new Among("o", -1, 18), + new Among("\u00E1", -1, 19), new Among("\u00E9", -1, 20) + ], + a_11 = [ + new Among("id", -1, 10), new Among("aid", 0, 9), + new Among("jaid", 1, 6), new Among("eid", 0, 9), + new Among("jeid", 3, 6), new Among("\u00E1id", 0, 7), + new Among("\u00E9id", 0, 8), new Among("i", -1, 15), + new Among("ai", 7, 14), new Among("jai", 8, 11), + new Among("ei", 7, 14), new Among("jei", 10, 11), + new Among("\u00E1i", 7, 12), new Among("\u00E9i", 7, 13), + new Among("itek", -1, 24), new Among("eitek", 14, 21), + new Among("jeitek", 15, 20), new Among("\u00E9itek", 14, 23), + new Among("ik", -1, 29), new Among("aik", 18, 26), + new Among("jaik", 19, 25), new Among("eik", 18, 26), + new Among("jeik", 21, 25), new Among("\u00E1ik", 18, 27), + new Among("\u00E9ik", 18, 28), new Among("ink", -1, 20), + new Among("aink", 25, 17), new Among("jaink", 26, 16), + new Among("eink", 25, 17), new Among("jeink", 28, 16), + new Among("\u00E1ink", 25, 18), new Among("\u00E9ink", 25, 19), + new Among("aitok", -1, 21), new Among("jaitok", 32, 20), + new Among("\u00E1itok", -1, 22), new Among("im", -1, 5), + new Among("aim", 35, 4), new Among("jaim", 36, 1), + new Among("eim", 35, 4), new Among("jeim", 38, 1), + new Among("\u00E1im", 35, 2), new Among("\u00E9im", 35, 3) + ], + g_v = [ + 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 + ], + I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1 = sbp.cursor, + v_2; + I_p1 = sbp.limit; + if (sbp.in_grouping(g_v, 97, 252)) { + while (true) { + v_2 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 252)) { + sbp.cursor = v_2; + if (!sbp.find_among(a_0, 8)) { + sbp.cursor = v_2; + if (v_2 < sbp.limit) + sbp.cursor++; + } + I_p1 = sbp.cursor; + return; + } + sbp.cursor = v_2; + if (v_2 >= sbp.limit) { + I_p1 = v_2; + return; + } + sbp.cursor++; + } + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 252)) { + while (!sbp.in_grouping(g_v, 97, 252)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + } + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_v_ending() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("a"); + break; + case 2: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_double() { + var v_1 = sbp.limit - sbp.cursor; + if (!sbp.find_among_b(a_2, 23)) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function r_undouble() { + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.ket = sbp.cursor; + var c = sbp.cursor - 1; + if (sbp.limit_backward <= c && c <= sbp.limit) { + sbp.cursor = c; + sbp.bra = c; + sbp.slice_del(); + } + } + } + + function r_instrum() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + if (among_var == 1 || among_var == 2) + if (!r_double()) + return; + sbp.slice_del(); + r_undouble(); + } + } + } + + function r_case() { + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_4, 44)) { + sbp.bra = sbp.cursor; + if (r_R1()) { + sbp.slice_del(); + r_v_ending(); + } + } + } + + function r_case_special() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("e"); + break; + case 2: + case 3: + sbp.slice_from("a"); + break; + } + } + } + } + + function r_case_other() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 6); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 2: + sbp.slice_del(); + break; + case 3: + sbp.slice_from("a"); + break; + case 4: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_factive() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + if (among_var == 1 || among_var == 2) + if (!r_double()) + return; + sbp.slice_del(); + r_undouble() + } + } + } + + function r_plural() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("a"); + break; + case 2: + sbp.slice_from("e"); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + sbp.slice_del(); + break; + } + } + } + } + + function r_owned() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_9, 12); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 7: + case 9: + sbp.slice_del(); + break; + case 2: + case 5: + case 8: + sbp.slice_from("e"); + break; + case 3: + case 6: + sbp.slice_from("a"); + break; + } + } + } + } + + function r_sing_owner() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_10, 31); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 7: + case 8: + case 9: + case 12: + case 13: + case 16: + case 17: + case 18: + sbp.slice_del(); + break; + case 2: + case 5: + case 10: + case 14: + case 19: + sbp.slice_from("a"); + break; + case 3: + case 6: + case 11: + case 15: + case 20: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_plur_owner() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_11, 42); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + case 4: + case 5: + case 6: + case 9: + case 10: + case 11: + case 14: + case 15: + case 16: + case 17: + case 20: + case 21: + case 24: + case 25: + case 26: + case 29: + sbp.slice_del(); + break; + case 2: + case 7: + case 12: + case 18: + case 22: + case 27: + sbp.slice_from("a"); + break; + case 3: + case 8: + case 13: + case 19: + case 23: + case 28: + sbp.slice_from("e"); + break; + } + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_instrum(); + sbp.cursor = sbp.limit; + r_case(); + sbp.cursor = sbp.limit; + r_case_special(); + sbp.cursor = sbp.limit; + r_case_other(); + sbp.cursor = sbp.limit; + r_factive(); + sbp.cursor = sbp.limit; + r_owned(); + sbp.cursor = sbp.limit; + r_sing_owner(); + sbp.cursor = sbp.limit; + r_plur_owner(); + sbp.cursor = sbp.limit; + r_plural(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.hu.stemmer, 'stemmer-hu'); + + /* stop word filter function */ + lunr.hu.stopWordFilter = function(token) { + if (lunr.hu.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.hu.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.hu.stopWordFilter.stopWords.length = 200; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.hu.stopWordFilter.stopWords.elements = ' a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra'.split(' '); + + lunr.Pipeline.registerFunction(lunr.hu.stopWordFilter, 'stopWordFilter-hu'); + }; +})) \ No newline at end of file diff --git a/js/lunr.hu.min.js b/js/lunr.hu.min.js new file mode 100644 index 0000000..2c556e5 --- /dev/null +++ b/js/lunr.hu.min.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,_,r;n.hu=function(){this.pipeline.reset(),this.pipeline.add(n.hu.trimmer,n.hu.stopWordFilter,n.hu.stemmer)},n.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",n.hu.trimmer=n.trimmerSupport.generateTrimmer(n.hu.wordCharacters),n.Pipeline.registerFunction(n.hu.trimmer,"trimmer-hu"),n.hu.stemmer=(e=n.stemmerSupport.Among,_=n.stemmerSupport.SnowballProgram,r=new function(){var r,i=[new e("cs",-1,-1),new e("dzs",-1,-1),new e("gy",-1,-1),new e("ly",-1,-1),new e("ny",-1,-1),new e("sz",-1,-1),new e("ty",-1,-1),new e("zs",-1,-1)],n=[new e("á",-1,1),new e("é",-1,2)],s=[new e("bb",-1,-1),new e("cc",-1,-1),new e("dd",-1,-1),new e("ff",-1,-1),new e("gg",-1,-1),new e("jj",-1,-1),new e("kk",-1,-1),new e("ll",-1,-1),new e("mm",-1,-1),new e("nn",-1,-1),new e("pp",-1,-1),new e("rr",-1,-1),new e("ccs",-1,-1),new e("ss",-1,-1),new e("zzs",-1,-1),new e("tt",-1,-1),new e("vv",-1,-1),new e("ggy",-1,-1),new e("lly",-1,-1),new e("nny",-1,-1),new e("tty",-1,-1),new e("ssz",-1,-1),new e("zz",-1,-1)],a=[new e("al",-1,1),new e("el",-1,2)],t=[new e("ba",-1,-1),new e("ra",-1,-1),new e("be",-1,-1),new e("re",-1,-1),new e("ig",-1,-1),new e("nak",-1,-1),new e("nek",-1,-1),new e("val",-1,-1),new e("vel",-1,-1),new e("ul",-1,-1),new e("nál",-1,-1),new e("nél",-1,-1),new e("ból",-1,-1),new e("ról",-1,-1),new e("tól",-1,-1),new e("bõl",-1,-1),new e("rõl",-1,-1),new e("tõl",-1,-1),new e("ül",-1,-1),new e("n",-1,-1),new e("an",19,-1),new e("ban",20,-1),new e("en",19,-1),new e("ben",22,-1),new e("képpen",22,-1),new e("on",19,-1),new e("ön",19,-1),new e("képp",-1,-1),new e("kor",-1,-1),new e("t",-1,-1),new e("at",29,-1),new e("et",29,-1),new e("ként",29,-1),new e("anként",32,-1),new e("enként",32,-1),new e("onként",32,-1),new e("ot",29,-1),new e("ért",29,-1),new e("öt",29,-1),new e("hez",-1,-1),new e("hoz",-1,-1),new e("höz",-1,-1),new e("vá",-1,-1),new e("vé",-1,-1)],o=[new e("án",-1,2),new e("én",-1,1),new e("ánként",-1,3)],w=[new e("stul",-1,2),new e("astul",0,1),new e("ástul",0,3),new e("stül",-1,2),new e("estül",3,1),new e("éstül",3,4)],c=[new e("á",-1,1),new e("é",-1,2)],l=[new e("k",-1,7),new e("ak",0,4),new e("ek",0,6),new e("ok",0,5),new e("ák",0,1),new e("ék",0,2),new e("ök",0,3)],m=[new e("éi",-1,7),new e("áéi",0,6),new e("ééi",0,5),new e("é",-1,9),new e("ké",3,4),new e("aké",4,1),new e("eké",4,1),new e("oké",4,1),new e("áké",4,3),new e("éké",4,2),new e("öké",4,1),new e("éé",3,8)],u=[new e("a",-1,18),new e("ja",0,17),new e("d",-1,16),new e("ad",2,13),new e("ed",2,13),new e("od",2,13),new e("ád",2,14),new e("éd",2,15),new e("öd",2,13),new e("e",-1,18),new e("je",9,17),new e("nk",-1,4),new e("unk",11,1),new e("ánk",11,2),new e("énk",11,3),new e("ünk",11,1),new e("uk",-1,8),new e("juk",16,7),new e("ájuk",17,5),new e("ük",-1,8),new e("jük",19,7),new e("éjük",20,6),new e("m",-1,12),new e("am",22,9),new e("em",22,9),new e("om",22,9),new e("ám",22,10),new e("ém",22,11),new e("o",-1,18),new e("á",-1,19),new e("é",-1,20)],k=[new e("id",-1,10),new e("aid",0,9),new e("jaid",1,6),new e("eid",0,9),new e("jeid",3,6),new e("áid",0,7),new e("éid",0,8),new e("i",-1,15),new e("ai",7,14),new e("jai",8,11),new e("ei",7,14),new e("jei",10,11),new e("ái",7,12),new e("éi",7,13),new e("itek",-1,24),new e("eitek",14,21),new e("jeitek",15,20),new e("éitek",14,23),new e("ik",-1,29),new e("aik",18,26),new e("jaik",19,25),new e("eik",18,26),new e("jeik",21,25),new e("áik",18,27),new e("éik",18,28),new e("ink",-1,20),new e("aink",25,17),new e("jaink",26,16),new e("eink",25,17),new e("jeink",28,16),new e("áink",25,18),new e("éink",25,19),new e("aitok",-1,21),new e("jaitok",32,20),new e("áitok",-1,22),new e("im",-1,5),new e("aim",35,4),new e("jaim",36,1),new e("eim",35,4),new e("jeim",38,1),new e("áim",35,2),new e("éim",35,3)],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],b=new _;function f(){return r<=b.cursor}function g(){var e=b.limit-b.cursor;return b.find_among_b(s,23)&&(b.cursor=b.limit-e,1)}function h(){var e;b.cursor>b.limit_backward&&(b.cursor--,b.ket=b.cursor,e=b.cursor-1,b.limit_backward<=e)&&e<=b.limit&&(b.cursor=e,b.bra=e,b.slice_del())}function p(){var e;if((b.ket=b.cursor,b.find_among_b(t,44))&&(b.bra=b.cursor,f()&&(b.slice_del(),b.ket=b.cursor,e=b.find_among_b(n,2))&&(b.bra=b.cursor,f())))switch(e){case 1:b.slice_from("a");break;case 2:b.slice_from("e")}}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e=b.cursor;if(!function(){var e,n=b.cursor;if(r=b.limit,b.in_grouping(d,97,252))for(;;){if(e=b.cursor,b.out_grouping(d,97,252))return b.cursor=e,b.find_among(i,8)||(b.cursor=e)=b.limit)return r=e;b.cursor++}if(b.cursor=n,b.out_grouping(d,97,252)){for(;!b.in_grouping(d,97,252);){if(b.cursor>=b.limit)return;b.cursor++}r=b.cursor}}(),b.limit_backward=e,b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(a,2))&&(b.bra=b.cursor,f())&&(1!=e&&2!=e||g())&&(b.slice_del(),h()),b.cursor=b.limit,p(),b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(o,3))&&(b.bra=b.cursor,f()))switch(e){case 1:b.slice_from("e");break;case 2:case 3:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(w,6))&&(b.bra=b.cursor,f()))switch(e){case 1:case 2:b.slice_del();break;case 3:b.slice_from("a");break;case 4:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(c,2))&&(b.bra=b.cursor,f())&&(1!=e&&2!=e||g())&&(b.slice_del(),h()),b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(m,12))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 7:case 9:b.slice_del();break;case 2:case 5:case 8:b.slice_from("e");break;case 3:case 6:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(u,31))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:b.slice_del();break;case 2:case 5:case 10:case 14:case 19:b.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(k,42))&&(b.bra=b.cursor,f()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:b.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:b.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(e=b.find_among_b(l,7))&&(b.bra=b.cursor,f()))switch(e){case 1:b.slice_from("a");break;case 2:b.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:b.slice_del()}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),n.Pipeline.registerFunction(n.hu.stemmer,"stemmer-hu"),n.hu.stopWordFilter=function(e){if(-1===n.hu.stopWordFilter.stopWords.indexOf(e))return e},n.hu.stopWordFilter.stopWords=new n.SortedSet,n.hu.stopWordFilter.stopWords.length=200,n.hu.stopWordFilter.stopWords.elements=" a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" "),n.Pipeline.registerFunction(n.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/js/lunr.it.js b/js/lunr.it.js new file mode 100644 index 0000000..91fc8bd --- /dev/null +++ b/js/lunr.it.js @@ -0,0 +1,612 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.it = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.it.trimmer, + lunr.it.stopWordFilter, + lunr.it.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.it.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.it.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.it.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.it.trimmer, 'trimmer-it'); + + /* lunr stemmer function */ + lunr.it.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function ItalianStemmer() { + var a_0 = [new Among("", -1, 7), new Among("qu", 0, 6), + new Among("\u00E1", 0, 1), new Among("\u00E9", 0, 2), + new Among("\u00ED", 0, 3), new Among("\u00F3", 0, 4), + new Among("\u00FA", 0, 5) + ], + a_1 = [new Among("", -1, 3), + new Among("I", 0, 1), new Among("U", 0, 2) + ], + a_2 = [ + new Among("la", -1, -1), new Among("cela", 0, -1), + new Among("gliela", 0, -1), new Among("mela", 0, -1), + new Among("tela", 0, -1), new Among("vela", 0, -1), + new Among("le", -1, -1), new Among("cele", 6, -1), + new Among("gliele", 6, -1), new Among("mele", 6, -1), + new Among("tele", 6, -1), new Among("vele", 6, -1), + new Among("ne", -1, -1), new Among("cene", 12, -1), + new Among("gliene", 12, -1), new Among("mene", 12, -1), + new Among("sene", 12, -1), new Among("tene", 12, -1), + new Among("vene", 12, -1), new Among("ci", -1, -1), + new Among("li", -1, -1), new Among("celi", 20, -1), + new Among("glieli", 20, -1), new Among("meli", 20, -1), + new Among("teli", 20, -1), new Among("veli", 20, -1), + new Among("gli", 20, -1), new Among("mi", -1, -1), + new Among("si", -1, -1), new Among("ti", -1, -1), + new Among("vi", -1, -1), new Among("lo", -1, -1), + new Among("celo", 31, -1), new Among("glielo", 31, -1), + new Among("melo", 31, -1), new Among("telo", 31, -1), + new Among("velo", 31, -1) + ], + a_3 = [new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("ar", -1, 2), + new Among("er", -1, 2), new Among("ir", -1, 2) + ], + a_4 = [ + new Among("ic", -1, -1), new Among("abil", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_5 = [ + new Among("ic", -1, 1), new Among("abil", -1, 1), + new Among("iv", -1, 1) + ], + a_6 = [new Among("ica", -1, 1), + new Among("logia", -1, 3), new Among("osa", -1, 1), + new Among("ista", -1, 1), new Among("iva", -1, 9), + new Among("anza", -1, 1), new Among("enza", -1, 5), + new Among("ice", -1, 1), new Among("atrice", 7, 1), + new Among("iche", -1, 1), new Among("logie", -1, 3), + new Among("abile", -1, 1), new Among("ibile", -1, 1), + new Among("usione", -1, 4), new Among("azione", -1, 2), + new Among("uzione", -1, 4), new Among("atore", -1, 2), + new Among("ose", -1, 1), new Among("ante", -1, 1), + new Among("mente", -1, 1), new Among("amente", 19, 7), + new Among("iste", -1, 1), new Among("ive", -1, 9), + new Among("anze", -1, 1), new Among("enze", -1, 5), + new Among("ici", -1, 1), new Among("atrici", 25, 1), + new Among("ichi", -1, 1), new Among("abili", -1, 1), + new Among("ibili", -1, 1), new Among("ismi", -1, 1), + new Among("usioni", -1, 4), new Among("azioni", -1, 2), + new Among("uzioni", -1, 4), new Among("atori", -1, 2), + new Among("osi", -1, 1), new Among("anti", -1, 1), + new Among("amenti", -1, 6), new Among("imenti", -1, 6), + new Among("isti", -1, 1), new Among("ivi", -1, 9), + new Among("ico", -1, 1), new Among("ismo", -1, 1), + new Among("oso", -1, 1), new Among("amento", -1, 6), + new Among("imento", -1, 6), new Among("ivo", -1, 9), + new Among("it\u00E0", -1, 8), new Among("ist\u00E0", -1, 1), + new Among("ist\u00E8", -1, 1), new Among("ist\u00EC", -1, 1) + ], + a_7 = [ + new Among("isca", -1, 1), new Among("enda", -1, 1), + new Among("ata", -1, 1), new Among("ita", -1, 1), + new Among("uta", -1, 1), new Among("ava", -1, 1), + new Among("eva", -1, 1), new Among("iva", -1, 1), + new Among("erebbe", -1, 1), new Among("irebbe", -1, 1), + new Among("isce", -1, 1), new Among("ende", -1, 1), + new Among("are", -1, 1), new Among("ere", -1, 1), + new Among("ire", -1, 1), new Among("asse", -1, 1), + new Among("ate", -1, 1), new Among("avate", 16, 1), + new Among("evate", 16, 1), new Among("ivate", 16, 1), + new Among("ete", -1, 1), new Among("erete", 20, 1), + new Among("irete", 20, 1), new Among("ite", -1, 1), + new Among("ereste", -1, 1), new Among("ireste", -1, 1), + new Among("ute", -1, 1), new Among("erai", -1, 1), + new Among("irai", -1, 1), new Among("isci", -1, 1), + new Among("endi", -1, 1), new Among("erei", -1, 1), + new Among("irei", -1, 1), new Among("assi", -1, 1), + new Among("ati", -1, 1), new Among("iti", -1, 1), + new Among("eresti", -1, 1), new Among("iresti", -1, 1), + new Among("uti", -1, 1), new Among("avi", -1, 1), + new Among("evi", -1, 1), new Among("ivi", -1, 1), + new Among("isco", -1, 1), new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("Yamo", -1, 1), + new Among("iamo", -1, 1), new Among("avamo", -1, 1), + new Among("evamo", -1, 1), new Among("ivamo", -1, 1), + new Among("eremo", -1, 1), new Among("iremo", -1, 1), + new Among("assimo", -1, 1), new Among("ammo", -1, 1), + new Among("emmo", -1, 1), new Among("eremmo", 54, 1), + new Among("iremmo", 54, 1), new Among("immo", -1, 1), + new Among("ano", -1, 1), new Among("iscano", 58, 1), + new Among("avano", 58, 1), new Among("evano", 58, 1), + new Among("ivano", 58, 1), new Among("eranno", -1, 1), + new Among("iranno", -1, 1), new Among("ono", -1, 1), + new Among("iscono", 65, 1), new Among("arono", 65, 1), + new Among("erono", 65, 1), new Among("irono", 65, 1), + new Among("erebbero", -1, 1), new Among("irebbero", -1, 1), + new Among("assero", -1, 1), new Among("essero", -1, 1), + new Among("issero", -1, 1), new Among("ato", -1, 1), + new Among("ito", -1, 1), new Among("uto", -1, 1), + new Among("avo", -1, 1), new Among("evo", -1, 1), + new Among("ivo", -1, 1), new Among("ar", -1, 1), + new Among("ir", -1, 1), new Among("er\u00E0", -1, 1), + new Among("ir\u00E0", -1, 1), new Among("er\u00F2", -1, 1), + new Among("ir\u00F2", -1, 1) + ], + g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 + ], + g_AEIO = [17, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 + ], + g_CG = [17], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2, v_1) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 249)) { + sbp.slice_from(c2); + sbp.cursor = v_1; + return true; + } + } + return false; + } + + function r_prelude() { + var among_var, v_1 = sbp.cursor, + v_2, v_3, v_4; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 7); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("\u00E0"); + continue; + case 2: + sbp.slice_from("\u00E8"); + continue; + case 3: + sbp.slice_from("\u00EC"); + continue; + case 4: + sbp.slice_from("\u00F2"); + continue; + case 5: + sbp.slice_from("\u00F9"); + continue; + case 6: + sbp.slice_from("qU"); + continue; + case 7: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + sbp.cursor = v_1; + while (true) { + v_2 = sbp.cursor; + while (true) { + v_3 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 249)) { + sbp.bra = sbp.cursor; + v_4 = sbp.cursor; + if (habr1("u", "U", v_3)) + break; + sbp.cursor = v_4; + if (habr1("i", "I", v_3)) + break; + } + sbp.cursor = v_3; + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_2; + return; + } + sbp.cursor++; + } + } + } + + function habr2(v_1) { + sbp.cursor = v_1; + if (!sbp.in_grouping(g_v, 97, 249)) + return false; + while (!sbp.out_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 249)) { + var v_1 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 249)) { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return habr2(v_1); + sbp.cursor++; + } + return true; + } + return habr2(v_1); + } + return false; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2; + if (!habr3()) { + sbp.cursor = v_1; + if (!sbp.out_grouping(g_v, 97, 249)) + return; + v_2 = sbp.cursor; + if (sbp.out_grouping(g_v, 97, 249)) { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_2; + if (sbp.in_grouping(g_v, 97, 249) && sbp.cursor < sbp.limit) + sbp.cursor++; + return; + } + sbp.cursor++; + } + I_pV = sbp.cursor; + return; + } + sbp.cursor = v_2; + if (!sbp.in_grouping(g_v, 97, 249) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_pV = sbp.cursor; + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 249)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (!among_var) + break; + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + break; + case 2: + sbp.slice_from("u"); + break; + case 3: + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + break; + } + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_attached_pronoun() { + var among_var; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_2, 37)) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among_b(a_3, 5); + if (among_var && r_RV()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("e"); + break; + } + } + } + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 51); + if (!among_var) + return false; + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 5: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 6: + if (!r_RV()) + return false; + sbp.slice_del(); + break; + case 7: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 9: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "ic")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + break; + } + return true; + } + + function r_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 87); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + } + sbp.limit_backward = v_1; + } + } + + function habr6() { + var v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (sbp.in_grouping_b(g_AEIO, 97, 242)) { + sbp.bra = sbp.cursor; + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "i")) { + sbp.bra = sbp.cursor; + if (r_RV()) { + sbp.slice_del(); + return; + } + } + } + } + sbp.cursor = sbp.limit - v_1; + } + + function r_vowel_suffix() { + habr6(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "h")) { + sbp.bra = sbp.cursor; + if (sbp.in_grouping_b(g_CG, 99, 103)) + if (r_RV()) + sbp.slice_del(); + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_attached_pronoun(); + sbp.cursor = sbp.limit; + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + } + sbp.cursor = sbp.limit; + r_vowel_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.it.stemmer, 'stemmer-it'); + + /* stop word filter function */ + lunr.it.stopWordFilter = function(token) { + if (lunr.it.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.it.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.it.stopWordFilter.stopWords.length = 280; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.it.stopWordFilter.stopWords.elements = ' a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è'.split(' '); + + lunr.Pipeline.registerFunction(lunr.it.stopWordFilter, 'stopWordFilter-it'); + }; +})) \ No newline at end of file diff --git a/js/lunr.it.min.js b/js/lunr.it.min.js new file mode 100644 index 0000000..f232c3f --- /dev/null +++ b/js/lunr.it.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,F,i;r.it=function(){this.pipeline.reset(),this.pipeline.add(r.it.trimmer,r.it.stopWordFilter,r.it.stemmer)},r.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.it.trimmer=r.trimmerSupport.generateTrimmer(r.it.wordCharacters),r.Pipeline.registerFunction(r.it.trimmer,"trimmer-it"),r.it.stemmer=(e=r.stemmerSupport.Among,F=r.stemmerSupport.SnowballProgram,i=new function(){var n,o,s,t=[new e("",-1,7),new e("qu",0,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],a=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],u=[new e("la",-1,-1),new e("cela",0,-1),new e("gliela",0,-1),new e("mela",0,-1),new e("tela",0,-1),new e("vela",0,-1),new e("le",-1,-1),new e("cele",6,-1),new e("gliele",6,-1),new e("mele",6,-1),new e("tele",6,-1),new e("vele",6,-1),new e("ne",-1,-1),new e("cene",12,-1),new e("gliene",12,-1),new e("mene",12,-1),new e("sene",12,-1),new e("tene",12,-1),new e("vene",12,-1),new e("ci",-1,-1),new e("li",-1,-1),new e("celi",20,-1),new e("glieli",20,-1),new e("meli",20,-1),new e("teli",20,-1),new e("veli",20,-1),new e("gli",20,-1),new e("mi",-1,-1),new e("si",-1,-1),new e("ti",-1,-1),new e("vi",-1,-1),new e("lo",-1,-1),new e("celo",31,-1),new e("glielo",31,-1),new e("melo",31,-1),new e("telo",31,-1),new e("velo",31,-1)],c=[new e("ando",-1,1),new e("endo",-1,1),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2)],r=[new e("ic",-1,-1),new e("abil",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],i=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],w=[new e("ica",-1,1),new e("logia",-1,3),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("enza",-1,5),new e("ice",-1,1),new e("atrice",7,1),new e("iche",-1,1),new e("logie",-1,3),new e("abile",-1,1),new e("ibile",-1,1),new e("usione",-1,4),new e("azione",-1,2),new e("uzione",-1,4),new e("atore",-1,2),new e("ose",-1,1),new e("ante",-1,1),new e("mente",-1,1),new e("amente",19,7),new e("iste",-1,1),new e("ive",-1,9),new e("anze",-1,1),new e("enze",-1,5),new e("ici",-1,1),new e("atrici",25,1),new e("ichi",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("ismi",-1,1),new e("usioni",-1,4),new e("azioni",-1,2),new e("uzioni",-1,4),new e("atori",-1,2),new e("osi",-1,1),new e("anti",-1,1),new e("amenti",-1,6),new e("imenti",-1,6),new e("isti",-1,1),new e("ivi",-1,9),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,6),new e("imento",-1,6),new e("ivo",-1,9),new e("ità",-1,8),new e("istà",-1,1),new e("istè",-1,1),new e("istì",-1,1)],l=[new e("isca",-1,1),new e("enda",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("uta",-1,1),new e("ava",-1,1),new e("eva",-1,1),new e("iva",-1,1),new e("erebbe",-1,1),new e("irebbe",-1,1),new e("isce",-1,1),new e("ende",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("asse",-1,1),new e("ate",-1,1),new e("avate",16,1),new e("evate",16,1),new e("ivate",16,1),new e("ete",-1,1),new e("erete",20,1),new e("irete",20,1),new e("ite",-1,1),new e("ereste",-1,1),new e("ireste",-1,1),new e("ute",-1,1),new e("erai",-1,1),new e("irai",-1,1),new e("isci",-1,1),new e("endi",-1,1),new e("erei",-1,1),new e("irei",-1,1),new e("assi",-1,1),new e("ati",-1,1),new e("iti",-1,1),new e("eresti",-1,1),new e("iresti",-1,1),new e("uti",-1,1),new e("avi",-1,1),new e("evi",-1,1),new e("ivi",-1,1),new e("isco",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("Yamo",-1,1),new e("iamo",-1,1),new e("avamo",-1,1),new e("evamo",-1,1),new e("ivamo",-1,1),new e("eremo",-1,1),new e("iremo",-1,1),new e("assimo",-1,1),new e("ammo",-1,1),new e("emmo",-1,1),new e("eremmo",54,1),new e("iremmo",54,1),new e("immo",-1,1),new e("ano",-1,1),new e("iscano",58,1),new e("avano",58,1),new e("evano",58,1),new e("ivano",58,1),new e("eranno",-1,1),new e("iranno",-1,1),new e("ono",-1,1),new e("iscono",65,1),new e("arono",65,1),new e("erono",65,1),new e("irono",65,1),new e("erebbero",-1,1),new e("irebbero",-1,1),new e("assero",-1,1),new e("essero",-1,1),new e("issero",-1,1),new e("ato",-1,1),new e("ito",-1,1),new e("uto",-1,1),new e("avo",-1,1),new e("evo",-1,1),new e("ivo",-1,1),new e("ar",-1,1),new e("ir",-1,1),new e("erà",-1,1),new e("irà",-1,1),new e("erò",-1,1),new e("irò",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],f=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],v=[17],b=new F;function d(e,r,i){return b.eq_s(1,e)&&(b.ket=b.cursor,b.in_grouping(m,97,249))&&(b.slice_from(r),b.cursor=i,1)}function _(e){if(b.cursor=e,!b.in_grouping(m,97,249))return!1;for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function g(){var e,r=b.cursor;if(!function(){if(b.in_grouping(m,97,249)){var e=b.cursor;if(b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return _(e);b.cursor++}return 1}return _(e)}}()){if(b.cursor=r,!b.out_grouping(m,97,249))return;if(e=b.cursor,b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return b.cursor=e,void(b.in_grouping(m,97,249)&&b.cursor=b.limit)return;b.cursor++}s=b.cursor}function p(){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return;b.cursor++}for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return;b.cursor++}return 1}function k(){return s<=b.cursor}function h(){return n<=b.cursor}function q(){var e;if(b.ket=b.cursor,e=b.find_among_b(w,51)){switch(b.bra=b.cursor,e){case 1:if(!h())return;b.slice_del();break;case 2:if(!h())return;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h())&&b.slice_del();break;case 3:if(!h())return;b.slice_from("log");break;case 4:if(!h())return;b.slice_from("u");break;case 5:if(!h())return;b.slice_from("ente");break;case 6:if(!k())return;b.slice_del();break;case 7:if(!(o<=b.cursor))return;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(r,4))&&(b.bra=b.cursor,h())&&(b.slice_del(),1==e)&&(b.ket=b.cursor,b.eq_s_b(2,"at"))&&(b.bra=b.cursor,h())&&b.slice_del();break;case 8:if(!h())return;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(i,3))&&(b.bra=b.cursor,1==e)&&h()&&b.slice_del();break;case 9:if(!h())return;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h())&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic"))&&(b.bra=b.cursor,h())&&b.slice_del()}return 1}}function W(){var e;e=b.limit-b.cursor,b.ket=b.cursor,b.in_grouping_b(f,97,242)&&(b.bra=b.cursor,k())&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(1,"i"))&&(b.bra=b.cursor,k())?b.slice_del():b.cursor=b.limit-e,b.ket=b.cursor,b.eq_s_b(1,"h")&&(b.bra=b.cursor,b.in_grouping_b(v,99,103))&&k()&&b.slice_del()}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,r,i=b.cursor;if(!function(){for(var e,r,i,n,o=b.cursor;;){if(b.bra=b.cursor,e=b.find_among(t,7))switch(b.ket=b.cursor,e){case 1:b.slice_from("à");continue;case 2:b.slice_from("è");continue;case 3:b.slice_from("ì");continue;case 4:b.slice_from("ò");continue;case 5:b.slice_from("ù");continue;case 6:b.slice_from("qU");continue;case 7:if(!(b.cursor>=b.limit)){b.cursor++;continue}}break}for(b.cursor=o;;)for(r=b.cursor;;){if(i=b.cursor,b.in_grouping(m,97,249)){if(b.bra=b.cursor,n=b.cursor,d("u","U",i))break;if(b.cursor=n,d("i","I",i))break}if(b.cursor=i,b.cursor>=b.limit)return b.cursor=r;b.cursor++}}(),b.cursor=i,r=b.cursor,s=b.limit,n=o=s,g(),b.cursor=r,p()&&(o=b.cursor,p())&&(n=b.cursor),b.limit_backward=i,b.cursor=b.limit,b.ket=b.cursor,b.find_among_b(u,37)&&(b.bra=b.cursor,e=b.find_among_b(c,5))&&k())switch(e){case 1:b.slice_del();break;case 2:b.slice_from("e")}return b.cursor=b.limit,q()||(b.cursor=b.limit,b.cursor>=s&&(r=b.limit_backward,b.limit_backward=s,b.ket=b.cursor,(i=b.find_among_b(l,87))&&(b.bra=b.cursor,1==i)&&b.slice_del(),b.limit_backward=r)),b.cursor=b.limit,W(),b.cursor=b.limit_backward,function(){for(var e;b.bra=b.cursor,e=b.find_among(a,3);)switch(b.ket=b.cursor,e){case 1:b.slice_from("i");break;case 2:b.slice_from("u");break;case 3:if(b.cursor>=b.limit)return;b.cursor++}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.it.stemmer,"stemmer-it"),r.it.stopWordFilter=function(e){if(-1===r.it.stopWordFilter.stopWords.indexOf(e))return e},r.it.stopWordFilter.stopWords=new r.SortedSet,r.it.stopWordFilter.stopWords.length=280,r.it.stopWordFilter.stopWords.elements=" a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" "),r.Pipeline.registerFunction(r.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/js/lunr.jp.js b/js/lunr.jp.js new file mode 100644 index 0000000..4dcdc43 --- /dev/null +++ b/js/lunr.jp.js @@ -0,0 +1,118 @@ +/*! + * Lunr languages, `Japanese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Chad Liu + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.jp = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.jp.stopWordFilter, + lunr.jp.stemmer + ); + // change the tokenizer for japanese one + lunr.tokenizer = lunr.jp.tokenizer; + }; + var segmenter = new TinySegmenter(); // インスタンス生成 + + lunr.jp.tokenizer = function (obj) { + if (!arguments.length || obj == null || obj == undefined) return [] + if (Array.isArray(obj)) return obj.map(function (t) { return t.toLowerCase() }) + + var str = obj.toString().replace(/^\s+/, '') + + for (var i = str.length - 1; i >= 0; i--) { + if (/\S/.test(str.charAt(i))) { + str = str.substring(0, i + 1) + break + } + } + + + var segs = segmenter.segment(str); // 単語の配列が返る + return segs.filter(function (token) { + return !!token + }) + .map(function (token) { + return token + }) + } + + /* lunr stemmer function */ + lunr.jp.stemmer = (function() { + + /* TODO japanese stemmer */ + return function(word) { + return word; + } + })(); + + lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp'); + + /* stop word filter function */ + lunr.jp.stopWordFilter = function(token) { + if (lunr.jp.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.jp.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.jp.stopWordFilter.stopWords.length = 45; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + // stopword for japanese is from http://www.ranks.nl/stopwords/japanese + lunr.jp.stopWordFilter.stopWords.elements = ' これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし'.split(' '); + lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp'); + }; +})) \ No newline at end of file diff --git a/js/lunr.jp.min.js b/js/lunr.jp.min.js new file mode 100644 index 0000000..b70d9ee --- /dev/null +++ b/js/lunr.jp.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.jp=function(){this.pipeline.reset(),this.pipeline.add(r.jp.stopWordFilter,r.jp.stemmer),r.tokenizer=r.jp.tokenizer};var n=new TinySegmenter;r.jp.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return e.toLowerCase()});for(var r=e.toString().replace(/^\s+/,""),t=r.length-1;0<=t;t--)if(/\S/.test(r.charAt(t))){r=r.substring(0,t+1);break}return n.segment(r).filter(function(e){return!!e}).map(function(e){return e})},r.jp.stemmer=function(e){return e},r.Pipeline.registerFunction(r.jp.stemmer,"stemmer-jp"),r.jp.stopWordFilter=function(e){if(-1===r.jp.stopWordFilter.stopWords.indexOf(e))return e},r.jp.stopWordFilter.stopWords=new r.SortedSet,r.jp.stopWordFilter.stopWords.length=45,r.jp.stopWordFilter.stopWords.elements=" これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" "),r.Pipeline.registerFunction(r.jp.stopWordFilter,"stopWordFilter-jp")}}); \ No newline at end of file diff --git a/js/lunr.no.js b/js/lunr.no.js new file mode 100644 index 0000000..acaa024 --- /dev/null +++ b/js/lunr.no.js @@ -0,0 +1,253 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.no = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.no.trimmer, + lunr.no.stopWordFilter, + lunr.no.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.no.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.no.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.no.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.no.trimmer, 'trimmer-no'); + + /* lunr stemmer function */ + lunr.no.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function NorwegianStemmer() { + var a_0 = [new Among("a", -1, 1), new Among("e", -1, 1), + new Among("ede", 1, 1), new Among("ande", 1, 1), + new Among("ende", 1, 1), new Among("ane", 1, 1), + new Among("ene", 1, 1), new Among("hetene", 6, 1), + new Among("erte", 1, 3), new Among("en", -1, 1), + new Among("heten", 9, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("heter", 12, 1), + new Among("s", -1, 2), new Among("as", 14, 1), + new Among("es", 14, 1), new Among("edes", 16, 1), + new Among("endes", 16, 1), new Among("enes", 16, 1), + new Among("hetenes", 19, 1), new Among("ens", 14, 1), + new Among("hetens", 21, 1), new Among("ers", 14, 1), + new Among("ets", 14, 1), new Among("et", -1, 1), + new Among("het", 25, 1), new Among("ert", -1, 3), + new Among("ast", -1, 1) + ], + a_1 = [new Among("dt", -1, -1), + new Among("vt", -1, -1) + ], + a_2 = [new Among("leg", -1, 1), + new Among("eleg", 0, 1), new Among("ig", -1, 1), + new Among("eig", 2, 1), new Among("lig", 2, 1), + new Among("elig", 4, 1), new Among("els", -1, 1), + new Among("lov", -1, 1), new Among("elov", 7, 1), + new Among("slov", 7, 1), new Among("hetslov", 9, 1) + ], + g_v = [17, + 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 + ], + g_s_ending = [ + 119, 125, 149, 1 + ], + I_x, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1, c = sbp.cursor + 3; + I_p1 = sbp.limit; + if (0 <= c || c <= sbp.limit) { + I_x = c; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 248)) { + sbp.cursor = v_1; + break; + } + if (v_1 >= sbp.limit) + return; + sbp.cursor = v_1 + 1; + } + while (!sbp.out_grouping(g_v, 97, 248)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 29); + sbp.limit_backward = v_1; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + v_2 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_s_ending, 98, 122)) + sbp.slice_del(); + else { + sbp.cursor = sbp.limit - v_2; + if (sbp.eq_s_b(1, "k") && sbp.out_grouping_b(g_v, 97, 248)) + sbp.slice_del(); + } + break; + case 3: + sbp.slice_from("er"); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + if (sbp.find_among_b(a_1, 2)) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_2; + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + } else + sbp.limit_backward = v_2; + } + } + + function r_other_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_p1) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 11); + if (among_var) { + sbp.bra = sbp.cursor; + sbp.limit_backward = v_1; + if (among_var == 1) + sbp.slice_del(); + } else + sbp.limit_backward = v_1; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.no.stemmer, 'stemmer-no'); + + /* stop word filter function */ + lunr.no.stopWordFilter = function(token) { + if (lunr.no.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.no.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.no.stopWordFilter.stopWords.length = 177; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.no.stopWordFilter.stopWords.elements = ' alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å'.split(' '); + + lunr.Pipeline.registerFunction(lunr.no.stopWordFilter, 'stopWordFilter-no'); + }; +})) \ No newline at end of file diff --git a/js/lunr.no.min.js b/js/lunr.no.min.js new file mode 100644 index 0000000..ac91e96 --- /dev/null +++ b/js/lunr.no.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.no=function(){this.pipeline.reset(),this.pipeline.add(r.no.trimmer,r.no.stopWordFilter,r.no.stemmer)},r.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.no.trimmer=r.trimmerSupport.generateTrimmer(r.no.wordCharacters),r.Pipeline.registerFunction(r.no.trimmer,"trimmer-no"),r.no.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var t,o,s=[new e("a",-1,1),new e("e",-1,1),new e("ede",1,1),new e("ande",1,1),new e("ende",1,1),new e("ane",1,1),new e("ene",1,1),new e("hetene",6,1),new e("erte",1,3),new e("en",-1,1),new e("heten",9,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",12,1),new e("s",-1,2),new e("as",14,1),new e("es",14,1),new e("edes",16,1),new e("endes",16,1),new e("enes",16,1),new e("hetenes",19,1),new e("ens",14,1),new e("hetens",21,1),new e("ers",14,1),new e("ets",14,1),new e("et",-1,1),new e("het",25,1),new e("ert",-1,3),new e("ast",-1,1)],m=[new e("dt",-1,-1),new e("vt",-1,-1)],a=[new e("leg",-1,1),new e("eleg",0,1),new e("ig",-1,1),new e("eig",2,1),new e("lig",2,1),new e("elig",4,1),new e("els",-1,1),new e("lov",-1,1),new e("elov",7,1),new e("slov",7,1),new e("hetslov",9,1)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],d=[119,125,149,1],u=new n;this.setCurrent=function(e){u.setCurrent(e)},this.getCurrent=function(){return u.getCurrent()},this.stem=function(){var e,r,n,i=u.cursor;if(!function(){var e,r=u.cursor+3;if(o=u.limit,0<=r||r<=u.limit){for(t=r;;){if(e=u.cursor,u.in_grouping(l,97,248)){u.cursor=e;break}if(e>=u.limit)return;u.cursor=e+1}for(;!u.out_grouping(l,97,248);){if(u.cursor>=u.limit)return;u.cursor++}(o=u.cursor)=o&&(i=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,r=u.find_among_b(s,29),u.limit_backward=i,r))switch(u.bra=u.cursor,r){case 1:u.slice_del();break;case 2:e=u.limit-u.cursor,(u.in_grouping_b(d,98,122)||(u.cursor=u.limit-e,u.eq_s_b(1,"k")&&u.out_grouping_b(l,97,248)))&&u.slice_del();break;case 3:u.slice_from("er")}return u.cursor=u.limit,i=u.limit-u.cursor,u.cursor>=o&&(r=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,u.find_among_b(m,2)?(u.bra=u.cursor,u.limit_backward=r,u.cursor=u.limit-i,u.cursor>u.limit_backward&&(u.cursor--,u.bra=u.cursor,u.slice_del())):u.limit_backward=r),u.cursor=u.limit,u.cursor>=o&&(i=u.limit_backward,u.limit_backward=o,u.ket=u.cursor,(n=u.find_among_b(a,11))?(u.bra=u.cursor,u.limit_backward=i,1==n&&u.slice_del()):u.limit_backward=i),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.no.stemmer,"stemmer-no"),r.no.stopWordFilter=function(e){if(-1===r.no.stopWordFilter.stopWords.indexOf(e))return e},r.no.stopWordFilter.stopWords=new r.SortedSet,r.no.stopWordFilter.stopWords.length=177,r.no.stopWordFilter.stopWords.elements=" alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" "),r.Pipeline.registerFunction(r.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/js/lunr.pt.js b/js/lunr.pt.js new file mode 100644 index 0000000..b340325 --- /dev/null +++ b/js/lunr.pt.js @@ -0,0 +1,566 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.pt = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.pt.trimmer, + lunr.pt.stopWordFilter, + lunr.pt.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.pt.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.pt.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.pt.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.pt.trimmer, 'trimmer-pt'); + + /* lunr stemmer function */ + lunr.pt.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function PortugueseStemmer() { + var a_0 = [new Among("", -1, 3), new Among("\u00E3", 0, 1), + new Among("\u00F5", 0, 2) + ], + a_1 = [new Among("", -1, 3), + new Among("a~", 0, 1), new Among("o~", 0, 2) + ], + a_2 = [ + new Among("ic", -1, -1), new Among("ad", -1, -1), + new Among("os", -1, -1), new Among("iv", -1, 1) + ], + a_3 = [ + new Among("ante", -1, 1), new Among("avel", -1, 1), + new Among("\u00EDvel", -1, 1) + ], + a_4 = [new Among("ic", -1, 1), + new Among("abil", -1, 1), new Among("iv", -1, 1) + ], + a_5 = [ + new Among("ica", -1, 1), new Among("\u00E2ncia", -1, 1), + new Among("\u00EAncia", -1, 4), new Among("ira", -1, 9), + new Among("adora", -1, 1), new Among("osa", -1, 1), + new Among("ista", -1, 1), new Among("iva", -1, 8), + new Among("eza", -1, 1), new Among("log\u00EDa", -1, 2), + new Among("idade", -1, 7), new Among("ante", -1, 1), + new Among("mente", -1, 6), new Among("amente", 12, 5), + new Among("\u00E1vel", -1, 1), new Among("\u00EDvel", -1, 1), + new Among("uci\u00F3n", -1, 3), new Among("ico", -1, 1), + new Among("ismo", -1, 1), new Among("oso", -1, 1), + new Among("amento", -1, 1), new Among("imento", -1, 1), + new Among("ivo", -1, 8), new Among("a\u00E7a~o", -1, 1), + new Among("ador", -1, 1), new Among("icas", -1, 1), + new Among("\u00EAncias", -1, 4), new Among("iras", -1, 9), + new Among("adoras", -1, 1), new Among("osas", -1, 1), + new Among("istas", -1, 1), new Among("ivas", -1, 8), + new Among("ezas", -1, 1), new Among("log\u00EDas", -1, 2), + new Among("idades", -1, 7), new Among("uciones", -1, 3), + new Among("adores", -1, 1), new Among("antes", -1, 1), + new Among("a\u00E7o~es", -1, 1), new Among("icos", -1, 1), + new Among("ismos", -1, 1), new Among("osos", -1, 1), + new Among("amentos", -1, 1), new Among("imentos", -1, 1), + new Among("ivos", -1, 8) + ], + a_6 = [new Among("ada", -1, 1), + new Among("ida", -1, 1), new Among("ia", -1, 1), + new Among("aria", 2, 1), new Among("eria", 2, 1), + new Among("iria", 2, 1), new Among("ara", -1, 1), + new Among("era", -1, 1), new Among("ira", -1, 1), + new Among("ava", -1, 1), new Among("asse", -1, 1), + new Among("esse", -1, 1), new Among("isse", -1, 1), + new Among("aste", -1, 1), new Among("este", -1, 1), + new Among("iste", -1, 1), new Among("ei", -1, 1), + new Among("arei", 16, 1), new Among("erei", 16, 1), + new Among("irei", 16, 1), new Among("am", -1, 1), + new Among("iam", 20, 1), new Among("ariam", 21, 1), + new Among("eriam", 21, 1), new Among("iriam", 21, 1), + new Among("aram", 20, 1), new Among("eram", 20, 1), + new Among("iram", 20, 1), new Among("avam", 20, 1), + new Among("em", -1, 1), new Among("arem", 29, 1), + new Among("erem", 29, 1), new Among("irem", 29, 1), + new Among("assem", 29, 1), new Among("essem", 29, 1), + new Among("issem", 29, 1), new Among("ado", -1, 1), + new Among("ido", -1, 1), new Among("ando", -1, 1), + new Among("endo", -1, 1), new Among("indo", -1, 1), + new Among("ara~o", -1, 1), new Among("era~o", -1, 1), + new Among("ira~o", -1, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("ir", -1, 1), + new Among("as", -1, 1), new Among("adas", 47, 1), + new Among("idas", 47, 1), new Among("ias", 47, 1), + new Among("arias", 50, 1), new Among("erias", 50, 1), + new Among("irias", 50, 1), new Among("aras", 47, 1), + new Among("eras", 47, 1), new Among("iras", 47, 1), + new Among("avas", 47, 1), new Among("es", -1, 1), + new Among("ardes", 58, 1), new Among("erdes", 58, 1), + new Among("irdes", 58, 1), new Among("ares", 58, 1), + new Among("eres", 58, 1), new Among("ires", 58, 1), + new Among("asses", 58, 1), new Among("esses", 58, 1), + new Among("isses", 58, 1), new Among("astes", 58, 1), + new Among("estes", 58, 1), new Among("istes", 58, 1), + new Among("is", -1, 1), new Among("ais", 71, 1), + new Among("eis", 71, 1), new Among("areis", 73, 1), + new Among("ereis", 73, 1), new Among("ireis", 73, 1), + new Among("\u00E1reis", 73, 1), new Among("\u00E9reis", 73, 1), + new Among("\u00EDreis", 73, 1), new Among("\u00E1sseis", 73, 1), + new Among("\u00E9sseis", 73, 1), new Among("\u00EDsseis", 73, 1), + new Among("\u00E1veis", 73, 1), new Among("\u00EDeis", 73, 1), + new Among("ar\u00EDeis", 84, 1), new Among("er\u00EDeis", 84, 1), + new Among("ir\u00EDeis", 84, 1), new Among("ados", -1, 1), + new Among("idos", -1, 1), new Among("amos", -1, 1), + new Among("\u00E1ramos", 90, 1), new Among("\u00E9ramos", 90, 1), + new Among("\u00EDramos", 90, 1), new Among("\u00E1vamos", 90, 1), + new Among("\u00EDamos", 90, 1), new Among("ar\u00EDamos", 95, 1), + new Among("er\u00EDamos", 95, 1), new Among("ir\u00EDamos", 95, 1), + new Among("emos", -1, 1), new Among("aremos", 99, 1), + new Among("eremos", 99, 1), new Among("iremos", 99, 1), + new Among("\u00E1ssemos", 99, 1), new Among("\u00EAssemos", 99, 1), + new Among("\u00EDssemos", 99, 1), new Among("imos", -1, 1), + new Among("armos", -1, 1), new Among("ermos", -1, 1), + new Among("irmos", -1, 1), new Among("\u00E1mos", -1, 1), + new Among("ar\u00E1s", -1, 1), new Among("er\u00E1s", -1, 1), + new Among("ir\u00E1s", -1, 1), new Among("eu", -1, 1), + new Among("iu", -1, 1), new Among("ou", -1, 1), + new Among("ar\u00E1", -1, 1), new Among("er\u00E1", -1, 1), + new Among("ir\u00E1", -1, 1) + ], + a_7 = [new Among("a", -1, 1), + new Among("i", -1, 1), new Among("o", -1, 1), + new Among("os", -1, 1), new Among("\u00E1", -1, 1), + new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) + ], + a_8 = [ + new Among("e", -1, 1), new Among("\u00E7", -1, 2), + new Among("\u00E9", -1, 1), new Among("\u00EA", -1, 1) + ], + g_v = [17, + 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 + ], + I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_prelude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("a~"); + continue; + case 2: + sbp.slice_from("o~"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function habr2() { + if (sbp.out_grouping(g_v, 97, 250)) { + while (!sbp.in_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 250)) { + while (!sbp.out_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + } + I_pV = sbp.cursor; + return true; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2, v_3; + if (sbp.in_grouping(g_v, 97, 250)) { + v_2 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_2; + if (habr3()) + return; + } else + I_pV = sbp.cursor; + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 250)) { + v_3 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_3; + if (!sbp.in_grouping(g_v, 97, 250) || sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_pV = sbp.cursor; + } + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 250)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_1, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("\u00E3"); + continue; + case 2: + sbp.slice_from("\u00F5"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_standard_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 45); + if (!among_var) + return false; + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (!r_R2()) + return false; + sbp.slice_del(); + break; + case 2: + if (!r_R2()) + return false; + sbp.slice_from("log"); + break; + case 3: + if (!r_R2()) + return false; + sbp.slice_from("u"); + break; + case 4: + if (!r_R2()) + return false; + sbp.slice_from("ente"); + break; + case 5: + if (!r_R1()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 4); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + sbp.slice_del(); + if (among_var == 1) { + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + } + } + } + break; + case 6: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 7: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 3); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_R2()) + sbp.slice_del(); + } + break; + case 8: + if (!r_R2()) + return false; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(2, "at")) { + sbp.bra = sbp.cursor; + if (r_R2()) + sbp.slice_del(); + } + break; + case 9: + if (!r_RV() || !sbp.eq_s_b(1, "e")) + return false; + sbp.slice_from("ir"); + break; + } + return true; + } + + function r_verb_suffix() { + var among_var, v_1; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 120); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + sbp.limit_backward = v_1; + return true; + } + sbp.limit_backward = v_1; + } + return false; + } + + function r_residual_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 7); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + if (r_RV()) + sbp.slice_del(); + } + } + + function habr6(c1, c2) { + if (sbp.eq_s_b(1, c1)) { + sbp.bra = sbp.cursor; + var v_1 = sbp.limit - sbp.cursor; + if (sbp.eq_s_b(1, c2)) { + sbp.cursor = sbp.limit - v_1; + if (r_RV()) + sbp.slice_del(); + return false; + } + } + return true; + } + + function r_residual_form() { + var among_var, v_1, v_2, v_3; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_8, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + if (r_RV()) { + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_1 = sbp.limit - sbp.cursor; + if (habr6("u", "g")) + habr6("i", "c") + } + break; + case 2: + sbp.slice_from("c"); + break; + } + } + } + + function habr1() { + if (!r_standard_suffix()) { + sbp.cursor = sbp.limit; + if (!r_verb_suffix()) { + sbp.cursor = sbp.limit; + r_residual_suffix(); + return; + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "i")) { + sbp.bra = sbp.cursor; + if (sbp.eq_s_b(1, "c")) { + sbp.cursor = sbp.limit; + if (r_RV()) + sbp.slice_del(); + } + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + habr1(); + sbp.cursor = sbp.limit; + r_residual_form(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.pt.stemmer, 'stemmer-pt'); + + /* stop word filter function */ + lunr.pt.stopWordFilter = function(token) { + if (lunr.pt.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.pt.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.pt.stopWordFilter.stopWords.length = 204; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.pt.stopWordFilter.stopWords.elements = ' a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos'.split(' '); + + lunr.Pipeline.registerFunction(lunr.pt.stopWordFilter, 'stopWordFilter-pt'); + }; +})) \ No newline at end of file diff --git a/js/lunr.pt.min.js b/js/lunr.pt.min.js new file mode 100644 index 0000000..c82fed6 --- /dev/null +++ b/js/lunr.pt.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,W,s;r.pt=function(){this.pipeline.reset(),this.pipeline.add(r.pt.trimmer,r.pt.stopWordFilter,r.pt.stemmer)},r.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.pt.trimmer=r.trimmerSupport.generateTrimmer(r.pt.wordCharacters),r.Pipeline.registerFunction(r.pt.trimmer,"trimmer-pt"),r.pt.stemmer=(e=r.stemmerSupport.Among,W=r.stemmerSupport.SnowballProgram,s=new function(){var o,i,t,a=[new e("",-1,3),new e("ã",0,1),new e("õ",0,2)],u=[new e("",-1,3),new e("a~",0,1),new e("o~",0,2)],r=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],s=[new e("ante",-1,1),new e("avel",-1,1),new e("ível",-1,1)],n=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],w=[new e("ica",-1,1),new e("ância",-1,1),new e("ência",-1,4),new e("ira",-1,9),new e("adora",-1,1),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,8),new e("eza",-1,1),new e("logía",-1,2),new e("idade",-1,7),new e("ante",-1,1),new e("mente",-1,6),new e("amente",12,5),new e("ável",-1,1),new e("ível",-1,1),new e("ución",-1,3),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,1),new e("imento",-1,1),new e("ivo",-1,8),new e("aça~o",-1,1),new e("ador",-1,1),new e("icas",-1,1),new e("ências",-1,4),new e("iras",-1,9),new e("adoras",-1,1),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,8),new e("ezas",-1,1),new e("logías",-1,2),new e("idades",-1,7),new e("uciones",-1,3),new e("adores",-1,1),new e("antes",-1,1),new e("aço~es",-1,1),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amentos",-1,1),new e("imentos",-1,1),new e("ivos",-1,8)],m=[new e("ada",-1,1),new e("ida",-1,1),new e("ia",-1,1),new e("aria",2,1),new e("eria",2,1),new e("iria",2,1),new e("ara",-1,1),new e("era",-1,1),new e("ira",-1,1),new e("ava",-1,1),new e("asse",-1,1),new e("esse",-1,1),new e("isse",-1,1),new e("aste",-1,1),new e("este",-1,1),new e("iste",-1,1),new e("ei",-1,1),new e("arei",16,1),new e("erei",16,1),new e("irei",16,1),new e("am",-1,1),new e("iam",20,1),new e("ariam",21,1),new e("eriam",21,1),new e("iriam",21,1),new e("aram",20,1),new e("eram",20,1),new e("iram",20,1),new e("avam",20,1),new e("em",-1,1),new e("arem",29,1),new e("erem",29,1),new e("irem",29,1),new e("assem",29,1),new e("essem",29,1),new e("issem",29,1),new e("ado",-1,1),new e("ido",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("indo",-1,1),new e("ara~o",-1,1),new e("era~o",-1,1),new e("ira~o",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("ir",-1,1),new e("as",-1,1),new e("adas",47,1),new e("idas",47,1),new e("ias",47,1),new e("arias",50,1),new e("erias",50,1),new e("irias",50,1),new e("aras",47,1),new e("eras",47,1),new e("iras",47,1),new e("avas",47,1),new e("es",-1,1),new e("ardes",58,1),new e("erdes",58,1),new e("irdes",58,1),new e("ares",58,1),new e("eres",58,1),new e("ires",58,1),new e("asses",58,1),new e("esses",58,1),new e("isses",58,1),new e("astes",58,1),new e("estes",58,1),new e("istes",58,1),new e("is",-1,1),new e("ais",71,1),new e("eis",71,1),new e("areis",73,1),new e("ereis",73,1),new e("ireis",73,1),new e("áreis",73,1),new e("éreis",73,1),new e("íreis",73,1),new e("ásseis",73,1),new e("ésseis",73,1),new e("ísseis",73,1),new e("áveis",73,1),new e("íeis",73,1),new e("aríeis",84,1),new e("eríeis",84,1),new e("iríeis",84,1),new e("ados",-1,1),new e("idos",-1,1),new e("amos",-1,1),new e("áramos",90,1),new e("éramos",90,1),new e("íramos",90,1),new e("ávamos",90,1),new e("íamos",90,1),new e("aríamos",95,1),new e("eríamos",95,1),new e("iríamos",95,1),new e("emos",-1,1),new e("aremos",99,1),new e("eremos",99,1),new e("iremos",99,1),new e("ássemos",99,1),new e("êssemos",99,1),new e("íssemos",99,1),new e("imos",-1,1),new e("armos",-1,1),new e("ermos",-1,1),new e("irmos",-1,1),new e("ámos",-1,1),new e("arás",-1,1),new e("erás",-1,1),new e("irás",-1,1),new e("eu",-1,1),new e("iu",-1,1),new e("ou",-1,1),new e("ará",-1,1),new e("erá",-1,1),new e("irá",-1,1)],c=[new e("a",-1,1),new e("i",-1,1),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("í",-1,1),new e("ó",-1,1)],l=[new e("e",-1,1),new e("ç",-1,2),new e("é",-1,1),new e("ê",-1,1)],f=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],d=new W;function p(){if(!d.out_grouping(f,97,250))return 1;for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return 1;d.cursor++}}function v(){var e,r=d.cursor;if(d.in_grouping(f,97,250))if(e=d.cursor,p()){if(d.cursor=e,function(){if(d.in_grouping(f,97,250))for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}return t=d.cursor,1}())return}else t=d.cursor;if(d.cursor=r,d.out_grouping(f,97,250)){if(e=d.cursor,p()){if(d.cursor=e,!d.in_grouping(f,97,250)||d.cursor>=d.limit)return;d.cursor++}t=d.cursor}}function _(){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return;d.cursor++}return 1}function h(){return t<=d.cursor}function b(){return o<=d.cursor}function g(){var e;if(d.ket=d.cursor,e=d.find_among_b(w,45)){switch(d.bra=d.cursor,e){case 1:if(!b())return;d.slice_del();break;case 2:if(!b())return;d.slice_from("log");break;case 3:if(!b())return;d.slice_from("u");break;case 4:if(!b())return;d.slice_from("ente");break;case 5:if(!(i<=d.cursor))return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(r,4))&&(d.bra=d.cursor,b())&&(d.slice_del(),1==e)&&(d.ket=d.cursor,d.eq_s_b(2,"at"))&&(d.bra=d.cursor,b())&&d.slice_del();break;case 6:if(!b())return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(s,3))&&(d.bra=d.cursor,1==e)&&b()&&d.slice_del();break;case 7:if(!b())return;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(n,3))&&(d.bra=d.cursor,1==e)&&b()&&d.slice_del();break;case 8:if(!b())return;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b())&&d.slice_del();break;case 9:if(!h()||!d.eq_s_b(1,"e"))return;d.slice_from("ir")}return 1}}function k(e,r){if(d.eq_s_b(1,e)){d.bra=d.cursor;e=d.limit-d.cursor;if(d.eq_s_b(1,r))return d.cursor=d.limit-e,void(h()&&d.slice_del())}return 1}function q(){var e;g()||(d.cursor=d.limit,function(){var e,r;if(d.cursor>=t){if(r=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,e=d.find_among_b(m,120))return d.bra=d.cursor,1==e&&d.slice_del(),d.limit_backward=r,1;d.limit_backward=r}}())?(d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"i")&&(d.bra=d.cursor,d.eq_s_b(1,"c"))&&(d.cursor=d.limit,h())&&d.slice_del()):(d.cursor=d.limit,d.ket=d.cursor,(e=d.find_among_b(c,7))&&(d.bra=d.cursor,1==e)&&h()&&d.slice_del())}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){for(var e,r,s,n=d.cursor;;){if(d.bra=d.cursor,e=d.find_among(a,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("a~");continue;case 2:d.slice_from("o~");continue;case 3:if(!(d.cursor>=d.limit)){d.cursor++;continue}}break}if(d.cursor=n,r=d.cursor,t=d.limit,o=i=t,v(),d.cursor=r,_()&&(i=d.cursor,_())&&(o=d.cursor),d.limit_backward=n,d.cursor=d.limit,q(),d.cursor=d.limit,d.ket=d.cursor,r=d.find_among_b(l,4))switch(d.bra=d.cursor,r){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.limit,d.cursor,k("u","g"))&&k("i","c");break;case 2:d.slice_from("c")}for(d.cursor=d.limit_backward;;){if(d.bra=d.cursor,s=d.find_among(u,3))switch(d.ket=d.cursor,s){case 1:d.slice_from("ã");continue;case 2:d.slice_from("õ");continue;case 3:if(!(d.cursor>=d.limit)){d.cursor++;continue}}break}return!0}},function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}),r.Pipeline.registerFunction(r.pt.stemmer,"stemmer-pt"),r.pt.stopWordFilter=function(e){if(-1===r.pt.stopWordFilter.stopWords.indexOf(e))return e},r.pt.stopWordFilter.stopWords=new r.SortedSet,r.pt.stopWordFilter.stopWords.length=204,r.pt.stopWordFilter.stopWords.elements=" a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" "),r.Pipeline.registerFunction(r.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/js/lunr.ro.js b/js/lunr.ro.js new file mode 100644 index 0000000..845497f --- /dev/null +++ b/js/lunr.ro.js @@ -0,0 +1,554 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.ro = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.ro.trimmer, + lunr.ro.stopWordFilter, + lunr.ro.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.ro.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.ro.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ro.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.ro.trimmer, 'trimmer-ro'); + + /* lunr stemmer function */ + lunr.ro.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function RomanianStemmer() { + var a_0 = [new Among("", -1, 3), new Among("I", 0, 1), new Among("U", 0, 2)], + a_1 = [ + new Among("ea", -1, 3), new Among("a\u0163ia", -1, 7), + new Among("aua", -1, 2), new Among("iua", -1, 4), + new Among("a\u0163ie", -1, 7), new Among("ele", -1, 3), + new Among("ile", -1, 5), new Among("iile", 6, 4), + new Among("iei", -1, 4), new Among("atei", -1, 6), + new Among("ii", -1, 4), new Among("ului", -1, 1), + new Among("ul", -1, 1), new Among("elor", -1, 3), + new Among("ilor", -1, 4), new Among("iilor", 14, 4) + ], + a_2 = [ + new Among("icala", -1, 4), new Among("iciva", -1, 4), + new Among("ativa", -1, 5), new Among("itiva", -1, 6), + new Among("icale", -1, 4), new Among("a\u0163iune", -1, 5), + new Among("i\u0163iune", -1, 6), new Among("atoare", -1, 5), + new Among("itoare", -1, 6), new Among("\u0103toare", -1, 5), + new Among("icitate", -1, 4), new Among("abilitate", -1, 1), + new Among("ibilitate", -1, 2), new Among("ivitate", -1, 3), + new Among("icive", -1, 4), new Among("ative", -1, 5), + new Among("itive", -1, 6), new Among("icali", -1, 4), + new Among("atori", -1, 5), new Among("icatori", 18, 4), + new Among("itori", -1, 6), new Among("\u0103tori", -1, 5), + new Among("icitati", -1, 4), new Among("abilitati", -1, 1), + new Among("ivitati", -1, 3), new Among("icivi", -1, 4), + new Among("ativi", -1, 5), new Among("itivi", -1, 6), + new Among("icit\u0103i", -1, 4), new Among("abilit\u0103i", -1, 1), + new Among("ivit\u0103i", -1, 3), + new Among("icit\u0103\u0163i", -1, 4), + new Among("abilit\u0103\u0163i", -1, 1), + new Among("ivit\u0103\u0163i", -1, 3), new Among("ical", -1, 4), + new Among("ator", -1, 5), new Among("icator", 35, 4), + new Among("itor", -1, 6), new Among("\u0103tor", -1, 5), + new Among("iciv", -1, 4), new Among("ativ", -1, 5), + new Among("itiv", -1, 6), new Among("ical\u0103", -1, 4), + new Among("iciv\u0103", -1, 4), new Among("ativ\u0103", -1, 5), + new Among("itiv\u0103", -1, 6) + ], + a_3 = [new Among("ica", -1, 1), + new Among("abila", -1, 1), new Among("ibila", -1, 1), + new Among("oasa", -1, 1), new Among("ata", -1, 1), + new Among("ita", -1, 1), new Among("anta", -1, 1), + new Among("ista", -1, 3), new Among("uta", -1, 1), + new Among("iva", -1, 1), new Among("ic", -1, 1), + new Among("ice", -1, 1), new Among("abile", -1, 1), + new Among("ibile", -1, 1), new Among("isme", -1, 3), + new Among("iune", -1, 2), new Among("oase", -1, 1), + new Among("ate", -1, 1), new Among("itate", 17, 1), + new Among("ite", -1, 1), new Among("ante", -1, 1), + new Among("iste", -1, 3), new Among("ute", -1, 1), + new Among("ive", -1, 1), new Among("ici", -1, 1), + new Among("abili", -1, 1), new Among("ibili", -1, 1), + new Among("iuni", -1, 2), new Among("atori", -1, 1), + new Among("osi", -1, 1), new Among("ati", -1, 1), + new Among("itati", 30, 1), new Among("iti", -1, 1), + new Among("anti", -1, 1), new Among("isti", -1, 3), + new Among("uti", -1, 1), new Among("i\u015Fti", -1, 3), + new Among("ivi", -1, 1), new Among("it\u0103i", -1, 1), + new Among("o\u015Fi", -1, 1), new Among("it\u0103\u0163i", -1, 1), + new Among("abil", -1, 1), new Among("ibil", -1, 1), + new Among("ism", -1, 3), new Among("ator", -1, 1), + new Among("os", -1, 1), new Among("at", -1, 1), + new Among("it", -1, 1), new Among("ant", -1, 1), + new Among("ist", -1, 3), new Among("ut", -1, 1), + new Among("iv", -1, 1), new Among("ic\u0103", -1, 1), + new Among("abil\u0103", -1, 1), new Among("ibil\u0103", -1, 1), + new Among("oas\u0103", -1, 1), new Among("at\u0103", -1, 1), + new Among("it\u0103", -1, 1), new Among("ant\u0103", -1, 1), + new Among("ist\u0103", -1, 3), new Among("ut\u0103", -1, 1), + new Among("iv\u0103", -1, 1) + ], + a_4 = [new Among("ea", -1, 1), + new Among("ia", -1, 1), new Among("esc", -1, 1), + new Among("\u0103sc", -1, 1), new Among("ind", -1, 1), + new Among("\u00E2nd", -1, 1), new Among("are", -1, 1), + new Among("ere", -1, 1), new Among("ire", -1, 1), + new Among("\u00E2re", -1, 1), new Among("se", -1, 2), + new Among("ase", 10, 1), new Among("sese", 10, 2), + new Among("ise", 10, 1), new Among("use", 10, 1), + new Among("\u00E2se", 10, 1), new Among("e\u015Fte", -1, 1), + new Among("\u0103\u015Fte", -1, 1), new Among("eze", -1, 1), + new Among("ai", -1, 1), new Among("eai", 19, 1), + new Among("iai", 19, 1), new Among("sei", -1, 2), + new Among("e\u015Fti", -1, 1), new Among("\u0103\u015Fti", -1, 1), + new Among("ui", -1, 1), new Among("ezi", -1, 1), + new Among("\u00E2i", -1, 1), new Among("a\u015Fi", -1, 1), + new Among("se\u015Fi", -1, 2), new Among("ase\u015Fi", 29, 1), + new Among("sese\u015Fi", 29, 2), new Among("ise\u015Fi", 29, 1), + new Among("use\u015Fi", 29, 1), + new Among("\u00E2se\u015Fi", 29, 1), new Among("i\u015Fi", -1, 1), + new Among("u\u015Fi", -1, 1), new Among("\u00E2\u015Fi", -1, 1), + new Among("a\u0163i", -1, 2), new Among("ea\u0163i", 38, 1), + new Among("ia\u0163i", 38, 1), new Among("e\u0163i", -1, 2), + new Among("i\u0163i", -1, 2), new Among("\u00E2\u0163i", -1, 2), + new Among("ar\u0103\u0163i", -1, 1), + new Among("ser\u0103\u0163i", -1, 2), + new Among("aser\u0103\u0163i", 45, 1), + new Among("seser\u0103\u0163i", 45, 2), + new Among("iser\u0103\u0163i", 45, 1), + new Among("user\u0103\u0163i", 45, 1), + new Among("\u00E2ser\u0103\u0163i", 45, 1), + new Among("ir\u0103\u0163i", -1, 1), + new Among("ur\u0103\u0163i", -1, 1), + new Among("\u00E2r\u0103\u0163i", -1, 1), new Among("am", -1, 1), + new Among("eam", 54, 1), new Among("iam", 54, 1), + new Among("em", -1, 2), new Among("asem", 57, 1), + new Among("sesem", 57, 2), new Among("isem", 57, 1), + new Among("usem", 57, 1), new Among("\u00E2sem", 57, 1), + new Among("im", -1, 2), new Among("\u00E2m", -1, 2), + new Among("\u0103m", -1, 2), new Among("ar\u0103m", 65, 1), + new Among("ser\u0103m", 65, 2), new Among("aser\u0103m", 67, 1), + new Among("seser\u0103m", 67, 2), new Among("iser\u0103m", 67, 1), + new Among("user\u0103m", 67, 1), + new Among("\u00E2ser\u0103m", 67, 1), + new Among("ir\u0103m", 65, 1), new Among("ur\u0103m", 65, 1), + new Among("\u00E2r\u0103m", 65, 1), new Among("au", -1, 1), + new Among("eau", 76, 1), new Among("iau", 76, 1), + new Among("indu", -1, 1), new Among("\u00E2ndu", -1, 1), + new Among("ez", -1, 1), new Among("easc\u0103", -1, 1), + new Among("ar\u0103", -1, 1), new Among("ser\u0103", -1, 2), + new Among("aser\u0103", 84, 1), new Among("seser\u0103", 84, 2), + new Among("iser\u0103", 84, 1), new Among("user\u0103", 84, 1), + new Among("\u00E2ser\u0103", 84, 1), new Among("ir\u0103", -1, 1), + new Among("ur\u0103", -1, 1), new Among("\u00E2r\u0103", -1, 1), + new Among("eaz\u0103", -1, 1) + ], + a_5 = [new Among("a", -1, 1), + new Among("e", -1, 1), new Among("ie", 1, 1), + new Among("i", -1, 1), new Among("\u0103", -1, 1) + ], + g_v = [17, 65, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 + ], + B_standard_suffix_removed, I_p2, I_p1, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(c1, c2) { + if (sbp.eq_s(1, c1)) { + sbp.ket = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 259)) + sbp.slice_from(c2); + } + } + + function r_prelude() { + var v_1, v_2; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 259)) { + v_2 = sbp.cursor; + sbp.bra = v_2; + habr1("u", "U"); + sbp.cursor = v_2; + habr1("i", "I"); + } + sbp.cursor = v_1; + if (sbp.cursor >= sbp.limit) { + break; + } + sbp.cursor++; + } + } + + function habr2() { + if (sbp.out_grouping(g_v, 97, 259)) { + while (!sbp.in_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + return false; + } + return true; + } + + function habr3() { + if (sbp.in_grouping(g_v, 97, 259)) { + while (!sbp.out_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + } + return false; + } + + function habr4() { + var v_1 = sbp.cursor, + v_2, v_3; + if (sbp.in_grouping(g_v, 97, 259)) { + v_2 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_2; + if (!habr3()) { + I_pV = sbp.cursor; + return; + } + } else { + I_pV = sbp.cursor; + return; + } + } + sbp.cursor = v_1; + if (sbp.out_grouping(g_v, 97, 259)) { + v_3 = sbp.cursor; + if (habr2()) { + sbp.cursor = v_3; + if (sbp.in_grouping(g_v, 97, 259) && sbp.cursor < sbp.limit) + sbp.cursor++; + } + I_pV = sbp.cursor; + } + } + + function habr5() { + while (!sbp.in_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 259)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + var v_1 = sbp.cursor; + I_pV = sbp.limit; + I_p1 = I_pV; + I_p2 = I_pV; + habr4(); + sbp.cursor = v_1; + if (habr5()) { + I_p1 = sbp.cursor; + if (habr5()) + I_p2 = sbp.cursor; + } + } + + function r_postlude() { + var among_var; + while (true) { + sbp.bra = sbp.cursor; + among_var = sbp.find_among(a_0, 3); + if (among_var) { + sbp.ket = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("i"); + continue; + case 2: + sbp.slice_from("u"); + continue; + case 3: + if (sbp.cursor >= sbp.limit) + break; + sbp.cursor++; + continue; + } + } + break; + } + } + + function r_RV() { + return I_pV <= sbp.cursor; + } + + function r_R1() { + return I_p1 <= sbp.cursor; + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function r_step_0() { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_1, 16); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("a"); + break; + case 3: + sbp.slice_from("e"); + break; + case 4: + sbp.slice_from("i"); + break; + case 5: + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(2, "ab")) { + sbp.cursor = sbp.limit - v_1; + sbp.slice_from("i"); + } + break; + case 6: + sbp.slice_from("at"); + break; + case 7: + sbp.slice_from("a\u0163i"); + break; + } + } + } + } + + function r_combo_suffix() { + var among_var, v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 46); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R1()) { + switch (among_var) { + case 1: + sbp.slice_from("abil"); + break; + case 2: + sbp.slice_from("ibil"); + break; + case 3: + sbp.slice_from("iv"); + break; + case 4: + sbp.slice_from("ic"); + break; + case 5: + sbp.slice_from("at"); + break; + case 6: + sbp.slice_from("it"); + break; + } + B_standard_suffix_removed = true; + sbp.cursor = sbp.limit - v_1; + return true; + } + } + return false; + } + + function r_standard_suffix() { + var among_var, v_1; + B_standard_suffix_removed = false; + while (true) { + v_1 = sbp.limit - sbp.cursor; + if (!r_combo_suffix()) { + sbp.cursor = sbp.limit - v_1; + break; + } + } + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_3, 62); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2()) { + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.eq_s_b(1, "\u0163")) { + sbp.bra = sbp.cursor; + sbp.slice_from("t"); + } + break; + case 3: + sbp.slice_from("ist"); + break; + } + B_standard_suffix_removed = true; + } + } + } + + function r_verb_suffix() { + var among_var, v_1, v_2; + if (sbp.cursor >= I_pV) { + v_1 = sbp.limit_backward; + sbp.limit_backward = I_pV; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_4, 94); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_2 = sbp.limit - sbp.cursor; + if (!sbp.out_grouping_b(g_v, 97, 259)) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, "u")) + break; + } + case 2: + sbp.slice_del(); + break; + } + } + sbp.limit_backward = v_1; + } + } + + function r_vowel_suffix() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_5, 5); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_RV() && among_var == 1) + sbp.slice_del(); + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_prelude(); + sbp.cursor = v_1; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_step_0(); + sbp.cursor = sbp.limit; + r_standard_suffix(); + sbp.cursor = sbp.limit; + if (!B_standard_suffix_removed) { + sbp.cursor = sbp.limit; + r_verb_suffix(); + sbp.cursor = sbp.limit; + } + r_vowel_suffix(); + sbp.cursor = sbp.limit_backward; + r_postlude(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.ro.stemmer, 'stemmer-ro'); + + /* stop word filter function */ + lunr.ro.stopWordFilter = function(token) { + if (lunr.ro.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.ro.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.ro.stopWordFilter.stopWords.length = 282; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.ro.stopWordFilter.stopWords.elements = ' acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie'.split(' '); + + lunr.Pipeline.registerFunction(lunr.ro.stopWordFilter, 'stopWordFilter-ro'); + }; +})) \ No newline at end of file diff --git a/js/lunr.ro.min.js b/js/lunr.ro.min.js new file mode 100644 index 0000000..0f38816 --- /dev/null +++ b/js/lunr.ro.min.js @@ -0,0 +1 @@ +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,a,r;i.ro=function(){this.pipeline.reset(),this.pipeline.add(i.ro.trimmer,i.ro.stopWordFilter,i.ro.stemmer)},i.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.ro.trimmer=i.trimmerSupport.generateTrimmer(i.ro.wordCharacters),i.Pipeline.registerFunction(i.ro.trimmer,"trimmer-ro"),i.ro.stemmer=(e=i.stemmerSupport.Among,a=i.stemmerSupport.SnowballProgram,r=new function(){var s,c,u,w,m=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],l=[new e("ea",-1,3),new e("aţia",-1,7),new e("aua",-1,2),new e("iua",-1,4),new e("aţie",-1,7),new e("ele",-1,3),new e("ile",-1,5),new e("iile",6,4),new e("iei",-1,4),new e("atei",-1,6),new e("ii",-1,4),new e("ului",-1,1),new e("ul",-1,1),new e("elor",-1,3),new e("ilor",-1,4),new e("iilor",14,4)],r=[new e("icala",-1,4),new e("iciva",-1,4),new e("ativa",-1,5),new e("itiva",-1,6),new e("icale",-1,4),new e("aţiune",-1,5),new e("iţiune",-1,6),new e("atoare",-1,5),new e("itoare",-1,6),new e("ătoare",-1,5),new e("icitate",-1,4),new e("abilitate",-1,1),new e("ibilitate",-1,2),new e("ivitate",-1,3),new e("icive",-1,4),new e("ative",-1,5),new e("itive",-1,6),new e("icali",-1,4),new e("atori",-1,5),new e("icatori",18,4),new e("itori",-1,6),new e("ători",-1,5),new e("icitati",-1,4),new e("abilitati",-1,1),new e("ivitati",-1,3),new e("icivi",-1,4),new e("ativi",-1,5),new e("itivi",-1,6),new e("icităi",-1,4),new e("abilităi",-1,1),new e("ivităi",-1,3),new e("icităţi",-1,4),new e("abilităţi",-1,1),new e("ivităţi",-1,3),new e("ical",-1,4),new e("ator",-1,5),new e("icator",35,4),new e("itor",-1,6),new e("ător",-1,5),new e("iciv",-1,4),new e("ativ",-1,5),new e("itiv",-1,6),new e("icală",-1,4),new e("icivă",-1,4),new e("ativă",-1,5),new e("itivă",-1,6)],n=[new e("ica",-1,1),new e("abila",-1,1),new e("ibila",-1,1),new e("oasa",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("anta",-1,1),new e("ista",-1,3),new e("uta",-1,1),new e("iva",-1,1),new e("ic",-1,1),new e("ice",-1,1),new e("abile",-1,1),new e("ibile",-1,1),new e("isme",-1,3),new e("iune",-1,2),new e("oase",-1,1),new e("ate",-1,1),new e("itate",17,1),new e("ite",-1,1),new e("ante",-1,1),new e("iste",-1,3),new e("ute",-1,1),new e("ive",-1,1),new e("ici",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("iuni",-1,2),new e("atori",-1,1),new e("osi",-1,1),new e("ati",-1,1),new e("itati",30,1),new e("iti",-1,1),new e("anti",-1,1),new e("isti",-1,3),new e("uti",-1,1),new e("işti",-1,3),new e("ivi",-1,1),new e("ităi",-1,1),new e("oşi",-1,1),new e("ităţi",-1,1),new e("abil",-1,1),new e("ibil",-1,1),new e("ism",-1,3),new e("ator",-1,1),new e("os",-1,1),new e("at",-1,1),new e("it",-1,1),new e("ant",-1,1),new e("ist",-1,3),new e("ut",-1,1),new e("iv",-1,1),new e("ică",-1,1),new e("abilă",-1,1),new e("ibilă",-1,1),new e("oasă",-1,1),new e("ată",-1,1),new e("ită",-1,1),new e("antă",-1,1),new e("istă",-1,3),new e("ută",-1,1),new e("ivă",-1,1)],f=[new e("ea",-1,1),new e("ia",-1,1),new e("esc",-1,1),new e("ăsc",-1,1),new e("ind",-1,1),new e("ând",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("âre",-1,1),new e("se",-1,2),new e("ase",10,1),new e("sese",10,2),new e("ise",10,1),new e("use",10,1),new e("âse",10,1),new e("eşte",-1,1),new e("ăşte",-1,1),new e("eze",-1,1),new e("ai",-1,1),new e("eai",19,1),new e("iai",19,1),new e("sei",-1,2),new e("eşti",-1,1),new e("ăşti",-1,1),new e("ui",-1,1),new e("ezi",-1,1),new e("âi",-1,1),new e("aşi",-1,1),new e("seşi",-1,2),new e("aseşi",29,1),new e("seseşi",29,2),new e("iseşi",29,1),new e("useşi",29,1),new e("âseşi",29,1),new e("işi",-1,1),new e("uşi",-1,1),new e("âşi",-1,1),new e("aţi",-1,2),new e("eaţi",38,1),new e("iaţi",38,1),new e("eţi",-1,2),new e("iţi",-1,2),new e("âţi",-1,2),new e("arăţi",-1,1),new e("serăţi",-1,2),new e("aserăţi",45,1),new e("seserăţi",45,2),new e("iserăţi",45,1),new e("userăţi",45,1),new e("âserăţi",45,1),new e("irăţi",-1,1),new e("urăţi",-1,1),new e("ârăţi",-1,1),new e("am",-1,1),new e("eam",54,1),new e("iam",54,1),new e("em",-1,2),new e("asem",57,1),new e("sesem",57,2),new e("isem",57,1),new e("usem",57,1),new e("âsem",57,1),new e("im",-1,2),new e("âm",-1,2),new e("ăm",-1,2),new e("arăm",65,1),new e("serăm",65,2),new e("aserăm",67,1),new e("seserăm",67,2),new e("iserăm",67,1),new e("userăm",67,1),new e("âserăm",67,1),new e("irăm",65,1),new e("urăm",65,1),new e("ârăm",65,1),new e("au",-1,1),new e("eau",76,1),new e("iau",76,1),new e("indu",-1,1),new e("ându",-1,1),new e("ez",-1,1),new e("ească",-1,1),new e("ară",-1,1),new e("seră",-1,2),new e("aseră",84,1),new e("seseră",84,2),new e("iseră",84,1),new e("useră",84,1),new e("âseră",84,1),new e("iră",-1,1),new e("ură",-1,1),new e("âră",-1,1),new e("ează",-1,1)],i=[new e("a",-1,1),new e("e",-1,1),new e("ie",1,1),new e("i",-1,1),new e("ă",-1,1)],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],p=new a;function b(e,i){p.eq_s(1,e)&&(p.ket=p.cursor,p.in_grouping(d,97,259))&&p.slice_from(i)}function t(){if(!p.out_grouping(d,97,259))return 1;for(;!p.in_grouping(d,97,259);){if(p.cursor>=p.limit)return 1;p.cursor++}}function v(){var e,i=p.cursor;if(p.in_grouping(d,97,259)){if(e=p.cursor,!t())return void(w=p.cursor);if(p.cursor=e,!function(){if(p.in_grouping(d,97,259))for(;!p.out_grouping(d,97,259);){if(p.cursor>=p.limit)return 1;p.cursor++}}())return void(w=p.cursor)}p.cursor=i,p.out_grouping(d,97,259)&&(e=p.cursor,t()&&(p.cursor=e,p.in_grouping(d,97,259))&&p.cursor=p.limit)return;p.cursor++}for(;!p.out_grouping(d,97,259);){if(p.cursor>=p.limit)return;p.cursor++}return 1}function g(){return u<=p.cursor}function k(){var e,i;for(s=!1;;)if(i=p.limit-p.cursor,!function(){var e,i=p.limit-p.cursor;if(p.ket=p.cursor,(e=p.find_among_b(r,46))&&(p.bra=p.cursor,g())){switch(e){case 1:p.slice_from("abil");break;case 2:p.slice_from("ibil");break;case 3:p.slice_from("iv");break;case 4:p.slice_from("ic");break;case 5:p.slice_from("at");break;case 6:p.slice_from("it")}return s=!0,p.cursor=p.limit-i,1}}()){p.cursor=p.limit-i;break}if(p.ket=p.cursor,(e=p.find_among_b(n,62))&&(p.bra=p.cursor,c<=p.cursor)){switch(e){case 1:p.slice_del();break;case 2:p.eq_s_b(1,"ţ")&&(p.bra=p.cursor,p.slice_from("t"));break;case 3:p.slice_from("ist")}s=!0}}function h(){var e;p.ket=p.cursor,(e=p.find_among_b(i,5))&&(p.bra=p.cursor,w<=p.cursor)&&1==e&&p.slice_del()}this.setCurrent=function(e){p.setCurrent(e)},this.getCurrent=function(){return p.getCurrent()},this.stem=function(){for(var e,i,r,n,t,a,o=p.cursor;e=p.cursor,p.in_grouping(d,97,259)&&(i=p.cursor,p.bra=i,b("u","U"),p.cursor=i,b("i","I")),p.cursor=e,!(p.cursor>=p.limit);)p.cursor++;if(p.cursor=o,n=p.cursor,w=p.limit,c=u=w,v(),p.cursor=n,_()&&(u=p.cursor,_())&&(c=p.cursor),p.limit_backward=o,p.cursor=p.limit,p.ket=p.cursor,(n=p.find_among_b(l,16))&&(p.bra=p.cursor,g()))switch(n){case 1:p.slice_del();break;case 2:p.slice_from("a");break;case 3:p.slice_from("e");break;case 4:p.slice_from("i");break;case 5:r=p.limit-p.cursor,p.eq_s_b(2,"ab")||(p.cursor=p.limit-r,p.slice_from("i"));break;case 6:p.slice_from("at");break;case 7:p.slice_from("aţi")}if(p.cursor=p.limit,k(),p.cursor=p.limit,!s){if(p.cursor=p.limit,p.cursor>=w){if(o=p.limit_backward,p.limit_backward=w,p.ket=p.cursor,n=p.find_among_b(f,94))switch(p.bra=p.cursor,n){case 1:if(t=p.limit-p.cursor,!p.out_grouping_b(d,97,259)&&(p.cursor=p.limit-t,!p.eq_s_b(1,"u")))break;case 2:p.slice_del()}p.limit_backward=o}p.cursor=p.limit}for(h(),p.cursor=p.limit_backward;;){if(p.bra=p.cursor,a=p.find_among(m,3))switch(p.ket=p.cursor,a){case 1:p.slice_from("i");continue;case 2:p.slice_from("u");continue;case 3:if(!(p.cursor>=p.limit)){p.cursor++;continue}}break}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),i.Pipeline.registerFunction(i.ro.stemmer,"stemmer-ro"),i.ro.stopWordFilter=function(e){if(-1===i.ro.stopWordFilter.stopWords.indexOf(e))return e},i.ro.stopWordFilter.stopWords=new i.SortedSet,i.ro.stopWordFilter.stopWords.length=282,i.ro.stopWordFilter.stopWords.elements=" acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" "),i.Pipeline.registerFunction(i.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/js/lunr.ru.js b/js/lunr.ru.js new file mode 100644 index 0000000..7d57236 --- /dev/null +++ b/js/lunr.ru.js @@ -0,0 +1,387 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.ru = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.ru.trimmer, + lunr.ru.stopWordFilter, + lunr.ru.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.ru.wordCharacters = "\u0400-\u0484\u0487-\u052F\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F"; + lunr.ru.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ru.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.ru.trimmer, 'trimmer-ru'); + + /* lunr stemmer function */ + lunr.ru.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function RussianStemmer() { + var a_0 = [new Among("\u0432", -1, 1), new Among("\u0438\u0432", 0, 2), + new Among("\u044B\u0432", 0, 2), + new Among("\u0432\u0448\u0438", -1, 1), + new Among("\u0438\u0432\u0448\u0438", 3, 2), + new Among("\u044B\u0432\u0448\u0438", 3, 2), + new Among("\u0432\u0448\u0438\u0441\u044C", -1, 1), + new Among("\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2), + new Among("\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2) + ], + a_1 = [ + new Among("\u0435\u0435", -1, 1), new Among("\u0438\u0435", -1, 1), + new Among("\u043E\u0435", -1, 1), new Among("\u044B\u0435", -1, 1), + new Among("\u0438\u043C\u0438", -1, 1), + new Among("\u044B\u043C\u0438", -1, 1), + new Among("\u0435\u0439", -1, 1), new Among("\u0438\u0439", -1, 1), + new Among("\u043E\u0439", -1, 1), new Among("\u044B\u0439", -1, 1), + new Among("\u0435\u043C", -1, 1), new Among("\u0438\u043C", -1, 1), + new Among("\u043E\u043C", -1, 1), new Among("\u044B\u043C", -1, 1), + new Among("\u0435\u0433\u043E", -1, 1), + new Among("\u043E\u0433\u043E", -1, 1), + new Among("\u0435\u043C\u0443", -1, 1), + new Among("\u043E\u043C\u0443", -1, 1), + new Among("\u0438\u0445", -1, 1), new Among("\u044B\u0445", -1, 1), + new Among("\u0435\u044E", -1, 1), new Among("\u043E\u044E", -1, 1), + new Among("\u0443\u044E", -1, 1), new Among("\u044E\u044E", -1, 1), + new Among("\u0430\u044F", -1, 1), new Among("\u044F\u044F", -1, 1) + ], + a_2 = [ + new Among("\u0435\u043C", -1, 1), new Among("\u043D\u043D", -1, 1), + new Among("\u0432\u0448", -1, 1), + new Among("\u0438\u0432\u0448", 2, 2), + new Among("\u044B\u0432\u0448", 2, 2), new Among("\u0449", -1, 1), + new Among("\u044E\u0449", 5, 1), + new Among("\u0443\u044E\u0449", 6, 2) + ], + a_3 = [ + new Among("\u0441\u044C", -1, 1), new Among("\u0441\u044F", -1, 1) + ], + a_4 = [ + new Among("\u043B\u0430", -1, 1), + new Among("\u0438\u043B\u0430", 0, 2), + new Among("\u044B\u043B\u0430", 0, 2), + new Among("\u043D\u0430", -1, 1), + new Among("\u0435\u043D\u0430", 3, 2), + new Among("\u0435\u0442\u0435", -1, 1), + new Among("\u0438\u0442\u0435", -1, 2), + new Among("\u0439\u0442\u0435", -1, 1), + new Among("\u0435\u0439\u0442\u0435", 7, 2), + new Among("\u0443\u0439\u0442\u0435", 7, 2), + new Among("\u043B\u0438", -1, 1), + new Among("\u0438\u043B\u0438", 10, 2), + new Among("\u044B\u043B\u0438", 10, 2), new Among("\u0439", -1, 1), + new Among("\u0435\u0439", 13, 2), new Among("\u0443\u0439", 13, 2), + new Among("\u043B", -1, 1), new Among("\u0438\u043B", 16, 2), + new Among("\u044B\u043B", 16, 2), new Among("\u0435\u043C", -1, 1), + new Among("\u0438\u043C", -1, 2), new Among("\u044B\u043C", -1, 2), + new Among("\u043D", -1, 1), new Among("\u0435\u043D", 22, 2), + new Among("\u043B\u043E", -1, 1), + new Among("\u0438\u043B\u043E", 24, 2), + new Among("\u044B\u043B\u043E", 24, 2), + new Among("\u043D\u043E", -1, 1), + new Among("\u0435\u043D\u043E", 27, 2), + new Among("\u043D\u043D\u043E", 27, 1), + new Among("\u0435\u0442", -1, 1), + new Among("\u0443\u0435\u0442", 30, 2), + new Among("\u0438\u0442", -1, 2), new Among("\u044B\u0442", -1, 2), + new Among("\u044E\u0442", -1, 1), + new Among("\u0443\u044E\u0442", 34, 2), + new Among("\u044F\u0442", -1, 2), new Among("\u043D\u044B", -1, 1), + new Among("\u0435\u043D\u044B", 37, 2), + new Among("\u0442\u044C", -1, 1), + new Among("\u0438\u0442\u044C", 39, 2), + new Among("\u044B\u0442\u044C", 39, 2), + new Among("\u0435\u0448\u044C", -1, 1), + new Among("\u0438\u0448\u044C", -1, 2), new Among("\u044E", -1, 2), + new Among("\u0443\u044E", 44, 2) + ], + a_5 = [ + new Among("\u0430", -1, 1), new Among("\u0435\u0432", -1, 1), + new Among("\u043E\u0432", -1, 1), new Among("\u0435", -1, 1), + new Among("\u0438\u0435", 3, 1), new Among("\u044C\u0435", 3, 1), + new Among("\u0438", -1, 1), new Among("\u0435\u0438", 6, 1), + new Among("\u0438\u0438", 6, 1), + new Among("\u0430\u043C\u0438", 6, 1), + new Among("\u044F\u043C\u0438", 6, 1), + new Among("\u0438\u044F\u043C\u0438", 10, 1), + new Among("\u0439", -1, 1), new Among("\u0435\u0439", 12, 1), + new Among("\u0438\u0435\u0439", 13, 1), + new Among("\u0438\u0439", 12, 1), new Among("\u043E\u0439", 12, 1), + new Among("\u0430\u043C", -1, 1), new Among("\u0435\u043C", -1, 1), + new Among("\u0438\u0435\u043C", 18, 1), + new Among("\u043E\u043C", -1, 1), new Among("\u044F\u043C", -1, 1), + new Among("\u0438\u044F\u043C", 21, 1), new Among("\u043E", -1, 1), + new Among("\u0443", -1, 1), new Among("\u0430\u0445", -1, 1), + new Among("\u044F\u0445", -1, 1), + new Among("\u0438\u044F\u0445", 26, 1), new Among("\u044B", -1, 1), + new Among("\u044C", -1, 1), new Among("\u044E", -1, 1), + new Among("\u0438\u044E", 30, 1), new Among("\u044C\u044E", 30, 1), + new Among("\u044F", -1, 1), new Among("\u0438\u044F", 33, 1), + new Among("\u044C\u044F", 33, 1) + ], + a_6 = [ + new Among("\u043E\u0441\u0442", -1, 1), + new Among("\u043E\u0441\u0442\u044C", -1, 1) + ], + a_7 = [ + new Among("\u0435\u0439\u0448\u0435", -1, 1), + new Among("\u043D", -1, 2), new Among("\u0435\u0439\u0448", -1, 1), + new Among("\u044C", -1, 3) + ], + g_v = [33, 65, 8, 232], + I_p2, I_pV, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr3() { + while (!sbp.in_grouping(g_v, 1072, 1103)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function habr4() { + while (!sbp.out_grouping(g_v, 1072, 1103)) { + if (sbp.cursor >= sbp.limit) + return false; + sbp.cursor++; + } + return true; + } + + function r_mark_regions() { + I_pV = sbp.limit; + I_p2 = I_pV; + if (habr3()) { + I_pV = sbp.cursor; + if (habr4()) + if (habr3()) + if (habr4()) + I_p2 = sbp.cursor; + } + } + + function r_R2() { + return I_p2 <= sbp.cursor; + } + + function habr2(a, n) { + var among_var, v_1; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "\u0430")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "\u044F")) + return false; + } + case 2: + sbp.slice_del(); + break; + } + return true; + } + return false; + } + + function r_perfective_gerund() { + return habr2(a_0, 9); + } + + function habr1(a, n) { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a, n); + if (among_var) { + sbp.bra = sbp.cursor; + if (among_var == 1) + sbp.slice_del(); + return true; + } + return false; + } + + function r_adjective() { + return habr1(a_1, 26); + } + + function r_adjectival() { + var among_var; + if (r_adjective()) { + habr2(a_2, 8); + return true; + } + return false; + } + + function r_reflexive() { + return habr1(a_3, 2); + } + + function r_verb() { + return habr2(a_4, 46); + } + + function r_noun() { + habr1(a_5, 36); + } + + function r_derivational() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_6, 2); + if (among_var) { + sbp.bra = sbp.cursor; + if (r_R2() && among_var == 1) + sbp.slice_del(); + } + } + + function r_tidy_up() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_7, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (!sbp.eq_s_b(1, "\u043D")) + break; + sbp.bra = sbp.cursor; + case 2: + if (!sbp.eq_s_b(1, "\u043D")) + break; + case 3: + sbp.slice_del(); + break; + } + } + } + this.stem = function() { + r_mark_regions(); + sbp.cursor = sbp.limit; + if (sbp.cursor < I_pV) + return false; + sbp.limit_backward = I_pV; + if (!r_perfective_gerund()) { + sbp.cursor = sbp.limit; + if (!r_reflexive()) + sbp.cursor = sbp.limit; + if (!r_adjectival()) { + sbp.cursor = sbp.limit; + if (!r_verb()) { + sbp.cursor = sbp.limit; + r_noun(); + } + } + } + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.eq_s_b(1, "\u0438")) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else + sbp.cursor = sbp.limit; + r_derivational(); + sbp.cursor = sbp.limit; + r_tidy_up(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.ru.stemmer, 'stemmer-ru'); + + /* stop word filter function */ + lunr.ru.stopWordFilter = function(token) { + if (lunr.ru.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.ru.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.ru.stopWordFilter.stopWords.length = 422; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.ru.stopWordFilter.stopWords.elements = ' алло без близко более больше будем будет будете будешь будто буду будут будь бы бывает бывь был была были было быть в важная важное важные важный вам вами вас ваш ваша ваше ваши вверх вдали вдруг ведь везде весь вниз внизу во вокруг вон восемнадцатый восемнадцать восемь восьмой вот впрочем времени время все всегда всего всем всеми всему всех всею всю всюду вся всё второй вы г где говорил говорит год года году да давно даже далеко дальше даром два двадцатый двадцать две двенадцатый двенадцать двух девятнадцатый девятнадцать девятый девять действительно дел день десятый десять для до довольно долго должно другая другие других друго другое другой е его ее ей ему если есть еще ещё ею её ж же жизнь за занят занята занято заняты затем зато зачем здесь значит и из или им именно иметь ими имя иногда их к каждая каждое каждые каждый кажется как какая какой кем когда кого ком кому конечно которая которого которой которые который которых кроме кругом кто куда лет ли лишь лучше люди м мало между меля менее меньше меня миллионов мимо мира мне много многочисленная многочисленное многочисленные многочисленный мной мною мог могут мож может можно можхо мои мой мор мочь моя моё мы на наверху над надо назад наиболее наконец нам нами нас начала наш наша наше наши не него недавно недалеко нее ней нельзя нем немного нему непрерывно нередко несколько нет нею неё ни нибудь ниже низко никогда никуда ними них ничего но ну нужно нх о об оба обычно один одиннадцатый одиннадцать однажды однако одного одной около он она они оно опять особенно от отовсюду отсюда очень первый перед по под пожалуйста позже пока пор пора после посреди потом потому почему почти прекрасно при про просто против процентов пятнадцатый пятнадцать пятый пять раз разве рано раньше рядом с сам сама сами самим самими самих само самого самой самом самому саму свое своего своей свои своих свою сеаой себе себя сегодня седьмой сейчас семнадцатый семнадцать семь сих сказал сказала сказать сколько слишком сначала снова со собой собою совсем спасибо стал суть т та так такая также такие такое такой там твой твоя твоё те тебе тебя тем теми теперь тех то тобой тобою тогда того тоже только том тому тот тою третий три тринадцатый тринадцать ту туда тут ты тысяч у уж уже уметь хорошо хотеть хоть хотя хочешь часто чаще чего человек чем чему через четвертый четыре четырнадцатый четырнадцать что чтоб чтобы чуть шестнадцатый шестнадцать шестой шесть эта эти этим этими этих это этого этой этом этому этот эту я а'.split(' '); + + lunr.Pipeline.registerFunction(lunr.ru.stopWordFilter, 'stopWordFilter-ru'); + }; +})) \ No newline at end of file diff --git a/js/lunr.ru.min.js b/js/lunr.ru.min.js new file mode 100644 index 0000000..717c438 --- /dev/null +++ b/js/lunr.ru.min.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var g,h,r;n.ru=function(){this.pipeline.reset(),this.pipeline.add(n.ru.trimmer,n.ru.stopWordFilter,n.ru.stemmer)},n.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",n.ru.trimmer=n.trimmerSupport.generateTrimmer(n.ru.wordCharacters),n.Pipeline.registerFunction(n.ru.trimmer,"trimmer-ru"),n.ru.stemmer=(g=n.stemmerSupport.Among,h=n.stemmerSupport.SnowballProgram,r=new function(){var n,r,w=[new g("в",-1,1),new g("ив",0,2),new g("ыв",0,2),new g("вши",-1,1),new g("ивши",3,2),new g("ывши",3,2),new g("вшись",-1,1),new g("ившись",6,2),new g("ывшись",6,2)],e=[new g("ее",-1,1),new g("ие",-1,1),new g("ое",-1,1),new g("ые",-1,1),new g("ими",-1,1),new g("ыми",-1,1),new g("ей",-1,1),new g("ий",-1,1),new g("ой",-1,1),new g("ый",-1,1),new g("ем",-1,1),new g("им",-1,1),new g("ом",-1,1),new g("ым",-1,1),new g("его",-1,1),new g("ого",-1,1),new g("ему",-1,1),new g("ому",-1,1),new g("их",-1,1),new g("ых",-1,1),new g("ею",-1,1),new g("ою",-1,1),new g("ую",-1,1),new g("юю",-1,1),new g("ая",-1,1),new g("яя",-1,1)],t=[new g("ем",-1,1),new g("нн",-1,1),new g("вш",-1,1),new g("ивш",2,2),new g("ывш",2,2),new g("щ",-1,1),new g("ющ",5,1),new g("ующ",6,2)],i=[new g("сь",-1,1),new g("ся",-1,1)],o=[new g("ла",-1,1),new g("ила",0,2),new g("ыла",0,2),new g("на",-1,1),new g("ена",3,2),new g("ете",-1,1),new g("ите",-1,2),new g("йте",-1,1),new g("ейте",7,2),new g("уйте",7,2),new g("ли",-1,1),new g("или",10,2),new g("ыли",10,2),new g("й",-1,1),new g("ей",13,2),new g("уй",13,2),new g("л",-1,1),new g("ил",16,2),new g("ыл",16,2),new g("ем",-1,1),new g("им",-1,2),new g("ым",-1,2),new g("н",-1,1),new g("ен",22,2),new g("ло",-1,1),new g("ило",24,2),new g("ыло",24,2),new g("но",-1,1),new g("ено",27,2),new g("нно",27,1),new g("ет",-1,1),new g("ует",30,2),new g("ит",-1,2),new g("ыт",-1,2),new g("ют",-1,1),new g("уют",34,2),new g("ят",-1,2),new g("ны",-1,1),new g("ены",37,2),new g("ть",-1,1),new g("ить",39,2),new g("ыть",39,2),new g("ешь",-1,1),new g("ишь",-1,2),new g("ю",-1,2),new g("ую",44,2)],u=[new g("а",-1,1),new g("ев",-1,1),new g("ов",-1,1),new g("е",-1,1),new g("ие",3,1),new g("ье",3,1),new g("и",-1,1),new g("еи",6,1),new g("ии",6,1),new g("ами",6,1),new g("ями",6,1),new g("иями",10,1),new g("й",-1,1),new g("ей",12,1),new g("ией",13,1),new g("ий",12,1),new g("ой",12,1),new g("ам",-1,1),new g("ем",-1,1),new g("ием",18,1),new g("ом",-1,1),new g("ям",-1,1),new g("иям",21,1),new g("о",-1,1),new g("у",-1,1),new g("ах",-1,1),new g("ях",-1,1),new g("иях",26,1),new g("ы",-1,1),new g("ь",-1,1),new g("ю",-1,1),new g("ию",30,1),new g("ью",30,1),new g("я",-1,1),new g("ия",33,1),new g("ья",33,1)],s=[new g("ост",-1,1),new g("ость",-1,1)],c=[new g("ейше",-1,1),new g("н",-1,2),new g("ейш",-1,1),new g("ь",-1,3)],m=[33,65,8,232],l=new h;function f(){for(;!l.in_grouping(m,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function p(){for(;!l.out_grouping(m,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function d(e,n){var r;if(l.ket=l.cursor,e=l.find_among_b(e,n)){switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-r,!l.eq_s_b(1,"я")))return!1;case 2:l.slice_del()}return!0}return!1}function a(e,n){return l.ket=l.cursor,!!(e=l.find_among_b(e,n))&&(l.bra=l.cursor,1==e&&l.slice_del(),!0)}function _(){return a(e,26)&&(d(t,8),1)}function b(){var e;l.ket=l.cursor,(e=l.find_among_b(s,2))&&(l.bra=l.cursor,n<=l.cursor)&&1==e&&l.slice_del()}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){if(r=l.limit,n=r,f()&&(r=l.cursor,p())&&f()&&p()&&(n=l.cursor),l.cursor=l.limit,l.cursor= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor++; + return true; + } + } + } + return false; + }, + in_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch <= max && ch >= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor--; + return true; + } + } + } + return false; + }, + out_grouping : function(s, min, max) { + if (this.cursor < this.limit) { + var ch = current.charCodeAt(this.cursor); + if (ch > max || ch < min) { + this.cursor++; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor++; + return true; + } + } + return false; + }, + out_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) { + this.cursor--; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor--; + return true; + } + } + return false; + }, + eq_s : function(s_size, s) { + if (this.limit - this.cursor < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor + i) != s.charCodeAt(i)) + return false; + this.cursor += s_size; + return true; + }, + eq_s_b : function(s_size, s) { + if (this.cursor - this.limit_backward < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor - s_size + i) != s + .charCodeAt(i)) + return false; + this.cursor -= s_size; + return true; + }, + find_among : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, l = this.limit, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = common; i2 < w.s_size; i2++) { + if (c + common == l) { + diff = -1; + break; + } + diff = current.charCodeAt(c + common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c + w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c + w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + find_among_b : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, lb = this.limit_backward, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = w.s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { + diff = -1; + break; + } + diff = current.charCodeAt(c - 1 - common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c - w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c - w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + replace_s : function(c_bra, c_ket, s) { + var adjustment = s.length - (c_ket - c_bra), left = current + .substring(0, c_bra), right = current.substring(c_ket); + current = left + s + right; + this.limit += adjustment; + if (this.cursor >= c_ket) + this.cursor += adjustment; + else if (this.cursor > c_bra) + this.cursor = c_bra; + return adjustment; + }, + slice_check : function() { + if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit + || this.limit > current.length) + throw ("faulty slice operation"); + }, + slice_from : function(s) { + this.slice_check(); + this.replace_s(this.bra, this.ket, s); + }, + slice_del : function() { + this.slice_from(""); + }, + insert : function(c_bra, c_ket, s) { + var adjustment = this.replace_s(c_bra, c_ket, s); + if (c_bra <= this.bra) + this.bra += adjustment; + if (c_bra <= this.ket) + this.ket += adjustment; + }, + slice_to : function() { + this.slice_check(); + return current.substring(this.bra, this.ket); + }, + eq_v_b : function(s) { + return this.eq_s_b(s.length, s); + } + }; + } + }; + + lunr.trimmerSupport = { + generateTrimmer: function(wordCharacters) { + var startRegex = new RegExp("^[^" + wordCharacters + "]+") + var endRegex = new RegExp("[^" + wordCharacters + "]+$") + + return function(token) { + return token + .replace(startRegex, '') + .replace(endRegex, ''); + }; + } + } + } +})); diff --git a/js/lunr.stemmer.support.min.js b/js/lunr.stemmer.support.min.js new file mode 100644 index 0000000..3ffdbd6 --- /dev/null +++ b/js/lunr.stemmer.support.min.js @@ -0,0 +1 @@ +!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),f=0,a=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c,f=i+(s-i>>1),a=0,l=u=(c=r[i]).s_size){if(this.cursor=e-c.s_size,!c.method)return c.result;var m=c.method();if(this.cursor=e-c.s_size,m)return c.result}if((i=c.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){t=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=t),r<=this.ket&&(this.ket+=t)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/js/lunr.sv.js b/js/lunr.sv.js new file mode 100644 index 0000000..d48ea4a --- /dev/null +++ b/js/lunr.sv.js @@ -0,0 +1,252 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.sv = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.sv.trimmer, + lunr.sv.stopWordFilter, + lunr.sv.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.sv.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.sv.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.sv.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.sv.trimmer, 'trimmer-sv'); + + /* lunr stemmer function */ + lunr.sv.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function SwedishStemmer() { + var a_0 = [new Among("a", -1, 1), new Among("arna", 0, 1), + new Among("erna", 0, 1), new Among("heterna", 2, 1), + new Among("orna", 0, 1), new Among("ad", -1, 1), + new Among("e", -1, 1), new Among("ade", 6, 1), + new Among("ande", 6, 1), new Among("arne", 6, 1), + new Among("are", 6, 1), new Among("aste", 6, 1), + new Among("en", -1, 1), new Among("anden", 12, 1), + new Among("aren", 12, 1), new Among("heten", 12, 1), + new Among("ern", -1, 1), new Among("ar", -1, 1), + new Among("er", -1, 1), new Among("heter", 18, 1), + new Among("or", -1, 1), new Among("s", -1, 2), + new Among("as", 21, 1), new Among("arnas", 22, 1), + new Among("ernas", 22, 1), new Among("ornas", 22, 1), + new Among("es", 21, 1), new Among("ades", 26, 1), + new Among("andes", 26, 1), new Among("ens", 21, 1), + new Among("arens", 29, 1), new Among("hetens", 29, 1), + new Among("erns", 21, 1), new Among("at", -1, 1), + new Among("andet", -1, 1), new Among("het", -1, 1), + new Among("ast", -1, 1) + ], + a_1 = [new Among("dd", -1, -1), + new Among("gd", -1, -1), new Among("nn", -1, -1), + new Among("dt", -1, -1), new Among("gt", -1, -1), + new Among("kt", -1, -1), new Among("tt", -1, -1) + ], + a_2 = [ + new Among("ig", -1, 1), new Among("lig", 0, 1), + new Among("els", -1, 1), new Among("fullt", -1, 3), + new Among("l\u00F6st", -1, 2) + ], + g_v = [17, 65, 16, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 + ], + g_s_ending = [119, 127, 149], + I_x, I_p1, sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function r_mark_regions() { + var v_1, c = sbp.cursor + 3; + I_p1 = sbp.limit; + if (0 <= c || c <= sbp.limit) { + I_x = c; + while (true) { + v_1 = sbp.cursor; + if (sbp.in_grouping(g_v, 97, 246)) { + sbp.cursor = v_1; + break; + } + sbp.cursor = v_1; + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + while (!sbp.out_grouping(g_v, 97, 246)) { + if (sbp.cursor >= sbp.limit) + return; + sbp.cursor++; + } + I_p1 = sbp.cursor; + if (I_p1 < I_x) + I_p1 = I_x; + } + } + + function r_main_suffix() { + var among_var, v_2 = sbp.limit_backward; + if (sbp.cursor >= I_p1) { + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_0, 37); + sbp.limit_backward = v_2; + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + if (sbp.in_grouping_b(g_s_ending, 98, 121)) + sbp.slice_del(); + break; + } + } + } + } + + function r_consonant_pair() { + var v_1 = sbp.limit_backward; + if (sbp.cursor >= I_p1) { + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + if (sbp.find_among_b(a_1, 7)) { + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + if (sbp.cursor > sbp.limit_backward) { + sbp.bra = --sbp.cursor; + sbp.slice_del(); + } + } + sbp.limit_backward = v_1; + } + } + + function r_other_suffix() { + var among_var, v_2; + if (sbp.cursor >= I_p1) { + v_2 = sbp.limit_backward; + sbp.limit_backward = I_p1; + sbp.cursor = sbp.limit; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_2, 5); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_del(); + break; + case 2: + sbp.slice_from("l\u00F6s"); + break; + case 3: + sbp.slice_from("full"); + break; + } + } + sbp.limit_backward = v_2; + } + } + this.stem = function() { + var v_1 = sbp.cursor; + r_mark_regions(); + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_main_suffix(); + sbp.cursor = sbp.limit; + r_consonant_pair(); + sbp.cursor = sbp.limit; + r_other_suffix(); + return true; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.sv.stemmer, 'stemmer-sv'); + + /* stop word filter function */ + lunr.sv.stopWordFilter = function(token) { + if (lunr.sv.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.sv.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.sv.stopWordFilter.stopWords.length = 115; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.sv.stopWordFilter.stopWords.elements = ' alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över'.split(' '); + + lunr.Pipeline.registerFunction(lunr.sv.stopWordFilter, 'stopWordFilter-sv'); + }; +})) \ No newline at end of file diff --git a/js/lunr.sv.min.js b/js/lunr.sv.min.js new file mode 100644 index 0000000..835f98b --- /dev/null +++ b/js/lunr.sv.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,d,n;r.sv=function(){this.pipeline.reset(),this.pipeline.add(r.sv.trimmer,r.sv.stopWordFilter,r.sv.stemmer)},r.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.sv.trimmer=r.trimmerSupport.generateTrimmer(r.sv.wordCharacters),r.Pipeline.registerFunction(r.sv.trimmer,"trimmer-sv"),r.sv.stemmer=(e=r.stemmerSupport.Among,d=r.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new e("a",-1,1),new e("arna",0,1),new e("erna",0,1),new e("heterna",2,1),new e("orna",0,1),new e("ad",-1,1),new e("e",-1,1),new e("ade",6,1),new e("ande",6,1),new e("arne",6,1),new e("are",6,1),new e("aste",6,1),new e("en",-1,1),new e("anden",12,1),new e("aren",12,1),new e("heten",12,1),new e("ern",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",18,1),new e("or",-1,1),new e("s",-1,2),new e("as",21,1),new e("arnas",22,1),new e("ernas",22,1),new e("ornas",22,1),new e("es",21,1),new e("ades",26,1),new e("andes",26,1),new e("ens",21,1),new e("arens",29,1),new e("hetens",29,1),new e("erns",21,1),new e("at",-1,1),new e("andet",-1,1),new e("het",-1,1),new e("ast",-1,1)],s=[new e("dd",-1,-1),new e("gd",-1,-1),new e("nn",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1),new e("tt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("els",-1,1),new e("fullt",-1,3),new e("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],l=new d;this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e=l.cursor;!function(){var e,r=l.cursor+3;if(t=l.limit,0<=r||r<=l.limit){for(n=r;;){if(e=l.cursor,l.in_grouping(o,97,246)){l.cursor=e;break}if(l.cursor=e,l.cursor>=l.limit)return;l.cursor++}for(;!l.out_grouping(o,97,246);){if(l.cursor>=l.limit)return;l.cursor++}(t=l.cursor)=t&&(l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,r=l.find_among_b(i,37),l.limit_backward=e,r))switch(l.bra=l.cursor,r){case 1:l.slice_del();break;case 2:l.in_grouping_b(u,98,121)&&l.slice_del()}if(l.cursor=l.limit,e=l.limit_backward,l.cursor>=t&&(l.limit_backward=t,l.cursor=l.limit,l.find_among_b(s,7)&&(l.cursor=l.limit,l.ket=l.cursor,l.cursor>l.limit_backward)&&(l.bra=--l.cursor,l.slice_del()),l.limit_backward=e),l.cursor=l.limit,l.cursor>=t){if(r=l.limit_backward,l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,e=l.find_among_b(a,5))switch(l.bra=l.cursor,e){case 1:l.slice_del();break;case 2:l.slice_from("lös");break;case 3:l.slice_from("full")}l.limit_backward=r}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),r.Pipeline.registerFunction(r.sv.stemmer,"stemmer-sv"),r.sv.stopWordFilter=function(e){if(-1===r.sv.stopWordFilter.stopWords.indexOf(e))return e},r.sv.stopWordFilter.stopWords=new r.SortedSet,r.sv.stopWordFilter.stopWords.length=115,r.sv.stopWordFilter.stopWords.elements=" alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" "),r.Pipeline.registerFunction(r.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/js/lunr.tr.js b/js/lunr.tr.js new file mode 100644 index 0000000..1e5d8da --- /dev/null +++ b/js/lunr.tr.js @@ -0,0 +1,1070 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function() { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* register specific locale function */ + lunr.tr = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.tr.trimmer, + lunr.tr.stopWordFilter, + lunr.tr.stemmer + ); + }; + + /* lunr trimmer function */ + lunr.tr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; + lunr.tr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.tr.wordCharacters); + + lunr.Pipeline.registerFunction(lunr.tr.trimmer, 'trimmer-tr'); + + /* lunr stemmer function */ + lunr.tr.stemmer = (function() { + /* create the wrapped stemmer object */ + var Among = lunr.stemmerSupport.Among, + SnowballProgram = lunr.stemmerSupport.SnowballProgram, + st = new function TurkishStemmer() { + var a_0 = [new Among("m", -1, -1), new Among("n", -1, -1), + new Among("miz", -1, -1), new Among("niz", -1, -1), + new Among("muz", -1, -1), new Among("nuz", -1, -1), + new Among("m\u00FCz", -1, -1), new Among("n\u00FCz", -1, -1), + new Among("m\u0131z", -1, -1), new Among("n\u0131z", -1, -1) + ], + a_1 = [ + new Among("leri", -1, -1), new Among("lar\u0131", -1, -1) + ], + a_2 = [ + new Among("ni", -1, -1), new Among("nu", -1, -1), + new Among("n\u00FC", -1, -1), new Among("n\u0131", -1, -1) + ], + a_3 = [ + new Among("in", -1, -1), new Among("un", -1, -1), + new Among("\u00FCn", -1, -1), new Among("\u0131n", -1, -1) + ], + a_4 = [ + new Among("a", -1, -1), new Among("e", -1, -1) + ], + a_5 = [ + new Among("na", -1, -1), new Among("ne", -1, -1) + ], + a_6 = [ + new Among("da", -1, -1), new Among("ta", -1, -1), + new Among("de", -1, -1), new Among("te", -1, -1) + ], + a_7 = [ + new Among("nda", -1, -1), new Among("nde", -1, -1) + ], + a_8 = [ + new Among("dan", -1, -1), new Among("tan", -1, -1), + new Among("den", -1, -1), new Among("ten", -1, -1) + ], + a_9 = [ + new Among("ndan", -1, -1), new Among("nden", -1, -1) + ], + a_10 = [ + new Among("la", -1, -1), new Among("le", -1, -1) + ], + a_11 = [ + new Among("ca", -1, -1), new Among("ce", -1, -1) + ], + a_12 = [ + new Among("im", -1, -1), new Among("um", -1, -1), + new Among("\u00FCm", -1, -1), new Among("\u0131m", -1, -1) + ], + a_13 = [ + new Among("sin", -1, -1), new Among("sun", -1, -1), + new Among("s\u00FCn", -1, -1), new Among("s\u0131n", -1, -1) + ], + a_14 = [ + new Among("iz", -1, -1), new Among("uz", -1, -1), + new Among("\u00FCz", -1, -1), new Among("\u0131z", -1, -1) + ], + a_15 = [ + new Among("siniz", -1, -1), new Among("sunuz", -1, -1), + new Among("s\u00FCn\u00FCz", -1, -1), + new Among("s\u0131n\u0131z", -1, -1) + ], + a_16 = [ + new Among("lar", -1, -1), new Among("ler", -1, -1) + ], + a_17 = [ + new Among("niz", -1, -1), new Among("nuz", -1, -1), + new Among("n\u00FCz", -1, -1), new Among("n\u0131z", -1, -1) + ], + a_18 = [ + new Among("dir", -1, -1), new Among("tir", -1, -1), + new Among("dur", -1, -1), new Among("tur", -1, -1), + new Among("d\u00FCr", -1, -1), new Among("t\u00FCr", -1, -1), + new Among("d\u0131r", -1, -1), new Among("t\u0131r", -1, -1) + ], + a_19 = [ + new Among("cas\u0131na", -1, -1), new Among("cesine", -1, -1) + ], + a_20 = [ + new Among("di", -1, -1), new Among("ti", -1, -1), + new Among("dik", -1, -1), new Among("tik", -1, -1), + new Among("duk", -1, -1), new Among("tuk", -1, -1), + new Among("d\u00FCk", -1, -1), new Among("t\u00FCk", -1, -1), + new Among("d\u0131k", -1, -1), new Among("t\u0131k", -1, -1), + new Among("dim", -1, -1), new Among("tim", -1, -1), + new Among("dum", -1, -1), new Among("tum", -1, -1), + new Among("d\u00FCm", -1, -1), new Among("t\u00FCm", -1, -1), + new Among("d\u0131m", -1, -1), new Among("t\u0131m", -1, -1), + new Among("din", -1, -1), new Among("tin", -1, -1), + new Among("dun", -1, -1), new Among("tun", -1, -1), + new Among("d\u00FCn", -1, -1), new Among("t\u00FCn", -1, -1), + new Among("d\u0131n", -1, -1), new Among("t\u0131n", -1, -1), + new Among("du", -1, -1), new Among("tu", -1, -1), + new Among("d\u00FC", -1, -1), new Among("t\u00FC", -1, -1), + new Among("d\u0131", -1, -1), new Among("t\u0131", -1, -1) + ], + a_21 = [ + new Among("sa", -1, -1), new Among("se", -1, -1), + new Among("sak", -1, -1), new Among("sek", -1, -1), + new Among("sam", -1, -1), new Among("sem", -1, -1), + new Among("san", -1, -1), new Among("sen", -1, -1) + ], + a_22 = [ + new Among("mi\u015F", -1, -1), new Among("mu\u015F", -1, -1), + new Among("m\u00FC\u015F", -1, -1), + new Among("m\u0131\u015F", -1, -1) + ], + a_23 = [new Among("b", -1, 1), + new Among("c", -1, 2), new Among("d", -1, 3), + new Among("\u011F", -1, 4) + ], + g_vowel = [17, 65, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 + ], + g_U = [ + 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 1 + ], + g_vowel1 = [1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 + ], + g_vowel2 = [17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 + ], + g_vowel3 = [1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1 + ], + g_vowel4 = [17], + g_vowel5 = [65], + g_vowel6 = [65], + B_c_s_n_s, I_strlen, g_habr = [ + ["a", g_vowel1, 97, 305], + ["e", g_vowel2, 101, 252], + ["\u0131", g_vowel3, 97, 305], + ["i", g_vowel4, 101, 105], + ["o", g_vowel5, 111, 117], + ["\u00F6", g_vowel6, 246, 252], + ["u", g_vowel5, 111, 117] + ], + sbp = new SnowballProgram(); + this.setCurrent = function(word) { + sbp.setCurrent(word); + }; + this.getCurrent = function() { + return sbp.getCurrent(); + }; + + function habr1(g_v, n1, n2) { + while (true) { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_v, n1, n2)) { + sbp.cursor = sbp.limit - v_1; + break; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + } + return true; + } + + function r_check_vowel_harmony() { + var v_1, v_2; + v_1 = sbp.limit - sbp.cursor; + habr1(g_vowel, 97, 305); + for (var i = 0; i < g_habr.length; i++) { + v_2 = sbp.limit - sbp.cursor; + var habr = g_habr[i]; + if (sbp.eq_s_b(1, habr[0]) && habr1(habr[1], habr[2], habr[3])) { + sbp.cursor = sbp.limit - v_1; + return true; + } + sbp.cursor = sbp.limit - v_2; + } + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, "\u00FC") || !habr1(g_vowel6, 246, 252)) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function habr2(f1, f2) { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (f1()) { + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor > sbp.limit_backward) { + sbp.cursor--; + v_2 = sbp.limit - sbp.cursor; + if (f2()) { + sbp.cursor = sbp.limit - v_2; + return true; + } + } + } + sbp.cursor = sbp.limit - v_1; + if (f1()) { + sbp.cursor = sbp.limit - v_1; + return false; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + if (!f2()) + return false; + sbp.cursor = sbp.limit - v_1; + return true; + } + + function habr3(f1) { + return habr2(f1, function() { + return sbp.in_grouping_b(g_vowel, 97, 305); + }); + } + + function r_mark_suffix_with_optional_n_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "n"); + }); + } + + function r_mark_suffix_with_optional_s_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "s"); + }); + } + + function r_mark_suffix_with_optional_y_consonant() { + return habr3(function() { + return sbp.eq_s_b(1, "y"); + }); + } + + function r_mark_suffix_with_optional_U_vowel() { + return habr2(function() { + return sbp.in_grouping_b(g_U, 105, 305); + }, function() { + return sbp.out_grouping_b(g_vowel, 97, 305); + }); + } + + function r_mark_possessives() { + return sbp.find_among_b(a_0, 10) && r_mark_suffix_with_optional_U_vowel(); + } + + function r_mark_sU() { + return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_s_consonant(); + } + + function r_mark_lArI() { + return sbp.find_among_b(a_1, 2); + } + + function r_mark_yU() { + return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_nU() { + return r_check_vowel_harmony() && sbp.find_among_b(a_2, 4); + } + + function r_mark_nUn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_3, 4) && r_mark_suffix_with_optional_n_consonant(); + } + + function r_mark_yA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_4, 2) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_nA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_5, 2); + } + + function r_mark_DA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_6, 4); + } + + function r_mark_ndA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_7, 2); + } + + function r_mark_DAn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_8, 4); + } + + function r_mark_ndAn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_9, 2); + } + + function r_mark_ylA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_10, 2) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ki() { + return sbp.eq_s_b(2, "ki"); + } + + function r_mark_ncA() { + return r_check_vowel_harmony() && sbp.find_among_b(a_11, 2) && r_mark_suffix_with_optional_n_consonant(); + } + + function r_mark_yUm() { + return r_check_vowel_harmony() && sbp.find_among_b(a_12, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_sUn() { + return r_check_vowel_harmony() && sbp.find_among_b(a_13, 4); + } + + function r_mark_yUz() { + return r_check_vowel_harmony() && sbp.find_among_b(a_14, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_sUnUz() { + return sbp.find_among_b(a_15, 4); + } + + function r_mark_lAr() { + return r_check_vowel_harmony() && sbp.find_among_b(a_16, 2); + } + + function r_mark_nUz() { + return r_check_vowel_harmony() && sbp.find_among_b(a_17, 4); + } + + function r_mark_DUr() { + return r_check_vowel_harmony() && sbp.find_among_b(a_18, 8); + } + + function r_mark_cAsInA() { + return sbp.find_among_b(a_19, 2); + } + + function r_mark_yDU() { + return r_check_vowel_harmony() && sbp.find_among_b(a_20, 32) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ysA() { + return sbp.find_among_b(a_21, 8) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_ymUs_() { + return r_check_vowel_harmony() && sbp.find_among_b(a_22, 4) && r_mark_suffix_with_optional_y_consonant(); + } + + function r_mark_yken() { + return sbp.eq_s_b(3, "ken") && r_mark_suffix_with_optional_y_consonant(); + } + + function habr4() { + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_ymUs_()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yken()) + return true; + } + } + } + return false; + } + + function habr5() { + if (r_mark_cAsInA()) { + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_lAr()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUm()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUz()) + sbp.cursor = sbp.limit - v_1; + } + } + } + } + if (r_mark_ymUs_()) + return false; + } + return true; + } + + function habr6() { + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + var v_1 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_DUr()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_1; + } + } + } + B_c_s_n_s = false; + return false; + } + return true; + } + + function habr7() { + if (!r_mark_nUz()) + return true; + var v_1 = sbp.limit - sbp.cursor; + if (!r_mark_yDU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ysA()) + return true; + } + return false; + } + + function habr8() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUz()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yUm()) + return true; + } + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_2; + return false; + } + + function r_stem_nominal_verb_suffixes() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + sbp.ket = sbp.cursor; + B_c_s_n_s = true; + if (habr4()) { + sbp.cursor = sbp.limit - v_1; + if (habr5()) { + sbp.cursor = sbp.limit - v_1; + if (habr6()) { + sbp.cursor = sbp.limit - v_1; + if (habr7()) { + sbp.cursor = sbp.limit - v_1; + if (habr8()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_DUr()) + return; + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (!r_mark_sUnUz()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lAr()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_yUm()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sUn()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_yUz()) + sbp.cursor = sbp.limit - v_2; + } + } + } + } + if (!r_mark_ymUs_()) + sbp.cursor = sbp.limit - v_2; + } + } + } + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + } + + function r_stem_suffix_chain_before_ki() { + var v_1, v_2, v_3, v_4; + sbp.ket = sbp.cursor; + if (r_mark_ki()) { + v_1 = sbp.limit - sbp.cursor; + if (r_mark_DA()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } else { + sbp.cursor = sbp.limit - v_2; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + } + return true; + } + sbp.cursor = sbp.limit - v_1; + if (r_mark_nUn()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_3; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_3; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_3; + if (!r_stem_suffix_chain_before_ki()) + return true; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki() + } + } + return true; + } + sbp.cursor = sbp.limit - v_1; + if (r_mark_ndA()) { + v_4 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_4; + if (r_mark_sU()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_4; + if (!r_stem_suffix_chain_before_ki()) + return false; + } + } + return true; + } + } + return false; + } + + function habr9(v_1) { + sbp.ket = sbp.cursor; + if (!r_mark_ndA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_nA()) + return false; + } + var v_2 = sbp.limit - sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_2; + if (r_mark_sU()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_2; + if (!r_stem_suffix_chain_before_ki()) + return false; + } + } + return true; + } + + function habr10(v_1) { + sbp.ket = sbp.cursor; + if (!r_mark_ndAn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_nU()) + return false; + } + var v_2 = sbp.limit - sbp.cursor; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lArI()) + return false; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + return true; + } + + function habr11() { + var v_1 = sbp.limit - sbp.cursor, + v_2; + sbp.ket = sbp.cursor; + if (!r_mark_nUn()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_ylA()) + return false; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + if (r_stem_suffix_chain_before_ki()) + return true; + } + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + if (!r_stem_suffix_chain_before_ki()) + return true; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + return true; + } + + function habr12() { + var v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (!r_mark_DA()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yU()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_yA()) + return false; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_2 = sbp.limit - sbp.cursor; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_3 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (!r_mark_lAr()) + sbp.cursor = sbp.limit - v_3; + } else { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_lAr()) + return true; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + r_stem_suffix_chain_before_ki(); + return true; + } + + function r_stem_noun_suffixes() { + var v_1 = sbp.limit - sbp.cursor, + v_2, v_3; + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + return; + } + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (r_mark_ncA()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + v_2 = sbp.limit - sbp.cursor; + sbp.ket = sbp.cursor; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + } else { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_2; + if (!r_mark_sU()) { + sbp.cursor = sbp.limit - v_2; + sbp.ket = sbp.cursor; + if (!r_mark_lAr()) + return; + sbp.bra = sbp.cursor; + sbp.slice_del(); + if (!r_stem_suffix_chain_before_ki()) + return; + } + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + return; + } + sbp.cursor = sbp.limit - v_1; + if (habr9(v_1)) + return; + sbp.cursor = sbp.limit - v_1; + if (habr10(v_1)) + return; + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (r_mark_DAn()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + v_3 = sbp.limit - sbp.cursor; + if (r_mark_possessives()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } else { + sbp.cursor = sbp.limit - v_3; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } else { + sbp.cursor = sbp.limit - v_3; + r_stem_suffix_chain_before_ki(); + } + } + return; + } + sbp.cursor = sbp.limit - v_1; + if (habr11()) + return; + sbp.cursor = sbp.limit - v_1; + if (r_mark_lArI()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + return; + } + sbp.cursor = sbp.limit - v_1; + if (r_stem_suffix_chain_before_ki()) + return; + sbp.cursor = sbp.limit - v_1; + if (habr12()) + return; + sbp.cursor = sbp.limit - v_1; + sbp.ket = sbp.cursor; + if (!r_mark_possessives()) { + sbp.cursor = sbp.limit - v_1; + if (!r_mark_sU()) + return; + } + sbp.bra = sbp.cursor; + sbp.slice_del(); + sbp.ket = sbp.cursor; + if (r_mark_lAr()) { + sbp.bra = sbp.cursor; + sbp.slice_del(); + r_stem_suffix_chain_before_ki(); + } + } + + function r_post_process_last_consonants() { + var among_var; + sbp.ket = sbp.cursor; + among_var = sbp.find_among_b(a_23, 4); + if (among_var) { + sbp.bra = sbp.cursor; + switch (among_var) { + case 1: + sbp.slice_from("p"); + break; + case 2: + sbp.slice_from("\u00E7"); + break; + case 3: + sbp.slice_from("t"); + break; + case 4: + sbp.slice_from("k"); + break; + } + } + } + + function habr13() { + while (true) { + var v_1 = sbp.limit - sbp.cursor; + if (sbp.in_grouping_b(g_vowel, 97, 305)) { + sbp.cursor = sbp.limit - v_1; + break; + } + sbp.cursor = sbp.limit - v_1; + if (sbp.cursor <= sbp.limit_backward) + return false; + sbp.cursor--; + } + return true; + } + + function habr14(v_1, c1, c2) { + sbp.cursor = sbp.limit - v_1; + if (habr13()) { + var v_2 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, c1)) { + sbp.cursor = sbp.limit - v_2; + if (!sbp.eq_s_b(1, c2)) + return true; + } + sbp.cursor = sbp.limit - v_1; + var c = sbp.cursor; + sbp.insert(sbp.cursor, sbp.cursor, c2); + sbp.cursor = c; + return false; + } + return true; + } + + function r_append_U_to_stems_ending_with_d_or_g() { + var v_1 = sbp.limit - sbp.cursor; + if (!sbp.eq_s_b(1, "d")) { + sbp.cursor = sbp.limit - v_1; + if (!sbp.eq_s_b(1, "g")) + return; + } + if (habr14(v_1, "a", "\u0131")) + if (habr14(v_1, "e", "i")) + if (habr14(v_1, "o", "u")) + habr14(v_1, "\u00F6", "\u00FC") + } + + function r_more_than_one_syllable_word() { + var v_1 = sbp.cursor, + v_2 = 2, + v_3; + while (true) { + v_3 = sbp.cursor; + while (!sbp.in_grouping(g_vowel, 97, 305)) { + if (sbp.cursor >= sbp.limit) { + sbp.cursor = v_3; + if (v_2 > 0) + return false; + sbp.cursor = v_1; + return true; + } + sbp.cursor++; + } + v_2--; + } + } + + function habr15(v_1, n1, c1) { + while (!sbp.eq_s(n1, c1)) { + if (sbp.cursor >= sbp.limit) + return true; + sbp.cursor++; + } + I_strlen = n1; + if (I_strlen != sbp.limit) + return true; + sbp.cursor = v_1; + return false; + } + + function r_is_reserved_word() { + var v_1 = sbp.cursor; + if (habr15(v_1, 2, "ad")) { + sbp.cursor = v_1; + if (habr15(v_1, 5, "soyad")) + return false; + } + return true; + } + + function r_postlude() { + var v_1 = sbp.cursor; + if (r_is_reserved_word()) + return false; + sbp.limit_backward = v_1; + sbp.cursor = sbp.limit; + r_append_U_to_stems_ending_with_d_or_g(); + sbp.cursor = sbp.limit; + r_post_process_last_consonants(); + return true; + } + this.stem = function() { + if (r_more_than_one_syllable_word()) { + sbp.limit_backward = sbp.cursor; + sbp.cursor = sbp.limit; + r_stem_nominal_verb_suffixes(); + sbp.cursor = sbp.limit; + if (B_c_s_n_s) { + r_stem_noun_suffixes(); + sbp.cursor = sbp.limit_backward; + if (r_postlude()) + return true; + } + } + return false; + } + }; + + /* and return a function that stems a word for the current locale */ + return function(word) { + st.setCurrent(word); + st.stem(); + return st.getCurrent(); + } + })(); + + lunr.Pipeline.registerFunction(lunr.tr.stemmer, 'stemmer-tr'); + + /* stop word filter function */ + lunr.tr.stopWordFilter = function(token) { + if (lunr.tr.stopWordFilter.stopWords.indexOf(token) === -1) { + return token; + } + }; + + lunr.tr.stopWordFilter.stopWords = new lunr.SortedSet(); + lunr.tr.stopWordFilter.stopWords.length = 210; + + // The space at the beginning is crucial: It marks the empty string + // as a stop word. lunr.js crashes during search when documents + // processed by the pipeline still contain the empty string. + lunr.tr.stopWordFilter.stopWords.elements = ' acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle'.split(' '); + + lunr.Pipeline.registerFunction(lunr.tr.stopWordFilter, 'stopWordFilter-tr'); + }; +})) \ No newline at end of file diff --git a/js/lunr.tr.min.js b/js/lunr.tr.min.js new file mode 100644 index 0000000..54adb6d --- /dev/null +++ b/js/lunr.tr.min.js @@ -0,0 +1 @@ +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var mr,dr,e;i.tr=function(){this.pipeline.reset(),this.pipeline.add(i.tr.trimmer,i.tr.stopWordFilter,i.tr.stemmer)},i.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.tr.trimmer=i.trimmerSupport.generateTrimmer(i.tr.wordCharacters),i.Pipeline.registerFunction(i.tr.trimmer,"trimmer-tr"),i.tr.stemmer=(mr=i.stemmerSupport.Among,dr=i.stemmerSupport.SnowballProgram,e=new function(){var i,r=[new mr("m",-1,-1),new mr("n",-1,-1),new mr("miz",-1,-1),new mr("niz",-1,-1),new mr("muz",-1,-1),new mr("nuz",-1,-1),new mr("müz",-1,-1),new mr("nüz",-1,-1),new mr("mız",-1,-1),new mr("nız",-1,-1)],e=[new mr("leri",-1,-1),new mr("ları",-1,-1)],n=[new mr("ni",-1,-1),new mr("nu",-1,-1),new mr("nü",-1,-1),new mr("nı",-1,-1)],t=[new mr("in",-1,-1),new mr("un",-1,-1),new mr("ün",-1,-1),new mr("ın",-1,-1)],u=[new mr("a",-1,-1),new mr("e",-1,-1)],T=[new mr("na",-1,-1),new mr("ne",-1,-1)],Z=[new mr("da",-1,-1),new mr("ta",-1,-1),new mr("de",-1,-1),new mr("te",-1,-1)],B=[new mr("nda",-1,-1),new mr("nde",-1,-1)],D=[new mr("dan",-1,-1),new mr("tan",-1,-1),new mr("den",-1,-1),new mr("ten",-1,-1)],G=[new mr("ndan",-1,-1),new mr("nden",-1,-1)],H=[new mr("la",-1,-1),new mr("le",-1,-1)],I=[new mr("ca",-1,-1),new mr("ce",-1,-1)],J=[new mr("im",-1,-1),new mr("um",-1,-1),new mr("üm",-1,-1),new mr("ım",-1,-1)],K=[new mr("sin",-1,-1),new mr("sun",-1,-1),new mr("sün",-1,-1),new mr("sın",-1,-1)],M=[new mr("iz",-1,-1),new mr("uz",-1,-1),new mr("üz",-1,-1),new mr("ız",-1,-1)],N=[new mr("siniz",-1,-1),new mr("sunuz",-1,-1),new mr("sünüz",-1,-1),new mr("sınız",-1,-1)],Q=[new mr("lar",-1,-1),new mr("ler",-1,-1)],R=[new mr("niz",-1,-1),new mr("nuz",-1,-1),new mr("nüz",-1,-1),new mr("nız",-1,-1)],U=[new mr("dir",-1,-1),new mr("tir",-1,-1),new mr("dur",-1,-1),new mr("tur",-1,-1),new mr("dür",-1,-1),new mr("tür",-1,-1),new mr("dır",-1,-1),new mr("tır",-1,-1)],V=[new mr("casına",-1,-1),new mr("cesine",-1,-1)],X=[new mr("di",-1,-1),new mr("ti",-1,-1),new mr("dik",-1,-1),new mr("tik",-1,-1),new mr("duk",-1,-1),new mr("tuk",-1,-1),new mr("dük",-1,-1),new mr("tük",-1,-1),new mr("dık",-1,-1),new mr("tık",-1,-1),new mr("dim",-1,-1),new mr("tim",-1,-1),new mr("dum",-1,-1),new mr("tum",-1,-1),new mr("düm",-1,-1),new mr("tüm",-1,-1),new mr("dım",-1,-1),new mr("tım",-1,-1),new mr("din",-1,-1),new mr("tin",-1,-1),new mr("dun",-1,-1),new mr("tun",-1,-1),new mr("dün",-1,-1),new mr("tün",-1,-1),new mr("dın",-1,-1),new mr("tın",-1,-1),new mr("du",-1,-1),new mr("tu",-1,-1),new mr("dü",-1,-1),new mr("tü",-1,-1),new mr("dı",-1,-1),new mr("tı",-1,-1)],Y=[new mr("sa",-1,-1),new mr("se",-1,-1),new mr("sak",-1,-1),new mr("sek",-1,-1),new mr("sam",-1,-1),new mr("sem",-1,-1),new mr("san",-1,-1),new mr("sen",-1,-1)],$=[new mr("miş",-1,-1),new mr("muş",-1,-1),new mr("müş",-1,-1),new mr("mış",-1,-1)],rr=[new mr("b",-1,1),new mr("c",-1,2),new mr("d",-1,3),new mr("ğ",-1,4)],o=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],s=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],c=[65],l=[65],a=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",c,111,117],["ö",l,246,252],["u",c,111,117]],m=new dr;function d(r,i,e){for(;;){var n=m.limit-m.cursor;if(m.in_grouping_b(r,i,e)){m.cursor=m.limit-n;break}if(m.cursor=m.limit-n,m.cursor<=m.limit_backward)return;m.cursor--}return 1}function f(){var r=m.limit-m.cursor;d(o,97,305);for(var i=0;im.limit_backward)&&(m.cursor--,e=m.limit-m.cursor,i()))m.cursor=m.limit-e;else{if(m.cursor=m.limit-n,r())return m.cursor=m.limit-n,!1;if(m.cursor=m.limit-n,m.cursor<=m.limit_backward)return!1;if(m.cursor--,!i())return!1;m.cursor=m.limit-n}return!0}function w(r){return b(r,function(){return m.in_grouping_b(o,97,305)})}function _(){return w(function(){return m.eq_s_b(1,"n")})}function k(){return w(function(){return m.eq_s_b(1,"y")})}function p(){return m.find_among_b(r,10)&&b(function(){return m.in_grouping_b(s,105,305)},function(){return m.out_grouping_b(o,97,305)})}function g(){return f()&&m.in_grouping_b(s,105,305)&&w(function(){return m.eq_s_b(1,"s")})}function y(){return m.find_among_b(e,2)}function z(){return f()&&m.find_among_b(t,4)&&_()}function h(){return f()&&m.find_among_b(Z,4)}function v(){return f()&&m.find_among_b(B,2)}function q(){return f()&&m.find_among_b(J,4)&&k()}function W(){return f()&&m.find_among_b(K,4)}function F(){return f()&&m.find_among_b(M,4)&&k()}function C(){return m.find_among_b(N,4)}function S(){return f()&&m.find_among_b(Q,2)}function P(){return f()&&m.find_among_b(U,8)}function L(){return f()&&m.find_among_b(X,32)&&k()}function x(){return m.find_among_b(Y,8)&&k()}function A(){return f()&&m.find_among_b($,4)&&k()}function ir(){var r=m.limit-m.cursor;return!(A()||(m.cursor=m.limit-r,L())||(m.cursor=m.limit-r,x())||(m.cursor=m.limit-r,m.eq_s_b(3,"ken")&&k()))}function er(){if(m.find_among_b(V,2)){var r=m.limit-m.cursor;if(C()||(m.cursor=m.limit-r,S())||(m.cursor=m.limit-r,q())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r),A())return}return 1}function nr(){var r;return!(f()&&m.find_among_b(R,4)&&(r=m.limit-m.cursor,L()||(m.cursor=m.limit-r,x())))}function tr(){var r=m.limit-m.cursor;if(m.ket=m.cursor,i=!0,ir()&&(m.cursor=m.limit-r,er())&&(m.cursor=m.limit-r,function(){var r;if(!S())return 1;m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,P()||(m.cursor=m.limit-r,L())||(m.cursor=m.limit-r,x())||(m.cursor=m.limit-r,A())||(m.cursor=m.limit-r),i=!1}())&&(m.cursor=m.limit-r,nr())&&(m.cursor=m.limit-r,function(){var r=m.limit-m.cursor;if(!(C()||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,q())))return 1;m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,A()||(m.cursor=m.limit-r)}())){if(m.cursor=m.limit-r,!P())return;m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,r=m.limit-m.cursor,C()||(m.cursor=m.limit-r,S())||(m.cursor=m.limit-r,q())||(m.cursor=m.limit-r,W())||(m.cursor=m.limit-r,F())||(m.cursor=m.limit-r),A()||(m.cursor=m.limit-r)}m.bra=m.cursor,m.slice_del()}function E(){var r,i;if(m.ket=m.cursor,m.eq_s_b(2,"ki")){if(r=m.limit-m.cursor,h())return m.bra=m.cursor,m.slice_del(),i=m.limit-m.cursor,m.ket=m.cursor,(S()||(m.cursor=m.limit-i,p()&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())))&&(m.bra=m.cursor,m.slice_del(),E()),1;if(m.cursor=m.limit-r,z()){if(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,i=m.limit-m.cursor,y())m.bra=m.cursor,m.slice_del();else{if(m.cursor=m.limit-i,m.ket=m.cursor,!p()&&(m.cursor=m.limit-i,!g())&&(m.cursor=m.limit-i,!E()))return 1;m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())}return 1}if(m.cursor=m.limit-r,v()){if(i=m.limit-m.cursor,y())m.bra=m.cursor,m.slice_del();else if(m.cursor=m.limit-i,g())m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E());else if(m.cursor=m.limit-i,!E())return;return 1}}}function ur(r){if(m.ket=m.cursor,v()||(m.cursor=m.limit-r,f()&&m.find_among_b(T,2))){r=m.limit-m.cursor;if(y())m.bra=m.cursor,m.slice_del();else if(m.cursor=m.limit-r,g())m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E());else if(m.cursor=m.limit-r,!E())return;return 1}}function or(r){if(m.ket=m.cursor,f()&&m.find_among_b(G,2)||(m.cursor=m.limit-r,f()&&m.find_among_b(n,4)))return r=m.limit-m.cursor,g()||(m.cursor=m.limit-r,y())?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E()),1):void 0}function sr(){var r=m.limit-m.cursor;return m.ket=m.cursor,(z()||(m.cursor=m.limit-r,f()&&m.find_among_b(H,2)&&k()))&&(m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())||(m.cursor=m.limit-r,m.ket=m.cursor,(p()||(m.cursor=m.limit-r,g())||(m.cursor=m.limit-r,E()))&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())&&(m.bra=m.cursor,m.slice_del(),E())),1)}function cr(){var r,i=m.limit-m.cursor;if(m.ket=m.cursor,h()||(m.cursor=m.limit-i,f()&&m.in_grouping_b(s,105,305)&&k())||(m.cursor=m.limit-i,f()&&m.find_among_b(u,2)&&k())){if(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,i=m.limit-m.cursor,p())m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,S()||(m.cursor=m.limit-r);else if(m.cursor=m.limit-i,!S())return 1;return m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,E(),1}}function lr(){var r,i=m.limit-m.cursor;if(m.ket=m.cursor,S())m.bra=m.cursor,m.slice_del(),E();else if(m.cursor=m.limit-i,m.ket=m.cursor,f()&&m.find_among_b(I,2)&&_())if(m.bra=m.cursor,m.slice_del(),r=m.limit-m.cursor,m.ket=m.cursor,y())m.bra=m.cursor,m.slice_del();else{if(m.cursor=m.limit-r,m.ket=m.cursor,!p()&&(m.cursor=m.limit-r,!g())){if(m.cursor=m.limit-r,m.ket=m.cursor,!S())return;if(m.bra=m.cursor,m.slice_del(),!E())return}m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())}else m.cursor=m.limit-i,ur(i)||(m.cursor=m.limit-i,or(i))||(m.cursor=m.limit-i,m.ket=m.cursor,f()&&m.find_among_b(D,4)?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,r=m.limit-m.cursor,p()?(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S()&&(m.bra=m.cursor,m.slice_del(),E())):(m.cursor=m.limit-r,S()?(m.bra=m.cursor,m.slice_del()):m.cursor=m.limit-r,E())):(m.cursor=m.limit-i,sr()||(m.cursor=m.limit-i,y()?(m.bra=m.cursor,m.slice_del()):(m.cursor=m.limit-i,E()||(m.cursor=m.limit-i,cr())||(m.cursor=m.limit-i,m.ket=m.cursor,(p()||(m.cursor=m.limit-i,g()))&&(m.bra=m.cursor,m.slice_del(),m.ket=m.cursor,S())&&(m.bra=m.cursor,m.slice_del(),E()))))))}function j(r,i,e){if(m.cursor=m.limit-r,!function(){for(;;){var r=m.limit-m.cursor;if(m.in_grouping_b(o,97,305)){m.cursor=m.limit-r;break}if(m.cursor=m.limit-r,m.cursor<=m.limit_backward)return;m.cursor--}return 1}())return 1;var n=m.limit-m.cursor;if(!m.eq_s_b(1,i)&&(m.cursor=m.limit-n,!m.eq_s_b(1,e)))return 1;m.cursor=m.limit-r;i=m.cursor;m.insert(m.cursor,m.cursor,e),m.cursor=i}function O(r,i,e){for(;!m.eq_s(i,e);){if(m.cursor>=m.limit)return 1;m.cursor++}if(i!=m.limit)return 1;m.cursor=r}function ar(){var r,i=m.cursor;if(O(r=m.cursor,2,"ad")&&O(m.cursor=r,5,"soyad")){if(m.limit_backward=i,m.cursor=m.limit,r=m.limit-m.cursor,(m.eq_s_b(1,"d")||(m.cursor=m.limit-r,m.eq_s_b(1,"g")))&&j(r,"a","ı")&&j(r,"e","i")&&j(r,"o","u")&&j(r,"ö","ü"),m.cursor=m.limit,m.ket=m.cursor,i=m.find_among_b(rr,4))switch(m.bra=m.cursor,i){case 1:m.slice_from("p");break;case 2:m.slice_from("ç");break;case 3:m.slice_from("t");break;case 4:m.slice_from("k")}return 1}}this.setCurrent=function(r){m.setCurrent(r)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=m.cursor,e=2;;){for(r=m.cursor;!m.in_grouping(o,97,305);){if(m.cursor>=m.limit)return m.cursor=r,!(0 1.0.0 + this.tokenizerFn = lunr.zh.tokenizer; + } + } + }; + + lunr.zh.tokenizer = function(obj) { + if (!arguments.length || obj == null || obj == undefined) return [] + if (Array.isArray(obj)) return obj.map(function(t) { + return isLunr2 ? new lunr.Token(t.toLowerCase()) : t.toLowerCase() + }) + + nodejiebaDictJson && nodejieba.load(nodejiebaDictJson) + + var str = obj.toString().trim().toLowerCase(); + var tokens = []; + + nodejieba.cut(str, true).forEach(function(seg) { + tokens = tokens.concat(seg.split(' ')) + }) + + tokens = tokens.filter(function(token) { + return !!token; + }); + + var fromIndex = 0 + + return tokens.map(function(token, index) { + if (isLunr2) { + var start = str.indexOf(token, fromIndex) + + var tokenMetadata = {} + tokenMetadata["position"] = [start, token.length] + tokenMetadata["index"] = index + + fromIndex = start + + return new lunr.Token(token, tokenMetadata); + } else { + return token + } + }); + } + + /* lunr trimmer function */ + lunr.zh.wordCharacters = "\\w\u4e00-\u9fa5"; + lunr.zh.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.zh.wordCharacters); + lunr.Pipeline.registerFunction(lunr.zh.trimmer, 'trimmer-zh'); + + /* lunr stemmer function */ + lunr.zh.stemmer = (function() { + + /* TODO Chinese stemmer */ + return function(word) { + return word; + } + })(); + lunr.Pipeline.registerFunction(lunr.zh.stemmer, 'stemmer-zh'); + + /* lunr stop word filter. see https://www.ranks.nl/stopwords/chinese-stopwords */ + lunr.generateStopWordFilter = function (stopWords) { + var words = stopWords.reduce(function (memo, stopWord) { + memo[stopWord] = stopWord + return memo + }, {}) + + return function (token) { + if (token && words[token.toString()] !== token.toString()) return token + } + } + + lunr.zh.stopWordFilter = lunr.generateStopWordFilter( + '的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自'.split(' ')); + lunr.Pipeline.registerFunction(lunr.zh.stopWordFilter, 'stopWordFilter-zh'); + }; +})) diff --git a/js/lunr.zh.min.js b/js/lunr.zh.min.js new file mode 100644 index 0000000..6c2e84d --- /dev/null +++ b/js/lunr.zh.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(n){return function(u,t){if(void 0===u)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===u.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var s="2"==u.version[0];u.zh=function(){this.pipeline.reset(),this.pipeline.add(u.zh.trimmer,u.zh.stopWordFilter,u.zh.stemmer),s?this.tokenizer=u.zh.tokenizer:(u.tokenizer&&(u.tokenizer=u.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=u.zh.tokenizer))},u.zh.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return s?new u.Token(e.toLowerCase()):e.toLowerCase()});t&&n.load(t);var i=e.toString().trim().toLowerCase(),r=[],o=(n.cut(i,!0).forEach(function(e){r=r.concat(e.split(" "))}),r=r.filter(function(e){return!!e}),0);return r.map(function(e,r){var t,n;return s?(t=i.indexOf(e,o),(n={}).position=[t,e.length],n.index=r,o=t,new u.Token(e,n)):e})},u.zh.wordCharacters="\\w一-龥",u.zh.trimmer=u.trimmerSupport.generateTrimmer(u.zh.wordCharacters),u.Pipeline.registerFunction(u.zh.trimmer,"trimmer-zh"),u.zh.stemmer=function(e){return e},u.Pipeline.registerFunction(u.zh.stemmer,"stemmer-zh"),u.generateStopWordFilter=function(e){var r=e.reduce(function(e,r){return e[r]=r,e},{});return function(e){if(e&&r[e.toString()]!==e.toString())return e}},u.zh.stopWordFilter=u.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),u.Pipeline.registerFunction(u.zh.stopWordFilter,"stopWordFilter-zh")}}); \ No newline at end of file diff --git a/js/mathtex-script-type.min.js b/js/mathtex-script-type.min.js new file mode 100644 index 0000000..af02830 --- /dev/null +++ b/js/mathtex-script-type.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],t);else{var r="object"==typeof exports?t(require("katex")):t(e.katex);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o,i,a,u={};return o=n(771),i=n.n(o),a=document.body.getElementsByTagName("script"),(a=Array.prototype.slice.call(a)).forEach((function(e){if(!e.type||!e.type.match(/math\/tex/i))return-1;var t=null!=e.type.match(/mode\s*=\s*display(;|\s|\n|$)/),r=document.createElement(t?"div":"span");r.setAttribute("class",t?"equation":"inline-equation");try{i().render(e.text,r,{displayMode:t})}catch(t){r.textContent=e.text}e.parentNode.replaceChild(r,e)})),u=u.default}()})); \ No newline at end of file diff --git a/js/pagefind.search.js b/js/pagefind.search.js new file mode 100644 index 0000000..6889f5f --- /dev/null +++ b/js/pagefind.search.js @@ -0,0 +1,256 @@ +window.onload = function () { + if (document.body.contains(document.goSearch)) { + var loaded = false; + document.goSearch.onsubmit = function () { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://pagefind.app/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function () { + //insertHere + + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions = suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable = [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex = index > 0 ? index - 1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex = index + 1 < focusable.length ? index + 1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + options({//pagefind options + basePath: baseUrl + '/js/' + }); + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function (event) { suggestions.contains(event.target) || suggestions.classList.add("d-none") }); + document.getElementById('searchinput').onfocus = function() { + if (!loaded) { + lazyLoad(); + loaded = true; + } + document.getElementById('searchinput').onfocus = ''; + } + async function lazyLoad() { + await init(); + } + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function () { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + + async function show_results() { + var value = this.value.trim(); + + var searchResults = await search(value); + + var entry, childs = suggestions.childNodes; + var i = 0, len = searchResults.results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + for (const result of searchResults.results) { + const data = await result.data(); + if (data.content !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = data.url; + t.textContent = data.meta.title; + d.innerHTML = sanitise(data.excerpt); + + suggestions.appendChild(entry); + } + } + + while (childs.length > len) { + suggestions.removeChild(childs[i]) + } + } + + function sanitise(str) { + return str.replace(/\{\{.*?\}\}|—|<(?!\/?mark\b).*?>|<.*?>/g, ''); + } + + + function accept_suggestion() { + + while (suggestions.lastChild) { + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + + document.goSearch.onsubmit = function () { return goSearchNow() }; + }()); + } +}; diff --git a/js/prestyle.js b/js/prestyle.js new file mode 100644 index 0000000..2516247 --- /dev/null +++ b/js/prestyle.js @@ -0,0 +1,4 @@ +const items = document.querySelectorAll('.preStyle'); +items.forEach(item => { + item.rel = 'stylesheet'; +}); diff --git a/js/search.js b/js/search.js new file mode 100644 index 0000000..689a83f --- /dev/null +++ b/js/search.js @@ -0,0 +1,366 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + + async function show_results() { + var initIndex = async function () { + if (index === undefined) { + index = fetch(baseUrl + '/search_index.' + langOnly + '.json') + .then( + async function(response) { + return await elasticlunr.Index.load(await response.json()); + } + ); + } + let res = await index; + return res; + } + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + //var results = index.search(value, options); + var results = (await initIndex()).search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japanese/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefore = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefore, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/searchChange.js b/js/searchChange.js new file mode 100644 index 0000000..8f776ae --- /dev/null +++ b/js/searchChange.js @@ -0,0 +1,68 @@ +const fs = require('fs'); +const path = require("path"); +// Path for config.toml +const configTomlPath = path.join(__dirname, "../../config.toml"); + +async function main() { + const { replaceInFileSync } = await import('replace-in-file'); + // Process arguments to determine the search mode + const args = process.argv.slice(2); // Remove the first two default arguments + + if (args.length > 0) { + // Check the search mode based on the argument provided + switch (args[0]) { + case '--pagefind': + console.log('Pagefind search mode activated.'); + await swapToPagefind(replaceInFileSync); + break; + case '--elasticlunr': + console.log('Elasticlunr search mode activated.'); + await swapToElasticlunr(replaceInFileSync); + break; + default: + console.log('Unknown search mode. Please use --pagefind or --elasticlunr.'); + } + } else { + console.log('No search mode specified. Please use --pagefind or --elasticlunr.'); + } +} + +main(); + +async function swapToPagefind(replaceInFileSync) { + // Edit the config.toml file + replaceInFileSync({ + files: configTomlPath, + from: /search_library = ['|"]\w+['|"]/g, + to: 'search_library = "pagefind"', + }); + replaceInFileSync({ + files: configTomlPath, + from: /online_indexformat = ['|"]\w+['|"]/g, + to: 'online_indexformat = "fuse_json"', + }); + replaceInFileSync({ + files: configTomlPath, + from: /index_format = ['|"]\w+['|"]/g, + to: 'index_format = "fuse_json"', + }); +} + +async function swapToElasticlunr(replaceInFileSync) { + // Edit the config.toml file + replaceInFileSync({ + files: configTomlPath, + from: /search_library = ['|"]\w+['|"]/g, + to: 'search_library = "elasticlunr"', + }); + replaceInFileSync({ + files: configTomlPath, + from: /online_indexformat = ['|"]\w+['|"]/g, + to: 'online_indexformat = "elasticlunr_json"', + }); + replaceInFileSync({ + files: configTomlPath, + from: /index_format = ['|"]\w+['|"]/g, + to: 'index_format = "elasticlunr_json"', + }); +} \ No newline at end of file diff --git a/js/search_elasticlunr.min.js b/js/search_elasticlunr.min.js new file mode 100644 index 0000000..f57e3ff --- /dev/null +++ b/js/search_elasticlunr.min.js @@ -0,0 +1 @@ +!function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var a,c,e,t,d,h,f,p,m,v,y,S,x,b,w,I,E,D,F,C,k,_,N,P,n;g.version="0.9.5",((lunr=g).utils={}).warn=(n=this,function(e){n.console}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=[].slice.call(arguments),t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!=(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0==this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){var t;this.hasHandler(e)&&(t=[].slice.call(arguments,1),this.events[e].forEach(function(e){e.apply(void 0,t)},this))},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(e){var t,n;return arguments.length&&null!=e?Array.isArray(e)?(t=(t=e.filter(function(e){return null!=e})).map(function(e){return g.utils.toString(e).toLowerCase()}),n=[],t.forEach(function(e){e=e.split(g.tokenizer.seperator);n=n.concat(e)},this),n):e.toString().trim().toLowerCase().split(g.tokenizer.seperator):[]}).defaultSeperator=/[\s\-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){var n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){[].slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(1+e,0,t)},g.Pipeline.prototype.before=function(e,t){g.Pipeline.warnIfFunctionNotRegistered(t);e=this._queue.indexOf(e);if(-1==e)throw Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){e=this._queue.indexOf(e);-1!=e&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,o=this._queue.length,i=0;i=n&&r-1>=o;)s[n]!==u[o]?s[n]u[o]&&o++:(t.add(s[n]),n++,o++);return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){for(var t,e=this.length

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=i,n.insertBefore(o,n.firstChild),e.innerHTML=n.outerHTML,t.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function b(e){return[0,1,2,3,4][Math.ceil(parseInt(e,16).toString(2).length/8)]}var u,r,l,c,h;document.body.contains(document.goSearch)&&(document.goSearch.onsubmit=function(){return goSearchNow()},u=document.getElementById("suggestions"),r=document.getElementById("searchinput"),document.addEventListener("keydown",function(t){if(191===t.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(t.preventDefault(),r.focus(),u.classList.remove("d-none")),27===t.keyCode){r.blur(),u.classList.add("d-none");for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}var n=u.querySelectorAll("a");if(!u.classList.contains("d-none")&&0!==n.length){var o=[...n],i=o.indexOf(document.activeElement);let e=0;38===t.keyCode?(t.preventDefault(),n[e=0",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.ref,t.textContent=e.doc.title,d.innerHTML=function(e,t){var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())}),o=!1,i=0,r=[],s=e.toLowerCase().split(". ");for(p in s){var u,l=s[p].split(/[\s\n]/),a=8;for(u in l){if(0<(S=l[u]).length){for(var c in n)elasticlunr.stemmer(S).startsWith(n[c])&&(a=40,o=!0);r.push([S,a,i]),a=2}i=i+S.length+1}i+=1}if(0===r.length)return void 0!==e.length&&300"),y=S[2]+S[0].length;40===S[1]||S[0].length<12||/^[\x00-\xff]+$/.test(S[0])?v.push(e.substring(S[2],y)):(x=function(e,t){for(var n="",o=!1,i=0,r=0,s=0,u=0;u")}return v.push("…"),v.join("")}(e.doc.body,s),u.appendChild(n))});i.length>r;)u.removeChild(i[0])},!0),u.addEventListener("click",function(){for(;u.lastChild;)u.removeChild(u.lastChild);return!1},!0),document.goSearch.onsubmit=e)}; \ No newline at end of file diff --git a/js/search_tinysearch.min.js b/js/search_tinysearch.min.js new file mode 100644 index 0000000..a3516db --- /dev/null +++ b/js/search_tinysearch.min.js @@ -0,0 +1 @@ +window.onload=function(){if(document.body.contains(document.goSearch)){document.goSearch.onsubmit=function(){return goSearchNow()};{function n(){var e=document.querySelector("main"),n=(window.main||(window.main=e.innerHTML),document.getElementById("suggestions")),t=n.cloneNode(!0),o=(t.id="results",document.createElement("div")),r='

'.concat(document.getElementById("searchinput").value,"

");return o.innerHTML=r,t.insertBefore(o,t.firstChild),e.innerHTML=t.outerHTML,n.innerHTML="",document.getElementById("searchinput").value="",document.body.contains(document.closeSearch)&&(document.closeSearch.onsubmit=function(){document.querySelector("main").innerHTML=window.main}),!1}function v(){for(var e=document.getElementById("suggestions");e.firstChild;)e.removeChild(e.firstChild)}function w(){return e=null!==e&&e.buffer===f.memory.buffer?e:new Uint8Array(f.memory.buffer)}async function o(e){var n=document.querySelector("meta[name='base']").getAttribute("content"),n=("/"==n.slice(-1)&&(n=n.slice(0,-1)),void 0===e&&(e=new URL(n+"/tinysearch_engine_bg.wasm")),{wbg:{}}),{instance:e,module:n}=(n.wbg.__wbindgen_json_parse=function(e,n){return e=JSON.parse((e=e,n=n,t.decode(w().subarray(e,e+n)))),h===g.length&&g.push(g.length+1),n=h,h=g[n],g[n]=e,n},await async function(e,n){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,n)}catch(n){if("application/wasm"==e.headers.get("Content-Type"))throw n}var t=await e.arrayBuffer();return WebAssembly.instantiate(t,n)}return(t=await WebAssembly.instantiate(e,n))instanceof WebAssembly.Instance?{instance:t,module:e}:t}(await(e="string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL?fetch(e):e),n));return f=e.exports,o.__wbindgen_wasm_module=n,f}var i=document.getElementById("searchinput"),r=(document.addEventListener("keydown",function(n){191===n.keyCode&&"INPUT"!==document.activeElement.tagName&&"TEXTAREA"!==document.activeElement.tagName&&(n.preventDefault(),i.focus(),suggestions.classList.remove("d-none")),27===n.keyCode&&(i.blur(),suggestions.classList.add("d-none"),v());var t=suggestions.querySelectorAll("a");if(!suggestions.classList.contains("d-none")&&0!==t.length){var o=[...t],r=o.indexOf(document.activeElement);let e=0;38===n.keyCode?(n.preventDefault(),t[e=0",s=d.querySelector("a"),u=d.querySelector("span:first-child"),l=d.querySelector("span:nth-child(2)"),s.href=m[1]+"?q="+encodeURIComponent(n),u.innerHTML=m[0],l.innerHTML=m[2].replace(RegExp("(^|)("+n+")(|$)","ig"),"$1$2$3"),i.appendChild(d)}}),new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0})),e=(t.decode(),null),g=Array(32).fill(void 0),h=(g.push(void 0,null,!0,!1),g.length),y=0,b=new TextEncoder("utf-8"),p="function"==typeof b.encodeInto?function(e,n){return b.encodeInto(e,n)}:function(e,n){var t=b.encode(e);return n.set(t),{read:e.length,written:t.length}};document.goSearch.onsubmit=n}}}; \ No newline at end of file diff --git a/js/searchjava.js b/js/searchjava.js new file mode 100644 index 0000000..46157b2 --- /dev/null +++ b/js/searchjava.js @@ -0,0 +1,354 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + var index = elasticlunr.Index.load(window.searchIndex); + + async function show_results() { + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + var results = index.search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japance/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefor = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefor, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/searchjavaugly.js b/js/searchjavaugly.js new file mode 100644 index 0000000..335e872 --- /dev/null +++ b/js/searchjavaugly.js @@ -0,0 +1,354 @@ +window.onload = function() { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function() { return goSearchNow() }; + + /* + Source: + - https://github.com/nextapps-de/flexsearch#index-documents-field-search + - https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html + - http://elasticlunr.com/ + - https://github.com/getzola/zola/blob/master/docs/static/search.js + - https://github.com/aaranxu/adidoks/blob/main/static/js/search.js + */ + (function(){ + function inputFocus(e) { + + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + + var suggestions = document.getElementById("suggestions"); + var searchinput = document.getElementById("searchinput"); + document.addEventListener("keydown", inputFocus); + document.addEventListener("click", function(event) {suggestions.contains(event.target) || suggestions.classList.add("d-none")}); + + var lang = document.documentElement.getAttribute("lang"); + var langOnly = lang.substring(0, 2); + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + + var index; + searchinput.addEventListener('input', show_results, true); + suggestions.addEventListener('click', accept_suggestion, true); + + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + + var index = elasticlunr.Index.load(window.searchIndex); + + async function show_results() { + var value = this.value.trim(); + var options = { + bool: "OR", + fields: { + title: {boost: 2}, + body: {boost: 1}, + } + }; + var results = index.search(value, options); + + var entry, childs = suggestions.childNodes; + var i = 0, len = results.length; + var items = value.split(/\s+/); + suggestions.classList.remove('d-none'); + + results.forEach(function(page) { + if (page.doc.body !== '') { + entry = document.createElement('div'); + + entry.innerHTML = ''; + + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = page.ref + 'index.html'; + t.textContent = page.doc.title; + d.innerHTML = makeTeaser(page.doc.body, items); + + suggestions.appendChild(entry); + } + }); + + while(childs.length > len){ + suggestions.removeChild(childs[i]) + } + + } + + function accept_suggestion(){ + + while(suggestions.lastChild){ + + suggestions.removeChild(suggestions.lastChild); + } + + return false; + } + // Get the string bytes from binary + function getByteByBinary(binaryCode) { + // Binary system, starts with `0b` in ES6 + // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 + // Hexadecimal, starts with `0x` in both ES5 and ES6 + var byteLengthDatas = [0, 1, 2, 3, 4]; + var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; + return len; + } + + // Get the string bytes from hexadecimal + function getByteByHex(hexCode) { + return getByteByBinary(parseInt(hexCode, 16).toString(2)); + } + // Get substring by bytes + // If using JavaScript inline substring method, it will return error codes + // Source: https://www.52pojie.cn/thread-1059814-1-1.html + function substringByByte(str, maxLength) { + var result = ""; + var flag = false; + var len = 0; + var length = 0; + var length2 = 0; + for (var i = 0; i < str.length; i++) { + var code = str.codePointAt(i).toString(16); + if (code.length > 4) { + i++; + if ((i + 1) < str.length) { + flag = str.codePointAt(i + 1).toString(16) == "200d"; + } + } + if (flag) { + len += getByteByHex(code); + if (i == str.length - 1) { + length += len; + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + } else { + break + } + } + } else { + if (len != 0) { + length += len; + length += getByteByHex(code); + if (length <= maxLength) { + result += str.substr(length2, i - length2 + 1); + length2 = i + 1; + } else { + break + } + len = 0; + continue; + } + length += getByteByHex(code); + if (length <= maxLength) { + if (code.length <= 4) { + result += str[i] + } else { + result += str[i - 1] + str[i] + } + length2 = i + 1; + } else { + break + } + } + } + return result; + } + /* Taken from mdbook + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + */ + function makeTeaser(body, terms) { + var TERM_WEIGHT = 40; + var NORMAL_WORD_WEIGHT = 2; + var FIRST_WORD_WEIGHT = 8; + var TEASER_MAX_WORDS = 30; + + var stemmedTerms = terms.map(function (w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var termFound = false; + var index = 0; + var weighted = []; // contains elements of ["word", weight, index_in_document] + + // split in sentences, then words + var sentences = body.toLowerCase().split(". "); + for (var i in sentences) { + var words = sentences[i].split(/[\s\n]/); + var value = FIRST_WORD_WEIGHT; + for (var j in words) { + + var word = words[j]; + + if (word.length > 0) { + for (var k in stemmedTerms) { + if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) { + value = TERM_WEIGHT; + termFound = true; + } + } + weighted.push([word, value, index]); + value = NORMAL_WORD_WEIGHT; + } + + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + } + + index += 1; // because we split at a two-char boundary '. ' + } + + if (weighted.length === 0) { + if (body.length !== undefined && body.length > TEASER_MAX_WORDS * 10) { + return body.substring(0, TEASER_MAX_WORDS * 10) + '...'; + } else { + return body; + } + } + + var windowWeights = []; + var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS); + // We add a window with all the weights first + var curSum = 0; + for (var i = 0; i < windowSize; i++) { + curSum += weighted[i][1]; + } + windowWeights.push(curSum); + + for (var i = 0; i < weighted.length - windowSize; i++) { + curSum -= weighted[i][1]; + curSum += weighted[i + windowSize][1]; + windowWeights.push(curSum); + } + + // If we didn't find the term, just pick the first window + var maxSumIndex = 0; + if (termFound) { + var maxFound = 0; + // backwards + for (var i = windowWeights.length - 1; i >= 0; i--) { + if (windowWeights[i] > maxFound) { + maxFound = windowWeights[i]; + maxSumIndex = i; + } + } + } + + var teaser = []; + var startIndex = weighted[maxSumIndex][2]; + for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) { + var word = weighted[i]; + if (startIndex < word[2]) { + // missing text from index to start of `word` + teaser.push(body.substring(startIndex, word[2])); + startIndex = word[2]; + } + + // add around search terms + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + + startIndex = word[2] + word[0].length; + // Check the string is ascii characters or not + var re = /^[\x00-\xff]+$/ + if (word[1] !== TERM_WEIGHT && word[0].length >= 12 && !re.test(word[0])) { + // If the string's length is too long, it maybe a Chinese/Japance/Korean article + // if using substring method directly, it may occur error codes on emoji chars + var strBefor = body.substring(word[2], startIndex); + var strAfter = substringByByte(strBefor, 12); + teaser.push(strAfter); + } else { + teaser.push(body.substring(word[2], startIndex)); + } + + if (word[1] === TERM_WEIGHT) { + teaser.push(""); + } + } + teaser.push("…"); + return teaser.join(""); + } + document.goSearch.onsubmit = function() { return goSearchNow() }; + }()); + } +}; diff --git a/js/sw_load.js b/js/sw_load.js new file mode 100644 index 0000000..57cb540 --- /dev/null +++ b/js/sw_load.js @@ -0,0 +1,14 @@ +if ("serviceWorker" in navigator) { + navigator.serviceWorker + .register("/sw.min.js?v=3.12.1", + { scope: "/" }) + .then(() => { + console.info("SW Loaded"); + }, err => console.error("SW error: ", err)); + + navigator.serviceWorker + .ready + .then(() => { + console.info("SW Ready"); + }); +} diff --git a/js/sw_load.min.js b/js/sw_load.min.js new file mode 100644 index 0000000..13e7454 --- /dev/null +++ b/js/sw_load.min.js @@ -0,0 +1 @@ +"serviceWorker"in navigator&&(navigator.serviceWorker.register("/sw.min.js?v=3.11.0",{scope:"/"}).then(()=>{},e=>{}),navigator.serviceWorker.ready.then(()=>{})); \ No newline at end of file diff --git a/js/theme.js b/js/theme.js new file mode 100644 index 0000000..ec10638 --- /dev/null +++ b/js/theme.js @@ -0,0 +1,4 @@ +// enforce local storage setting but also fallback to user-agent preferences +if (localStorage.getItem('theme') === 'switch' || (!localStorage.getItem('theme') && !window.matchMedia("(prefers-color-scheme: dark)").matches)) { + document.documentElement.classList.add('switch'); +} diff --git a/js/theme.min.js b/js/theme.min.js new file mode 100644 index 0000000..8804552 --- /dev/null +++ b/js/theme.min.js @@ -0,0 +1 @@ +"switch"!==localStorage.getItem("theme")&&(localStorage.getItem("theme")||window.matchMedia("(prefers-color-scheme: dark)").matches)||document.documentElement.classList.add("switch"); \ No newline at end of file diff --git a/js/theme_button.js b/js/theme_button.js new file mode 100644 index 0000000..b60f85e --- /dev/null +++ b/js/theme_button.js @@ -0,0 +1,7 @@ +// switch theme mode +if (document.getElementById('mode')) { + document.getElementById('mode').addEventListener('click', () => { + document.documentElement.classList.toggle('switch'); + localStorage.setItem('theme', document.documentElement.classList.contains('switch') ? 'switch' : 'default'); + }); +} diff --git a/js/theme_light.js b/js/theme_light.js new file mode 100644 index 0000000..cea48ac --- /dev/null +++ b/js/theme_light.js @@ -0,0 +1,4 @@ +// enforce local storage setting but also fallback to user-agent preferences +if (localStorage.getItem('theme') === 'switch' || (!localStorage.getItem('theme') && !window.matchMedia("(prefers-color-scheme: light)").matches)) { + document.documentElement.classList.add('switch'); +} diff --git a/js/theme_light.min.js b/js/theme_light.min.js new file mode 100644 index 0000000..fca2f11 --- /dev/null +++ b/js/theme_light.min.js @@ -0,0 +1 @@ +"switch"!==localStorage.getItem("theme")&&(localStorage.getItem("theme")||window.matchMedia("(prefers-color-scheme: light)").matches)||document.documentElement.classList.add("switch"); \ No newline at end of file diff --git a/js/tinysearch.js b/js/tinysearch.js new file mode 100644 index 0000000..183eb05 --- /dev/null +++ b/js/tinysearch.js @@ -0,0 +1,254 @@ +window.onload = function () { + if (document.body.contains(document.goSearch)) { + document.goSearch.onsubmit = function () { return goSearchNow() }; + + (function () {//anonymous function to keep from defining global variables. + + var searchinput = document.getElementById("searchinput"); + function suggestionFocus(e) { + if (e.keyCode === 191//forward slash + && document.activeElement.tagName !== "INPUT" + && document.activeElement.tagName !== "TEXTAREA") { + e.preventDefault(); + searchinput.focus(); + suggestions.classList.remove('d-none'); + } + + if (e.keyCode === 27 ) {//escape + searchinput.blur(); + suggestions.classList.add('d-none'); + closeAllLists(); + } + + const focusableSuggestions= suggestions.querySelectorAll('a'); + if (suggestions.classList.contains('d-none') + || focusableSuggestions.length === 0) { + return; + } + const focusable= [...focusableSuggestions]; + const index = focusable.indexOf(document.activeElement); + + let nextIndex = 0; + + if (e.keyCode === 38) {//up arrow + e.preventDefault(); + nextIndex= index > 0 ? index-1 : 0; + focusableSuggestions[nextIndex].focus(); + } + else if (e.keyCode === 40) {//down arrow + e.preventDefault(); + nextIndex= index+1 < focusable.length ? index+1 : index; + focusableSuggestions[nextIndex].focus(); + } + + } + document.addEventListener("keydown", suggestionFocus); + + var loaded = false; + document.getElementById('searchinput').onfocus = function() { + if (!loaded) { + lazyLoad(); + loaded = true; + } + document.getElementById('searchinput').onfocus = ''; + } + async function lazyLoad() { + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + await init(baseUrl + "/tinysearch_engine_bg.wasm"); + } + + // in page results when press enter or click search icon from search box + function closeSearchNow() { + const main = document.querySelector("main"); + main.innerHTML = window.main + } + function goSearchNow() { + const main = document.querySelector("main"); + if (!window.main) { + window.main = main.innerHTML + }; + var results = document.getElementById("suggestions");// suggestions div generated by search box + + var ResultsClone = results.cloneNode(true);// make a clone of the results, so that we can alter it + ResultsClone.id = "results";// alter the id of our clone, so that we can apply different css style + + var headerDiv = document.createElement("div");// create a div element + + var headerContent = '

'.concat(document.getElementById("searchinput").value, "

");// header to use at top of results page + + headerDiv.innerHTML = headerContent;// document element div (headerDiv), set the inner contents to our header html (headerContent) + + ResultsClone.insertBefore(headerDiv, ResultsClone.firstChild);//insert our header div at the top of the page + + main.innerHTML = ResultsClone.outerHTML;//display ResultsClone.outerHTML as the page + results.innerHTML = "";// clear the suggestions div popup + document.getElementById("searchinput").value = "";// clear the search input box + document.body.contains(document.closeSearch) && (document.closeSearch.onsubmit = function() { closeSearchNow() }) + return false + } + + /* Close search suggestion popup list */ + function closeAllLists(elmnt) { + var suggestions = document.getElementById("suggestions"); + while (suggestions.firstChild) { + suggestions.removeChild(suggestions.firstChild); + } + } + + function markTerm(input, term) { + return input.replace(new RegExp('(^|)(' + term + ')(|$)','ig'), '$1$2$3'); + } + + function autocomplete(inp) { + + inp.addEventListener("input", function (e) { + var suggestions, entry, i, val = this.value; + + /*close any already open lists of autocompleted values*/ + closeAllLists(); + if (!val) { + return false; + } + + suggestions = document.getElementById("suggestions");// suggestions div, generated by search box + + let arr = search(val, 99);//limit results + + for (i = 0; i < arr.length; i++) { + let elem = arr[i]; + + entry = document.createElement("DIV"); + entry.innerHTML = ''; + var a, t, d; + a = entry.querySelector('a'), + t = entry.querySelector('span:first-child'), + d = entry.querySelector('span:nth-child(2)'); + a.href = `${elem[1]}?q=${encodeURIComponent(val)}`;//a link + //t.innerHTML = markTerm(elem[0], val);//title + t.innerHTML = elem[0];//title + d.innerHTML = markTerm(elem[2], val);//description + + suggestions.appendChild(entry); + } + }) + } + + + let wasm, cachedTextDecoder = (autocomplete(document.getElementById("searchinput")), new TextDecoder("utf-8", { + ignoreBOM: !0, + fatal: !0 + })), + cachegetUint8Memory0 = (cachedTextDecoder.decode(), null); + + function getUint8Memory0() { + return cachegetUint8Memory0 = null !== cachegetUint8Memory0 && cachegetUint8Memory0.buffer === wasm.memory.buffer ? cachegetUint8Memory0 : new Uint8Array(wasm.memory.buffer) + } + + function getStringFromWasm0(e, t) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(e, e + t)) + } + const heap = new Array(32).fill(void 0); + heap.push(void 0, null, !0, !1); + let heap_next = heap.length; + + function addHeapObject(e) { + heap_next === heap.length && heap.push(heap.length + 1); + var t = heap_next; + return heap_next = heap[t], heap[t] = e, t + } + let WASM_VECTOR_LEN = 0, + cachedTextEncoder = new TextEncoder("utf-8"); + const encodeString = "function" == typeof cachedTextEncoder.encodeInto ? function(e, t) { + return cachedTextEncoder.encodeInto(e, t) + } : function(e, t) { + var n = cachedTextEncoder.encode(e); + return t.set(n), { + read: e.length, + written: n.length + } + }; + + function passStringToWasm0(e, t, n) { + if (void 0 === n) { + const n = cachedTextEncoder.encode(e), + a = t(n.length); + return getUint8Memory0().subarray(a, a + n.length).set(n), WASM_VECTOR_LEN = n.length, a + } + let a = e.length, + o = t(a); + const i = getUint8Memory0(); + let r = 0; + for (; r < a; r++) { + const t = e.charCodeAt(r); + if (127 < t) break; + i[o + r] = t + } + if (r !== a) { + 0 !== r && (e = e.slice(r)), o = n(o, a, a = r + 3 * e.length); + const t = getUint8Memory0().subarray(o + r, o + a); + r += encodeString(e, t).written + } + return WASM_VECTOR_LEN = r, o + } + + function getObject(e) { + return heap[e] + } + + function dropObject(e) { + e < 36 || (heap[e] = heap_next, heap_next = e) + } + + function takeObject(e) { + var t = getObject(e); + return dropObject(e), t + } + + function search(e, t) { + var e = passStringToWasm0(e, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc), + n = WASM_VECTOR_LEN; + return takeObject(wasm.search(e, n, t)) + } + async function load(e, t) { + if ("function" == typeof Response && e instanceof Response) { + if ("function" == typeof WebAssembly.instantiateStreaming) try { + return await WebAssembly.instantiateStreaming(e, t) + } catch (t) { + if ("application/wasm" == e.headers.get("Content-Type")) throw t; + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", t) + } + var n = await e.arrayBuffer(); + return WebAssembly.instantiate(n, t) + } + n = await WebAssembly.instantiate(e, t); + return n instanceof WebAssembly.Instance ? { + instance: n, + module: e + } : n + } + async function init(e) { + var baseUrl = document.querySelector("meta[name='base']").getAttribute("content"); + if (baseUrl.slice(-1) == "/") { + baseUrl = baseUrl.slice(0, -1); + } + void 0 === e && (e = new URL(baseUrl + "/tinysearch_engine_bg.wasm")); + const t = { + wbg: {} + }; + t.wbg.__wbindgen_json_parse = function(e, t) { + return addHeapObject(JSON.parse(getStringFromWasm0(e, t))) + }; + var { + instance: e, + module: n + } = await load(await (e = "string" == typeof e || "function" == typeof Request && e instanceof Request || "function" == typeof URL && e instanceof URL ? fetch(e) : e), t); + return wasm = e.exports, init.__wbindgen_wasm_module = n, wasm + } + + document.goSearch.onsubmit = function () { return goSearchNow() }; + }()); + } +}; diff --git a/katex.min.css b/katex.min.css new file mode 100644 index 0000000..444a00c --- /dev/null +++ b/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.15.6"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/m1024.png b/m1024.png new file mode 100644 index 0000000000000000000000000000000000000000..f733670df0f31e19115b2a612ea94ace11cd62bc GIT binary patch literal 5144 zcmcgvdpwi<`@iqowq~}>DKpWQ9GY^7i71;WB!_6|nOadIJc|k`?o6X2X+ln;R8G;E z6muvYoO)7@#Zq`mH7QYS-+R8#_xJn${rls$f3DB&U7zdlzOMKCwflsp`$htei~|6G z;NtAK1prXU5e1+W5Oc=DstPfxo^C!)78Vvop_;O6;8hY%b`c15*B9I_$p8Sg1{X)B zPYgKT04l-&9wpKwPz*Z#8RJXZ@d`vzv?dbZ|NfcQ0yfbiILsp*CAjFjuL+#ehyY`rBrpZZLcDEs8mJ zRl07)+@tb}NCsnx*^u+hUvVG2g?0}?hUioc-NyYF-_pj-{2m_HfdSyF2o8h= zpc#x9Uz9PADQbPFvlhvgk^|h6r-OmeYWeXbXSdmW@ByTPa=vk5Mnmr~0f0F0Qa`P7 zBs>psv=Dkzw3EmSq1l+Ua3XS{irkJV5k{N@BY8q5qX&)m9mWG-F43vVTevg}aYmA4sWtxNahHkQ1u#ZP1@raIU#(W; zYRhwApH%Xn*K~*gr>a#Xln5XapYBcXkl%#UNtDq$U-RP5+trxpV5}8rJdK8D93r65 zLwUxr!WuSjh7BFVc}6@YfcHdsHz5X)1JkIuUv0<=Kuu3j5NC!cA*Dt%tlp4IM7|9m zDUhou#2Aa??XW1WgL;Gev6GznX~_-JG=xmcPw}3-4*;9xzmrijk4=`=&kOedg|vLI ztj0J0+t_;Z`8ZYNeA|xV`ZTCa-u8dhZ6uc0O<#;8@28jn@^0nL3?C}yXY%3SY8b&? zX5CS7lAum;`fwtcLFL$)WcW7qQW9=YohNUfHW+%{cSnK@VLEP~$8N3@HY;&(0p7@N z;p81U$+HFfSkYXhVuTfYlg${n=3K3Hx`O2p;+Nyd`2YO0$J&^W%Yfwj;|{aZzII{uX$_1YI;sUwPz`n&#;Z~!laH|+Jy!=S@mw8aBx0QY1T9tqO!QxCmLX(u)0mru!;h<$E{o1oZ7JFwV2MRJHUq zzZcs25h^bwHT`?Ln$0=k=>dubHR?3paP}cq+-pKa`4NJ7&B__+Z3xS}8%xA; z2|!>mO0=Qwrf~9t54k&sBdld1KOwv0`5#lkzlAIt+PATS-;JQoL5j_%PaF*Xx5jW} ze=c$x05Sa({A~?CmxZtZ)rF&P(mV3VQ_!jAa^v|6qm>=PuYP;eD+lZd48bN^dz?_+yLQ#nl?m;mMiNB~kCKuee42Vjv2&Mi}9MbgUVpa9i^o!P8q&`AAdw zj5(~jF6tnzJO~*W6Mn_DN?DafSanNxE8%LAcauiL{FLOPhQQ81h}uhGH8B}9d|GEf zfOM7LyVQsVz_q%Ngb>1R$GepQzYHDqrFyb?VUtJrG=REISPp}T>R9U!%vT}jrBPy( zpdqpk4OvqK$V9Xqk%7%C6@)01fLkVJHQG?;l`3ZB(lSJJMX`b9o4>7R3>8#ln~RWz z8Hg%mH7yr2XPn<^{yR!_hD7sbjDork0=GaS$@W(Lr*1qd(xHd4A1~yOCIg`{iFTRO zg}L+cHopz>;?#=5h-FA(5|@qjOPG~@+&R!U>iGJ@&*kD{Q7wig;z+FtH5)oxrB(5U z>K8>Xq<~yRp$d@>2`Czmi6FBaLH-|2>i-8X0GWfMbh3K23kEb3F(~tz;adHQYb+jt z5S_CIP_xrZj8h)I;`* z%JHhAdtZN!ygwreHpWe_Z0h13-{+G_PZ<46@bp#oA}U$I?`l#)|2cDJg1`UAnoyU$ z9w~Q|d?yb~9h!*d8_ULW;Cy19YWzjhc8@4<1;#p@ps4{>rCqK8>_=q!SIrsD*s3?H zYZZUkD|#N)6Jw+v_tSXlbd@R-&(h((m%iCb2ERFU}S%uO6Db2D-S!WCO; zV`I@VVbsR^xGo|bJ^2kMG#82@(sDI~qI_bwVuwG73nO%&8OqgQtmY|&$sarmC3Mq= z44LT8*OK)6Oe~GzQXwWoMl|>_+_;CwuFvTh-9Hf4H>D@i{4yLk`Do@yowP&HtyV-G z>U%S*f*}F%zx5lx;#D{#%Kg+&8jL`O4OJ-n@_QhEHJ7j?LG~f~-AL{T#KqIR7g+{% z&_p!^Gf|sk!a!ayr2d+GoeCI>dJ>Zt^c*xoa^Ad>H2iL7*jl@jskIByMkRFidSH7c zxX28zAn&Gp)WOj2tn5v}LwAB{xNEhJLQwNTmlpJ*E<$9)PB?cOJT#i@p)VLk{*N$F z%Kj&S7j%yV2cH`g(oIe&2@|im1W>$8OlNLVRDP+?=r0V>&;l-ffT!LPf(6BlG zOr+9XFcWov*UCC(g>N@nE%^e*XDbo))Q|s+0^f@E#r3r9OGti0DdrW7oV61!0ID&9 zn_BoCj+bU_r`wk-AF@q89T_;ii3Fjlwt~9X07GJv^7m~uHIOBRzuj1*ph1C219KV- zV;If6Tx$%oU>wS8FaW#_J>XI9M*9L4fMFU>_MjHpi{8s1CdbKLR8ZpNFLgMfhVX|9 z${cT70d$k1Ls;PDRb{~4&!@fK23x4F!0w6v@{sNdNPduw8O1O4r1!-MQ1b4~JP zh>b+o8VadS9ULUrh1AC{$WQ)y9>?_p^J8R7qH`u~vNyGlZq|nL#c4k9R~k%ExC2CV z>rbZkoMS`wixF3UFbu{Xm`-i`amqfEGs#@BYYRA{A;M6a-yELsN@RosI3cvyxl*?O ze5*pwW(plZdxD1>Kh=L~Z92WO5Hx~uL*!CZsY$j|&xFEWYm_=;l&Q=BFG%%!E^KgT zfIa~Kc}Lw+q|(5{eBinT_6&rAdfHQhp=(dkT%BXp$Jj8AW129v1GRAl@aV%vG!~6D z-m7xB;K!pL16kuBktu}jXJ-R%@E4x*cKkdsoBHX?s4r*i1spx|r*_MnN71CLJx_y&}o@i{1w`E4MpLR1wD5_%octYHAEV)n68gkcR-?EI&zm%g+7T3qw&CW@~ zjwN}R)VlO!*NamAp!o?cbb$?0BHVHhr38i%QYB6^(6R?o%PzLw!V^8R2d&?sJ+i>n z`UIE0PoHahl?zgEo}h~K$-PGEJHJZ+(Vwo z8cHw6adO7*+28zdr2R}O_PdJ@nvw_jO>SOuRc|Vt#!wP0t4rPJVtN&F)4ibf6w$z4 za58?p*au$Z{P%912)%g2La1}nzUi@c=ThW!E5k~Rdx7J&#KquJz-^#&+RADc;4!G` z9!)0Rfhc(GhSr>hZJ@z^Don+UE7eKYHLhAZx54ZnUZSO|V=7R|7o{yb+M;4@VyQ>n z6=kA&%2I@h!7Pv(=8f%l85P}12KXd6%-0AGjx!NZFpe7V$@`~|pT$uQ}z-a?2tbPs*RO@r~xB;*kd#-%0Y#gqZ(>`|VNfl4T-IFtU<4K0~f zfJ)*Vig0P?D&pO}Aje;Hij3A-2K16pYkwng`R9QvFJU3Xj+{1a+F;hPr|PS=2IuT1 zLX&`dr9}LYKoiaWviEdNzTY|GyZTd>56BK*(G*n}mecUmhlyqg)X1!CiFpAX*xN`Ccwj#)%)Vws-D zNxFZll#h;McBX*!FG_*A;d?J$P>zRVev>uRJ}nY@q(*m7eW+9FkkuTy(RLp#YT54L zl#g1G+0Cab4XIvuv8BT~Gh$~?)pqb~$P0&3lUVf)jR|YYS@7Xr*S-h%=i?PD8eEyV z)hoFA>5sXs72dE(_nMOhd&Iay>`Oo#Pf(+B`oYRq(c21u-$$GT1s`^BUOq#S4vhp) z*D|xLc<1&6K;L`Yy|?pr#-@b7UM8aME-8d|0lRX3U}0^zI0EH8E9<11c#TZ?kB@;@6eLp{%Aeg%#ajK6!m#@IkZKQz^$C(4%LM196)$=NvATD@c{fhJ zk{n(co~9@xKKzEp9tSFmhZa`UtNmrVLowC2Nx}7!_uGKy_j*hJjx|8NFB78;?lMEy zP|+(c?qYE2wlkPDPFSKsd3OHZg&q%esSLc)wD-|X^an68ZAqL7>U~>Xzbe$;XGK?@ zA#q;jR`N3?alJEhU6O^9H1WaOi?-Au+x!m~?MiIcO|i5uUnAFP#X2w~boyuLP2T5e zsP%f%&qwg67i}%2b7z%R%IHO+kbIp`q_*qEcTN;>e77RF3%>K$`8H-%w>~Nbj8*HS zjN~hVYp67F$f#^TTj)BS-1KovTHDRgnE3m3p)toMk6^26&3(M;&Rx*K?Bl(^w>rnX zfH?F#Jo`X%p=t!rnD%$lUS3RHufpMj`vS5CP8;PBPhDP+`*Mq^2iA-}a3*Bv`XAUB z^+=z_oIug6M!SGJ*4L$#1K+9-O2Q2TV}bww&jSTXhHHBPw|$*Fw~Ldz<8=p4 G;=cd}%TMV5 literal 0 HcmV?d00001 diff --git a/m128.png b/m128.png new file mode 100644 index 0000000000000000000000000000000000000000..428f8633ce0aee19c533ddb9e0dc327dbfb1d21d GIT binary patch literal 811 zcmV+`1JwM9P)9s{2IT8!G6n+$vJGH?7~nv*0nC8*%fLg5Fbd#r=i2GogHbpYOnXrQxA%5uc6Wdl zO0X;l7#0%Pvp5xuy9l6mOI=`DN`lKo)IXPIp64Fk&VG-8`2mdY?fd4v`MtMTa0pfo zu;2)+Ot7E_R*(QAJ`yR|Xd*GT7r|5pW{N}vHs(mgV4{Ic02X$U$-u%@WM*LD1~MJ6 zaE44DEG&^3*lmJ#r?l`AD{$vpnS6PXw`Q9R*Jh{CNs0sR{F+WBWW z8B-C);&m95o{EAPlnw<3wafOSrZgx$5*0Db)e9)tbDyw60;~r2B7`Db=B{)g+|@2r z?BW#VgtOWkoU^!5;A)c<5G_}y@GS5HKlN7NxlY*IW#`<3owPaj4`EUE)elFT45zS@ zUilXwT61SRDSi5Ubg~?rbiYJSYG<2#$dO2%x;bSR6*8B(Dsh^y?E_ReYQr{sJwt{5 zOQB@WYG=9|1LRV{Qq)OxfZt>jWnO=;3edenN>_%}_0i@4y-+Hh zVYPdcO#$Lm9mPDb{ka|>$*7hXYb(P7;8v~%c*wg+A0*2;$z4$2X p|0w`MQa(F||4B_vO-)Tr&0iRtJzjqKkfHzp002ovPDHLkV1g!IX|n(T literal 0 HcmV?d00001 diff --git a/m192.png b/m192.png new file mode 100644 index 0000000000000000000000000000000000000000..0983cd8abadd2a59b66a3f5683cfb1cc76c24a0b GIT binary patch literal 1085 zcmV-D1j74?P)#uWEu@kNwNR{1KLSMK~#9!?V7Pq8%q$zhc$*r z=P~O$yITYAJ?IQkl$3W7AkiHpN^M7p()tobP+}UK&PEjZbJLjB?p$$mr`aaiUuOaP zf$#IoH?u$_5{X12k;tEiI@n+!4A;0}0AX0*h9QIjEf9nbS|$*JU9`+01Y2n7K?qLK zvJW9B(UL*{6gn7?XAd1#AkQ{BWFXHN9r_^88XZO;PmT^cu!%z0Xa_x}flOq{!kQ?A zjb`YPfHX*uHxa>vHIclHwvf;hk1T{isK^p3x?lwmrHd5`kmMh%a4%gbDE%;zB`w25 z7klhzZKc8#ivC!-SdiR1-wl$0ol_mHASN;@h>g}xfmnoyF1hul<5(TUMBdvKAot$8 zRbv$(vP@jdW&up(RqnogWEpzBCy_VN!0Vn`-b9)IM2vW3nbMcik)`n4XHPn^X!=N` zO_b2r(vf9ALzr}A$>;~W5RNQU>Z*I`Zc{0)!jT0wh(;IE!bpRY?lv1_dk%>aBxHz2 zmQ}UG&BaY5ZzEzNc^i?#sHm`s#BD?(i$yNFkjPTCZYCR9EP^(oWr3Ct;mA_$qT<~~ zy603g3dly6Bl@e-KkS`YWMMoSiO8aiY;;jxWH~mlok91)i!MgWL`#763buN%Hv(8n z*oe3VT>&IElIS+RfK1QvW>&4MU# zh7*?wM}X#rQSEr8+X!5GO}D0He{L?2oZt)d`aQ|htf|1TaE5KhkltN16G$g+?&Yi* zI%N|9Jptfc`IU|jI(Y+uC%R?fta?uP0uSB?uFpw+1ppj#1%A*i3&lc=@P;RFMHhek zh2b+tATa>kF;bC=u4eTD-GW{Wu_mCz{xlQCFp*~?(|SPe@o!)F&=o#s^)Ikxu?TEk zxR<)^$7S9&rTx}Lk$n(jpJZAN$QggFN)d4fbsLu>?xH}ow9%Tq7p>18j2gqg%;v&e zH?`mNt5+`+P(#;#tAQ{?B9TZW5{X12kw_#G`HT1sG}jxoDsws300000NkvXXu0mjf D9wOym literal 0 HcmV?d00001 diff --git a/m384.png b/m384.png new file mode 100644 index 0000000000000000000000000000000000000000..5909ebbfa5adce249c866abb55df294ad6d669b3 GIT binary patch literal 1752 zcmV;}1}FK6P)qkpyYw=^+3B27yULK~#7F?7@Km0001hp#7;AsR95100000007ni z14bnPHFj*UHVj2k*a6e4$N&@!;DP}peCa9Jf0hg&>6mmrwS{B6ng<~_LzzZ{kei`vrrF#GCDn~k(oAi}+i3!k zBa{>eLT-lEK&l&|q`47tFcgfV%|PyMgbWO=!BlUXv2>bmFmE|Ri5npSL$`$UQ4A80 zrbbA>P!8j0Gms)iNWjpV!&EmyNfRR^U?@LCj!;q*Z3eQr5lX5SApt|r{E%IaP$EYt zDJF#Wr-30r==Cr$H2SimhcY3wT}=$7&;61%i@K*+!lAS7Uj z+RVHvYY=iU1lAZBf_nnDOM;MqAwa0Y!!-#)4u$|B0YmT|`RNo0Sr~$GK`~5#lwho2 zrGgjiZ5br^p9O73&}pE!W8oJdBw&dDhxsq07$hvi1SkUsJO}|pf;OY*G=L18I5$Gu z;k5b^AY@?(je#SAHp87pfRKVAUa2TnD||f!s}*=b@hx_&RESyuLJEd>OrTQ&gcJ-t z;dbMjvP%XDI3{Q_f=xMDNp6Y`V%Fp1gPK-h+Z#wL~_UWAs@%{>mc z13-qdh)`KgH_K%L_;yfM31o=(b$$0g0N?S}3NJ$cw)y@*Uxq|kp9kQr72Z;r1>hZC z-cp$b;H?$fQn|JHTyA$w-#4diwYdTC)(UK?gl3v@cdwVH$_4=3TH$9iWB=YijL&}H z=QOwomGAvbd{(>+v3+>#g&2Td%mM(R1+b(54yt_^i1YIU=!B;LI{iNUl)bp%0Gz%E zJ)I1h(1*cZock^s4~v=uXcwvwP08o$sP66PR1i0h}Xgvwg z)!6`+*9icR0I)w~n1$K1`kKN%#;A}PSy1^}T6r`chp*$Maoz?_l{po0Zy z#+c^+9$~P-vb1SN4?#cW=F13znr?cR2*7yZ)KMX&Ne5tNJHQ3nv8lDG0NVKu>?l8= ztrG!o-iXO-Qy4b^fP1}-F#v_dEX2j%cmwyB5eP?=HRxAL$%T-K15}+JmgVxCTh6)52af{qXWCQ^sqE*W&hflCU(M!e`AA8;*kF_K9{rfWbi@uRhFDjL8Aq!&6^?&z8gAP^1Q^W(t3hGT1ULz!Ca{ zekRR2CBRWA{6UH**69F_Lg5cojK59=aHR@)q&)jH0Ig8?1FniwrvPZJP<;qiylx*CfD|ujiDn<(>m*H!+{_rw1g;iM4iIbruVF*iQ z&RWqZ8h~pt(*=Lk>-+$3fC$Yh!iU;22GpEJcP$lQFrl)H0VzXPZ7mhjT2T-og~uXm zh3MzwMTnOnT@m7Ch!-LKg!~`IUs8P$Qj{TiHp9B!2t;X004lX u|F7E-r~m)}00000000000000007C(q-lQ0HM6<2{0000;HJUB6pU>xC!2S+_FnPwU4js;gmDy3@{VoE3PkpxsjD*2WHZ&4(#aTCCK z5Kuxa#O(gy0003ANkl~~)WvW}HXosxJg=xW_DRB1qZwVx=Lot^@O(#{G?_x3Hm+>YZ ov40*ry_gZFT#V5vPW}roZ*vz2JroIsqW}N^07*qoM6N<$g0xVlUH||9 literal 0 HcmV?d00001 diff --git a/m512.png b/m512.png new file mode 100644 index 0000000000000000000000000000000000000000..21daff2e90dc3d6a0b7723a3cac99ee99078d998 GIT binary patch literal 2564 zcmZ9OeLT~P7stQ*?%Qm#FnLTFG2%)$Ppin-R4k&9x?-+}8w$(qVu_8gr7X4ACaG-}?RWd)?RX{Bh2CeO~AFKCg3L=a0j3aXyNc)sO`M z0PS#$bP@nSX$k@mTpAD_ot@HvaXId0Z)$4F_ScZ)0DTNO$sHizIBq^*@*)7B${a|x zZc(uLW`?vBpmR1KsXqG7__yH}Q!92P-UAGj>So?Ug55N4XUgcMzA16?$W{pF_}5C& zss+z(Mg8WyPYn;|*V%kjvz)Cdw`98NeMz7$)1xOddDMvSeyKly$<&wy1#9-V4_={= z@*ELsc>hiv#+U|E$q@{twyhYHx#++$-?F^f+4IT3W<?IUw{EIo{xrzaB4G_J}hxpVYQ>Yh`VPE+tJs@?#Haq7#=?ex3+#FHh zi1dI9>$YnDBcCNMTV#IZnZPImQo{Fsn^?J?T0Q;%;mgTQb4WS}cD7hj2;*8OLbK$8 zc3beqi8=&DA$F0cYS-qXD&$*Th|liUvFOmd%TH~3)e&z+^FQuMfY<}0 zyAvSCPU-$e%)N!VOi!?Au}4LM-DoSA)x!=0$0!H2lq|2J&wTQO36xhrS2FO7X>S4( zZn$e^e2lC`2v~6$@~!xJpJ|OZohxg&maP15=smhx$Rl8=vMPQ;*BMn+EwK3H{4UX6 z>K^#_15F!QMO4~mNSIE2y~tt-M;#>W)cb`AkHvIk*?U>4r z5M&Xx780&DOS;9=mz^TXSB*}vzHWG=H71q+xQU^l-{|oNx!mDt=P55DFR0$HehYdq zdC}%(c3rI3%RFB6i}QC6u~x?FpJ&xrrd2}I8vMaB=cyRS`na}ZSvBTqk@8=knf1z0 zzG>}x;E=n*uwoq=z?+{psk^+9+*s5{GwzN%UU0Zi z%AvHC3X^ChUsQ)V7ZYAY-J83)bLb8)uc%#AGVg4MY`Pb`KK;E0|J1u>T#Ksj5MbixKQk2{ zD80%mhkD6@uG2)J!`VEZ=yvk7L$22SRH-QMI;uzM=PD!KHtps7HawgWH+_zLqtHrW z`wpt5XKiwOt<3I)$%DP)^ks>ptH>&*!@z&MtLCFY^`gGZz(BzD_RH|MlX3`@S%aC{a0!}athsVGq|D4m0&p!cTOnTwuN}_UCE?7ZPdpKmFmsY?_lC|v1{}K zh_Bjepcr)ou+|0w(x!};^dX@>#18;;!AI7BE!a7|ugQgntj1rR{^bwr35^#_ z!UmC;60Yj(92KIe3l=`yo*nwFb3cK6-dJP?T2-(4l`Z}5&3y%`#TheI8TEo$I9yL| zb61aZjC@b(hXG{xq&?x2fvJ~pc9+3~(um7%n%7LORr*QBb+8Rv&vvDItl6p2vF^b0 zIwasvFk%gbZF7Y*0~oCR<%*){aB2t+q{P*}RdC?$(gsORUpx|NOd96&WNK6 z#bkGMl+xp|E?I-J*~s{YQdu=(DVHsu6=8|S_)|XyyZC9{ty@Gb2G|LXM&as zjY-Cl{nxH7EMe_3zzd!%kBX3fn~W26$|QXjv=A4J?})5`L6*Om9`Ao z?6lqSOn{7FrfT5`TdF#08_^N*JkXGy0^~gh-2heolzLD^IGVP+-@hStO_Z$^wf48< zWhdbxGv(alVFlF(97S_v@b(z-1mqe9hwwA^Aw^0$eJR8i@_(~g%(e%_t4W_)QFx%i zGSiw+MtJ_aZh~*3-#a7z`5@SfT!yuW9L#WLPQ0oEOWY1V>ke4=X}3ObTrEJM+-Xd- zr?uCu5CW5iXRx0WH!)%|Oc`1z-^9KW%$;YtP}NNNPaEb=Qc&18;Of) zy7k0qIRHC%GYUGKwQDk)zaPNsV@JhU7f5#^nrIK?1~;jczqUd-`XQ`T13KuZbc~lw zG8j2*1>;<`+1QX2pJpgGt(lOEeq;{OBl#F2ym literal 0 HcmV?d00001 diff --git a/m72.png b/m72.png new file mode 100644 index 0000000000000000000000000000000000000000..763db52073d77f540311f9d439aa788f386cd8c0 GIT binary patch literal 519 zcmV+i0{H!jP)cU2;~b`koQ z0kU%wBp2_k0004oNklff5o!&@se}x{N8?EN!g1j2UeibDh47^lhF556=Y>0z4Lpq^K?HI&RaJdCzUy zvbbH*l_h|rYwNeKw4p^0j|?1SKVQs2Q#QgkBeyBbbZw$c*EVfsqHTivW?E!eWLnH{ z7p`R}hXA?ZX;}eQ9=4$@lWhq1@armUDzE&ktid;y#+9zeR zX(qI;YvJ3K`9T|ZxJpEh_-rP}wbw=3S0h|z8Xaf`F2O0LN~;=DnWmD0xGTj8;Y`lM z=QaH_z-E}jXZ0axID%-#N~?Z zF(lm`OLD+6c5mdOEZc8GIFn`Bep^0Ys4V<$d0AxmL%m+F*H=W;5>~}PFaiJo002ov JPDHLkV1l;);`RUl literal 0 HcmV?d00001 diff --git a/m96.png b/m96.png new file mode 100644 index 0000000000000000000000000000000000000000..7089028c7be6c233ac98f9c7670a218aa7662123 GIT binary patch literal 615 zcmV-t0+{`YP))EY!>*H0bNKawR93{PbGI%BF20Ugj*iGGdth_ z00HkwL_t(|0qoZaYQ`WC1>mP+j9b+EpSDnvAOnQ?Wn}eZDJ2P(SD6L6wr$(Y3u{=q zSuA1bWw3&ym%|DNy$&qkY2eo;v?imI1}D@78c~3@NF$1C6Izf_ASSF$NI#=QOoFOR z9A#)KbW4eD1)Atl3O%6cqDQUtxRxXYtjNgFqYQ_US&-1heo@kf0x=Ygrr&BJ07Uh+ zGh7^YrL+?|SaWXLg*5WQ7oefjBlE)4p~13*hK#IkLJl{lnvvrP0av4l(lY_F}= zZh>TUGV+OTw$MqhlcJ?t@|agipkiJjfr44FlSq%4U<^tlkyc;~es%cDml|85tJTF~ z`IG7o{32xFv^28LW8gb`d;&Q@Dje+l62Kuu8rgmXi1ZGZL>nIqDmnBnIiNLSqHu3( zO>ls*;%zAtN7l@2W5-7`;K5QJCCn zy8K18gcLFgY@ib@=>c*+KfL0r+qP}nw*7550|07{8i@j_`rH5j002ovPDHLkV1mWa B5cB{5 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..79937cb --- /dev/null +++ b/manifest.json @@ -0,0 +1,19 @@ +{ + "name": "Haskell programming language's Blog", + "short_name": "Haskell Blog", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/manifest.min.json b/manifest.min.json new file mode 100644 index 0000000..3248061 --- /dev/null +++ b/manifest.min.json @@ -0,0 +1 @@ +{"name":"Haskell programming language's Blog","short_name":"Haskell Blog","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/mstile-150x150.png b/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..dd578e7ea43437433a0d703785e540610ea5ac0d GIT binary patch literal 1608 zcmeAS@N?(olHy`uVBq!ia0y~yVB`Z~4rZW;e?I4QAjOjI=Z7-nePseCL(+#ax*u+DE#Ap{+WvSC6YHMhSpqsTC<+d_*$ypo{d}OB!DL301l&LhZGm6S|k`O>e#$SoH9flOCI0&&?A@kInxjRqZ{c@S^Ra=d_Po%ziF@M?;@z;t<(?2HvIwm;z^he=WAnIiBuVWVz^)6|D zy%Y-~g(siRtbP1KNBm`J)hjI^`RkR2_{-F)*J|P~Lm}j^*DB&KUAGBLIX&~$iyt?O zpYQcpzp=F=M$ac^&lA_G-rR!pGsor{o<5P9t{1*8%)Nb`X>6>>D#_ztrFkC*%<*>6 z=_=;@8M?}R`ULK^Q%|3rxqjQF>>NdnsdakWSIys9`+VKJ{=~+WGj`s2z4GS-xj9`w zx1X*xeazu^bk8oEiWMm`fpym_9zf;9T%M2 zHSzRk@uU69RzQ*I>$&9Jn?laS#QBTa_NlCt*tw@N`iliqQ04c!4T{q{`C0pwRi^eI zo^y#Drm3tS(OnUPyV6yij^NNgbZn+S3)#2j|9(BI={)NdH7uv| zRCjZqQ$2m|b5iliFRz{l0m-Bfv!4Hn|Nk|nXs_A7+vUgi|M~cN`j;w3TqzZc_@sYK z)w;=Bb_z|52Fj|IxJHzuB$lLFB^RXvDF!10BNJT%3tdCg5JO8VLo+KAOKk%KD+7b% z-5-TeH00)|WTsW()*$rEa~)7acvVP5Nl;?BLP1e}T4qkFLP=#oszPQ#39#g-nDh7( z4@Y5`hQ=xX(`P)N1~D)zbL%B@3o8qIPZnVoR&Z%BIh?|*yg5YS^o=Vgj+{9nbA=HmmfQdU literal 0 HcmV?d00001 diff --git a/nojs.css b/nojs.css new file mode 100644 index 0000000..7e0ba6d --- /dev/null +++ b/nojs.css @@ -0,0 +1 @@ +.js{display:none} \ No newline at end of file diff --git a/page/1/index.html b/page/1/index.html new file mode 100644 index 0000000..2d10879 --- /dev/null +++ b/page/1/index.html @@ -0,0 +1,6 @@ + + + + +Redirect +

Click here to be redirected.

diff --git a/privacy/index.html b/privacy/index.html new file mode 100644 index 0000000..219cd10 --- /dev/null +++ b/privacy/index.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Privacy Policy | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+

Privacy

+
    +
  • This site does not set or use cookies.
  • +
  • This site does not store data in the browser to be shared, sent, or sold to third-parties.
  • +
  • No personal information is shared, sent, or sold to third-parties.
  • +
+

Effective Date: 1st Jan 2022

+ +
+
+
+
+ +

© 2024 The Haskell Programming Language's blog

+

Powered by Zola & Abridge

+
+
+ + diff --git a/report-of-js-code-minification/general-category-size-reduction.png b/report-of-js-code-minification/general-category-size-reduction.png new file mode 100644 index 0000000000000000000000000000000000000000..c22881846543595c99b57ca9aa0ac35cbd9bf677 GIT binary patch literal 212480 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
  • 8>G|$up{jB!;3O6mb)-?Q}X)ztWqoFCJ;)d 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 z zw=($7Ha-9CkrEc_>bx8|0C(R!98foxhSG|8yi#787aUNOfxMqqlt^fgTL5Ce29_nl zd%1Y$q!h13obLW63pTN4EG~?CJf`>qo>N=#Ke-^ zimu@@o)yiTmOhR@r7BzE3{PjOwB)2Kdk&_=0+8+1aBQV-AARc`za=6g(7vt41+)JK zSaOnxBX2@jiiT%%HQ|TC6ZyqiO^>su2Ct^*8aX%FsDeHaOP;<%YyleHowrq~iE@Tmd~iI7rMArj4qs8tTg9Ql6iy5Qhh zqD7O;+FfF2a9(SF>oNc<39Q%S3GhIA@7FL^CYMkgE%87sb*m{`I!GEFNW@}*m3ibn zGA+Hu6j_FO^a03V^%D%w@@mJFEa)26@+&4HbFCD+PT%*0t)s|BpD}a?H@Y{q(qbtnNp{Z})H?f7|86iBk zyb+YkYKe|@uPAt)P+uBG^u&y+;*fi=`z3S)!5hmflr5Pqs4~KG40N}Q#dd%5sumrQ z)I;>sDgCD>=tH5m`G$&z)vaaEoCYarL%@HI`IWBTl#|>GtC95~*r8eM)$B-omW$H* zhuBnMi=zW;Rrb^;fG8E!j_8X;I2`@%+ff-MdjAyF*SF-F4{U3n)7oGK%wFtyt68TR z5GllSaTAho!Tr_Is8m4%b}^H2U9fvl(WA=4x7(+oKaK?m`W)cIzAjE^{SH}K{-`rt z)-aU%JQ?^>EZel9PE0ZN%>f;E#gLg`NE=N5z>}Ls8`;Yy!31A@(X%sg_$=!9g@sFs zGI@I3v!vJ*?_+YHGX{aKT*UtvVitUUIplqX5R3bJ1_AguG(Egeh^ynH^;?O1`Y9?n ziC~N$*L0!(7o*MAnjzurZy{V-&#Auv#neL@bqd)|V)KsEyYfOLDM(@NF!H&%fFD_JSh|9H_tnL3qsk-r9QOhwiPA(Sz$HX{Fhl>msc^;B_p5_iaIj; z|3lMNhDFszTj`MQbm&G>LSTk&B&E9*q$Ly>x}-xuV(3&tX$k3Wlu~NwlA#=iVdlvHdgBo(sNhS-uatP3S7q4>F-m|!f=_)h%dJ#B#E(MhAGLEF76kT) z;&B}{&ybSRt9IG%?99mUwQu34t(f9MCOi|NNf&?|*v}fWmhdX%L%v;nJ^D9i1sicQ zgY2vk&)M5=X{o7-<9w>PiT24Mj#6E>SjNh`s)jBa*Ulg5Z`4S(hOslKEF z=ogr~PytM$gqJlUMR9M9ZR|0GFvTvSFWoJ?O1J-^tH6+QGBEs|xSQSqcj_zy00n z#gTY_JAL{Ggt?zOxbuDF+3K25-NHHBM*0(&ZgU!Kgc=1JjDF1StfZh)I<-6|F7^*6 z_ND}TxbDqv3AKQxJ3BdMuu)WOaOxL-FM{AYHuEVeCdYa7E<;iiw{|5lS~n%bkLb*) z05}=&>q8au8H{1ISP*teo=9Taw9o0pZ>>=ETLi~)uA{+3KeeK|OmFk^+v?Cn){gg8#8BkI`G@2V04Bz{EcRVd;e#*;>RQ4zq7yKtdr$xD83?eBwXZ1^8 zjb_#_GqeOXgiZg^x5*=a2uR5BS~sVE3GcS4-z(rIt*#yh+J2C z{-?_MU9q9l+HrOdB&1wTEJC<2bkanyZ(~HV-y`RGhHIm?B|FYEx`b!QC|OoDNowq? zhiXWvuh(i~j5S~G&W5-yDiI^8ooQ@oSsKE@lSs?Wyre)5- zFRZ`r_9rOqL)z0*Ykv4Z$&*l9{<7@H_->q5p3i8PWqOHgEpjR-$eyBW$6@Gum)UC@ ztoipgG&6U!{ar7h5G&g3t$d~z-kn$Hf{ovAayK5tZn~qImEqTpYqD1CC{EelII){e z!^qT$z?Kic`-}QCp7(ygWwGD+SiRw#@T`Z{pf-3ckofVS;kQr!$Yjk760JX$cyXZ4+z$g!YZ_V4iBE|iT_Z2Yw?cTPNQe4(_knCisMWR|-{ zrPuuBNs5M}3lr5^RPh56o~)af*HH8+c&^im2YT=aQ>8kZ%wTkmr*wRZm{OYN*>*a@ zc>e_pM*ms1*8IdhG!xTIau`32|C-85uM+GbkFi8eKhep5a<<)c=GI7rdF!jXU_seF zgjCN46@JVucH>9yxk51 zKI9a<4Xa+sYP{T8Saep8&!&D}-0HGuhZ;58xGmGE?JI-RMAAJegDr##v$!K4`?QLb z1_wyod~?i%dc@kz-@TNzd?0Cx5z^K{^_Xs?V`u8h76bzlgmPOg2{{ZIfo)- z)SLYzY&X~PsiWG&+HwA~|9U^00;fk>vkIgeW;G+;Bxgns_`w`v;q@X^LGaOKCqEiEFL2Nv z07TZFfVZVlw;#{s-nLWx`=`mg6P3}FqAdH#_KEwY(EustG^3L2NN3_#nV+A4 z@T&oa<&u|0TzcxuK$_micLfcTb}wa9_IM_Y9CILDG3OUnNz4)8fdxNauIxhsfG=rZ%OoRua!UpaWNoT!U%LMH3+ ztU3)iq-oyG-PNa+P%%>*DL5-$D}Hzf*siejye`3|cS(9mwL9F#0XK2gVKIvVv;Hz< z*nDm}B7Os|xIS3_PX0T1-R7IF`>cgVv_ZmZ-nmW9 z%^Fz9;`;_HslS4f!f0_Qa>DkVr@aX+RSfS0-DFPvXEp^X=^7_x>`av^l<* zon-+sd9 zo_g&}xTtZ`jdrL2oz(QF=f1k3$sf#WU)u>v73rK-x=t6H1tUUMi&vx(jP_h znb$vFEgKMK6!tl+-;04e&58A(mhp5G7Ul7W6>C9IB}&<5Z)Xn5&8|Vkn96~YtL3R7 z+MlMdyE`}AvfM9xvsoXpQ9o_2vu#Je=w&>s{|7T##S8l}+P%*D2FCaV87YAgxxZAFcb)*51&&Y{gX?5{Eb2S9F$7&}{N4RX#lIbtCMbk;wyLrrLaRFIFPcz#NFqGlK zj$sSm4R3_G653dVg~&@+(_e&u(I>9N?IgJW#&5#bSI1P~r7|l)5jbS;sXa~Ti;eDc z-eM$$15`^;_+>S1=U@q=WG)}ip5WBu7a-V=t-PKHNiprM?w*PMzblEtbGBQ&LCqretq?YPd+D9=j?M5JeTSRu&< zVY|bhYn)lRGvmL=T8s%2HvjKJ`V9Yrs?~ z@*=@8ZA)r}z@90Cvvup`Pgi-vvm?&avd=O3$?qH2KQXsi4@UH274G;?VSRsPQw0&I zHk`ocd{B-1lyFcm(GEfmY<~PAcfgD`E-i?|1~A8NKva~#Tq%vhUl(DdRMldW^6Elp za;H!qJ^066`d2h!_Y@l8NnN{-)pI*aMV3WkP=hoM8-6d%>A7sWcK$4Llw>|wQ zv!#!Zvu)2^JvE$~jhb~e0OG3y>M7j2U$yvg2*PLRK8qoKHR}Fdxb@E>8ijQ23<)v5 zkS;j<_72q03Udnr7OO?LTxfh+k096ncNQ1X%eas!AWq0ObCgDdlExoP4xd1eEVecR zbY%;|jlGxLB&15ATW^b{i8CoS4dVFRGSfIUDFVm8a^r9ga7ELc>g>md&n0pjsgktB zYf-xIIyZfNt)f5_76<#DD{IY=>Ywdmd$5aGy-7QPG`+43d%(e}UW@S5*i+8`celKC z0V72!RYgFZ2S73ktdN8lQQuI)=-IRekPRr0#o&oJb^Xa~t{I4?q(FR-Qe(8NLt;Pd6O+1R zJIUo&3EBAUiFqV+kZeo+O@leJdpN@_lsR9lUrerd2JKvh%M|jO48jQt{}ZPF^gPPs z67b18Gf^7oJeX0Mj9hrmrQ^%dClk-LNRf1mOcqz+J^uc@M=Onn8+Fb7XnZzpFQ&xi z(P${LU$zzdEvzsL6>pJ9^i?Rw|IWG;XvVkuiTJLnDz5oUO4dm0Oy2Lde_mNWy?%}P z)PoUC(ww%SWgs|7&WKTGB|dZydIGf?1{jHnc{QC7t7+7wm`mh8q3R z1yqg<&E9AuLh?9`+H!lr|x4?MS*Z&lS3{;@^slf`0n6v_k7D z+{}AK1)`#FEN#zRiYaQN#7e$SO|4j#&GwYu%ttic);~Ud{15k0tU}pYV%`?u`*;d> zVExTr>bVgxK8s{tO;c3_KfUJS(M95Q-Dbva+X8?QTHtq~2n!0WVdNvKC0pUY8I;g5 z4Whl1(0WYRh=4rsyyJGm_&D+c29NOHe~* zOGQ@^&t$Y!QtBDTN(F9bpr8F>UelDvf{_O=?j|*o!BmGbQTp*RF6xw|@NKNVH#kaT zf-E(y12>e)EqH_InGNtq{$pYCW2gqcZP z^9TQG)xGCUV=NjK?vs?xIZ0a4*r|WMyI>}jFb|?DGs*q+<}~=#pQ_o=dotBI#-fYV zNUmZ^_&PDLVlnpv*G(#xvy=z~^Bg7>?wstMR0ef2XCRBTbNtc4Bkz$69tdi5mEXD1 zq0lXoA2@hTVKdVmJb9aa)L>B)b-`&%Ey-2T#`{r%Lb2t^=7KU@?c=Px&@^{VJR(lH zx3yHXt`y5|iS~o8##dVthNpIM!-NpKG1~oP3HT7C!$d4K4XT1$BfgugKg7MAkrIUR z4NbPFP&VrIMMdVpktc}$o9Jxp<@NwWk)a^-QUr1bo}d&L`ta&sVnv}_a&8kqVI<$s zV7zk8dpw#T=uN;XNphm(!1o>6#q3wr)s4SQThK9s2Q#a0<>eAbt{`Cw(L^a^V(%_1 z|Gqi4Vq)s`9SkjVP95UFr;SnZ)IFhwXx60tlUi&SqrBM$^&Yzpi+a+6M@MDS6dCCl zRRaYcL{Fx`cD=5~&W@6~rkq*;E0$e)V3FxAGnf`ZYQ}fuhNWARuX&Ya)1qwTVog4? z6MSsPI8td8M)dD#j!%VvnRH#NL*J@#1N^X=i-ko;mA>F(V&+PH{us>$ZDZcA>hLiN ze}wY$Xw5zNb6~1|YhGt4_q)*>eMPo<#W6sJ#{a&YHHcS67HIVCmW?4pLm+~vS#0`_ zx4#yfXOy>}`!WLxz06^2GX5(<>@dn;>n>PrDm*yt^ruNg^N_&9syIEuK2xs3?<8lR z$hfuVb!P7;+dn9OeYtB+vyIQBLVpR`fYg9~_H2r%#Ps*`daO1wmlsnzKmDsx2uj(9 zM%CFvEPGTmA-M7PaN?e07Y1uz(V#gQfG-L0R z6v~;z)B2o%8QVtH^@WrGa$LatSmRUzI>_6LxL)oNUs8E)nvvn0ZmBq9naL9oGnqS? z+d>K-+MkZ$#9oxae26-QIKKzQx7j{cCRV-SJ`Yn`GpK~vMzAjR_i!Goj&KHi1iNU< z33%CC)qeD-eJcL#t6@*9UmO8zl^MdTTqFGKT-tY{mS-;oCS&#|t!|o9#dOZ*Gzzj% zRc8>Sw!W z&*8BDCNCZ&2-%_h9l2~imgeQf0P3nNub0zqxFWCQS7H~myyWG7YNycT5Cb)iR3=Ym z0gMt5a-E1lz#fh$z1@|)Wz0oS*o`~^7#GoKZf-gldMn06!tPw;E_qSpy{!q5=*o6aEyZOkMi8 zOAl~nb0W=7gfct&^lPgY8ZU8MoB?TQ*yvSrIQlUq2F6N)N==h-(wO{I_>8>I4 zM&LYnSyoKg{HZ*5d|MAFa2&aXpe9u1_kB1*NLc8R(m!aOOYsLi%=X9n zKlE{4_vyZ9!=5*;!8p`5z4+GO^kB+R*z(4Zc^G%HFu6F+==t}yqjIZLH9TO4c%j3o z@zw9C;f70V+l3C62PnED<+Mf$*Nomm(#jMi z6F!I7)o%}Bi?b{ET7uV1InTq`|H9LG17*;kEjM3;U{lk%2uF2n5wcrGmB;cFxmb7O z8dEdo*iy6Zx*2E0_X)dksEITp>7OCLaYiEw4Z0 zMJ`N6>2uW1KvKbZxIfai+@QyGcOLPRjaP1YTG0cd@$XY)Jqm%@xd=~IV%zShisQiT=SXBuZ=94OJNYuSvPgWzj7#cvLiF~(I_cITwN1)Sua)hj zr8AtTRQe`!PY9a(6Ci;2?ZkEotRY~J*pfSV&v&>OcJnRJ-_ zWAMg(CLIL*iGuB|**Q_3U4Ebp>AZ0J$vG5mG>%@WGi3S!zILa}VPn(Oys#Ig&LQId zE|a4kB}*A8O;;C&Sc@^;mIx1!2q#oHlL&_pYj94ed3i-LdwC1c#+Injg&dbz3w%rh zbnbk-ePNCIdIlewsNWbQ2XARs6oH;CaC(R8_wBmT+uh%vc)btympjL<#>-VyoS3>$ zZNZ?rKbAHj!g?UQTjOqekF3*|rX z0;~TA74KLTn~NPE?=ibxjgV!c|-o=>5$_vt9FT56dHZe{;Uf6|q-jBV>g|5P<21 zMc-O5IZE9}#~<$4>HbLy_eaFc{7xtW7lEyN*|2BOG`P!=RgPDWY2!tkRCE~I9 zn205mhg<7wxJ<0BR|DOB1B-eVB?A5#|CK?WiaZcAFN>#Wt-*{o4}AKP{rs#xe9a@8 z4zFSL3v&W`ZyuTREMzwFK1{eTDBm0@k^Y+hz^OF9W{O}_wSX>ekQSUB~WuNWTpXf)ewv;13DwP!Z?*ZsAoAkYq^XAJFP3ITCU^C&-g` z+&p8EPZ!y%9x4^uC1)HveOF5&+*>vgRg9m)t^xYS=HX<$&1Sj!?K_61P~k3v!+v^M$@b;kevX7T6@2O^JEKck#+u2_)UA zK7EXR6+6v1m?6=r6a!IG6?8+eVaa^3e|qPLN;i$Z)|07U2ffn$RwW;>AkL82 z5wh~GA-G}{{j=I{u+OhKfjKR|MGsyh9HtP1Xq(r7s?WihKxS!;SLn9Mzg?tfppLWo zK4Gi&=JJ(4(;_;PYJcu*&Oh!ETH}Yz*D69?ZP9uK#_2+=%v^$*?DyPuj#h*Wv#Rst z1Wwc+p!!`JON{zr&e);pFHDjZ!@`Ji8@3BpN0h_-ox-PTs%%EucD&lkGQR#c#myJa z9L`qMHYJFj0i}}PDe7iAKq!1148DoY900$Kjk23Gb zb08(r=qOFXiN2pI>3O3KI*sk2(Z+gicftB7oa9u85ns-S(fK&V`-5cKuc;(WN2k;$ z&6*TizZC7x=9Z}<-ZXfEoqE}4(Jmj(6{lLqhr>oF1p+f&c}`t@GqD+cZi(_IKA1J2 z*F?_GP8U9!YbN*vKe`NuW(k{Z)Bn8A&|@YHGho1!LRe!kEC&9QvE0abfl>&v)4_Q8 zjJ)Rp3X&(=Z;YQOn9`5K7Skkg-@SnRbpFMz9^VDa@<$|-#S?5hiD|J_60nS0QwdXL zq~UY!n?xO2#ZgqP^uy${rt~KSXIxT0c3w(V{YEs!gKhuPm{YVncDeZ28_{i>B&ND9(VK33oDpMgi8nF>1sqp{e@L zxe+l?>eZnG`mb@beM+L%VD(t=HTPOE^~e<)N*2jPj(a-P2<+ zDZa_h*0rHGdgR@(pWh(?@Zy(zFXv|~G94S?ZkL{ak2I*jr`zqEqo@ugljG4`6sGkP~&_9pPAWOyazu0)qE%`$JD@p)+^ z0{64Pn#-VlYOsJ&bYTt;CT8`D_`b^dDxr%EUs)q-dE0!gB?pU zVc~R31VD|mzWeKOr+^5hFttrR6^Ck8`jG(~g9Ur-9^0qV(lnQyh?@dAf;4?TiwCBU zaOw@|I;fW?22iREXo42t@tj9@m#Kz@lrDrOx{F8Ic+tA zqq7>X(yj|;)9i8WK$?kh`J#u@aExd$T+G(zfzc)EuR{-d7$ML2#?CI*L7xJ4GZ+X3 ze=79k_Ffm!oyH35=FqpquVOQnQpm~)@Klyieq}VhIEtr-tD;ah;IXElL*?U+z4b{6!Zwtf#h-$1?Wuw?Ix&**X?)bXv308tGo@wPG zpaBUQgZ;rquUkK{NT|l@S8yPfylV!08>CiRiNoi!qrGk|8L_ChPF6 z{p6x=G}xh$Lpb(K(^V=&h?QlEgxz9SdB#9~$=*apVu|cwE}*Aw9o-APMemCoFe}T% zMy5!(tfopD{(*w9BFLa~_zm=C*_WKePY3EFnqHooUJ!M@?~da}VfnvpV*)$AKD3(9 z+?~xOfI!gO;~-%7A&mZ`h;66u&B(3ZnN0^xUjm>C>RU!t*rMc(Obd|A-{+Efg?%N? zpq?>EY{5aAv7J?2=);v1qL<7iuO2bZXT%|$ea3qn(D`Ye-9ctyA27L`>u^7u27M;E zZ&~oTK<;}c&0aG;yZ;($yMB{|8jIRM)Sy*~r)+{E!#^}4yWOd-cX1U!L3wmO8sgj2QD3JrZG$%hCa9%LA zx%r<(^}2Z)pPte~QpQzAbtdi)&$r z@p%tnbeRve3M>7^{^5mRI{VUorBcA2;9Jc1Tjqw=OP z`mQZ!RfY|(5bpBfULShI7mdB)q31msMFFt1)mI%p6r5W)LJX6++iuL}r%th%_DnRu z&voRy6JMFhaF8xB>3gN#NUTN}GZxX0czODwMizPKve(|JX8SR)k12b#|@+^mdL7kG4>Kgj2##IAPuu9~gNCTS{ zXM<{}iR!w=Rr-$NzXE%6;Iils^<7D7+V2_dx`-(853vUc9_Dz_R<49m&1SpLR8?5{ zoqw$eg;iW^gqaR_3h-aiSeDcm_;pq(qe>J46`*-xeHXn>FWyZT&!9~du*Bd4Y@Ok3 zkJXC(L&w-^KafD-a0Ks#;snb=PjclF2A)fs6|vYZ*}SPfA%J0pL>6lk40m2_MSoNc ztejnrXQ(ICWcbby5Q+`ZP;A2jgqxckb)+q377A(h4T$NJ#Ii){WiW*yMcJ|w44Xgq z#PdGPe@Quf0zxaH*?Nw@pXw(WE>n)8Z$6kHJ#BhXRrkf=>zs`;`w@TeqxD_#b=_lj z0F;^``nq{v?XP8lJJXS4f1_u+15WW|7F#+^o@Nw`|G2nt<^JlwFQc-H7G>H6&p5La zOyU)M-f>Wi+Dn4c5D>JBZM*GKsC1RG9ZgP}Pnaz|t1H|_h?7aTK9kmCT)u=H^oI0V z7^|0{d{K?6Y)y~s`aO=sBq=a6qQB7;hSLmc2XJishiLyS^wGG!Lkb#LqY3esXA>h- z)20nD#1Yub?LjMrrPc4)|KSwDNa(5Y;8a~`pmaPG7c83jR->&&SIl|-2rcdwB1kC| z%de!PInb&OQf$Ty+`9sN9sc&@g2{Ew4@cW^+@Gamp@SU)kgk(mXz^rU(hqf9t&_GA zBwmI0&(UXOi1t33fKj$n#M#2DzkPpyx0cdfP9)DVr6P`-p=OUK9=N#pgun1|`$V>z zowkKD5pBpc!p#Cx3AcvZm@QEl(8rd^Gq`)|3K}P?hg7U@^S=w=mKpol)unwR)h_*v zh9`}2n1s)88~f!4V}U2h0S`R7m=qabJnkw@6^DEo-HT#p)|4L@{BJ=tMJf6`Y+;~$ z6_d2Kvd=j;I94Z@Czs#L_m*GC`X0FW6Xw#J`z-<;gFdfZPwa}$#}(dw9h1RZ7s}q{ zQW+(ArUSrnlv@;rN_Yh<-fwoJgTk*$wnux!f}X;wi$~iTAzX(Eqs+76^BBSV#LX?H zVe5^|mPoN5YDx3)2UgkMdg;K=>vMP4J3m_}=6?^K42<_QQEwk?&+$nSdEZy7GwE|u zmd&!jC+Fvq3h7D#?Sl?Hg1Tb;8GT({afr)WjqbAa#@shL#C#0Jn%$kvrM1m-3whqJ zJUzYmlV87Lz>Hn^wI<_gvUvD$q`ACcG{q}_$mO? z%|&}UedhEQ`m}ykxp7d=Luo4#%kPrvV!(VFL&=T`UFDZc$^z2t&(r~7s`c#~sK(F> z()Qo?r)9J!d9-1!j2o$+!DT-SrZ zia%VkH1u5;vQ$s=a3h1f^1IZXBPsz7L0 zv2JN8T{@j(%&L@Jd#d@RhToV>;YB-;{1Jq51hW1ZV7scy8^>cjuk%X^-_6KbvzMJG z^yLLeNTusfL5Lv*J(!ce{TZ^3OyoCF@gyw}{?Y7D@XWMpUtz**jJc?NcE0c)9 z8g%$?XfugNKXYgEq93AY`42xfts{N!s9C3t1u$qlYYXc{BJR~8mpSCNzSMV`-SzDq zjWp^w^V-<7L+)R+74+W05ZrKD-MYof7n0ISvOhX1uA9r5cv4>>_GL#|dp6H$S1t5E z>u^&@A&3-)V<VYE@HxQ}{EB+@TP+?3#p=Y5DpV`=1F{v$i| z;X2!D@O5Y=4JwWj)j9)eT|rG3e3$Y%&wi7A`8XU~pvRX^pGIH<~4eB)|dL^*8=Yh#ErQt3# zba+>Z0`7;Bz9r(YakSaVEfE3oSQw0`C_!drix{z8#29jKY zYO4af#EYU$k`-nKg&!4iAK^ldQoD9c;Q;3X;yZkcdezxcX>kmt0D>EL69#5;;{2Bp ztMXv}q`9U}by^cw)(<%H5N=>@4b}$gnqrU{OoA+XdQ%*pB+!#xVs)UIfbQcYPbIPZ;gx4UQ@QuU#I@Jt8NDTb z!o(I9$*GVg-it@n5w90h;o*z)DPKSda<6^?QNNazwwy-&sA|M%u%D*tW0T3}z|;N3 zk@*Zd`J_T#Oyd)5%pG~MH2~)$YT+6>-(Cf^$eZDJ?sM3ssSOJa)N7gM&MRL-Gh$=` zn+c!`wmME@5P@qGJ!A%iiv`{x;=rb_B>N9Qz|{>6$EEONBvV>}G4h|RKPmr<=)Z&L zZl4I+*}Zx~A#vd_bA#h^apyaSD1CG)K+jBUNz?w(zA3Nxl*x&a$G(7Z5l6>QCR4`J zzHWiBrRGyf8ktF#aJ!w{t0KbYDA*wTDM6>%LE50i#5pgNtS3`O*{W*xRAJJD!a)ze z=_TU>yK&!PJqchiJe2f;B!ZI^fE4;8a&Ft?8uq?9Ia=$ktBd2#xRCKKYpP&Os1#eB zF1AraCnSus`XrxkzJvWY+)k0s7Zhys)NDCIXW;54B{pt9?sv_vDp+{|PuiOzxwpu0 zf8M^MpWiekx-#Ox9QBlsayNf??&26g2&-_n2&hdtO3rkTi1ryq9`C4+{d!FYNk|K+y95hRoq-l|i54G`)P^5PmQ zYfy5`P4!jZRo~J39ns5MyBYL)BKqX+jk4rZ=aY-O;bpTWNo!YSgt%Nw={yKF*cEd} zD1Acg4L9H|R4B)`=W7VfVUZ98svff9XoZ$oNn9repUTO#wcdhvt_S^OmJD}LHaOJ- z7ur8!t$q+N-^|RM12#~H`sfSQite|F&)~_Y`*U*m21DJUJB_Xv`uE3Y(n2KhqQzoO zq|kL6T(b#J+!Lx~4N(@gI{6fW2}cK2rhi5R+3s?&_M$VrLk z(1L`lEB)O9cwp!cX57I$jRCQNe;W2NTe>eV5DWP%GpEpY+FK`e3-m>qQKW~Pj$jI!7Bcb zwZBY4;0zYfdWX7@&=(ySyzSFyD-E;u5%JWf;F*yeTZ^ny4;p#dnO&N^q>HSi9Hf>` zrm3-j6CKYdy|-r6lu#ldC)=gtg@H#yL#+XWbQj}60qUWAl=U0hOL@hzl=o_wE-q+T zuu2weO5{c1G&*|6o3wZV0msLO$4v~T=kInQ|GV&gOU(0p#s=dXL4!$&Ndqt~+UgVi zal%!O8TM@(SkkNB@KgyedzJ%8E(F~4(}c4u=>vjPSBIXe*^HEu<(s4>PLi&eSgDko9CS53@rnsd8VN@lzqS-z26AhI*ztD19m1P6nHIDE0|1pbI%dDamhSct}pJs~hA!Lh}hC^G2(;M)QF zdJ>4;5EUhbo!w0viUb=codvRSAx3w3rzS(Php4b08>xn|E6*p?Wl_wFVk2)V^>mkZ z@<}|_jjECil({qYHng<43~{dKT^Dy_xNn_5oSB6mhlRez)$Mp7h=DUCqF48`{yK*} zGeCUq4stuwv0UXe&ip!jJ354k8W!oV835L(>0(9P56)7WqPEWRBlBOa!e4nTurA)_kmqi2Ee6k`s0IO9jB~ZuY#W?)i$|l{VN23S1 zqBv<&HzB54m{b9i6k*9zyma0?ajThWDhc{e*1$K05D=H&F#ao?x}edZ>o%v#EU7k>i(MFspPY<}C{xN*H(MtcU2 zXqfWelracCaCjBvKo};5zu2_i?q@$JTF9a_F45p&)M%mjbP{r1ui7y6I6qyDK4}^D zL4gxDNobh-dg6xkPWfpX!Xe)AtLAew!`BATuziL{1$J0?#;Jh;3B4AFk0amwCWcni zH>g@_*`-S|8UQ5uqB7q3hSnHv#oz;gXeK%!I*D6X|04g89K+`)yFZL?Fw=LSDlTLE zA38a&qmwz;1lHuamxiMmu)pOcNHZoqAtPJ+C}TxxF{kOGo;J^!4E$@j4GW+Yp;zdt;uCi76uf)OB!!|f){+t?gS~JdWQaK z^Y}&QVKs$ZYSR;krhW_2*@)W1j-%`x35ObiyV%!w1&6pM{0wgcNM=1t`OzivIvm&< zH4HUXpm5!*r%;+T= z^{LSgZT5t@Ii=@CD22TRPO!{yN%Jd`a7wbqJWX7+$PmtKd@m-)swb(?@v*$=(IB_o z*~)sU&;x1m-}g%kZn+H>oq<)f&cuV%<(>yC=*&)^2c9M1` zMn)I1c+LRE;u^OZL2v9$W6(d==?_B7rCN74?`0n^p@PAN{@*j-z!xbUAtI^>h zXK{fouU(x6K}DK6S=J@q;l@uQgU2Ea+|#bAp*T{U%&MlM`w69#5`A!F!STx12u)hKgt5FH@)L+Y@z%hS3fWE}L0d+HDKQHRa@9bCK*Kp-3k}PsklT zPqp)l+*TYCf=ZWe2ARwor$K&vHP?Luex}-zv$NT<3z9XE5Jx^!7Dg(VAF)CZz;zui z2-jsa#E4Ta0ADi62Jvaxh*VwqomZtr*xXGRBrdXlo_lv4i5C3bQ(2(ck{ zK@0Q*Co|mEJ=soP<&1D@k+A1(Tr0#j`&@1MM;}PUpGbKh4>gy2bzh%-cCI*%?;Xj- zK1NV~=1`ONc~IXsePzVP%*^gv!_7ByBnNcHJ_xYGs3=Nzh+k4^ z2Ri1=k7v)Ls4`0ghJmA3ik zX65n35(qK1_MLji^urI;2JMpjpW%U4MXcx0Nw0IC&~Q1lw?;Vfxn-75Rf1Cv!7Nl` zcPWqMOkVP4E~)%Vo62Zk5ubTA8*Cnv`&=wvLCF@X&y<(V!@))GN;kJm#B<53&6Y2@ zjoqGsrObX%C=0+xxpM7MG#u$(M&&#VBRZ+qW(y75LHNfX>O+CVoTw;Wd~%f? zZ8bUYbBr|a0t?ml6IlL7s3x&hk&;VdUGrRva=7mB8^~9nCxbeFN^wUB+hTwxw>Qr` z>w0kM2k^T6fs!TsmJ6(?2+)NI5r;24;s0oI{FHX{wh;tA?WBFE1Zx$um1614&GjR{_vfK744Mfbw9hUTAQxj z=|G{<#yj>Xx5y1o-LBwZj2GjvV2qFIR)~IT916}JH*&N17Vny zr)sh{e#u$NtWBEmyGgfjzY+8uZHDlbd%ck4j%c12h2rDGA--;HB4ANq8RJ-?wx~+L zM~X5^tu>s|Spoa{9g)@k45koM8k&my7L$=@#={)pgr%3VqIJVfq-{yx#3w zBt|V{`q5;o5S&?>ydnc!0!QH)RA8ipd1Dk*qZ-HzAhzT?SzwiUrOn_VEHMw4%jj3e zET#t_Lb1?^syHIvgQXxfb0sOkQ;15^r8AsP;7H|1O#F%4qYUM5)K_UMD|e8=z586% zn4kzGrt@=239YT()R`jvAy!pAOW}P21?YA@z4i-#t!-F_V#<8H%MWYx`hQ0k{Kjr$ zQZDEeeFW7sj+lAmYQTfd&Dmi64}MkOfVe?I$^Ssd!m4fnXj|WN!LR5ueZJ%vnBH?a z6Zr3kv9i0zxe7h*HyCgSvj<0@oXRT0gY~ z!k8hTsQJ!B64KoQ5~3o~ASEIoT`~dEEe#SQAt4P?5aR`rMek&xZttNnKSj_`#>h;#~?E8E+UD?y(tEtjnaEMd5qEIpX3if=v&x3;(L5@xJ}~ zrSu{&*)+V|7d`hSlCusvk0XT~U30(cJRRAL1slYTeP-o)-5R{o*Q7UWRK-4>>OR0< z^1M+8>JapMJl$2javfjy3;)j@cL@NfTwzWx*cTM!6^NY3nKi(6(V@BlKMll&kEz({ zrTUX;_&j_h&>Zt?*F4bp$0G{zpLnAMH{;bZg*nV97`xn0qanNwArSR6j%`(_0i6`t z_qy3l%~;PGr4S;dg*heZNG|%Mi4%xMUfK=nmZa}a=mF`|20N9_vw6>${}l6wM>K!~ z%&t?$<#BdmaFwW4v0MlU2m-o&o1k)er-Ofvxp?{eOlA8sJaSld`>gPt2cb->XTg#; z(gyA1`^-XvyDpr%Sr)Y+-5X(`j}cb|HUrrqkKWf<=HJ(eoT4@R{kTzcL}FS?l-Y^O zvb4N-$71MU9&u@Jf=`3ueiYU#baz%Uh|0bbu(?G`6k1<(xC*N@ZG1lkg__2>BlU@I zO^B(!_1*||%@)VGp4N1!ysP?j7e9VF<~=k6I*YhD1Yh^DysfaPuWfIyZ!Iim_e=G9 zNwBY`pbh{ms|S)f93`qAYp9wRh?&wMZNfKxs7~*^wOO?5?{jq_V4x z`l1$d&X#YdC`I~_Cq8mHM(qiWa@T08P?u%QN3Rz3{En7 zv&=}gxyrvJut`f5Spv=@kAJEA`% z=bedJd}Eg9!d?qz?HxsAIfGtlU@ z?T-9PPeK5)=gnGj2(+ZS`a}Jh2fbvRU(`cNh;a5Qqw2te>M|F*9goT3WzP=I{f3+MeU6;_$>bt z%H?h zhM>WHWrf49O8!=8l&G|T2t^WF+qGtWUj<$BLIL^C{Ao+$+uo(BIYrmJo-YqN2I|x0 zK;r7Wp{PG`rc%0G@$k|6pS~YJrsBAS5+Y$gcWz9~93>7gTvSR7^XlBJ01uDM}u}kR*hsMzc z0PJXc$50Z(5~Hx6-vK+|WQI)|p zC4KFazJQ)7zXanOZ2~V>U3r@*@G$b1(TlmKCmt!BO_ej%cZ-e$r}};l(1DUd z|5Ba25-~wU)3C&vV5VxHmrq+Xa)_KJPHXoYA$1;>lc{^3-)lJ?%J&2gNQYSEKnPVJ zMbx{xO#;^O(4zw^#_^>sbIS+&_|e{3EN}1Zm~{DXT-cjywC>NYi=Ls{4!hirjt26Z z%}$%Cu7Up$Lvfmc6mq#+Sri5;3{+C$1T5JZxyd*2y7l6E$2i$hoA@mNFA zcI4`_L}l0-iphngt!6Ka#e|*KK~$lx2sf1;7Mnhh+%?x5&y$jR|2me7fH&9>LF~bE zp&#DV4gaC1R#}6jz7T%#>O)+IxIM3L(etpN{KW3-*8u5<#+6ztc7f7Tk^&1^zhqNh zeu?Z<$+|3T|M2Vsd)>-R@$cdYjBSu11aWd>AtVS*g1n5t#;BoPvFoRlmXktBCSmzUgF|K#v0l9vrXyPeC{Kr-2&zhXu5!A3WZa@g*#BwxWu{&+wyQ2~}5 zOevTYZYQ|>V6;NLj?_6SOK-HF#hSXXBijDaz+;mw!`bQSRZPlWq#?}La@giwTxYUK{`O-*(Fz@P|%!KHq&$Wj0 zqzn+>by^D(EH>UA&qGEx%Ey!lv8Jf${t+w1wr-bTpJTofsNlnZ?#x;AE$7KQulaDf zOMUG4wiUR);^h^5KbPcHLrMJZ>O;EuXLXOI;#K6kFUP=R#t@6*Dg7NTPl`WD+~NZX zk)(05M8&L$HLGJ#FQL_Rk9&#xhv^gXGN+i&vMIb7iUcJyqjww_Vz47IC^Cv-;5V6uf! zMcb(V>eRjqjnum%r5)h!p9vB(Qs{(;OM##h#h+fljuQQ3AqyyqL;XU^o84=*q_=N% zrEP|tNn91!Uw=t&$oNcOmS9Pk`h6}$1KIRZzx{-a*oKbzS$Ao$k;pT(u!m1{df3=l zb#ze%2S2VrsD3!qCLc&Q^UH&y_D|Ek2(#l|#%mW&{1DhOrj3`l6&WUYnU97 zF2)JNE|$;?_wR(V-sTtL0Y=Gvshe>1M@#eUP!x^*4$j=U&bI^^*?+?9Y(?8!@Ha}4 z1~E*g`I{z))&fTR0imt~b18#FWnZVPs~{X)wGn5AskF0z*Su9+mJk}~MdDZ@<44b5 zNSRr8)y~<-UeyZKt|;Y0yN&3`QStu}SSV#R78Il{BTrE?koB?@BS;;rneBY* z0p~H#8&%yXwsX3sC_uNSO`u@Ef7EXMa+tE+I(b6aNR*D?1GvyWm%4WkwU}j$LFUo9XDoaK<>r5C&XOfZ@9JT%2pP zXDhD=BT!|Cy7KPD)%DUU`{qTRk}+tQVFD?yW=^{DW-Exqn13W+$;}Pv$Q(ay9 z0t6D@-)1>T)TiJ%xTE;yf{(R9VyQ@>f16>`6*zyW^hQp+Yr>WSdX>q$UxN2z zIA?$T@y`&RKJ}*$?On2!c~kV{E_>veo~|mOnf9S=$@@`-3> zqrNBd!&o0i$u2sWo*C@iqij*&1XhV+=4;|&<9`xiWc(Rt-S_7HPM}(EpslEma6?7d zX`eCDq;l~Ia2z1Z>evn1v*^_3C@1Pv9IT!Uz$Saz25ClJZ?@6JX)NcM`aSLBUv|O9frHCyOl56X;oOQq`dh9g>mW(w32mb9c#W z7;5gZu0_tnxx@l3%cH^y*679`8Yhc?+2HboOCLLZ=Ox(i)TI@v-or~ovFq2Yg|fSYm+Pz#Ve{!U`B z9=#thf&!{OSDl>K*njea+Vyrb^(_fgzM7B6$7%1UI*ayhMLT=BO*UmirvXUMoqpAm zd6)jMTWn&JEF)Q z>`~L=G*s3WXp!O@6=-~?Xr-byrk+e|68=qHYx9*6>)6~z-(Fg7-pwjunT>;SQMml*$^U#^dNu!bs-9&le5a7mq-p~zZ+TH@KS8yersYN(~Ezn>`6 zsZ>MH434LDHQ?L)+xRj{HU-x1U}|Pb9dm|On{3+jziIodH0d}vHka4mvG`+%yS_uJ zbC;^1-4UK1F|5FZ^H-|dQTddK-^E`qv1MRS#}b7pUUt6jN%%RUbn@Wcer$(k4+Ho- zy5*vmKjs(nsAH-Ol&&o%GCOndFTjG}mus zSrq*jI>ip+%m*>t3LrSYI8n3OJ#AN>z#)$)aXGxsQ@Xo^3ZWi3#z-^^=q0dd&Lq2V zO_Tn|GbcoeMdPx{3QOn|d}vPmWVs#5A$sH@`+UwX$p&c3pYcKWnDcTJ^Kf5(oq1du z=}BBo-#B47^h24C-;sw-sIX|E;D3`$9@lX$F6h}SPT!LT80in$h-hJ)>& zoqpV=R&f>Fe2qoecwuL+@;ujBmY)_&$uaiqgIaQF@$O5UTPJzj-Mntyro1w?Uu9HgLCe>3oYU-w&^F~@^Gi=U&Cs~oR`?{hwg6|*1;Vme(L zlAaDvu3_#P`nf;2?)~KAdb3V6`gN)d47@h zUp+QS-FWd|r#t_4h%k~AXll|hrxO@moY)*F#kS5MlKud0EMkBDM_YfvQ?+QL|}R$cF;JK&bJkH^<%{^Aj`BnGJJ? z-BuCtmVOmsf^<|^{4GVQH^mYkUMctiRWL_QlOIEiyAp~h8|JI7R|}}*_QVQ5NWL06 zaj;n3W*0?IUQ%*drWBc)#|AS(e;JvLJ^>{au~E+YtjE#A3S!U6GqaqJ6F4Wyuj@x| zSL!opH*xq6QH8kYI2{V0y94Kv0XNmnO}SN zQ@Q?mfj7JogURh!g%seA(5-bOhD~#3Q-&$Fw9gVoLh|A<+aA>BMekO{`Bir6F(m56JhKe6Jdx6{}FY$F_{Aun_wpy*uScM;ff^%C5|%gz8KLVc&KORQTM`RtVK4Gaj5Layvcy$;1qx zB7L!*inKOw*gX=(_GL~O@ZWEQXHe}~L+MU)sUdkP;^%*D?z6;{M9>1h>*=o~J#yq7 zGF8CTrMyJ9fvryisZK=-lNEq#uCf-s}Gde2-uI*3B0uaGNR| z+xV!L?NL6%4%@5V89|UA0HX01N4$0T`on-fOKgD-l{089!%;JxFuCoEj$(i^>G7a` zPYb)h@%p^g6Q$FCUP8+^66#g{RNUo(s9~Jj)rnQ3*SemIOr`16i$$~ktdRKWMGj)x zUd{a6KhJ?L$?)S2=COpROo48NbdRd%Y_zxK(XV8Y_hSSAG?H|dxQC$L`PbUQ4<2g{ zo!;?kE+aSFi|u=DW#UxT(t>l@&hgj}sn>NP=6p&kOW>DI38t2_Rzh5k%`8-t+w7Kh zn)5%p&aR;~!tl>Ui$o1g2Z@pi3;D$@0{Cb?kHw*KxbPgE`@nIv+S~UY%v4zgE&0xlKvf_o1uR$d?y$l{@Y3Uw z9D4B@v&{yV*{3}=+oI-}HQdeN+3&(cwYx4YN_syg0pRnVAUr06KQF-U%B-G7>3ZcV z&-bkn!=ZXigikWE9-FWCi@b|%@R))q_C6WG`bp6E%~FmapR+#QPn+NghWs>!(X=g==a~_%G zS!@HFx+ukJi*ItZ2LuwY^?LXr`@Iif$FVhuJC)`^JTaf%VG1MIZA;v*4;V3nA&fFL z2Fe|5($vFy*LRr9z;en8Js5hez6%MuV-yLurnXo?+}m60XVu(Zz)2JsiNp{0?htzZ z#CL#Lu8qi;-fbHwBqX>tWTev~&*n>IPhEewUfmb+iMit`iq4mrT`6~_(=@-4jw#>+ zwvpEUj9v{54F{No*6|28JE{R3!f7j}XkdGvk%-CN;Zsceig3waoXG)kv<(frp81|7vhi4-+vc zQSej8NnXuwdiPwTj7gHVi?ct;uLKhp8$zov=``+ZG2(Y zpOunVclc6P!UN0do^^9Id^6bWQxIv4DbF)%{r$4yr)QSpbKSMtUZTWmDG?31@#qQ@ z@Q2mYF%Ujc1$Gwwn;s0Wj8ZPB&c`YS6dj(7)2+WIVa7!9(pt*Wb2tcuA8l3GX+-C) zaCzT@6i}Fz)23Bdi>~k;^<$P>4RYF%%{?}9SS$FxlBa9AmkAl!E~(RBS{=o7vGeO* zWd-c5c5CweX!w7DYR;04rFIEas)Wb!#0_>DQ9C4WpoNd0zZn`;A$NCBB7YLizcPa- zl)5lgZqEq&FYk@T2AP$N+3e3dXSe62dEbZ+^n ztS(KQt+w#rVmng*>kqqGGA@6sg4#%-WD&_x@|S+1iD=u)&X#rqZ!3(c3TEO4`I!}u zS3)6JB*=bYVHAwGNf)vDc&>61ZK#O)`-M^zx34#pzT`ctB=ol89|Vu>@SQe>wd~Fc zMC~aD9=3eOHrWN4JOzafu+$(MX{lRp;?6({P&RX8_T!uI%D1*PrFr(yk&Srw+{ z-r#i&UV28JCxZ&lJ#o*)20wFf6(oKC8m@)obwpz9e-bbVm}jIQcd+nu8xmi6mU!(Z zc2@Xe=9Vq@XbC8b_ao3$onBvwiCmKG&eNJxu?HYr@=&pUp2x*B;`sm&rDvmjggIOG z?Pr5?`TsL>%Dp%wycahJm2l5+z+q$F7VxwKtS+RA zhv2r~&Lt)&qc8mbohamlEO?J8`OiC^#)^v6QkCLnEIuh6Uau!8Z)GZcg0-7I8T}^Z zG7%e_2gF1NRtJPP1dV)?T8AfU6Z8WMm7i{sfy0)Gmk-VFZ-kcQT&lc7$L(rF0d^pJ zD(*0h(^aa^vi5ecgI>34{fm3fbCTc8*5)MioycQ9!3Mq^XFqDavL5f-G%!OG)>85H35X-_ zN+m!guLSCMZ{)d00c3ar-bq+nL_&n(btmyL?7*!APUSlMv|8mG+hH^DwpF@l5cy@X zT>aL-GUGRSzkhQw_k*6?PEc7JS?S~NGu_+ed_N6=Gyt8La#O0{darya;Bfka>kP3de zOQ*C?x^E!=&7qPvV|A7xuJB!4L0`P9Gd%MRO&Q%IkgL<(az?JdR#h&ahGFlI*ziXM zMu0EvgQc}%M9-+Z4pf1X$vd&M2H76%SN_#4Tf-8gy`K4O67O^T z7Iw$lk8htEX3I~X-osjz9LCg%wjJLV5Vmf+Gv+K&?6fN*E&U=(k>sTOZ6yU;H&!>w zo|2tC+e3^3$5j4S*sSr+)B5*g>gJ7Di8l@>Yd<2~(v`isjT;a=Sy@U{R(kC*1Cvdd zKb^mXr|=sJGyuluh(jJbVFBy@#FCSDw2y18+wB(}ps&@(w1;~bg(?&^5IB4XwzeL2 ziVTl6VMxn6&>ngP+P4-xfM2ZW2s^(TbFC59@^hLpPL}2mJXIn@a3&GSgd~1+opT>e z-R{7TH9=6rCSyx!_gQL%*I`yCw*1E||Hjt=-7gSu6W5nNxO!Pf@xlGS$gJtpG-bs9 zi*-}wmYp3Vr%h%H2ZB#fBynOp7leK3zw6EJs4VQA_a{=_V<*V7*U zem9X#f!WDEUF1it^L+A;fCMg?Q9-9?3rhNVin~8Huig9T9kazgwF#6QKqWmVPd7y? zEnDp7>o!Y4-C^VdosICzM0OeGd}E=v=3Rp57)iyQ`0x)(^PJaljmVsUjmWfDxPwEN z87d*l!cZfl@w+_zOUd0&Yth0VqvEnym(wq+tzjscD-jGfR8;Y#JLZRrbd?pNBfrqa zK8T-&jZU=@Dx8e_LNsu0`hu>ORB1s}zspMY?;X)f7hW}$PY$n-<}G}0C+Yn0q+J=D z&@zXPZEnA~-#R-S-Kx*3XsUup-b#R-IfZ-3)j;&&|Z+C<*ioZN~=U+n(r=4s!&;HYUw z2MHsam}N&NN2nE|xP$`;5|HYN9J5)p>Uig+>+`LMEtA-PafSd-Ym)pAN@~h^c`N;LQEgvJ(PSjXLyq6clv-h{*ZGiQMzxq)63D{6rk` zbbaCF=c(dLL3Fmlf*RMXSUkJJ-8_SAnX;$OH;W4LH8Gq^@*jsYr6ujBv@n8}9y2&U zR^7clbL}2!B9jU5Kg*8K7rMVVu^}L0+AxmI-_zwL+g>&Kv@FHPx$nYRmqX$|Sn`KS z4n109jundWDIk5NGd3>j|LL1@neY7X5vwK1l3BTjLe-aaRgK>Q zkU#zO(w~%lRB;}>n8vY~xSF=-x0jomH`TfvY>iT9|CaXgb9WW3GDp+~pwK^%G9otZ zffIi&iiqfceCE*kIeY&N)hT7ut!E41p6H2d<(}i`3S{CZJS7}KL&}c}Cs?io@-~xX zA`|z$d<*YU8ud$Z)#Kwp?_bP;PIo}>4P0INut-6MV??vVNior?dw5gK*mwBsuAU%z z1Ah=>2okXo3^5DkE*DwXJC3U5Kx`~`{WD#mg)OOh)tPqVgn8H1}dQh3Lh}sw`{iXCln%--qOu80LoX2)%t$ zU4Y-0pnSDi)p{uIhSsmapE7;tu1XAJ76IOU<~Q#ewlITcoTwWxb{&4f@cm77<1T`BmjFbI^{^ z+hHf#GV+Yoet3Fu5qTtc5>sz2EVyX|3)o(p&X!W(DSvzO@iD->?BO0M`*$(UYeWB_ zsX|THgGwyV_dVJW{EDvZ$1u!s8CGC)SU)7=+r5{!#QJx_MfblxByD{Q>Zoe@$}aPJ zRjE1`+t~Bo;aJq&wBD}gUg4Kv-h#_Q-M><|Fw+#qrI!HIwLB;e$$SmDS)E##R4w(L>;+RImPXb%68C=;eokyWrsHYh&0_m;!{r9#WRS7*@l z-|@ML`TR0M0GAEqi{k)+q~3tqen%V|&F_eY7kNQS26BC{^OKWLm`HbL*hS?cnDST4 z=WO7Nj?wF`M9$=?Vz|UGo`aX%S_;_Uji_F2zLF=}9~MRK7LY~Dy#v%3rcynK=v7=B z%p9r{>^LN>XvfW=!qsvRlwsNHc8ke;qT;DeQOB?SAG;DI57$N&jucnJnt0ETe&2{( z6K->VBky#`v4L4S`ov%o`F40VZS`#Hz-)l!{a9Z7`(<1!BBYA}eRj0{WBu$hGedNv z#4!6V9(y%rQ~zE{dA$D8-Oq$s0C=Is(&luL=Y)@>py1mPnQIjI?eXhiCpG179o^SH zT~rV#_1%V=nxw=VYL`U1`n5+ufXVNhL8eIH)(lW7k(Q~|CniQ|piJakt2Fs;P=Bb& zhX`M~qH+1sx04&QpZ-+zYoSX;+*AZ_(QQbe_mc!_90dA&iq^PF>50WGuwhR}ruZ5U zp1NU>HVrr0FO1q>eHWsq4C7QZX0$P2Rnzkc(-ts+zzn=BXFdUvLZOycVQ&9 zuTzX{e1bLD1f$1F%gH9enAFR&z4k~n&wm-^)P}Swe_PE%)WU^Zi5!ps^~XVEZ@5(V zz8wLtemDxHzJ`I97ODy5VvQ_t1+C5D(u_VIFZRdn` z(rNSbEMIT7wjO@TkD-zNDg?Wfa=^^N$GTohNlWFPjd5w*zdxgd_~H?$bo(vf!78MJ9>2jRt4zKN?BI+@%Su^X$tNOnxFB6{Wz*kE^{AJr zO_BWb{q?uMO)FpH-Rk=%5;32X`S!K15lGDU%8og!!^5>mpsqB!jwPuvW^v>>hDolt z;8%{WW_vfQ9@zw0ecmsu8T!d1%!jw#wtPMYEb_aIjGt$|RwEpN$V5>^-+4o2Fun=5 z%FhC8=w1%{sUB$jd*r&_Ic;>;8x!>$P3Tr$zfoPs7!hf&q^9~3NE0XaE$!K{9CIU2 zFI0>NE%{2fam2dB_(kBKmsLiMCzqI616aPE8QcG#vX}dxNRS|D**TKNP3Va**O(@t7iLak3B`Hj=|@Aeui< z)_+V1e6_d;Mh)5UpnkerH{2Yyg7(@BA)AC6aL>0IJ07Y0cWyl3;HnDrvFnRJ6m>{! z?R)F=`=Kaswa&;;>7w*uV%ttZ?EB#yR5syL!-`fxW!#s85JAime;@R)yimHRtXA4< zV6g$7#AQijuA-4wIZfMU!=2I~%s)uWR?sYXO9C3`w^|>0A3Rr>sOW`aGWov$jKw<4 zY3;KcB>5w!DfmmIaZlM8Au))%#KgtBr^Q|6Tu%iv_4_ix;NaQJt<&Z$9j0(nZ4ExI zwtxnsXG>-uorwc~lgUO?Eda_HU=|uwI*iEEz&G8*+8+8m&-zQf9uCmz)_je#%zx2N zb}QhKhE1viQoZlTFKlU27!OF{%t7*VVWL94`L}zQ&=Dx#{_bB@&HB%;_3sm7x5s{2 z{utXeS$lQg3;2_+j7mW{E#OTg2lS(+U{8YKBhKju@REB;e`?l^qP2YoPRg{3#P_e? z{C~Im2?EDin{oS)lu!F_4w~K`C>|W`?_=i2AeYznhKeWG_DC5w#r>}u0Ojjl>F}w4VvF~7fsK9t zvHC&f8e*#BO{QEL;(M2`k6-0dO;sVWjU)eJ;6)Ot+dC`OU#IgLTBKTL)2d|98)FlO{Z8P&K5zNt;jJwxe$^^XB}#(**$Sa8=_jr>`UZR);$9ZD^G%@aA$+P2Z&j z(_o6fL!mu49c`35^04#dxj^=IP6|LS;P5X@v1Q{7e-Y`ME$=+=%9rlNmp^2GtL}!q zee;T3?N^$11aQJ&6pA3mnYH>Z!(6BTq}U$Lbc{@N!3Ug z!VxF=*N$fDb$T7IDhO#(&EOgRw6tVyvHvDa{2x@-OpVF`zll6Ms8g0PjXXjhWc8Jw zw3==-i{b6)yARXuH%3LM9|p^{a?|?t&u0Y%V*(f5nm`*5xvY-=rhHc^cJuMp8yb

    fIb}*DMmcvL9cWf8`(^9%uqmoSvs7)Q`TI^nbQ%%&L_Okft?3|i^I!C) z-#ZOIaU1b2iB~unFd67&V z=YPdToMn>($$@nLTF0!Pxpxy2=0jwueZR&eA4iOdexZqaEmfP5Nw+(3;ssQ8fqd(~E7`zq4X{#GN`PsPD|S zXuHo=9NRIhIpE}=X$hBCzkD`m2>LkO{FEyIPil6=yc>DY*q*8ITP>}=-oO0 z)s3i#wWQmg5ADAia8FO7@@WeMJ8SW&g~^{|DF|V+{@%>^LJj8TGsIc%WRNMg+|l?) zije{Zv?sQv4qT=m@za7=O@^elUyl|G83W#bo#xqSV62hax2@ma5AinSA-X+(y7`=e z|FCXI#NxZk$G@d!tw%3{jNH%ZqNybOv%>*(pMNA$g{#}nRLFHLOLksbhp(bGR?c8X9sPO`LqPluaYQ?G6`vQJn zvgB;*EFHIz(+a!HGwfIw>y6S0;JxOy>{Cg%FFp20bJS7nlh>>pb`aBimQ~&$Z=ouY zRi5+>sR@RR^AFuZvE)ET8fHgx z)TXF7z+L-GM{?`^S5dq||2GSO{nG~*m)48)MGx`22Rl1^&6x5GDDZU9dwY1v9|{^( zJX?~%P-HasJi0y;i?G|PYQHq!XhUsfR|YcQBmwXYJf8egpE%@EsVM}-#B29Q28Zw8 zr`K}_`}Lz>yDo;l!?g?;W)r4xdE}QZcg6s{-gpR5$r*>7pTG%Qdy%{4MLa)e(Aq;T z)Bq7FNATw$f#$omO;@w77d>N6SlH5q@e=QqUZ zPxFqvK+1?)>RDp5Q?c_s0Nkl4V zveCUpBO_Blpt%q`}(#!Nbib@({SzS@o z-M*%!?EWf1yUis|_@Xt{M05xd}FX~XrigMCjQ^V@jfNS>6SNDNl|%szE};dgIdjd&Jo zO*Ue*QQ3q8@GLGWY#|`{c$wwv%P9ny(0v)pd|Fvweik$fI{MX=d)Wmb9I|Jl>@r|i zJ(nS-42Ulbdu4;0^kNpCB{bz$``JHXM*Ta2c2*--7s?(c1dQ}XGuW!g?{u0}TeQB| zI3a5=yAc+jdfc9YRnULiclf%=>|4x_+pr>yvd{lE|C+4@ za{94_n^~W{cO2JM`dj9g$z{Dj!xlwn-p}*SVe-yg{fBjKP)BAv^G@N2tKedL=mO+$ zHxj!6F!W*8yS9>3e>VKVxf{h39IwS2bf=+w?Lh}qlLxEqLc^(GKB9R2`fk<051FKt zj}c(;^df`RzuASxYFsKmA|3b&6o++xMTSseF;m-qZ(&ayXK=5C4J7yzmVE7yhpllz z7o0{33IT^X&g=J1c^yAxo+Nt8|8DHL*48(YINiLaa>woxMkbXv+}a}7r|_8P4<+CV z#LCC0q;9nnvFByUEO7XWC(sgNXOwSN#C)0P*|A8zIeTf@Ac*T*K;4BSUqHWE6U9ysnrk-=LkO9 zdP1D%3;2h>Wv$(Dsl%G~H!ts!8iX*i!7a>I0eA8vU&x+>At5+QpmD_THWboDXuiU( ze~9K`JL<0%Tts_69KAO#SNNq|!_4QIk`QceYBIWgP5Dl=vJ<3J4o|!vImK~v7}RN> zsPx-zGv%|3b|rZGLG_m-lijXpD@V`0|b{$(?v%TQA6m-;-8(7@1*OLLcevG(b1e=s&ngpUI21h+ysNS zCGgs4QBX=p7SjNDiX<67MRmrEtW?g7{ZgrY0O>-C;I<(x)EcjUo6Q7RYVEIi4YT#| zPUA4G2eK@VcSV0?K}8^&39TZyf$jZsnU0%6ft74gvkEIbtQ}dBptQz)b>#|1hl^Uf zNX;QUTWvrAV?nro9jn_mxHC)lx)eS*hxc%-^>sG_wS>Sf0&tb0a`V&8Q(<~FBULGQ zA#B&}w;OKrr~jPr1EZnXKDY(fS*CmaqY`gIa?xz|OT0bjStcH30`WaFkU^zA{e^C7 z+j*wa;=Aal@UPK#(F}nLGX$ZhWUL`Q_YRsaB89ixzls+8F|UZA6bV@O2XFfa+-6S+ zoO_tRVm|`&zpBH^sob3TG|O8s)wJg9AAh3spHEIvx^{3QS#CC`^cK1(7#xVclYa7D zgmXS3)s3^Rm_m3OI-tMqJ=4T#KlZKtoGsCM;kVQ=A23*Iepl|NbuLrH!k06dQ@6zk#V`yaq%77 zh~2N}Jd0Gp|0+>L-??EYT1#9df6@nenX+#el^N3AeC(+c1~7&bM>s^2biI2=VFs_hX?5N)vHD<@ps%ANdLe-8suUL2#_SZy#K5Ce#0Dg^+f{ zDOf?)A<7sF&QG$|5bVX(5VXAN_a8n*1aPt^>ND%VXh40BFdp3pac+WMY+sq4ebb{lsr0#-r`d_kb^&PSpR+Zutw5_mwYF+>~%CM7%}|ka@4p6O+)k2 zVejX+XNZnoFVWWhx-pN|QzH}H7y!7!VtqoXawdVlsOh1Bt^E<=yalPya~*V^UAmfE z5BC3WyIFKSif?ojXdN6BC80i@mL79aKihedqDLo?8W}~%JauN)uxM`|X<@GS{`wPr z!~&h-^4lN*+~nnw9^xTw$Rm^%?@APWrdeCeMPj)9j=1O0z2mLNcQ_LlY!7A?W)D+) zrrc!{;xA;dLmCx7*SK0~)Fg@e5AG5Ij+tA=`-W0N{q}DVdHCFIFv1x{{hU>S^wBBp z)02|hn%6pzFT~FBb5mqLp!aNw0F$J1$RTw)zB}8)y`sRV|2O1M2CCw zR_w<)?;Plu`rFbtP;h+GAy<9}-uH6(;M+1b8 zIYjsJ)8sc(jS}Sd1UAmvj!=h3;DOLYbQTnwWrE$S?!d3<9s6G21BW~-o`Lv@u8Wkk z9(8*s_!;Z@FJa?bJ3{bRbD_RMtq11&3Z}k?0dd5xd9mJEaiV9!_RW$*1dYrwNuU(X zC94d>?88;gJo$-azYJdSR+2o?wWS`=rMIgPWph$W&|ln7`dvz<{dO(}PESwoQMY*m zNsjEpRK6StrJhU4n1T0;#ag(ZQ69|Umh+V)uA(A2QN7yA=h}Hbd)3O@75E#IF%%pD z##eDKU5M_gL#1J%HML2L;6%-7`0PXpd2C_5c-G*HzsZ@`79XsEtu=47fSQSf9t*6?<8}sU}jBf+gd^K za6y|^oH3HUgup*t%Ip&Uw-@}|*6&voZraSprgMV&vs5naRs7CIWT2n-%Ct(57;x#Y zYW7df6QlC0VGPINGoM>|->-f}nh@T2neu1vs_9`k`Q;az-hMFb!w7N4nhzX~*k*d` zp*VC_9{-BZr^-umXm_Di&fi)SP4t6%?af68MbeN{n1XP($S)}fN$_WArF=k zZfnbMh!>n#;k@(jn%c5Q6R{QDqu>hVCDFY80OTc|)R#6=iT62plu$E3bHfh}ya^;v zJSsWqde+j9aaXzG&j9V&?0DLOh%>^G4b&74-V3B$b?ad9-m9rg%lXFRrzKf ze*r)GJj<5YJ!@9mdeni;J^Gx{2RoQRY)MT@Xll4Atkpbxg84UXk|Ff@C!~E%ofeGALE;2s21|nV*#OMf-7x**yx$=34AJ3_5CG`9k?*WSO(CS71=W z!)^%Hka06-^`h0!V858Lv6r)=-dM6iY`;#$p~=<1i~AG8jxxrz1HzSTj@S?9dFpj4 zSnoi)un=LMonHSOR0jQUw0Q}`Ju_6kDoezi!C-qvv&(*)+wLt}5u)|R61R_u{pH#I zHO}8}R5OSt5`7!8+J#?3Nwi06GXsClJb-*N=DY0kh+q9rlxhP30x zSNGRi_D5*!q3tNEB%5TcB|Za&%}uQp3K6?B3QU6iiIE^RVUWNzsxzeKD0VsIJ2XUg zi0Ks!?PC*=)Gba0;Sd20BBDLv z?be8p?PXR?r}c%9JrZsUMGU=vTH+$ZZ^;!=b_-Y1xL)sH|$UnbFgBy6UfP1rh zwh0g3@huDbU0OHi?sDVrJ|di4r#ttl;+ixfP--G?9>1mx3fh+IxpDN}pLEtpIs&#u zE+s2wX2*XK5m!2;5N0O7hEQ4B=3m#xDZDPYe{A#MOlB^JWA^J=V|LBKhe>>0IO{w; zm;Y|d>Y5Fh5O3sJf1EA?kaLNiO`+1gPrQ(tnfJMmXS45|20LaDL=}xHjpj}gJ?C~x z8~y8U__*{v0+(x?B)jBYQMz=iIp>}(@{B1U2NcDySnYm+Z-r9VbF#rEcg)VAnrb&ml6jlKXF&P1~UmSQsqgU+aZ8^E^#!nA&S z+;}pb6rGk{JCm8`u7mSvANm{;xYt93WvsgYZeZTUsRJ_o#4gya+fSAPe_Di|61n19Kcz#Ao!L#Wz+Q#7r-M< z?oKgusBQy!aMn7RREu1^9@gB@Nbzf|lR#@sgW3W=hc#@rFEb=+9P8+;$HQ5qh>o1xoMI!d{Y6{jT zPgtFystcT&_iVUXA_zGPiM0f!`$bFlDcj1|{AX)TY>7IEQtV`Nm~q{Lpt@g{*HY{w zh2Gs~IB~z(k^LUf?zh-XvzMJx_|n$ch2YC^x16oTPk22iK{xt;6DFYO<#~$<)gr71 zfeId2)+82u+CTa{Nap9I5uMTJnx3m$l5AFu$qmO%e|l>K+&GlBKRCSL;8^Z}`rl0^ zyWZF`zUz5u>k)1wmv?q=Z&w{YPPE?&$669HZ)SDm2qK;YbCJ5>`ye_yil5uqrGJ4bS1S~QOUC_ zJVI02;s4%1ckG9^>ESyzjtc|sUofPhnTc9(!SFLIA zHl<&!VF}U;TU{_O>KeXJHGWB-36gdoxKN~ z+m&=5)`jw$nYtJ%)xCb^q{}wC9Itm(?lfI_bP;i)q*-XV(_6mh3C$EdPJlckJ)`Oz z)^g&));F9wqn1z@Q>v3%k`N&UuD&{d8(BC!x-R!eVf`>1iK5NO%w9u8QERoytYR# z>=nCV5aFbDcuj0y%T3m&$;=QAakNPA3IwOf4Y_=-|Ohjs$T~iR20;^-jlyyQ6XwZNaU386O&PT*@~B z^<3%@U`m}9)!s1Q-l`$;e0 z<&BsUS7Q6n2EpFn$P%KPI}z+`mjb&D(T?h$<;&KTTD>=@ zO((?>^`jcM;={GtqRkXt_%aDxB0A970+cUq2zo%IztcBm&_qGNW%(FH7^!_>u-_{= zgq>VjZ|^3)$T#6t@D+;Db;amCi7`C~aBzgFwott=p}>!a$uS4YM!BI=!GcUFO6;`7 z{NP2BjXx8_;vb*<`f_G;Y$y0iY)8XWyzXk`uv`H5rFCw)4@Rx@`!w=vA5%YFy!1;O zv{k2+v9+OD@+K>&>CA8&IpFEjrAX+G+1{aWTm7UR7N( zy*WC=2x>LE>uNvN&kp}o&aT-furJ=%2AZV#3ty{=BQ2qX$>7aD^gH2$P^HhTCW1_& zqozTuQIx_s1|^S=q&`t`OW9}E>@XBsuFijk!U87j6U^PrDzLxkTSklN_aEVZ<;WL%>XYM)p)=By6m z^3#lO@y#T*Dk*O!)huLouf2_WV)2W}QZ|eU_a!R2teOP85&o-tAez5zEpV3T8fY&! zlv|Ycsow9-lcOeBqm^w{Ra5NWTft3NEzq+2tTZ$=YGI_$zzG`r=>(0UVrJ{Mnr{u` zdfwh+$EJy<-tO8r!@BEo5x?E$Ls8IDUe5ZQd=;%jr3m9?isa`*wcn;GMb=)DASKGH zV2_#e)jj6*!^Ij@@pYo&!PJxa%PvjN?)H0@rG7RZQG!#*51lBEU#QUdLOSM`{r>J7 z+JenfKPno9u|6%wD*r5p9B%S)qCPo$Z%5}tfExpv(#U3mSH2gjcX??@|B@j{_8uLG zGB1soiMa}Uow?+4tyUNvV26xtck#i`Uf4h!iEn$PEaywBUO+|+%uO%`?wZ#p^6kXw zN+xh5Q>n8D;TF@?P21%*-IB1js4{{Du^|e9)^OzKA%?6YW+3h%cY*j}9I3CadA%)2mMCoe}^p1J%cMh-=dVOx`UshD6l2+$;Lp&YhTdjnq5``9Rv`lF5=;fFxq~K8||f zme1r0_LF!~TUX!5{^E{b{`sNv!FBDQ6P$PBDx`+zY$tZRrwdPLN2~n9JD~WNM)7|i zkdp4eJK_5a?h8GO>`CX*1x)lg+ASnW;okl`CAvbE%rw=SLLoNMEoWOD;S9A^x5VIY zn0zsDoDcft`UZhAkLP{7VsGvZJmc8BmoqkiRqZ-;`)iJCzNOHfhlW0O$k(szfjYmx4&UiD*f?h@s<5gI2|b(<|?tLqMx8Hwuol?BR05w^8~YNam6 zrs<8*rfs!?u{qDgKU!j-1j*pne2$gS{e^;A4=A3SG+5Ce7W$HhfRPDF*3`N4W0@^LCh0_Vvl2~T(;;=cPuum0MRLM}lm$Hdn08U|MtI-f(kqwc8X~^P z(!cCmnX~W>w9LskqGo@n+;Keq zwVCQ%FuYA&o^Bs`yKGOwCZ_6(teMhS#cmK`psAc?$s#;!pL}V-pZJ*|b3x}9?Qt1) zvZww<65`)>^ZyAs5*twvsD#T9QiuldiBiaOrF*pd`gm()c$VVUIzn3Y?BUC-hnwhr z^CnA~sBf-s%2ci2rOYWnGQNCd^(ex|dRSqa_O23YuF02Sf1zkfFrGrau%`|_wb1E| zZAqFT9@{?oL=?;IcLIK+NHQJbg-|+LeJs7ypYWovUWhn^t#d^eLq?wnHlf=P_c9>- zSl`HO-utpoPcIkAtjvrOzldQQWSY(h-zVFz5G~Sjr$%s7=r0KW`q?cL!T)}$sVS13 z-taJAYLF-)`r@JKRvnI&Ag?w7(^B&}oabXA8dkL&=Rn67{x6d!D`Qa&Mb{3-$@CqJ4BAfw3S@W@Ra3HH@qiopd#osB9^ zhp`Dbeof78aBz?2kSwUatIy~1QRCjhngvM9x@k^ub^MmJGz;$RE96d)>HbsS+gnLx4-$z0n0=v;MaAA#xwd4ui3adx zk3lmQFZag+d85{adMAYM$nc;bXPa$96Y4e*A#(_!atS3sT3m6)@ZdmJ5X{U|xSb^G|3TuSx+ z$+H(49WGZnHACA+2IB(22NE+omgwSw7q?ml^mn};_S@U3FwQ&Kf5G5}}i zg$Ym8ZnXu@izoX%yrPP^Wlt{hJYK6%d|O#U;fwPy(f@Ftw93zvvy|=(TGk%^ zPiIto6;w)9b^aag>L`N+n^U^a*pqnsfwV6{xyk7FDm@Gbq1q2d7qEx>9Yc$b=V+4+ zj+!6>Usa^U^x*s=gf6$b_UP}Q-^HuQyR<8Chbw!Ai0HkbgJqwuVS|VQ5@8F9s))Fe zG4}>O^jz@{0DmpML6gB=j+(?$=}#-Si@p>fE*983>!=Kgm)z!Wx?3d{nLuCcu-s1{ zQnnz)`7OdDyHmVD*x&U}`9GiyTVK0-tPSvG*QxaWCpBSZc{vJ^A~tkG%d6j)<@UI9 zYKBpUv1vZ(X6apAN5OCrK%Ays=DrS-<~@Avx8G^BT|)j=Cj9<`f@4=U7W9mjp7b!;J8<3rb_gHx)DFRexvXh)yU-${I{-{9wX&u*f zCxw!VnH5PB6KxaipAVLD zkbU$U9iKKRcZ?4+Qp!A~9>EXV)Nl^U&m&G^{o`hFD-V@Sx#g)-R4r&y{0#y_UNmxj z8<4!|iku%uoEEQ>C0mXpp5$Mzs*T7BSP#3fBG>V}df}=p&;w#p9G_ikXt>WAposT+ z88`R6S*0R{QTHsNQx%gZrCEX~bSB4->??%{FBz?iVBZoP zi86%k4=|Z7#QM(T6#v`&v)d6vYnJ-NXFEqcO=KqjLHeA=oX2Iz(wzsme9**9UPbJS zVsy%fKte0ha=L-321>}B1GNxiNLsmk-V!!n$ffO*TP{@6fo|G2y|~f|>Y=osmx%ek zN6sJ}$gUaDN%1a;-^2q@1~Cy|FG8xXGp$dF5a~dPU@pcDaeG;3tNw}!VS4D5r>XBx z1Ri~*J7tEcNEME?SQ(|qh9I_F#?)ts0yu}=W<^)HIq@C)G^=?-&}SlSq%P7T$^sO@M$&I?sc;Qh zOih!NZLgeKA7bpax_3>0PoStH<9$i!_VL%7<2JP8XTUEiX6ei|!i+0^S*C{GgfQX9 zbpCJm=v|qw*bH}l*=q!DAo776yGTpWUWnrD0`A42i1r@ot~_?ldkI1e zOOYTTHqjxoZgxDssNND9(hd=}(jcz#>wjW>xd@0oJA^!Zd(uM}yQX3#5hBDjO4|yMOT6t8c6 zYs<*<4B#D4ZwnLoAi{uh5Tt&+rQk&zQf?&{8ILZ4Sgm_HGH`sP)#zvQSF5my^R6U2 z=;xdodFpYJu6yNB;F{@$9V5b8j9)2%W%ZsFmachh#jlKTwA0g$Y&nGPm|CQUM3(o$ zm}6QJpq0>R&(+M43}BkD7?7YXp;#?7!Hd0x`^9qc-v)P;7EqN7nTjNN3fB)upuE2Vc-N>aay;1uF>*iq?AT(jO^L`*l~1R5rpPi`2toejGHOgz#T zTnwj79QlI)B8&LC2b5-_A_4VZf<8nV$1qwlJvtn$fQYBKTpNls>n%;i#nztaMzx~Bcu^?utRb@IQ z-jYVsNt_159BLDoYz1!e>N7SaRYqKas82Ci4ID)qq#;DXPq1??*2kd`EujeZ-{lbWd z5V;n0$WqZ!m2vb*xueDiW>lUV?dYYYIisbbXVDkFjCkz#O#Gx?E-CbL0uQKzOm;;d z^TQBAI7WB%YgK^<2X?<^gXT( z4Td!o-tsJltFrMhB~jVg-@#~ATX;qyy1@^16DAW*z432}Mhgkee+fnl4kc-D%{OO} zN5)vOkTm#BD(?phxyNbg=XieE+{4AB0dkv$*$W{k*~YVS5FUoKacGZ7eP(TZGrQmC zl{K7c|9hxR4Kj3yAu0;)oA|hW!S2)W*#E-$g{uIpo4=7iSr?aE38vIJG15B^pl=mr zuK^JDia6kbiC($+w~#etgx2KnI$Ya7F(gDJaq@(*d|@IrO}g~1?qLo3+hc@CpNxqU%S@-g|l@LoQ7K_ow)x9V0!)@B{WjTq2Jbged4Hxg>(!q)jNA zbDSrQ5JwXG{Tv6J7SE*nEK~&@e|r4SQ;Evt2Vvj4^*=6ZC-Ak?dQFKDUJA%7!uH@C zx|l2SE!>(1kVN{YmxQ`vdbnj&rwK-@^Kb>YFd-XCInJ%$v?BhBS1+2W1 zMo1Q<24XX&Kcr_0>wSy@k8XeLW!to5)zY{}esAACMyK=fL2-MYcVGwAde zXG@X?mxN=g?%_WetfDJ}p~3yQgYdTcI~PJ?J}ez! zqEyTY)UC{DPFIti2>7TuUNN4U=V|DW!Zg@J4_oDeb;K0rt>)lUiB|;L^|6#+49^O; zdr{tpu8LNe0y_gp8^f7+qDL=WL8<_$9dov+qu`lAWV0*vWTQcfHXJrw#X1_9oCyXr z{j8l5{$&;WI9N`;A~29qgd=rP-#+KG z3|DoL$e-l4MTFbNWuhY*wFjzg`2uhUj+Yhy{tJp%mi+StF7uD1Q+7hhMY6*?k<5S_ zzrEI$XxI1Up;KJZvQ~G~K1)3i(q?D=GA&tmJb7mPKd?rNFCB|~z1W+#B)5W1P zp^&LNA!OZ|)(|!GIHgc6y zUtr;nH>vm$F?Kui-KvRBL5<&6P|V+}n$iYalv0GjJlHW@YpqQrz1J>eh|Yoyx=L@C+bDSuF-hr)ZW>y zkx7_>wm%OO;}wdth%Uy}b6h{Z_y{7BZqh6d&;W2Pvv1LKx=Xg5Mb$-u+8tBvYW0(t z*~rg??LqsQ46O1-DbXWpem?;WTpz4~{#^Z2gS|ZXV($&IHYMBd)Zd~GAk3+XY-mcq zUX=8c%fM@JzXuY!wuHb`nGv-jl-hwoRdLsE+;iyQr~Uqx%}E|}s)VkG9wj<(j)6A9tIpRI;2W7Ks5dCtlSx^e z9KiLZjn!J94_ljj%JL8tGwCWWG{*`fCW#i^W|d0vcem<~P;T`;s=my^fS}+8hW>uW z2)73xv5c%KBG8SmEK#K^*A@R5;P}56IfQqB+?gm&QX$Xa@%c+dZ7B_#C=NR0lUy$& zZcRRT^b*8?ROmTcx2UC$cS!{ELG>Ul?5Y-(9qnZ6A>&Nx zs0XH>{)XL*a#<3P?4_i!HiT~t_pqvmBea{=l(g`KhqwVy4RS`->L25uNSQAP`gdqD z;5P-6NwF!d;x{g}@Ae^vztAW_Qi-QP9db9v$s=zIqH5!aYzm>lq#mZ-(wcaNsjGdL zDw+K$Rr6tT)LUk>3bOo~$KK7s4_xwMC2@(8;z!M}syp8~YJEA7f1>8{@;cg4yLdBP zcIN-koNPQh7>V%+`?r;Lj4@!WJ zV``j!FwS&wf-9e2>oT zI$(84)mu+C2d2u8;PsCR8y8sZ!ByA34Gt3iqcq9ca0MsB#DLr<^Al^e@*q^NrKQ4)&_}zq z9sm0~`;7Sf)#tluZqpi%d%1Mi?(pi)3$Gq`?U;X;DWl5^d1V2aFUz6Svc07|gP8a+ z!{NP@P5U6ZhpBM{R@D0QZ0r$o&%ahow99mHWUpi7s`v8A2RrLem}NTAD@&|0k=IgDN{{FCToXreziBM>5L>PLPo)TA}O z#t2ft|A_QU1*w2Y|G)tMvVemFt)r2uT+a<>y0{@;(jna$3rw-XOHMLHeB%#`#}C^@ z@6l5gAgkHyI5u4VMDzi^bZMt-Y`uKaS>sWa8@8Scl2hk@YyPT-dljczCRFgOxMs|8 zk3vOyD<;G(Bk=Dlzvh1`JpyLs7Tqn@T^gnTZ0(p5ZtJ`yKMp(g^oC=wB1FotXT5pu zg*4R>+SmuZmxJjd_q$Wr-~y}>f%!s!ZY@#0atp)8!Dy%UT&3m=$mKb|KE(f=kj-*L zU_^oyTkZn6L`2&g`>Q<&mLVef`E1HW#kC^Wn*yUe;q4+P}yeVXD3QDAANx7#Qe{ zrU3|FWM{4)!TM7|V*ID9t#>E#s(Z3f@I#3^_E&(ICwvzlD8tgj|0Y@u{v}ZhNc6%< zCLwG$@t|XD_s8QfBa?5fbOR1Zb+C}5*%vQYuPhemlS+!p$zldGPrw5aOCNsPFKr(&vv*0FD7F5BfDh21p( zkpZ3nC%XL5r@fH(2>4|{FtB$J!pT!9LM}5a!nemUsohs$-O1uGnJ6UDE*q72)gb25 zo`lZaMyJWu{yvIcNmD!hqMB(Nj+7rhpEd4RgO4*sW@=8<-&ojhh#Z-u%{HHm)qxn{ z*dcfg#MtoULi=Uhbs?-gtPgM?y!F(BKDh(v-C!U>Xg)e?3KhxdF6)+RP(sZHllozv zqxb>3+~Y**vf-&z&XPowf44kxfW0K8P99x;`)ktnu+%F({KGg4_kqHs|5ta{sV)jf z0|;@VxrE59sP|87M`qQ9@LKiA6aQ1bRY?}h;74+wUtE)4qZubcwm(z&7q{?S z5W|5ktYz)WJ;gK#+6Me4dd=Zh--r7bbxUP$3-y_F&TD=b{hj8uJrPM!D?I6kv0`&^ znbsWNJ-z<2lF<6{)&I!to^(uB{|I$XG`>w%Po@7rqWeEyU3~*|8$KmH?y#W{p{7@) zIfznhai76dDn^|(0=+Qs(~Fo&=GWUCE7%0tHx1d_-p*A$^iPs)uQB$}zu&%I{$@dF z%BlRX<}XBX`F(-ez~aNyl(`0}0j<0)bcZLBW$F%}{5c+dAz=THwAQDLO;ckb zCtaAo_!#8qu#(_RN7BCTveCe!2t*tCnJXol$5@m#3F0^XC3|YUTZQ7IyhAV(Wot4B ztsqV~nvCX_q#RiyLI6qr{mG%PRY>fRtVwFRG28DYdWkNpbeHGgE&t_hbKDr&lfSfp zPhuneVsj~RRm)CRg(Eal4ox{?(tJUa59P`(XR9zjux|-eX(^mEoPtB*D@=%Ich|W8 zbH5Sk*?X-ALnllhV%N%85k@uHsvATJUd7fMekD|n$pfr3u;;P#oVUL^U#IuIHoW0X zkn3Eg0K8TdYLYyB#9!C_=;7h-HBBk~6{`*HN}j=rF!?7zrwO(T*IxIxFfmPod4+)h zdT+G#GmsM|XPs*Usf_g*nn$-lDua`F>fhH-juRDaXThy78zYn2>YMC?lTnQyKWfK> zuE)f^0uP@Y5o5fyZ>J_`-w=z zg<9i7aCF$+gqI=VbV63#aC`~#UUc!*llyoi7oSqkF_aDuzdz-gUflB1z1A*|>8~wW&T(WlLts2Q3r= zsYLJ1htx}apxD>6a?j{Mt@fEfIaTjZOdH9N4V~7DvBmU~6vYYxL%BpQLBFp!or2%4 zxBoWKsBSEAr+n=2^J>snnce>Q1F6OM+ty0ncXd!(NGYJ93iJ0;9yNC_%xN}|A}4$2 zVsnZ2Nl^^kJCTz&(*GmE;Qs0HWMph-!zS@LI1;e(vwKG#sc@Qv487l}aN89d;_RnH zsFk<(r!&4sRSizO8wx?>CC*lPqmmkzp=MmivUZAT_5Ul$kKI&d`B=7D(z0B3!aCb> zE`0s@W!1y|Pxw;*0}V|3b9n>t;^p(5`Gppw#>g|aLi4n9ATQPTEj^+G}<4Nx@cEG zt~Tt1s^;Ao&e=eqGosRi4vesAUUZ-h)&jBBj7kww|6u-z9Xjo`Fo8;P1*upoOd2dt zhS3PG6|)XDJ;v&U*0gBz1gHNQ+WPbd@CK~nEQvSR5R66$)t`KP@?IbM(@RU=Q%Y0C~eEVp7a35JXgC9P%0)qxUvf&nss7iHn#BX z+k?N#t{MUHe=vm6uoFq!#!*2EQhrb5S<#_OA zj~jM>3KeGE28}Cv{4WO-`9^(!*)>W2$XE%bq$){nDLgPj+Kc#1 zxFjN~<%Qynu{t~}Q1+;ma6IRkIN*HA?F>CHWB4yM=^puTO^}riaC_5jOW=Vz0o&|xZ{qiEZmUSVX|7O+#F`L^bIC6A9Bp0-WsIq=^Br8+ z!55@$OM2bWqL|g-(md>N`IVY>f4gkgs8>3#YdcuoT}rJ>p3_9q!y#RrIb~wz3rwh? z2vaRo%36M;9F6^jqPj50O>%=7f}Eh;Kn32Ba5O$$<9rcEqhIo^K&rdQf8;_gn7lnl zOIj>qA5d%vz)rMt6=?A=r}OS&D5M2!=IPL}jsmMv4^jQLmz7GUTj9J2exsi=H)kI1 zLrAbvJMP!m_9c+ts=suZEjEZ9Ihx}~#q7wqwPL&M$^G%9N;&!|baSDg4qM0jsz;$E z2Ec$TzX8c!S;TR#tiO>KYbjX@8d1BOj|sJ@lRtAs zc03nz;+R?B<#KdWMgR{iofL0dy#Fh-MMr6y5;4 zfFd6A8%_E283P5?dL6naTWYIV>N5)EwdI8whuhy?ez=Ww)#iJk6tNuK{OJ#0& zYNO0EhF3q7(3~o4bZEyX+o4P_;#Qq0u>5dYnA!4VsvOvr+q9{3i0>|a<*AX3tE@Qx z%(aW+&f2r5%|z$L4!0dH&3R!9^#8c?;m$Thi!98wiIn@hD^I`klneAnT3PgMO=LN95OrZ!S*K%S8;P~SK_dWa$ph-$oNxaq>t(*AO2Sf;^ za)X7rYuCgj?#$~y1~T#=!+a5NNrI;^u)4&tZ<$}fjvb?{v$Qb&&i*ZTovO`T*XH|eEI(K;my-@|8fEgj?bRKfV6+g zxGh8!0XR?O%~lR4sN)Ff%lz&%rtrj6SO`abg%7o|u(sP(b1D;(2BadPq5tjW^eDsd9#Kha*Vc{p0Tvb62NL*UKpF+@CEK!l9 z@nc_Fc(v0W@VLe7$syF2&t>i}=#;+{@5ns>k-n#%Efrn;Iruj4$glaAv!M5)&}Mtu z*!MsltH6HCdalTTqVLV7-<%I$3R|$fS8!$vjD9o8U1x-D zXu2G6vSCaJK)qri3%u~#74lHQ&8Rol|B{vVC53H0TsDQyx~We{`@-~xH(Zb~{SH?B zqTa+=x7W_^mk=Uvl4BsPI`|h4sFYnrlVZEM%N@6gHjbdt;qsJFT`au@A52A!56;QC zv7USEQ&}kmI1k*9Jk6FJHLWZ=xsA(NEw!ez_N<$<&%~L%xFEL!^oC+?-zX8KFp}B` zDPE8PvkCDDd_2+AO!~9^^PdUd4KU#^0}H`QWxgJlc3bmPg|+bhSjugn*nHn$e#I6q zXH|eKXQ^WokBSCH5Ij;~Yj{p2a{vh!Y!_!shK=gY-7Y}paf5-|Xt1p%zK&r8 z<^D|NM(Y?zg>HODkFTBk&ptof*RkpF0=g0)_C_!_D}YjX8jGkx0XMs9sKZvGjyRJ6)#nYsJ`K@?rYLa)p%q+$DehjDCi(r? z;;*jnnx0gGLFwCD1{V_}RmwAz(NA{iciVON6fUO?UAUO_Veadh^1RpbED1MD+CXah zj2SBn!145mkU5}P+Vb#1g<~{#{iY8x=oCqqF8YQaf4uM=H{z0Wc2qU2x%@+66N|#u zlo3Zj&C6-XrX?)+F)2nrc#9KxB)Fb+$mEHPh7vX>Keir29m2$O4k_1H-tPGgtgb?c z%cOk-2>0g~vT+mW%nmsmaUo(55copKi8QzW!VdU8dF0eutm%aHE+~L-Y;D}sU1aFt zz}f@@_YFbw;h7IJ-)+)fq>iL{7xOktb!zh7>alV$(Rxqu2CxtaVWE&&3`R3vYg9Sc z{O-HgpH~ckVu7c^;{W|EU2`%@h~WOkiJ5tMtF`Bj(MgT?7Qe-!O}pCO`iA3p9X$-X zci~Ee9~&Y-?ec{f>4Q1o#>`bgJynNLPI*) z^@9)T#bGP?Bv)!%d>XiAuYF;@B}9@j7`@>FIrc#|b~9uJw8v)HguQ*sjlzh7gU38Q z7ovQt)&G89RvivG>EeFuZX7bVe2Fwn!oQ#OL=oss1KNWYa5)_;>Uh}fFa_Ot1O2f} zfiojL0>*EE^z94Ca;sDuqqT*y$N6Qc)ZAFfc{~pfvO?8Kd`133eMNm9xI+YNA!$)J zoC}NPouC$UhHyGV#wfmm2T>Rc9R=nrU=J$swLQ7?87_+Zpp^eX7YHAF=!>rchiIlV zp57UP(;GfC6yL93S&EmVtutPBl=c{lk`7*rV}*i}kZ)u!&5Db~-D#yzSAvi!1jdj# z`cEHZXXMzUf#PFAEO%3DTod+JSqo6I2k}3?KN+&oU||}9shNcB8*|$ROirSRS)jn$ zQsu|NBcgs~V?~<2t34261tqJ-9yK_i4d@5FQqzKWfuDRRE`zNW+xi0a@NmolV$N@? z6oH@6Z#gdYY+e~X)ej?Kt7_+u`Yl^V8G=_1Sm9?AvzN|#Jwvu^7W_6uGjdz|FE+Mq z0#j@7&8C6<+5YqUDTrWdPT{5>m#;=2f^3k#_T&CSn;!;l4&3ffiT z0t8o8_WK3yFbCIEluaOfb{bd#8p#Jw57<6ACY{!yew%M!EII`mX`=Nn?SBQ{5Q~TU z%1<3AZf0`E(l($i(hn0Txko$&!8+MdC!3ZEaPMB>=%&BEWmOnz?nkbP)6Gq|E*m5mjALvH%rR7Q+tjL06j{B9k|b$qL;O{|wv!IN zLR5T8WY;prx#f2CAAyH{Z|@0CBdw1TzR$K*mY2G#0$nP$1FKQk0aSJL+HHa#GQ~M3 z_@HAuN33|ncHYUjmg}C}^ue25T+7?OexTC3Gf6XKwMZ&>f|af8dnqJ=UxXt+QRR|Nw|02meXi7f2_ZArnk zsAZE{5;*|ACqvFjx=!T1a6NW;YBqYLF5vVJJ5B8 z#c%5-`E0UVBRH6Nh>8`T5gQH}I&3*ABR$z*RmFa8Aku;Y3w|9Gf**TYE6=@b&VG3` z(lc@FIqTB+`_$=v$Qgu4_{8s7-aDcXdc0Y;JLQ6F(HD48aQ$$>6L(;&{M&U9=rF}u z^3HRfn2*rxW-)`*(vHKRlbzSC0%y_YhYuaQ7y^T0hNCunPE9-&_80B~)44&r&|k=` zcY|;svvU2aMo@d%nmy(Jl1 zJ6IYl$o}NN^vUA!d-!oS(r8?j@*c4WPuojy*p3HI+;8Sd<%qnOJ5I{}j^ZTO>~lX5 zMOVrTDh3314aF4c8>=#4w4L8#LpU`Umj@?1dvs^*_u+F!@ZUX|2Fw`|0KenDy3 zO+M>w?sQ)rvTax(N98upTaE|ne*1MKD)Vd5?#{(_uP9sR0eAROx{YVc&H%KQTO%(@ zhqb0`&qr`5oKb@Q;ExqOZEH`y&g_UVY~ZOIx4R>a8l4f{z?6-8i6QT-6b2UmSk0 z4LV~tnhxwWDgFaA{{Fg!!twjh`U?X6fzn+~TdmIk(bYt}qON@tg?lbp<=vV@$)fg0 z$n8^el)!_hzIl(Q?%FvIBvJZVk*fp$boTvNHHcbF@{HTzU!5(8ZQ%g_!xAT@atu>9aHh8Ys5$1agtq0+_&Ri z+!33#>z9Lcx3ICLq~0}`PTB8kZuA4<8Y5{>5FT*QCk{+x+J$wBTtXj%f__x^r4tfW zN%9lly=OiAzI)?e^vnt)-(}AE&1Oj3PLd+s%4+zw*_#}bD)cvNr*=$;#ura_;>{M@ z8vjl^dwf6Zws}8aO_ntvbh2OiV6e)uAju4s@sS1J=2~~OrL6Hsu3L;H9p?B#BN(o36 zkS0}1kSbkz@4XXh2q|a#`~S~5bH3gC;hqn7oIR6FGD-HHH~U>{J!`G!Suen>0$Ftd z*sJxA2Upck+mRY~wXTyrph-ojfO^=(XsWQ<6{BN65ckOuLtm7LId&BPvVN|K7*r@! zqn5o(_rtowp6-FxmlMaT3|ea0AG(fXVLGAR3mIh~D6`r{{c#@9 zIsV+Ofd<0mJJP_=I)nOm^B>lTpIZ(rzq)Lo`*aw?Ur{A)66`!*KNtH|0Mo}WyLv3J zJ^ilfD#r|hmVh|#mV<}+FHDgy=hZ`O?TGsBoqWDFV=jTbe){(QyIc%mh|aatq{aV9 zE&G3;|8_M)m{`q=!Q2^$lr@h(Qw5)VmX>{`_3#o75qg-${8@FNCM$K;0spyK#=ad| ztwmJhZc_e(dK{8Slu2*}hOF4rTP zwsYRDQnO+a1|ZA{pr2v`s`2EVa?$c052v5If}NwF^|-(wD8ygQZyNwCL}GAAjGkvc z)xZ>yEZL5pjX=Ip+QR}apJEGz>n`#dS`VFnE9VIw`%g=|z}7GAWzRmVfIKJA^-y~y zk!r7w6F2H0$rXd?<22L8c%1tM1E4phly^mWX_{ zLB5cPp}0-1FzN11AsdY!ObHRgyg@zIQ!N9U52?lo-&=8>k$i;V-1{?**r!qdvDc0= zMjZ%(ooPo{J~c-6ktLg?mOlBtv9RvD@2~ra^+Ej(t+Bal52L+FaC*ze{mYm4TaKcH z!8I4(3!Uc!(T^*y!!5kK-&)*2a{R~mgi(F;M?V5?KyB;f2ej)WeoJRd*DA;7m5}8d zA>S?0k?Nw>J)=sgtqdC>K-^{dD(5QOV@wSIBE94?D{}m2ZC9~ij{4){>7VHwaa+RnL|>3zB-iaj3z6uyHCf!G8p zv#ys=6XiTPSvzMTU)9Z8E{#4{VFe^y%^Rf(Wx*-#*!F$lyDyB<5>CrU7S#`A-b_~@ zOCQmDR+a^VtA8>*vo{>2$x52df>tj`6f0AIUTr#jG^jEbH&|rb<5r0bmJ5B>;|7q+ z6WoK?9abkCC<`Qin*is#d9WV1LZ6z0Yv{L=`fGu!8sS;vME`wc!q9N*NRFMqg3O_{ti>3)7x!w1hm1@nibv&YwGSE!XAfmLa{6ZM*J zS=!zY+;(YMxp46Y21%N^z&pvor^OKDec0&$tj2SGYHS4JH){vJ7(1&(9)L}E|KgBc zU4mBG(4B*psfeQV%8`4fZoV6i#Vqb(fF#q$!a2C=saZCtdv8p%W?t<= zugg@LwY+u1L+4kqzmJ*CK>Vq7@xJi(6eZnTL`T;cXsfyvsw=SdgX`{0FvTuy; z85?Xjl)_Prvxfyp-nH*$*_B8~jSe1_cbrN?33MWBJVVL|L)*^^N~lppoecu`Gxg0kn)$uDj{9F%V~l=UE8L9J$I5Jah;M5Ae6gi81^q{1{y?euII-ce{kMg5sZ#u$ z_2A;A5Btu|>Bmn`e-r9#nzT8m01mL%xxxQ>CX%&T>=($U?t3ZOsPu75r@0vBj}1tw z8WwBrtmkAm(Aw-3u&XgWdjq?gZ6iN>+N&^s1Vg8r`}R2&XXm)w+g2l0M>k44+Q{lA|n0C(8aJ`Lecidihh4QzCSchf@yF2}8c z{X`(!Vs0PMYdqz?&M1}Ggs1y-zS|NYM%9R9=lJw$Ngrbn_0|C7x6N99?36cxieRFby4w%7n3sV4TLw+fC1I!R_ZS)o<=j>_iRy zQn?7l1u7D=zK0q>DMlgpm7R3ae}UUCj_;CzBtddOA3$o5vve6erppCmjH?TviigXI zl@&vk^3oQzF@Nh^??h(4G<pn@LMHsD)`fY)^xMRILZ^n_+-+#^lry;YB8Z(N zUmF}NJxMO|>Ire|ZNIp`HLk#f{i{3vc6#VckA`>nA_P$$tW ze_{&G$vtn6BeT0`Ue~R#^T=@i?k*?1+$aYs{wVW4V=axRX@{d)Z(y? zR9_ozFFse*km9N+*#Ehp~iszYTC1+*{?< z(T3s zB7Mj1;I%C&#;D07$dXxj0oPdZ8cLwX6m^0ly|GLungpcofn*B>E#O0Dc_C~H%&Q5& zHGFySpnCNq-hw)jG)oWzh7&f|-Pxf@Y@fH=xphHX3MHZ(kX)rs)Hw!7s(zAt0CS#~ z`zE^?-QTuQV{1_(yd8uhjEN&rEPv#HN&`+&Ku!@3=xoRVEj>fTFrZTKhbN#t*5IE4;Nr`>2Ub*F^_!;`n+y9{+Qzt5*6Va}tljjg2GGq~? z(eLwYDwzCJmcNYB)27-E8vM_jGt6^v+W)J()SUm#OOH}YLe1zK3mQN$vTsk0ElaF2ngn{deF79ZleQUI!ZZG0_31=d9yGjfeYWzWK` zSuNWQe(MWQ<^Fp3X;k-7N*{NZ=<==?rR=MztPYh2TpxsGP-kX=sSt~gCH_oxjvg^_ z?}=!eXh7X66n`-Eg1EXR7(=vU9cLZsBzY;wgeXp=Bv2QfiwvgN*+m(S8HkR-i&Yc# z_(+Qm9cVzmB93N%6%R&bMhe7oBzWKc5JN>jl#=D$pUjPrG}oU|_5IRyTi)W1V@xt9 zLic;Y&pUUqi5{Com~Jj?41@^hc}RG{vO?kbW#L6^yz)h6?Hv~i+b=EWKVuTsLS3KB z$GI3`BPn#zl}PBkr^tn!vDGeC$e8=+&u{zG&;77|2(}NFrB6e|T*du1#Ux7!-{+3P zJoEUsTnvk}{M0*pq45H3u0ZH%%ZVw0OU zuHM0#9Bu*pwYY|>N6u&hPO3CYGz)HOwF=_5 zI9k!kqG>_#WAyNA0~nPIF?EnQ&jguQY<+BtB?w+w4w7efQ6}Ct>fI{vhc$XxXC#$Y zQ7Iep7sYABljP_kP-E*Zs_^$AGhPMcphv33gh^r%Za+-Z>*JOuKBA~vMj^>P#ddIq zFVFsyhF((`#Ueai;(XWNa~@|#e}e$qrBySaFzjtgPE`XvZu$j_lFJ*=(UtACD42{X z=;v9b{2iIQKJl^En1qhQC=j2WB)Xq`HSd&D-^w=BG}`hjnnX>dI$=5FG7mXkONke~ zr_;fiNG`8(V-Xv@Hxe=hEsPdQgB*hJ&=R`n{6&-PRN?9%aDC7t>DPlCq_a9qi6bap zcFGUWHg-g4-4%05MkJ8DIr2fHD?)G1);XiNVIM-Bh7kSzL^_TT_Nz5!i|FCp=AFBtvGKq_QeIgCoJr`y zvx2k|jF>O(8^w#_+CxEwD3Kh2%Il@gO_!<(TuSs537@A2<_{Lz<8+N`}*^j-G)v~XM;A# zLErdOmmAr$)RzxLP)$yfF_4G9VQa!ecb+)hSmPHwOny~@a^L6O!z5AaqMb7Fm~IDK z%}4n>kc~-DZ10cQ(+R;(-_w~S7a-)giyz_4x%CZU%Lu~b<@~-rZ(Z;5K9jlea?`my zUn2AJZe)^zWD9ZT4sXOZy$6YsVTdGiFI7^|og0*?>=@xlMN3l;EJ3g-9NcRsCRM`t zeVIWVClJ5jn_C)|LR-6r21+3`l@G{&k=-VV_4~_fXv~_z$oTu+K2c=W1+*nAo|thkua4TH0TOcaP!% z9(l7{dA#f=b@=T<=r5j3Ty=hjFMmRjb?WR|74)32hb{dC-reOT?azqpXkU(}a3hAq zmOI`%5Htj~yj@i3#lV<$!`Ct31P`!dy``vTcz8THJJkmoHl3gRvSa%AOx=->BPeOy zq^~UjJJ;Q-o%d~#)CsFFR*WzuB4CAF^>B=nJGmt@;x7&*Sr>`Y8pIyH7z!a*xZ_S% zCe*iXl$jmZIK}zx&}^4^0U1TU`uSWR#YmT?6CyufSxY(T5`uSB3Szi3Nsb>1ka!8k zc}pC35M0vh)Xo-jZ4TDCha^NhsHkqa?F7k5*i6s2Q^%h&X(Pc&IhUMIahYsP>q zRS%VPP(tZ2=F) zLG34glEq8<`|Zlr-hV*vxEr)G$5%zsumC$pvX3X5V_O%#x3{$v_Os}!dfR&-nGg0R?kZ)|^ z0uNNrMHfF7krBrJ>^P`SeVv%x&n?dARHeIOSR*GAWjS}P1Xai3Cu8lX6MS?#GA5iz zUFu)6d7h?7d;GsO%fISJ0g3SYz09mT;w$mPScr$TDcN=NheYt zS||)D!*T8v$acsPJ*!>`NdeK!?`iwa0pGMSj9~y-%8AT?yLmK_2Jz%x-{bIy%CY$( z<`1ctEL5iG4Hy&E=mu6^mn!4((l$H!#t&&A$DX)HL*{QK%aV{m(sUdhi|XqFn>cTg zhT#9|5bBOht)Fa&Nw~CF;LwB&9km=ljId>aq38WO78jYj`yT%0yk{hnE~U$cuw6tL zWz~-_xHZtQ^UQmocQG-91iLk9aUMZ&GksK=*;(lPc&KnJF<~PRL*WGSZubFmOJj?1 zH>j|r4mGBEtH)^%(@zKoWwwY{#N!BX4o+uA_^$OZg}yQ7Fdy8~LlR4e8@uSgk;*TF zy9b7UpZml12q(#((;XOGD7Nho=4|bw!b{6$4w>uWYm&DPC2ZY79K+K}o{GN`d+<<6 zh-!o_Ou_YYWvajZ&aSizbl#sEHBxsQt)j;zexWR2tOOJ&7S4NB*cT+iR*n5b!l9& z9o#(S7H&5kg-O3z%F5p-HD+k{K7Fx&S}K#0Lmj2pSM>Oy5<6@+{nI8Z7N?P&-pJ(F zD)jg?AH|#}04)AR*~Q!1s_|B_J)uwk9mZM^3~1v}ut^2dRsTMN!}cU5UBZi()er64 z8y(6UJp7L)8se9c-?1DiDXL#)R&e*JI1VyiP$dfDMZfx9m9UwXOvTbxJx*};H;#4v zrd$SLZx9l-dVhay@VB1#?(RdfN0qGdgK>8t*T3rk9F?!`$C!B)(jAd4VDP-lnBzSBZvZ$}=Y z1jBA*Gbvog!eXIzM&wboWaethHmp~W^!b*%>4Coi;>?12S+ z*$}ET5gU7NX&L*Lv5xX(%>ov!`jGN0L6zxPM5;hm8ugaF()~ z)kkwIwM2D4f9Ib*A^wt=KR`j5l;=ffFO@nxbx#jvB&#f!W&Y=qL{9aAA?(FaCGzu} z>ZgkzmkA5~L@$0CVns-$+N>GMWp)rsy*wNgr65Bv!(=;o5?}(*-#|p`m;xQzZ|5(v zJW-q?e-J8k)6pO=Rd!-x;(XJ!4URtcvXg@~>Fq+IQL5KF+J+_z3QcLUx~|`=gb`s@ z7Xh<*F5W*TzhAs%s}JIpEd?RR0*wLpKXKz6p1$J!0oO0sQ4AwDS4c7ELI<7i*TXWq>9 z=zQBhmK_S@g*s7}v`~tIwn$CLi`>eKf!ySSGSm%lqshuKTzfm=tuvNqnaz;tiezJLAa zHi4yla9B&YGSv$xKB2}N-pUP;A_I2rtCk{{-1nPS_?j!PyL#c&A1G`F^FUeChmv=X9n{np8ZtZ1akZ)sk+thGkYIt{SD zuA-R8vm#1Thf-P#{0K`3mcjg{3SiuHK$oK4-q14YqI>##G$DrID8v7TsI|fJ07m1? zUALEJ*8@BN@FF35r|9hM{JjZT%lOgyppzdf+sC$Ur{_2e9z6sK>OMFES2?O2xm6=8 z3g3J84ZAeFnlIwB>Mc!ifg*YeRWd2t{^!221XU)!>&^o-2G9I*Q5Xp+?Ac(AhYw?Nh>XiaXOUzuC- zQ?(uJ9zXOrGBX63%*>cf@sug4)O->XpZfn$I!$j|49pNk+*(UD##s}#8?pd=+zSbs z^1wgHNn|)FjWf37wDRwSg zG~f@Ph)~3kf2qEue{yE=LN*V$P8Y7gTx8`V)f`IcAM4#R?Lozfh34h*p*8~fdA8gs zT2c0GY~3P z$KR;DVf?$lt0)+({(Ahs@chsC^|ylJ*9Gf3No@K044U(!ys{y87k`B6e5RBje?h0r z3cqteb6@BSk0doAxmYwwNE^)<&3%=Vyq9X8v`iTG-F`|`tQv+EOMzRC zPof43S1&%)*r#WS-IH*nU1Iw!=CkWb3+g6ZFArf@F2#@oi2;iXaKpak-atji7}l&p zb0IHjgjX~Tl7_{kKqL!!Da0+crnsx0L=&CTggt2|6Xj1ivAQ515RlwG&Bwj{F2%dr z=b6Qm5qZq*OB$~-xl<5?&ysA-g6p&r(Mus0R9|U5imjd-`GL{6PGHYHOlKR#X!JH* zURguVE09`$O@V^k-^WjQJS4-#>sa#yP*t^%@92T~YlKG><=Uag@=-fUpVbU$cde6W zB9GIjwH=v!0P%St?4PVRbaa59w=MjFKH>8Qz)?Pt!_A|p64YBP!#=A|qg=B5Pd&Jv zzY<+sKSlLPPb%P0Y;5xZ4Q}&J3Z6cI9?nk+p?kDlJuV()&g zk7V)1pKT~O=R_txXLr*qm!F~4R~QjU|LR7}{&QW}WoP_)uO6?e@b_Izbf#^3cow{# zmCF{q>>diC3|0Wf!1%|&RLf}9(*7&G(EE+qv64QLNNDd_l3&_MM| z>4rWz-WmkEeF%VjM@|B&Nobe~8z?0H5=KWo3BCOttU+z|06PaJK)U22Rhp}Z`7Eq) zAWk@T9|kj&8ET+nY|v{x1&)Kb-=kI!wj$){b6n2#WI}J{|1z7{>Q$l83Z$1MxsA<@ zYYKzF0l4i#QRO>)SN{d8vyCE0nvQ(G!dHX{>+^R92AhOcC76OKc0nb4#iMSCHmYoS zuTf?KdKL)NuC6~RZYj9wqbk21+VLEJ0*DSA*`H28qt^hCff;;^e(^d`h8&#bYd_f| z6DwzW`4oEZyR!;ua!}0+rY%O_nJ0|CTT%gA;tdFii^M(o!IyE0ahbZz=^%tVpJKNz zrY`XN0eu?~3h>~!2t`hQn#5u6&P5Ip$F6ni%DuxUP6Pc4J^GNx)L7GG%J|GDfYQnle~(!JiE z(wjhYa^@mu#R=stVd z+tBT_ydo~~{%~O4M8!q?keQ4#+|8R>d{mEgM0kfTss!I%JpMih4(;W2gMR^ej+u}9 zM+nH&jRX=u;NYPv`V#ig2^U4AYOwhL%bt~G%O}hJs$2!m&UNn&9o?13!v|n8>g7BH z1rynA5YvZdhBPRHI881hOgGA^09X;Z_K(}MPn@)Mg(j|Jmx&C4u;wEwb|*!y1VvvL zV3T{Hc)OLNpYE%Q7sJgUoz8RZ4fp?KC3Ns)$t02v?l%mKut!%^bU`ua#oIXn?;4(d zkX~)1_D9Ap`=1>*EZ3iGhG)Kf`C;+G270rQ2LhPqQH&ap^@zKG3eG^Ra9iU+e&LS~ z3#%#aS5FVlBCpSx#VfF#pm)k4g&@Jjz}~~{KZa)h4a1ZM@VW11Tbyqr64PsAZp$5!LU`N5e(ZKXXtz9gQ>wul_+{Dxg3eq9r#Jxv2ec`L}Q8jVDG0*Na0i>CJ&+qU?rc-~B&|ovSk4=F&*&7lW}e7!~U|0^74|fo5O}>*^NX+I$?8}4+2!0e#l+>(f5ffrDYYR zB_+2ud$x+!<0UUEnvWIMo?b1ukA79Yd-ty2aqAU}*V4n+=Nawd+{Zt>pb%oyD$8HM z?>=!HvmFBiph>Osy=fdWA20+Z)M|=&p9rL2g@<)bi>9i4 zh9`aWbYn_kJjxHqNCFey^4kmM9n_I~*MOI~uIP9Kh)T@zZN-bjs^LKg^lxR4r`*CL}Cjwa`2>2&9n2B{XCEL4e=Uu(sV{07i4Cenr_kq z({yHfkZH2fpN11^1N1cRe1urKedX>k?X~Pk@%}m9O{I7kKc9o|BkTWKkK>7i%J|1< zf5d9!O!p!LQE{%yMs8=|MG{zp^dxjW%hBPgx;4%cn>qh>Cyc0 z0w9k7+^bC|9VDx_yGQe%VNPo-Iy}2+jf0pzJ#h`GKHDsUV+? zq>8aFeqmUc*FB#JJ-bcs&#Mqv)6FmRNoT?e{x_qt=Yfsq`QM9lmS1m)t45R9bggzq zK#=3mh#Qzo+pyIxVjDkI$Gg}|^cLjg5P;Y8l=QBJzwmAP&h7M1CDo0bdCnjBt`ghc*tnQSs$4Be$)9-~6++91cbtWEjKaT_j zgl%^bQwJcadvtD1l7nC2A_vkd+TU_(efeD*#fm8{EA9Enh`0T-?rplD1@R@1Hty{} zX6n-NQYPsSq_|TRrYg+mRQC;vv6y@-R%o=Vz|k8LxssMI=gNd zdTQW*!kwp6NlM)xC2OY<=qkT6#e@7E7yCN{%>A}g#-F!@9>tI5b-I-y*H;zrVxs9K z4R!)ZYEcu(sn??4+GIUn)L?Auhr^fZnhT%7uO}j0EgMi?8I$^{Wx~exDm<~`HWK{% z4?ZLA=ZRnNkexc-SPKC7HcntpVrFAQ+4JQw*4u(R`Kl#j@#g^E$WtJ}OopX)A)TtDTXd#mL7OS*(M^#aU7Bwqi~brbXCe zj>!E5uupSco@imB;4UY-H~|k_wh+7lNn8djF%a_kbRcm?K1arvy>u?z`UhIN%2OR=l~w5>f0~XhEiD}!mi36FFQz^=0qqYJ?Nq4j?i8o!m8*dz!lwdu&;$N4?#zHXPKBx+|R6Sc=io;(bNqSE`mYO;- zMaHO2tSIT~gLh0qT+H3D9WqcvM`QInk)0~Oc^$-)z0Tzp#>RANXtDr4>zCIjEpY&y#CQ-1rcKk5f>XOu+}J;Zu))st)_vs7Jx1`kf^5Tbpr7eZGJ?=u<>`ss#X^&id_Vv?`96@dZ;P0kbe4Gg ziE~D!m)WJI+I78Wu-ACYGhm8bF>-2n&x-E>KR^7ty}vo*g7v-T#SilrwFmkp{gd_> z`CGPQ2`+C-%Yb>8Qf=SAm+d>kQ|RdU4|I9IaQ*>G;v{216E2WJ3r(C^Z8}FIP@3e3o3{p%w7-l|ivqcL0YoM8k3dw?PNH=(Vie-srl{ zqoou=<=;c*h4t;_Vwj&>itzgWN_iQ!K5znan^X@I4PdsqhKjgaI}0+lG=83WRTwR? z?CpLK=9;e(uRw8@fN$oc_=v_yzaC^Y%0M+6>+k|e2jvZ5f6(-(I6=>6>@D*Ay9}A` zeN;+Bfc@5axHlGFdEQh>yqB0K#K*{c&F77BJy12KH%#e=D1lAQ)A90*(uz0P%3Wu-vUPZ}9A=Xp0v`+olN8kBveMSacM#JuFsqQAS zQ%_ZT5ucFYe`>!uCoIA`_l$hKR5yrWx6gWbFn#XI-1IE|o@4}h(#~FT=!};4e2UJL z--oA}SviW@(#|tR#%fVCbVqF~P)XTBJG*Ehq#bQ#Y#cN*Gc)Y|!Z;1A_9s)sT#Z%d zgZjmKx8iKelJ7`Fui3LFrDbJSzM-QO`Hn2hQnmy|ft_d4zQuOAjpyJ#bDWPO#+BwD zeb2Y27XqCZx&3M|O86s=ir@ManK)@wxl(2G+8cqE1~wmrSx zQw2QlaXD&1Yz}zDlLA6WvFWt{0tmZ`#-g?p6;HaQY7)OTBS)xp*e=Rv&ztGu(LLzA zNY(<>C(M9wD}F_NjwBv9OnbRsBS>rzt0CM<$`fU5XsG=~gz|{q!k4maR)rMAzG&sA za)U=M8}$CG&UXUslOa1nK}LxW0vPvTO4e7g%dccSR2LcM##Q<{>3O^m2-o;F(C@5g zj%+w*I>h;|e7nLVDV}YkHqTTX*($cr@%-;Oeh^VyWh*>h%|kGVAYWjNWEruboE?Xx(M!(Xp0kq&g&SV~F4E{hGKp*_L%kowye|w%wx>-6K57DH$9N*c`RuPeoFRd;nOwDn1{^ z{`EJS8eYy8^Yo4i`jOh$6jL}m%|TrgyxM(qXT z9=5}=1i_*m$BTaL<0pRo*|}^d5udXbs=r#Z4svUrzS0C!Pzt=_xWj1fxYNs5zy$3w zxRff$MAmtT{^~8do5Oc4oc+j7JyD>p%m%(TOfLH#4#4uYh{L|y9Z7k8(KWV&5MZDJ z{eiYRw2RBb&IF~)df9$ido*J+o$Ypqtp0uV6WZ9FW+^vHR*X>Gy{FC=9S|xcO_Dh{ zT*9>$*G@t+Kw~wWE34_T}l{Rv^wqTE45s2Wmb91-Yops&h`@86jXcV);BUNds99j z)O9pPe#Q3>xN2TTqmNx=j~CpR z{jRbXuV&tkzO6KO?WXln|=^wdLCZ<*h%L0tZFE+vK=wV zC$>;nw$1Nc!f9q@1Z$v$88```a@sX(rt=GbBa8J>A!%l)pS$C?q!)99@bX!U=MvEW z`X0+X5<$_|r-Mbyzf@lVx}Y*-8xKt7L$Y(gnrR$dkHU1G=z#*%c6zUgBfVum_+msv zY1otaQo=;L0tBy?q&JwC6W%ZUjJN86f!QgR@3No)}cCR~|cojHA zyP)yyo!y3AEZi9^%SB)eUI#p`$8+I6pTU9mkEkx>-EZC^DbgO*-mifZgHPSZ@&;h{%!LPaFus+kQB|jGg4TQcEVy$RCn@;mp4S0<`jy{fG6MRfCkIuXtQ+`X3_QU( zWWAzki;0Vks36$tvAKI90i=JNB z)?OaXWr$+LdB7+C23qPn?x?Gfz=RV$B)&NLFB%A^r$8zNX>)}kJn6YLzS2Cs;pyuM zXbkpsJLqP>7l|VbbNTTgJg3~wmlOOj#1R)4NzJW!GVZw|aB^ZK<*~B^!7>*|a5lc} zj2QM>`ZX&i6fL169$=@AG0V|p`QZJ@3b}&*ou~x1S1oF`{1YV{o62piPW(wZu;Q7x=-EAmcRnI7*5F?sf)ow=>7laPDt z>22~CMDKoXefd?KrQg&^ra*FhSZx@c`r~6iY8KvZ&yo5 ze^tyAsBmyOhmyD7mglf|wwq~|V;^`mC<=4m+I#%=z0z9aL!0dG>8%Hg5G)>@;LETI zFV6sUs$l(lmdrnd?#Z`!Xr?MFpfYwO?|)@`v|~S+YPTLQU)f~btP*N)yF9F}srkZ~ zWGaDb#z~=2&N*0H-nxtr}mo;mb_kV!(c0bI}+z@K2SEW@s2%s$G^HC|;{X z#F8?o>7s3D7kV|a|44pe!{Gmp_R{5|xTq6zLsQJoVpj~cC?>+N)CyKLc z2_F=vW#{CVEQT1Hnlg29j>cb4kprtZ*d5S*`Q+9!%ga9O*{wkPVFqqmxl`cFr#iqN z=UuG69eIWr!uQB@KKQC^qP}HM-ZVsYk2*rQ^Sr{NMDR^+v=VGCv)yjLlbmO6PQ9!& z%w~oczAFV&`ka~de(u}&1KIF{pLTLb5u2@?vdAQrejc43HPnpp46+?hOJXU*;g0q_ zo-bx*TE?#)qKY!Z0=2Y0#%cP#%+#)}DGPTPwt6i?8E~{Aag9>#HGXbM108xSORrJA z25UM=r_=R7q|E3w#K@{kIWk5vh#kDoc+kD4t3AkMK-C0{U0l*0BiR%??~P*(S8RUa z$Wxq9*lp0T@Mxi0PhACavchhvIa^a+D?p2--P{DWRN4E>BGyy#E%+w?t8Y8*uOO>7 za%v&qR`G7y4noJV73i0?VB%S=FDrKHP&rR;URlSv%6{@bwdBjPQ$?U^5$r(|9cbSC zL9i~|>D5jwTtk2BbbOq+bX`v>VEm$4*N}0EwXOeIJSic5Tf>qsNoR(~dL*0k$g6KN z17UYgt@G~at1}-^DivD2RYiH8`#fo=;9^}gBRc(%UQpoQpL#0Tpm`1UkD_YBp|9+E zXAzA5J1uCE)0(i4%bvjTL46ACRjSzN%nUbAircf9=l(ZN*6Tg>y&x|xxShmyy!1}_ zm`szUi^5&p$h}Z9CggxcybscG?h8|!Wy~qw%a<>2I9|3=<3Vw@>1Np~FOL`WiDH7Y z!Fz~cHhViq{ANM~GfUYSy)&$!lb|1?$jx(1$Zqq3!>Wtizj1z`@BWmQZWd#SDw8$? z>wQ(_he(r7qIK8EkSYNgsN-I&n*9Wqq`GKEGTcdHyHO)VZ#u{zLc9XqnfnU8h&u zIQ-{qhH#$#yrASs5X}szKpL~cBq|bo3pMF?)a2Hmx~Ui`1bSrKU7%*^*~w^MD~og( zi!<@rxU*)<+(dQvZqhkoX`%mn!w1K%VB=cYYRHX5nvBkLt zPztK3+)FB5@WxzI#h2n+za^8Q_!7JU*_)^Xx_~W6Pdv!dfAh?HA_$w@cw zeqBpZTnAZ)@2kEG^!yAj9bTpd5fN92t@HCMeeNe`0Uep;#$^dO9`QH`e|bzWmS_ZR zTKOp5WA|+MPv3jJ7Pa+lW8{Rr9S#UIQ6(*XUKeNt!2JFmrAe3Ii0V5QK;1Tyb&v2~ z-5?7Y`LjOFXO8IAUKRV@?O6?C^`WAbEX77%b6*umUzz}%oLz19j=x1 zn_3y&98jT~qJ{MWzhjf%$sD(AF~4i~kWeaZZKak@kVREpEMtp~dtF*Dss@C6OA~dO zF3-O@R4pX^;&XC)^P=k3R71sN*&@Fb7)fL=xeht>Y7;%Dhm~YV)eXgZ_UTK$JZiLA zm)ur**qe9f?bM3u!PYXCRpV0xFcv0PIDn5fTp;2KxA5G>#qWF+03{*81edY#63d#< znS}3i?juEI6>jWR{5YoD7c7Ej+c!&l=*v*~Kjdng5kqD0bXeEy#(fr+B(Z3tvY*et zzky(`i}owZvPA8>jsv$Ve=1m)gB5@ghSMWa0&FH;qsoDn<7vi7i-nYuIS{(U?dA|| z`?;~~a+W8Dl;BT|>-yR%QD22a-IBXbpHARdwZrI~a6n&W|8SuO98~uQHNPC+p0~v+ zYQ9e(t%vSx#pioaE=w6uxbB_}PUdpDgyRj3es3)G|N3mFCTIsyzq~OXw}kJ~mQqOc zM}z2ToB=M^6z^T%nSq}URv$e88Ya;o)btx>ej+8^ zM`JBK|Q5GXJK;T9=Ve0lyVt5&DgS_40~Q|V03?vDMIoYfAZ@G!E7q&79H=tA-~a>|VNP_Z+7f3#$7NVuC zWi(kDEx8U;2s&a#(9uwaB4eGz4u0YkZc9=~1fH>L!lW9k4fu2Pt(hO_#vXld#$vo{ z>WgzasATBP19tL8MeEI8b?KR#d##2iRT-LR=uNQ%cuYJodMSm9U{)u*d+NSgdmKR` z^q&1Lz4=b2B?Z}P5gu%p=8V%~4ItKH^t3BsxET39WA4R(D}{7g3v5!=^?dacD~=_~wZjQ80TX^)I8 z(AFhDmnQZ+w((&u4ozR0tPS@|acP9eFWZLPyL^}$qd=n?TLR_njC7LCv zX^(L&cxRsGC4&p%b<6J50SVGvOygStJXxb^so%#yvTB9jC>0cMBzhN&$^+qgT^Fd; zZD)z1=HBiPgF!c=9M#M)Y`}qK4F2oxOyyJ#)Jj3#r{*Kz<=WvJhmz|-dsJ#Ip3n#7 zHX~!a6a$k$Ysruxd0^H{(|Y_`FCnH1;qd2SFDYiv_-*_Xj(5Gk@(eRE$Z0mw=Bgyo zcMWgaE}lyk6W?&Kw+5s1Csb&<$os+Qp`FQf&sMl1 zQ5;v!FJKN-qu0{ssz7v@=YE8_zpKpc`jzY8yB-EBjDWOscQ?$4l(aNR3=Ps95<_=)cS?5+GiU$)=Q`&(&r4nm zb6vC7-g~WYeD1rUZ&p@EH*nDLvIkpTO@zT;lHNT-PxUMEOq| zRW+A2e=ah7XeWu^i6TXA@aX1S`0{3eC7_b~gu6T!UJtA+Z+=(V=q0H(nM|%v;k}=i zAae4YkNQxXD^d`+d|7dpHa4x>i8xMaY3dIFbh44(BX1XT_Qjx^qYyG}9`)Lr6%%qU z>ialY+dmbLb}SPzt`Z@HBex8$XPXWiFt_E{HfxF#WR~-J{cBZG%XQJ5dFtg`zlv{# z)~LtF_jZDb;?3^~$}g0Z=TtRo7wv%)1JBc5FU1cbH2mjvi#_GvgmzLaJ}-H{J@jKj zT?@!UrfGeo!s4cOf-stk+*ifotBMueCG2mJH%!Atv%3F2!XLZIfkcGRWp-@rKMeez zy08cJnu;R4mlCKoR6{+mh1~juqwxCO$cON!^5ynd1ikl1OU$!p1mDNb!1zPu41eCh zCf?-vnE#o&UL3s!GPbxYx!5IEL7(=_bENpQI3vqmN6uHUOER(p&94xLL|NoSQmvs- z7l>ZjiUQPZL%nag5Wnu>$Lp_7_bLf-KLt8fRn-(KYeM&F#sHBd6 z$+Cvg&4MY5$0vCA+`ePOgjRlsm3?8jQZIy&w}b+#5eaI^wkD}WWJOaMUOUOV8J(CE z#ev`S1*^2)bMTxAIQHw}%pI^s1;C2h`XWD zs)i>gE`A{Xw*0!bz9#vd)bA5Fy4koTZ7Fsv5t45$C}a*0i$R2unq>I7Uz$Wm`W@9a zDD{qJSX!}D@ehFm__8V@N5B{(k1j#hj<%v?twA8frTcOR=@7y4m+OQsDFRD#3j^nGTuOs@X|Sx4DjBQkV1-`0DkXiJ(O( z1pfG4E-;Uw07i?u?=b$~DW-#2XCRWKZj%str{F6@i=TDVXlyrmav%2|$3Pev-}on8 zhjkqFgLoD9{R7(_8Z%SBfCBT_D7B;jmHPL~?uyJ?9&{`%_&2T?gSQVHM;w!>YDgo+ z%0y+Yn4h242OV;{nwJ^Y7U+}uY~n~%26BI*$vVliTE5<4^Q%$J*>j17{ulTBLQaN! z15>RByzBo;GXCF>xEf|(N&(Z^-=G4CZpLUu{XyKPXF}kAW#LDi^7o{CtMAZL@fkXQ zY@F`PyWU}kOxn|k48`0S+kc}HS@Aqgf`1eDat^HQ%M~VCEWHV3%Sh%iLT9Po4Cy;B zt_z`yB5EIqC-Fgxt4M0euI-Jmsd%^c)}QdYLYSQ>c4{%qIVdT?XdQev^(UswtTROO zq^X<^CqVMPy63Tr@-OyBvm3PQs6E{)}o2+M7V#g0WbS0j-U%4tQ|7*F{sq7|u zYcbTeejsS^Vz8AF)28(lOJ|#;^&n%~3r-0-sJ4ONY zo3Vz%mO>G1k=Cc?Xk11Xx?XiJ;hPZ|h|YLFoJ&}BC?^kFwI+p4aChBVmG_QTH8Z#P z79n1XXIoblLI>!*o@!KYOp0b^iUzTsuq<0%GA+uo$0N%0r7Gn!<B2V-pL)8m-*s zy#$dfG3uFP$bZFz!gGnzHs$Y{s2Wgn3(OU%!qKHO{r`_7g9DDS-y?Ij5<0b0Z|Vs4_?+#}Ce+tMYiVy&b`#IFrk3w&I*HRw?$3|4 zpH%igWv+@X)rV6sd|bEkreO$EW=z&Y*+DzY%+a|R{Eh?()b#ycPVvnu9D>4_q4RSE zMsjP zGu&_Ie@w&vtEIe?rB6t>E?P1Q@f3BZ?Z$XyQ4nOM#--RY>?0I{iP(1(&bco#o8FO} z%6jgKoJdLjy)rIe1qK0yFF$X@BbozdP~3%$HZ3 zvCny1o#QaZzI~_bR&NW{E{W+0ALhI7@WMYo`32sgUkcqt^cu(~1>BN{0_FfOref2? zHA^25b)6+MLs1kzx;{2>^YD83*5a|q-7o+BqCYzubapf0TB^Hy*Qd>IuE;Faj7-{L z?wUuB%?H1lo1ga@s_ccJuvb^@>V@*osnTbm3^St%fdc#j4etTfgpM1IIDY`*V!))y zXxo8LznSNKbZhzwjwQZ5r;8%ql?}>JKnsE2jT4M^rJI*3vCeN=RsB>=6O=^MdeWq) zM~fnG%E%3Td95}q4Yjo`?erMOol%dm`J}0b&68bbntJbjtf7l8qouz;6t5S6j%r)1 zHb3h$Zk7$CyBBqOt@oGpB?{N{KcM{J&rxn3W?DE+c*?!W` zG@f7Cs6U%lh4w{H0E~m-H*8m*O8ON(YTr`qll<9eSDpVtJ@cf6e8nriO<=P_bBn{2 zJk&)uO_w@!MgtLznSawU^xk{wH9tQ~JLq>3!Q~l-ll|Y5$ALcukc-sSt|wyA;`e(W zX1`Ut?#n=I$->D{_&U@tyxfXTUz!-%1kp{mh+|e#}QL5F*SY=oN=sj_ zA^Ca6a+t<5Di7a!y)K?tduc=WtAErAjz64qV8c<50`BwDCCXYA^NwfTSCa(-sGT=& zLZenqTdB&_C(ak(REn{e+?1Q0k9j~Lo+qe>;0G52Q1_;yYpRTDXW96Y#L@HpmAGwM z4jR*H2__*kMCY<=@#I^HpkdGsX4<&-d7^lFx&6T4$1Qwu!nyQWNqvf2Y$Dbl$s)HF za!9?Fs{y08R4JcsEBc7s8Jmn2K4*kyKR(3?Jk2V@=~L*A1R87~B5n1<9Y*EMq~(p>|CA}4!Je(84t0mI;EEp^ zQK@Z-7-y2KmsV9(<>#A&TQ^SnjmI~FbK`rzhLBr#H%k8WJ$-BSRRevHO*w)uEzFrr zMIQOgVUels<4AfF_x`9^ zV3lv2YFF{S&>H?Y;MA%mjTJ?#LoCufR3PHgqqvIaHRrfs1^MYxj=G=i6+OeWl$Yhi zU#Atl&56!V{jBHhG)7KQzeGf~F-?c^e7G2Gnj2wJIDOJ&1e{SNeP!Tb8o5`EH$9z9 zob@kYgf;ge&SpH~!1zGBd@$%@<*3eQYex5`;iR=)NvT4NMWb}VaVKS1U`6X8z{NTW zq}1O-*oyQ1<$txwn(Rc_OAP6uyb8aA^7q82l_xrsfw1oPss4V!F?R?^EG3a#q zT6SQ9kcp9j(p!7wj+L@YJ8ZNeh<~PA;M{e3_Mu#MRl>B=Qtt2_d#k|=>8k3M%aHv- zc7tano#^E*C>n|y0gpkCIkMv^<3t6o-+=te&T)wyf2D{-y`t(}IK67C;W5z4giHRxit^ntSYpZk0&n^B?qe|#{0Vr0f7fnd!&+n$e* zY4wnStS)&kg4f~<{2KWNCA##UQTWS!R)j01URH=2VhcxWJupqHV{UXey3sT?@c*Nju+M&>GSJWXWgJm2^xvOK(_ zmst;ic$mF!T`&qc0*gHyejxvLI=3r6tE0~HaA?@s@vf#8CPo3PIqQNS7|uMPlBE=+vDIj0Wx!c&GBMztjc=gv$q8kPlx|! z#&QKathoQD@dA7G-6Ir1PJ#T^O5F|TKBv3Wsnd)UbFrVR$WjmojaU2fyJgiIa9KPV zAQ)iD`?2B%A|TI#%-oaK5>PuEpj^z%9?23=KT}wdkr#ElFt9V1rwsOy)iVQiE#L9f zL4Ku+=aq-cPQ*PE22cH{ zE)_=KA`)tw6#vz}K7DJW^tY?Nma2lh>cE_8J@TzVsBI0$sxcnODZA8e`A@<9Zu&#z z^4}1BXSuD5c$$;uNgfA%Q4`<+2W+wL!UwmGoNB*Mb}<>u#ZQNq_y<_CmB$6w+Z&=FDM_cACZj)iVfqA+OHel`M{&*aeHRH=hzt+FzQ~KsG9<@K z0P3>#TAVNVtFIMKwRI~7jYuV2eLF&hFzmT%o6E+|>J3WxD71ban!k%MlI}fwBkFuE zeEm_19ixudDp`7`{ks|E&!P!EGUG7%Jn2AtFPr=17zyW#1k!z$mYLbDGa24$kYwH%aD0i)CF zEHa$9-SC4GbOo@5;`PuE9C?GjgGlACQcHCp){jKb@q=FSXHg`eDEL#>BkARQi8eoQJAQ#8SZ!cgnD~qld!!ZOfCW&DSabmd{Y;HLXX=!O5bWV1; zD!0NM4D2&zKZWc{r%40khKyOIrBlw+5`|&-Lpn;hA(aa*YV7@!`6YKc*!0>y+0)j% zYrjv9xTy{BzW5l9C&EpJe}9W7ea!Y-LCF) zas+!3=x2>2s(wYia705+I!t}RCbs?N8HX(;>IPa_(vR^9dWKixe7-r*6G`=WyIB!* z=U>$_LeRhTLe-5ILv2%CbDXyGbhk zR?dEIyR_GjummQ-3hghsBn_wDY)N3d#V5WhCLRKZN=;tPmakYB?|6~3@_*1Z_f}jr zf4;@{2U*h}-#YY|{iyI{jY(aBMism@N%n2Kmyyu>Z%obxaYwf|4jsQxXz*6$Z?(kd z`V~Sc7mgIm9GUKpT-JDm>vW5pyj~N_-3lYknWMd%FHZpNOH0mM$d}T&T~Bb76Uk}8 zp%N_NOiqeIjxNiAU&`uqFF$qX(hCDmmjEg*k8(#po@=nB1zRiXM-C&8b$cl8L6jK( zxd<)TKMWrlE8-)Fo-;5Z3&3R@^6$3efkJRwmDbPm`BLORBlM^8=a@$xOASsZtq)~6 zU-`|4GKs;i`cCily;!1N2iFDG+dSR_{?~%%PD;%C1d-$9E@l$B_@UH%6p*f;2qS&_ zjn$Stj3enI34T>O!BZNCW{IMvJgfp>Xu20$VoJ%JFdXg96e3#+YmRj^*}lOa(g_lgs{&t<9b)*Cv|%C;MRNt(00 zpyAArY3(ajW0G;tein#+Lx{es3Lup?$aHKj9x&ogc!s38>vWfBXJMwNAHc6aB>N-U zkYuG#aqgtaW3C#jtNqqHYC~vd8hsl_(Ut;QFIhmjt*ww|LuJy{g0s%k^-lO@9=B4e zzzM7XhFrhgH+K6W-cHXsK0kk|<~w0uyi~Tm`sq`XHb04rr@d$1(RU><#pI%p>>sVX5&v25wS1xd#l|#oIh% zQU=U9H@8|GA^lFJ`dyJvw`LhIjIgBCgeg@Qpk*w^@^&JsQs z^V1eiYTM?02PmGOmspG?Vw?L6UQ_k%FPhZr#P}&aM}N2L!<5fZ$zd*oR^J~Uj;col zkc#6#Vn*)oS!}I!=vIhYo>&%L>CTDd_Fmd>7>lp6;pvYUo5%Xrpw3vMWIR?DNH)pw zUp#Kx#)GoH8BwkK-}cRw*5xgR6>TK1p5{l@ujZ4Atz_qtT)xAp+oa=QSxiHxf0IH^ zWZG6EhaP9p^@f@7*3ft>&V6|zkfF->p!7)ztZM&XvA_HDQlll7CEnbJ{oZ_657!dV z)s!qo`zsibaQeZ~AfWG83k@W;D}NZ!+&ggF-e$MT4=XIBaPKC)tsRQ)9XIFklt=^? z0%>U(7e}u`H6sD1*_c!B9ikb9d~k73-ITm9LwT(F-Rw{1uQoj#4?47%)k8sJ-3PXr z>K}zFy{~#s{2V4D1@MJ#mVTQ=b4J~1etyIwk|VvOfo6XlyD$hKIdv|KS$xhaG{YM6 zk;Z^seBRQas#4jV_!VvrVVdBba^id1DWU!?Op@Mkrqg&&=Z5zXdMs=yF^kr*5GT&r zTegb0Z$Y8Z)Sy0qk1Lcqc|Ts~OWMKNPi1(x zrX9S>VYLuDz7f1fhm_$FKJ|z0?0|%~ntweE&ALu)%H8x=2~(7t3fm1Ht%r?5gdD&$ zqL#6W<7b}~6vC-Q7_c-HrOYeDyfw+fH9U}aXFVrMsGqf9y33%5RIm(wpBmH>+F@@x?6ei}Trv{m`n6K-Cv5Jnn^L z!0hB}aSqOR-umwqI)NUS$7Z2=)WAlCq-Y<~`XdIq|l{{Xmx5N1}%E%iIzOp-{*+p%jFKGP$3 zp%U@4#xZD0enPiQ(S5p*OV8W&NejbyhT=GjJ#gpKR#*^0eSzGV9SQGe&DgWi!})3h zd|2Cy9&7O%q5iROpSrMM4DZiNj-T#L0)ml8;N2^;_50tR#IMVb2N}`e!5C@=ksM5a7__?aJi|oEo7_jv9CG z)0%-y^kPcRyxi@#&d~vcB@n9=Kkx7g=W1B%218U!ls&PLaUwC6UYFx;*mTWj3I_ii z@4E)zCKw#s5y(+-@vn-yUsdX63N{78>!g_j!IEck;o!45fu|avwymuNj?}v^c=n$P z7KLSuzKW$Kt5OJvoyjO1Gygh z2=RZ%O_PY;9?T?7Y99V>Fh+N@e-0T31>ALiFNC%TG1tqe{Tq1$-F{7sn{>gg4k@`O zI)L~e)W1Kcv`v4?*j)sene@L}kYd^XRXa*=U~#O<-j7$aj~<5W6MNXSKW!vIFJ`y_ ztLpE%z%q%L(-JuTPihVJ#OEFYpmwEOYpw25E%LMh)8#M*kRT5=;bCdL)P4Zk3bAPu z%c?6~eAhw#dC6H}Ytbk;GAt|$ek*2GO3^ocU@6A!UI97Y*C#OB5v<3TVa-&5j`x46M=p|BAKw>(tO4z8HmP5piT<@#P z?Rx*gtFOW$mC{_!QA8YdeH82%L4ll&H7)oC<#<$~jE$;Zm8@k;0!92*>M)#)>{Oy-GFttQ&Dv%-ZaS|M{O?a`x zDR?zCP0adpon7nftLhK%LTL(L!Mg71zYew|(K`$CJ}|U_^4M1Q?7xlGmKC)Xk0$dM zmHUV{n{pp_xW&zM;Dw;ZuSje~(CG}Vwa{nIN@rs%()S#pByLzo0Ux~h#aL>f)aD54 zzCT*UjhE|N>uc0`U`5Hn4GF9lq#k@1qlaA%L#)fmEzP~F3Cz2v*cM%BkJTR}Aoz!5 z(D}j7{bvEBb)25$thAJo<1HMneKtN#@9w!xV{#ZTM0b@%ZrgEAIDdJg7^kKcHR zvb!$@#Peg!A7g4D77n0?D3Rl~z!$5Rt`1!V?LDH8@A=)=nJ(>sLVAEd@xg2oK2`9h z!)ZT%T0y|DYmB;(7BW=KTi3oZk0~~ksRh}-5d?(Nc7JmFW(_GJN8-rsk_qHb)NO zf$8Znv@|2bqB-Zmu%o(9`_}lP6&&-8v-_b6CGTAt=8bY8GlxeffoKsh9%EA&COz@f z4J&#y4ve$pc!rmtH0l!>jKAmXYKUJ$%OBki6}Ug>dC-hxVDIQfMw->uZci4Ns1PYn z_GZ8NB}v*gG#i*_S6O^E3lDzz`A3NFkqsjTL@eCxT=NAUi6$V-+6YUBzqOr z+WCNvrpiB*ihV$}vb{U-*V3(2OT}#?)I=ZRMa&Obai`j%t9n-X--))wHzIlfc>zQD z0;)N<2&zRUN0RQSQy&BF5=>I-;%dZ+-okopbh%0Aw_9lOIpkeW)b;S)0BK1Ey}pOZ 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%0D!a;(sBV4BBAM;@5ROKSKY9cxZG5hR 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 literal 0 HcmV?d00001 diff --git a/report-of-js-code-minification/index.html b/report-of-js-code-minification/index.html new file mode 100644 index 0000000..dc405cb --- /dev/null +++ b/report-of-js-code-minification/index.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JavaScript Code Minification Report | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    JavaScript Code Minification Report

    + + + Serge S. Gulin September 15, 2024 [GHC] #activities-report #javascript + + + + +

    The JavaScript world has been battling for low bundle size from the very beginning. +It is now our turn to enter the battle

    + +

    Dedicated to all front-end developers who doubt, but.

    +

    Intro

    +

    The JavaScript backend in GHC has a long history of various challenges. One of the most notable is the transition from GHC 8.x to 9.x. Significant work has been done up to today by the GHC team, and progress is still ongoing. Besides the obvious need to make the GHC JavaScript backend functional in general, some specific issues have been raised regarding its use in production, one of them being the size of the produced JavaScript bundles.

    +

    Bundle size is an important consideration when commercial applications face challenges in delivering to end users. It is not surprising that consumers pay attention to software user experience. First impressions matter, and the time required for a fully functional interface to appear on the user's device is crucial.

    +

    Web applications are particularly sensitive to the duration before user interactions can begin. When you are loading a site or web application, you expect it to be fast. Bundle size is a primary target for loading time optimizations, due to the fact that, at this point, you have little control over what to offer the user while the progress bar is filling up.

    +

    Bundle Size Challenge

    +

    The JavaScript world has been battling for low bundle size from the very beginning. Various tactics have been developed up to today. Everyone who has participated in web development has heard words like minification, obfuscation, compression, and code elimination. Each of these terms opens a door to a wide array of tools whose configuration can take a long time and requires special experience: the resulting bundle should not only be lightweight but also functional.

    +

    Roughly speaking, we can categorize all these tools and approaches into the following set of practical actions:

    +
      +
    1. Code rewrite. Simple approaches are known as minification. They are based on the fact that JavaScript supports pulling all code into a single line by removing whitespace. More intelligent approaches swap variable names for shorter ones. A side effect of this is that it makes reading such code harder, which in itself is a practice known as obfuscation. Even more advanced tools support unused (dead) code detection, allowing it to be safely removed. How can this happen? Third-party libraries provide various functions, but a specific application uses only a subset of them. The most advanced tools take things a step further: they can detect some code that can be rewritten in a more optimal form according to its actual use cases. For instance, if you use a constant variable, its value can be substituted directly in a call. In that case, the variable definition itself is not important and can be omitted, with its value used in place (inlined).
    2. +
    3. Environment-dependent graceful degradation. The runtime environment can vary significantly due to different browsers and their versions. Sometimes you have control over the user's runtime environment, especially if the application is targeted at commercial clients. More often, your runtime environment is very diverse. Different environments impose different restrictions. Rich (and probably more modern) environments provide a large set of built-in features. The way you deliver your programs could depend on these features, as they can help build optimal bundles where your code does not have to implement low-level behaviors from scratch. Such code can have shortcuts for features where there is no need to include the full implementation, which would add more to the bundle. For example, internationalization (i18n) can be supported by some targets, so you do not need to add a full implementation in your code. This approach encourages modern user environments with faster load times, but for others, it makes things "just work" at the cost of bundle size. Web servers can detect browsers and their versions to select the best bundle size using the User-Agent header.
    4. +
    5. Network-level compression. The simplest approach to reducing load time is to use good old compression, usually gzip compression. There is no need to deal with code optimizations. Most environments support it "out of the box" through the provided Content-Encoding header. It has its own weakness: the time to unpack the application on the client side. However, such a concern has become less important these days, thanks to modern CPUs—even on low-budget devices.
    6. +
    7. Dynamic bundle loading. This is the last but not least option when no other ways give you satisfactory results in the battle for short loading times. Usually, even large applications can be split into smaller parts that can be loaded as the user navigates through the interface. It is an old approach used on the Web: hypertext itself encourages this way of loading time optimization. Modern web applications can be designed to load their parts one by one if the tools used support partial loading.
    8. +
    +

    JavaScript ecosystem

    +

    As mentioned in the previous part, the modern JavaScript ecosystem provides battle-tested approaches to dealing with bundle size. The most notable ones that come to mind include:

    +
      +
    1. Terser, UglifyJS, and Google Closure Compiler. All of them provide methods to transform code into a minified form, ranging from trivial optimizations to more advanced techniques like dead code elimination.
    2. +
    3. Babel for environment-related optimizations. Its primary purpose is to construct a set of "polyfills" that ensure uniform code execution across environments with different capabilities. Babel does not know a priori which capabilities an environment has, but it can be configured declaratively at build time to specify which features are expected to be present or not. One possible scenario for its usage in the task of bundle size reduction is to categorize possible environments into classes and prepare specific builds for each class. Bundle selection for delivery can be fulfilled by the static content server. For example, this can be implemented with the help of Nginx, where bundles can be associated with the incoming User-Agent header.
    4. +
    5. Webpack (Parcel, Rollup) for bundle combining and splitting. The modern JavaScript environment has support for code modularization, but this support is still far from perfect. Even if support becomes more widespread, bundling will probably remain important due to networking: loading one big file generally has fewer side effects on time than loading a set of files with the same total size. Bundlers come into play when your application consists of a large number of modules, which is a common case. Moreover, they add additional value to the application build pipeline: they provide a way to slice a large application into a few bundles that can be loaded dynamically. Such slicing can usually be configured declaratively.
    6. +
    7. Gzip, Deflate, and Brotli via Nginx through fallback on the Content-Encoding header value. Their usage is quite straightforward. It depends only on the selected delivery method. Usually, web servers and content delivery networks handle this task with the best available efforts, so it is very rare that any manual tweaking is needed.
    8. +
    +

    The Haskell way

    +

    Let us return to our primary topic and consider how the Haskell environment takes its own seat with the concepts described above.

    +

    Network-level compression does not depend on how the JavaScript bundle is generated. It is the most accessible way to address the issue of large bundle sizes. We assume that it is enabled by default and, for measurement purposes, we assume that Gzip is used. So, even if the GHC JavaScript backend does not support anything from the list above related to code splitting or code optimizations, we can still improve user experience by reducing bundle loading time through the correct configuration of the delivery channel to use reliable old compression.

    +
    +

    So, there are no troubles here ✅✅.

    +
    +

    Dynamic bundle loading is a complex topic. The GHC JavaScript bundle does not support it natively. However, real-world JavaScript applications usually depend on other JavaScript libraries and modules. We assume that a Haskell application could depend on them: call their functions, return results to them, and be called from external JavaScript code. Currently, the GHC 9.x JavaScript backend lacks full support for FFI. It allows only functions as JavaScript imports. However, it is enough to construct the interface where JavaScript can call Haskell functions and vice versa. Thus, we cover two possible top-level architecture scenarios:

    +
      +
    1. Haskell is used to write modules that will be used by some top-level JavaScript code. Such JavaScript code could be used only for bootstrapping purposes actually. In that scenario, bundlers (i.e., Webpack) could consider Haskell code as an old-fashioned JavaScript module that operates through globally exported functions. By this assumption, we gain the full power of slicing our application with a bundler, but its atomic slice is limited to the whole JavaScript bundle from the GHC 9.x JavaScript backend because it is a kind of "black box" for the bundler. Thus, it allows you to write different parts of the application in different Haskell modules which could be loaded on-demand from the top-level JavaScript code. The main issue here is to write a correct rule for loading such an "old-fashioned" module. A Haskell module (when Emscripten is used) can contain some global variables which require lots of care from the bundler side to ensure they are loaded sequentially by time but safely "shimmed" for simultaneous usage in the global JavaScript namespace.
    2. +
    3. Haskell is used to write a top-level module that is supposed to be a caller for dependent JavaScript modules. It is supposed that this way is primary for existing commercial frontend applications written in Haskell for the Web. That looks like a straightforward way to begin development but encourages limited benefits from existing JavaScript bundlers. They can be used only to prepare third-party libraries for external calls. The GHC 8.x/9.x JavaScript linker currently does not support dynamically loading dependent Haskell modules on-demand: it assumes that all Haskell code is present statically at the moment of application bootstrap.
    4. +
    +
    +

    Well, this way of bundle size optimization is limited even if possible. Even if the first strategy is chosen, the process of keeping the bundle configuration correct throughout the development lifecycle will require deep knowledge and lots of patience. Not sure what is more, so 🤷‍♂️.

    +
    +

    Accommodation of this tactic will not be covered by the samples in this article, but it could be an interesting journey for developers who participate in large Haskell web frontend application support. If it finds a strong response from the community, it could be investigated further.

    +

    Environment-dependent graceful degradation is related to the previously discussed topic. Such tools (i.e., Babel) in the JavaScript ecosystem tend to be used in conjunction with bundlers (i.e., Webpack), but some of them can be used standalone. Their practical purpose for Haskell applications lies in providing a stable environment with all modern features of ECMAScript implemented natively or through "polyfills." Unfortunately, "ponyfills" cannot be used with Haskell frontend applications due to the lack of support for CommonJS/ESM modules in the GHC 8.x/9.x JavaScript backend linker. Fortunately, the GHC 8.x/9.x JavaScript backend generates a very simple JavaScript subset. GHC's JavaScript RTS library has been written with ES5 in mind, with minor inclusions of fat-arrow-style functions from ES6. The used ES-language features are broadly supported nowadays. So, if your code does not use third-party libraries in JavaScript (which is supposed to be a rare case for real-world commercial applications), the usage of tools like Babel does not seem necessary.

    +

    On the other hand, even a Hello World-like Haskell application comes with a rich set of built-in modules for everyday use. Some modules of i18n and bigint from built-in libraries could be swapped for ones from a stable environment. This could reduce the size of generated JavaScript bundles for modern environments where "polyfills" are not needed. For older environments, such "polyfills" could be incorporated through declarative Babel configuration.

    +

    We face two scenarios of graceful degradation tool usage for a Haskell web frontend application:

    +
      +
    1. Third-party JavaScript libraries may require them. There is a dash in the JavaScript world. Authors of popular and reliable libraries tend to use the most modern and fashionable ECMAScript features. This adds additional complexity for Haskell application distribution. Such libraries need to pass through tools like Babel before being added to the resulting bundle.
    2. +
    3. The Haskell application itself relies on built-in packages, which is fine in terms of reliable execution (one of Haskell's strong sides) but not so well with bundle size when the environment provides native or "polyfilled" implementations for basic functions to work with things like i18n and Bignum (BigInt).
    4. +
    +
    +

    In short, this way of optimization has little to do with the Haskell application itself for now. It can be integrated into the resulting bundle compilation to process third-party JavaScript dependencies ✅, but currently, GHC 9.x JavaScript does not support swapping functions from built-in packages with those provided by the environment ❌.

    +
    +

    Experiments with this tactic remain out of scope for the current attempt to bring some benefits. Here, the same action is relevant as for the previous one: strong response from the community could drive investigations into this field.

    +

    Code rewrite is a common tactic for advanced bundle size optimizations. Besides using optimizing compilers like Google Closure Compiler, the GHC 8.x/9.x JavaScript backend offers features to deal with large bundle sizes. The overview of introduced improvements in this area will be covered in the next section of this article and measured. Also, it is important to keep the resulting bundle compatible with existing optimizing compilers (at least one of them) because it provides additional benefits for application developers.

    +

    Although a long route still lies ahead, some steps have already come into play nowadays: optimizing compiler support has been fixed, Unicode dead code elimination improved, string representation optimized, and Unicode (again!) table size notably reduced. ✅ Let us see the details in the next section!

    +

    Passed steps for great good

    +

    Before anything else, it's necessary to mention that the initial event that sparked this work was an offline discussion where the opinion was formed that even a 100kb total bundle size for a Haskell "Hello World" application is not achievable.

    +

    Well, does it really matter? We will measure it with size-limit, which shows sizes and time to load on a bad connection.

    +

    We are going to begin from the latest master commit at the time of writing this article. Right on this commit, we will revert the added code optimizations:

    +
      +
    1. #24789 Reasoning on Unicode static data compression on the GHC side
    2. +
    3. #24504 Eliminate dependency of "Hello World" on Read
    4. +
    5. #24706 Port back more efficient packing of string data from GHCJS to GHC JavaScript backend
    6. +
    +

    The order is important. They were added in reverse order, so applying reverts to related commits reconstructs the whole GHC state. We want to take the most modern (and buildable!) GHC state and see how the JavaScript bundle size is improved over these commits.

    +

    Additionally, it's important to note that there is one more significant issue:

    +
      +
    • #24602 Google Closure Compiler hard errors
    • +
    +

    It is important, but it does not add optimizations to GHC itself. It only allows us to run the Google Closure Compiler over the resulting bundle, which we can turn on/off manually during the following steps. We will apply all measurements with and without it to track its necessity.

    +

    Our building pipeline will be the following:

    +
      +
    1. Build a sample Haskell program with GHC optimization option -O2.
    2. +
    3. Process all.js through Google Closure Compiler with --compilation_level ADVANCED_OPTIMIZATIONS.
    4. +
    5. Process all.js and all.min.js (result of the Google Closure Compiler) with size-limit.
    6. +
    +

    We will measure the following:

    +
      +
    1. The size of all.js after the GHC pass
    2. +
    3. The size of all.min.js after the Google Closure pass
    4. +
    5. The brotlied sizes of them both via size-limit
    6. +
    7. The running time via size-limit to estimate how hard it is for the browser to load on a low budget device. It uses estimo internally.
    8. +
    +

    Lets do some initial measurements (when no improvements have been applied via the reverted commits on fresh master):

    +
    $ ls -alhs ./HelloJS.jsexe
    +... 6.8M ... all.js
    +... 5.5M ... all.min.js
    +
    +
    $ npx size-limit
    +✔ Running JS in headless Chrome
    +
    +  HelloJS.jsexe/all.js
    +  Package size limit has exceeded by 188.74 kB
    +  Size limit:   10 kB
    +  Size:         198.74 kB brotlied
    +  Loading time: 3.9 s     on slow 3G
    +  Running time: 9.6 s     on Snapdragon 410
    +  Total time:   13.5 s
    +
    +  HelloJS.jsexe/all.min.js
    +  Package size limit has exceeded by 171.55 kB
    +  Size limit:   10 kB
    +  Size:         181.55 kB brotlied
    +  Loading time: 3.6 s     on slow 3G
    +  Running time: 7.1 s     on Snapdragon 410
    +  Total time:   10.6 s
    +
    +

    Well, results are far from perfect. 10s to load.

    +

    Warning for experienced researchers: We are not going to make reliable sigma-based measurements. Their purpose is only to demonstrate the direction of improvements.

    +

    Efficient packing of string data #24706

    +

    To avoid saying the same things twice (you can follow the issue for details) we are going to disclose it in following samples:

    +
    [72, 101, 108, 108, 111]
    +
    +

    VS

    +
    Hello
    +
    +

    You probably noticed that second sample is shorter than first. It was the point of the ticket. It decreases bundle size besides better readability.

    +

    To make it happen let us deal how string literals work in GHC. They become an int array in a memory address pointer which has type Addr# internally. But not only string literals are encoded in an int array (Addr#). GHC is smart enough to use same technique for all embedded stuff which can be represented as an int array with a pointer. It can be used for embedded files as well. For anything that can look like an int array.

    +

    So, we should detect somehow that Addr# is used for string literal representation. Fortunately we are dealing with ByteStrings.
    +According to the best article about strings representation (The ultimate guide to Haskell Strings) in GHC, we know that a well-formed unicode string should meet the following requirements:

    +
      +
    1. Its content should be limited to UTF8 code points.
    2. +
    3. \0s are not allowed.
    4. +
    +

    Pretty small change but how important?

    +

    Our HelloWorld.hs:

    +
    main :: IO ()
    +main = print "HelloWorld"
    +
    +

    Result:

    +
    $ ls -alhs ./HelloJS.jsexe
    +... 6.8M ... all.js
    +... 3.5M ... all.min.js
    +
    +
    $ npx size-limit
    +✔ Running JS in headless Chrome
    +
    +  HelloJS.jsexe/all.js
    +  Package size limit has exceeded by 185.07 kB
    +  Size limit:   10 kB
    +  Size:         195.07 kB brotlied
    +  Loading time: 3.9 s     on slow 3G
    +  Running time: 7.8 s     on Snapdragon 410
    +  Total time:   11.6 s
    +
    +  HelloJS.jsexe/all.min.js
    +  Package size limit has exceeded by 85.01 kB
    +  Size limit:   10 kB
    +  Size:         95.01 kB brotlied
    +  Loading time: 1.9 s    on slow 3G
    +  Running time: 8.2 s    on Snapdragon 410
    +  Total time:   10.1 s
    +
    +

    Well, our bundle is becoming smaller in size but it remains expensive to load by a low budget device. Note how important it is to use Google Closure Compiler for production builds!

    +

    What can be removed from the bundle? Unicode? #24504

    +

    While sifting through the contents of app.js, the following was found:

    +
    var h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1 = h$rawStringData([25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, ...
    +
    +

    That is a really long line of code! It takes 4,316,351 characters at the bundle. What is even more interesting that Google Closure Compiler was unable to eliminate it as a dead code. It sounded like for some reason as really needed by:

    +
    main :: IO ()
    +main = print "HelloWorld"
    +
    +

    It was a challenge to prove that it was exactly needed by the application. A special toolkit was created for call graph analysis +in JavaScript bundles. Its purpose is very simple: It takes the JavaScript AST, reconstructs actual function calls as STG and creates a visualization +to be processed by a graph explorer (e.g. Gephi).

    +

    When the graph file had been constructed, we only needed to find the shortest path between JavaScript main and h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1. That route was found!

    +

    Monosnap Retina 2024-09-12 18-38-35

    +
    +

    Fig. 1. The whole route from main function to Unicode. It demonstrates how much nodes were connected and how. It begins from JavaScript main and ends at h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1. Total amount of conntected nodes is 30.

    +
    +

    The most interesting node is h$ghczminternalZCGHCziInternalziUnicodezizdwisSpace. It means that isSpace was the only reason why whole Unicode table had been added to the bundle. And isSpace is used by read parser. So, when we call the read function, that dependency route is triggered to be included into result bundle.

    +

    It turned out that the root of this issue came from an older one. With the help of call graph tracing, it was possible to establish the actual reason and fix it! (Ben Gamari, thank you so much)

    +

    Measures:

    +
    $ ls -alhs ./HelloJS.jsexe
    +... 2.2M ... all.js
    +... 387K ... all.min.js
    +
    +
    $ npx size-limit
    +✔ Running JS in headless Chrome
    +
    +  HelloJS.jsexe/all.js
    +  Package size limit has exceeded by 155.23 kB
    +  Size limit:   10 kB
    +  Size:         165.23 kB brotlied
    +  Loading time: 3.3 s     on slow 3G
    +  Running time: 3.1 s     on Snapdragon 410
    +  Total time:   6.3 s
    +
    +  HelloJS.jsexe/all.min.js
    +  Package size limit has exceeded by 63.92 kB
    +  Size limit:   10 kB
    +  Size:         73.92 kB brotlied
    +  Loading time: 1.5 s    on slow 3G
    +  Running time: 2 s      on Snapdragon 410
    +  Total time:   3.4 s
    +
    +

    73.92 kB! Even more better! But wait.

    +

    What if Unicode is actually needed by some programs? #24789

    +

    As you noted there, it does not require much effort to trigger the addition of the unicode table. A trivial reference to read is enough to pull back the whole table back into the bundle. +That victory is too fragile to be proud of given results. Lots of real applications have to use isSpace when dealing with text parsing and so on. We have to support this case but keep the bundle size low.

    +

    Let us consider the following sample program:

    +
    main :: IO ()
    +main = print (read @Int "1337")
    +
    +

    Here we are facing the issue again.

    +

    The variable h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1 stores information about the mapping of each Unicode character to its General Category. The number of characters in each category varies. Some categories contain significantly more characters than others. When characters are listed sequentially in memory, their order does not necessarily match the order of the categories. This creates a challenge: how to organize characters in memory so that the search for their categories is both fast and space-efficient.

    +

    Not many ideas came at the beginning, so a broad discussion was required with GHC community to see what can be tried to solve this. +Additionally, removing Streamly from GHC sources was needed as well because this dependency didn't keep its API stable.

    +

    Pierre Le Marre came with ultimate solution for the problem with large Unicode table but it was considered too powerful to be applied right now, so, the time for shamochu will come next.

    +

    Sylvain Henry's approach, less performant in terms of size reduction gains, was deemed much easier to be implemented. The conclusion was to use the latter one because we needed something easier and without additional dependencies at the moment.

    +

    The main idea is to generate better lookup code which can be translated into switches:

    +
    generalCategory (ord -> n)
    +  | ...
    +  | n < 129726  = 21
    +  | n < 129792  = lookupIntN "..."# (n - 129726) -- variable ranges: use lookup tables
    +  ...
    +  | n < 1048576 = 29 -- constant ranges
    +  | n < 1114110 = 28
    +  | otherwise   = 29
    +
    +

    Sylvain Henry's approach was enhanced with nested ifs (logarithmic search vs linear search) and makes estimation regarding the most appropriate chunk size (as he predicted in the origin message):

    +

    image

    +
    +

    Fig. 2. Finding the best size of chunks by comparing all possible values against generated function size. It shows that 50 items is a good-enough value of chunks size.

    +
    +

    Measures of applied changes:

    +
    $ ls -alhs ./HelloJS.jsexe
    +... 2.8M ... all.js
    +... 569K ... all.min.js
    +
    +
    $ npx size-limit
    +✔ Running JS in headless Chrome
    +
    +  HelloJS.jsexe/all.js
    +  Package size limit has exceeded by 186.88 kB
    +  Size limit:   10 kB
    +  Size:         196.88 kB brotlied
    +  Loading time: 3.9 s     on slow 3G
    +  Running time: 4 s       on Snapdragon 410
    +  Total time:   7.9 s
    +
    +  HelloJS.jsexe/all.min.js
    +  Package size limit has exceeded by 86.3 kB
    +  Size limit:   10 kB
    +  Size:         96.3 kB brotlied
    +  Loading time: 1.9 s   on slow 3G
    +  Running time: 2.5 s   on Snapdragon 410
    +  Total time:   4.4 s
    +
    +

    Well, sizes are looking near same after compression but take a look at Running time. It looks like new version of unicode code is easier to understand by simulated low budget device!

    +

    Intermediate conclusions

    +

    This article shows that community work can yield results that beat the original opinion about "completely unachievable 100kb". We seen how 6.8M became 2.8M for uncompressed Haskell JavaScript bundle and how 181.55 kB became 96.3 kB for completely optimized, compressed production-ready JavaScript bundle of trivial Unicode-enabled Haskell JavaScript application.

    +

    What is next? Besides adding various code optimizations it would be nice also to consider other options from the beginning:

    +
      +
    1. Give a try to slice Haskell applications in chunks, with Webpack dynamic loading as "black box".
    2. +
    3. Consider adding to GHC JavaScript backend the ability to slice code in CJS/ESM modules.
    4. +
    5. Rewrite call graph visualization tool in Haskell and make its output compatible with webpack-bundle-analyzer.
    6. +
    7. Extend GHC JavaScript backend Linker with a feature which would switch on/off built-in modules for environments where they can be already provided by platform.
    8. +
    +

    Thanks!

    +

    Thanks for the long reading! It was a very interesting journey and the author hopes now it was for you too, dear reader! Let us meet together in contributing to GHC!

    +

    Thanks for people with whom I was much impressed to work (in alphabetical order):

    + +

    It is a pleasure to work with all of you on the Glorious Glasgow Haskell Compiler! Special thanks for Jeffrey Young who opened a door for me first and invited to work on the GHC JavaScript Backend.

    + + +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + + + diff --git a/report-of-js-code-minification/retina-graph-main-to-unicode.png b/report-of-js-code-minification/retina-graph-main-to-unicode.png new file mode 100644 index 0000000000000000000000000000000000000000..f342d32466b1318adb7037de5a50f302a5c95b6b GIT binary patch literal 287234 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�Pe@Md_@t|BQiUGs)>jaYi%@fhmv(MN4Z7u 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

    7X0R=7z6&Nf5nFi7f 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 bji+Z^d;w7<)J(|F5FZ%{Me$lu + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/search_index.en.json b/search_index.en.json new file mode 100644 index 0000000..27a0004 --- /dev/null +++ b/search_index.en.json @@ -0,0 +1 @@ +{"fields":["title","description","body"],"pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5","index":{"body":{"root":{"docs":{},"df":0,"0":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"1":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"0":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"0":{"docs":{},"df":0,"k":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"8":{"docs":{},"df":0,"1":{"docs":{},"df":0,".":{"docs":{},"df":0,"5":{"docs":{},"df":0,"5":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"2":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,".":{"docs":{},"df":0,"8":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"0":{"docs":{},"df":0,"1":{"docs":{},"df":0,"9":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"2":{"docs":{},"df":0,"2":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1},"4":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"4":{"docs":{},"df":0,"5":{"docs":{},"df":0,"0":{"docs":{},"df":0,"4":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"6":{"docs":{},"df":0,"0":{"docs":{},"df":0,"2":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"7":{"docs":{},"df":0,"0":{"docs":{},"df":0,"6":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"8":{"docs":{},"df":0,"9":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"3":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1,"0":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"4":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,",":{"docs":{},"df":0,"3":{"docs":{},"df":0,"1":{"docs":{},"df":0,"6":{"docs":{},"df":0,",":{"docs":{},"df":0,"3":{"docs":{},"df":0,"5":{"docs":{},"df":0,"1":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}},"5":{"docs":{},"df":0,"0":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"6":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,".":{"docs":{},"df":0,"8":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"7":{"docs":{},"df":0,"3":{"docs":{},"df":0,".":{"docs":{},"df":0,"9":{"docs":{},"df":0,"2":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"8":{"docs":{},"df":0,".":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"/":{"docs":{},"df":0,"9":{"docs":{},"df":0,".":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}}}}},"9":{"docs":{},"df":0,".":{"docs":{},"df":0,"6":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}},"6":{"docs":{},"df":0,".":{"docs":{},"df":0,"3":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}},"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}},"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}},"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}},"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}}}}},"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"_":{"docs":{},"df":0,"o":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,".":{"docs":{},"df":0,"j":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,".":{"docs":{},"df":0,"j":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}},"o":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"z":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}},"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}},"p":{"docs":{},"df":0,";":{"docs":{},"df":0,"&":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"z":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"y":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}}},"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"y":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2},"p":{"docs":{},"df":0,".":{"docs":{},"df":0,"j":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":5.656854249492381}},"df":2}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"x":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}},"r":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}},"i":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":2}}}}},"s":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":1},"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"k":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"b":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1}}},"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.4641016151377544}},"df":1}}}}},"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903}},"df":2,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.6457513110645907},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.7320508075688772},"https://blog.haskell.org/intro/":{"tf":2.0}},"df":2}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}}},"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}},"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}}}},"u":{"docs":{},"df":0,"d":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}},"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1},"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.0}},"df":2,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":7.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907}},"df":1}}}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}},"w":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"y":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":4.123105625617661}},"df":1,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"ó":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.449489742783178},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1}}}},"s":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}},"j":{"docs":{},"df":0,"s":{"docs":{},"df":0,"/":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":1}}}}},"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.3166247903554},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":5.830951894845301},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.6457513110645907}},"df":3}},"g":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"s":{"docs":{},"df":0,"/":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}}}}}}}}},"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/about/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2,"j":{"docs":{},"df":0,"s":{"docs":{},"df":0,"/":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/about/":{"tf":1.4142135623730951},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":3}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.605551275463989},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"/":{"docs":{},"df":0,"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"_":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}}},"e":{"docs":{},"df":0,"/":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2},"x":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":1}}}}}},"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}}},"j":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}}},"u":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":2}},"x":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"k":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.0}},"df":3},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}}},"p":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"s":{"docs":{},"df":0,"—":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"z":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"/":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"y":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":3,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"y":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951}},"df":1}},"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1},"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1}},"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1},"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0}},"df":1}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.7416573867739413},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":3}}}},"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}},"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/intro/":{"tf":2.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907}},"df":2}}}},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}},"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{},"df":0,"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"x":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"f":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}}}},"d":{"docs":{},"df":0,"n":{"docs":{},"df":0,"'":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}}}}},"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}},"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}}},"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"o":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"r":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"á":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"x":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979}},"df":1}}}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":5.916079783099616},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951}},"df":2}}}}}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"'":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772}},"df":1}}}},"n":{"docs":{},"df":0,"'":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}},"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"w":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"y":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}}},"e":{"docs":{},"df":0,".":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}},"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}},"c":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"y":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":2.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":4,"’":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}}}}}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"h":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}}},"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}}},"r":{"docs":{},"df":0,"y":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,".":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":4.69041575982343},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}}}},"r":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.449489742783178}},"df":2}}}},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"5":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"6":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"y":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}},"x":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}},"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.6457513110645907}},"df":2}}}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}},"n":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772}},"df":1}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1},"s":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}},"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"w":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1},"l":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.6457513110645907}},"df":2},"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}},"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}},"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2},"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}}},"e":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.872983346207417},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}}}},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}},"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"h":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":5.385164807134504},"https://blog.haskell.org/the-haskell-playground/":{"tf":5.385164807134504}},"df":3,"'":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"j":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"u":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"e":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1},"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2},"g":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"p":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1},"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}}}}},"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"h":{"docs":{},"df":0,"$":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"c":{"docs":{},"df":0,"z":{"docs":{},"df":0,"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"z":{"docs":{},"df":0,"c":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"c":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"y":{"docs":{},"df":0,"z":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{},"df":0,"l":{"docs":{},"df":0,"_":{"docs":{},"df":0,"1":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"z":{"docs":{},"df":0,"d":{"docs":{},"df":0,"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"d":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.605551275463989}},"df":1}}}}},"l":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}},"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}},"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/about/":{"tf":1.4142135623730951},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0},"https://blog.haskell.org/intro/":{"tf":2.449489742783178},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":5.291502622129181},"https://blog.haskell.org/the-haskell-playground/":{"tf":4.242640687119285}},"df":5,"l":{"docs":{},"df":0,"'":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},".":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"n":{"docs":{},"df":0,"'":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}},"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"v":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,".":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}},"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.449489742783178},"https://blog.haskell.org/intro/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":4}},"n":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"y":{"docs":{},"df":0,"'":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4}}},"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"g":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"f":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"z":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"t":{"docs":{},"df":0,"m":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"y":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"é":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"'":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},".":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"1":{"docs":{},"df":0,"8":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1},"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"e":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3}}},"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"m":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.449489742783178}},"df":3}}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.3166247903554},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}}},"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"x":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":4}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}}}}}},"e":{"docs":{},"df":0,"q":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1,"e":{"docs":{},"df":0,"g":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}},"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}},"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}},"r":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}},"s":{"docs":{},"df":0,"n":{"docs":{},"df":0,"’":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"u":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}}},"t":{"docs":{},"df":0,"'":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3},"e":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1}}}},"’":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"’":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"j":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":7.280109889280518}},"df":1}}}}}}}}},"e":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}},"o":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1,"b":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":3.0}},"df":1},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}}}},"k":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"e":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2}},"y":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"k":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}},"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}},"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}},"r":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"'":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907}},"df":1},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,".":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.3166247903554},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":2}}}}},"f":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1,"c":{"docs":{},"df":0,"y":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"n":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"u":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.6457513110645907}},"df":2}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":4.898979485566356},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}},"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,";":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"&":{"docs":{},"df":0,"g":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}}},"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"&":{"docs":{},"df":0,"g":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"m":{"docs":{},"df":0,"&":{"docs":{},"df":0,"g":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"s":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"&":{"docs":{},"df":0,"g":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}}}}}}},"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,".":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/intro/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}}}},"k":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.6457513110645907}},"df":3}},"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}},"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}},"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2},"r":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1},"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"x":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":1}}}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}},"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}},"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"s":{"docs":{},"df":0,"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3},"i":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1},"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795}},"df":1}}},"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.872983346207417},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"n":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.6457513110645907},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.7416573867739413},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.449489742783178}},"df":3,"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}},"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}}}}},"e":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.1622776601683795},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.605551275463989},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.4641016151377544}},"df":3}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}},"w":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":4,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"y":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"/":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"/":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,".":{"docs":{},"df":0,"j":{"docs":{},"df":0,"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1},"r":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1},"h":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}},"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.1622776601683795}},"df":2}}}}}},"o":{"docs":{},"df":0,"2":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"b":{"docs":{},"df":0,"f":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.872983346207417},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.3166247903554}},"df":3,"/":{"docs":{},"df":0,"o":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"e":{"docs":{},"df":0,"’":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"g":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1,"3":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}},"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":4.47213595499958}},"df":1,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}}}},"r":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}},"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"p":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":4.242640687119285}},"df":3}}}},"g":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0}},"df":1}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":4,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":3,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}},"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":1}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"o":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}}},"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"r":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":3}},"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1},"t":{"docs":{},"df":0,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"y":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3,".":{"docs":{},"df":0,"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,".":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}}}},"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":4.898979485566356}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"y":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}}},"n":{"docs":{},"df":0,"y":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}},"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}},"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":3}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}}}},"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}},"d":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}},"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"i":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"n":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.7320508075688772}},"df":1}}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":3}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"j":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.1622776601683795},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.449489742783178}},"df":3,"'":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":2}}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"i":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.3166247903554},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":4}}},"x":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":2}}}},"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}},"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}},"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}},"s":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}}}},"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}}}}},"d":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.605551275463989},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"g":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2},"y":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}}},"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"o":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"i":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903}},"df":1}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.605551275463989},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"v":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"w":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1,"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.3166247903554}},"df":3,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}}}}}},"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3},"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"b":{"docs":{},"df":0,"o":{"docs":{},"df":0,"x":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":3.1622776601683795}},"df":1}}}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"f":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}},"v":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":4,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2},"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951}},"df":1}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"q":{"docs":{},"df":0,"u":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}},"r":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":3}},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":4,"u":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"p":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}}},"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}},"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"w":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"f":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"g":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}}},"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2,"f":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"u":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}}},"n":{"docs":{},"df":0,"g":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}},"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"z":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":6.082762530298219}},"df":1}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":1}}}},"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}}},"o":{"docs":{},"df":0,"f":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}},"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951}},"df":1},"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}},"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"w":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3},"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":4}},"r":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772}},"df":1,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"f":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"o":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"q":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.6457513110645907},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2}},"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}},"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"e":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}},"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"i":{"docs":{},"df":0,"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}}},"o":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}}}}}}}},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":1}},"p":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}}},"u":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}},"y":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"j":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":1}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}},"c":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}}}},"g":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":4.242640687119285},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":4}},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"r":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}}},"y":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772}},"df":1,".":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}},"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1}}}},"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1},"k":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"s":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}},"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":4}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2},"q":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":2,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3}},"x":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"t":{"docs":{},"df":0,"'":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"e":{"docs":{},"df":0,"m":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951}},"df":1}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"'":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"y":{"docs":{},"df":0,"'":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"’":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4,".":{"docs":{},"df":0,"c":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":1}}}}},"k":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":3}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}},"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0}},"df":2}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795}},"df":2,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":3}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":4.123105625617661},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4}}},"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1},"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}}}},"o":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795}},"df":1,"k":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"s":{"docs":{},"df":0,"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"e":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}},"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2,"g":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"l":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}},"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0}},"df":1}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}},"o":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}},"y":{"docs":{},"df":0,"p":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2},"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2}}}}},"u":{"docs":{},"df":0,"b":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"g":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"f":{"docs":{},"df":0,"y":{"docs":{},"df":0,"j":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.449489742783178},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":2}}}}}},"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.605551275463989}},"df":1}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"s":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1,"l":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}},"w":{"docs":{},"df":0,"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}},"p":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":2,"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}}},"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"s":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/privacy/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":5.744562646538029},"https://blog.haskell.org/the-haskell-playground/":{"tf":4.242640687119285}},"df":5,"a":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}},"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":3.3166247903554},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":3,"'":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"t":{"docs":{},"df":0,"f":{"docs":{},"df":0,"8":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}},"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.449489742783178}},"df":3,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}},"o":{"docs":{},"df":0,"u":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":2}}}}},"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.6457513110645907}},"df":2},"s":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.7320508075688772},"https://blog.haskell.org/the-haskell-playground/":{"tf":3.4641016151377544}},"df":2}}}}}},"i":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.0}},"df":1},"c":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.449489742783178}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}},"s":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"w":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":2}},"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.23606797749979}},"df":2}},"r":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"y":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":3}},"e":{"docs":{},"df":0,"'":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"a":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"t":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"b":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.1622776601683795},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.7320508075688772}},"df":3,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"h":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"l":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/intro/":{"tf":1.0}},"df":2}}},"l":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.7320508075688772},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0}},"df":2}},"’":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1},"l":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}},"r":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"t":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979}},"df":1}},"s":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}},"’":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1,"r":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1},"s":{"docs":{},"df":0,"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}},"s":{"docs":{},"df":0,"h":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":2}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":3}}}}}},"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1},"k":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/intro/":{"tf":1.0},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":3.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":2.0}},"df":4,"e":{"docs":{},"df":0,"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":2.8284271247461903}},"df":1}}},"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.8284271247461903}},"df":1}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":2.8284271247461903},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":2.23606797749979},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":3},"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":2}}}}},"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}},"y":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.4142135623730951}},"df":1}}},"i":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"'":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"r":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1},"v":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}},"n":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.4142135623730951}},"df":1}},"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.4142135623730951},"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":2}}}}},"’":{"docs":{},"df":0,"v":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}},"description":{"root":{"docs":{},"df":0,"2":{"docs":{},"df":0,"0":{"docs":{},"df":0,"2":{"docs":{},"df":0,"4":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"a":{"docs":{},"df":0,"f":{"docs":{},"df":0,"f":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}}},"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"j":{"docs":{},"df":0,"a":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"t":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}}},"p":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{},"df":0,"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.7320508075688772}},"df":1}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.4142135623730951}},"df":1}}}}}},"u":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}}}}},"title":{"root":{"docs":{},"df":0,"2":{"docs":{},"df":0,"0":{"docs":{},"df":0,"2":{"docs":{},"df":0,"4":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}},"b":{"docs":{},"df":0,"e":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}},"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"https://blog.haskell.org/about/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}},"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"k":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}},"j":{"docs":{},"df":0,"a":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"p":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}}}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"f":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"y":{"docs":{},"df":0,"g":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://blog.haskell.org/the-haskell-playground/":{"tf":1.0}},"df":1}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://blog.haskell.org/documentation-best-practices-in-2024/":{"tf":1.0}},"df":1}}}}},"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://blog.haskell.org/privacy/":{"tf":1.0}},"df":1}}}}}}},"r":{"docs":{},"df":0,"e":{"docs":{},"df":0,"p":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{"https://blog.haskell.org/report-of-js-code-minification/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://blog.haskell.org/intro/":{"tf":1.0}},"df":1}}}}}}}}},"documentStore":{"save":true,"docs":{"https://blog.haskell.org/":{"body":"","description":"","id":"https://blog.haskell.org/","title":""},"https://blog.haskell.org/about/":{"body":"About this blog\nWelcome to the Haskell Project's blog!\nThis is the place where the various teams that power the language and its ecosystem communicate about their progress, innovations,\nand new releases.\nThe Haskell.org Committee is the publisher of this website. Please contact us at committee <at> haskell <dot> org if you wish to\nsignal content that goes against our Guidelines For Respectful Communication.\n","description":"","id":"https://blog.haskell.org/about/","title":"About this blog"},"https://blog.haskell.org/archive/":{"body":"","description":"","id":"https://blog.haskell.org/archive/","title":""},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"body":"In the Haddock team, part of our mission is to help with writing documentation, and promoting best practices. This article will help you write the best documentation you can!\n\nWe adapt documentation outside practices to our ecosystem, and leverage our own technologies to empower Haskell users with their documentation work.\nLet us see some of these techniques, and how the Haddock team can be of help.\nWriting documentation for your software project\nJustify yourself\nWhen you create software, there is a pipeline from your brain straight to your code. Your decisions — such as the libraries you’ve used,\nor your program architecture — shape how your code is structured and written.\nUnfortunately, simply writing the code isn’t enough.The reasoning behind the decisions you made is as important as the decisions themselves. In the short term, solving a problem may let you move ahead immediately, but what keeps you on the correct path is understanding what\nbrought you to that solution.\nIndeed, your choices may not be as popular as you think they are! Of course, you decided on them because you already convinced yourself\nthat they’re best. But you have a user base to convince as well, and they may not see things the same way you do.\nAs such, it is vitally important to document which decisions you made and to justify why you made them. If it’s not immediately obvious\nwhy a behaviour or a pattern exists, future maintainers might be tempted to drop it — only to discover too late why it was needed.\nThe reference flow of documentation\nNot all types of documentation have the same life cycle. Different pieces of documentation are more or less stable, and this determines\nwhich can act as a conceptual and theoretical foundation for your project.\nStable documentation\n\nA README without code\nA vision statement\nThe value proposition and the core domain\n\nThese ought not to change much, because they describe the basic problems that your code aims to address, solve or support in the long run.\nWhile it is normal to fiddle around with the boundaries of your project at the beginning, in general these should change infrequently.\nVolatile documentation\n\nDocumentation generated at runtime\nCode examples\nTests\nConfiguration\n\nThese are expected to change frequently, as your project changes, your API evolves, and you change configuration options.\nVolatile documentation is expensive to maintain, but also very valuable, as it shows in a concrete way how the user can interact with\nyour project.\n\n“When you refer to something, make sure the direction of the reference is from the more volatile to the more stable elements”\n-- Cyrille Martraire, Living Documentation, 2019\n\nDocumentation cascade\nHere is a simplified model of the documentation cascade for a typical Haskell project, from the most volatile to the most stable\nsources:\n\nCode for this diagram\n\n\nThis can be read as:\n\nThe Haddocks of your library or a third-party library have a dependency on the official specs for the domain, on an architecture document,\nand on haddocks from the core libraries (base, text, containers, etc.).\nThe haddocks of these core libraries depend on the GHC manual, official specs for their own domain, and papers.\n\nKeep in mind that while the Haddocks of a project can refer to the project specs, or to an architecture document, these documents should\nnever refer to the project's current implementation. If you must refer to the code, point to where it's located.\nThe (current, volatile) code cannot be the justification for the (planned, stable) architecture.\nThe GHC manual is much more stable than the haddocks of a Core library, which is why documentation should flow from\nthe library to the manual.\nFinally, papers serve the same purpose as architecture documents, where they describe techniques that may be implemented,\nbut they should not point to code that is subject to change – lest they point to a library that has evolved so much\nthat it no longer relates to the paper.\nExample: The Set data structure\nThe Haddocks for the Set datatype\n(from the containers library) are an example of documentation which follows this model well:\n\nThey point to an overview of the API (here: volatile)\nThey refer to the papers that have informed the design of its implementation (stable)\n\nUnderstand for whom you write\n\n\n-- Diátaxis Framework, by Daniele Procida, diataxis.fr\n\nIt is of utmost importance that documentation answers the needs of the users, and for that we must understand these needs.\nUsers need specific kinds of documentation depending on the situation they are in.\nThe above quadrant is the Diátaxis Framework, which maps out the entire life cycle of one’s interaction with a system, a program or a library.\nIt defines four types of documentation where each are a combination of Acquisition or Application, and Action or Cognition.\nTutorials\nIf a new user in need of actively acquiring some practice with the project, they can safely be pointed to the \"Tutorials\" part\nof your documentation: it is the part that focuses on \"Acquisition\" of knowledge through \"Action\".\nThe focus of the tutorial is to make a prospective user acquire basic competence in handling the software: It is an ice-breaker.\nHow-to Guides\nSomeone who needs to perform a task that new to them, but well-known to their group or organisation, will be best served by \"How-to Guides\",\nwhich helps a user get something done in a safe and correct manner. As opposed to Tutorials, How-to Guides are directions that take into account the complexity of the environment\nsurrounding the the user and the action, instead of providing a\nExplanations\nHowever someone who is in need of a deeper – but perhaps less immediately applicable understanding of the project –\nwill be better served by the \"Explanation\", which serves the need for thought (or Cognition)\nExplanations bring historical and technical context to the current state of affairs.\nReference\nFinally, a \"Reference\" is a description of the interfaces and mechanisms of the software.\nIt aims to provide factual informations that is authoritative, with no space for doubt or ambiguity or design questions.\nThe best way to obtain reference is to make the system aware of its inner workings, and have it spit the reference from its own code.\nThrough the lens of Diátaxis, the module API documentation produced by Haddock is a Reference.\nThe OpenAPI standard for documenting REST APIs is also a Reference, although some less fortunate systems find themselves\nwith no ability to understand their own mechanisms, and thus must rely on manually-written specifications.\nIn Haskell, packages like openapi3 help with rendering an OpenAPI specification,\nwhereas companion libraries for web servers like servant-openapi3\nprovide you with a way of declaring REST APIs that can be rendered, even at run-time.\nDo Not Write The One Documentation\nIt is not just about filling out all the quadrants like a checklist (although they are all good to have!).\nInstead, it is about understanding how each section focuses on a particular combination of user needs and situations.\nThe message of Diátaxis is that you are not meant to write The One Documentation that covers everything —\ninevitably, this produces documentation which is shallow due to its breadth. Instead, focus on the strategic aspects of your documentation,\nand you will produce documentation of better quality, with a clear purpose that it can fulfill more easily.\nReach Out\nShould you need any help in writing or proof-reading documentation, please stop by the Matrix chatroom of the Haddock team,\nor ping us with the @haddock group tag on the\nHaskell Gitlab. We would be more than happy to lend you a hand and discuss how to best serve your users,\nyou included.\nRead More\n\nHaddock manual\nThe theory behind Diátaxis\nHow to contribute to Haddock\n\n","description":"","id":"https://blog.haskell.org/documentation-best-practices-in-2024/","title":"Documentation Best Practices in 2024"},"https://blog.haskell.org/intro/":{"body":"The Haskell Ecosystem plays host to some amazing projects. Talented developers spend significant amounts of time, often their free time, helping develop, maintain, and support this ecosystem that all Haskell developers use. This space is for any of the developer teams that work on Haskell core infrastructure and power the Haskell Ecosystem\nThis blog will provide a space for these efforts to communicate with the wider Haskell community. Things you might see here: call for volunteers, project updates, requests for comments/feedback.\nBlogs also form a key part of an ecosystem’s documentation. We’d like to take this idea to its conclusion in the Haskell ecosystem and provide a place for this high-value documentation to live and be maintained. In addition to helping out with editing, by hosting the posts here we’ll also have shared responsibility for maintaining the blog posts, helping prevent the all-to-common bit-rot that occurs on blog posts.\nThere are already a few posts to get the ball rolling. We’re really excited to share these thoughts with you all.\nHappy Hacking,\nJosé Manuel Calderón Trilla\n","description":"","id":"https://blog.haskell.org/intro/","title":"Welcome"},"https://blog.haskell.org/pages/":{"body":"","description":"","id":"https://blog.haskell.org/pages/","title":""},"https://blog.haskell.org/privacy/":{"body":"Privacy\n\nThis site does not set or use cookies.\nThis site does not store data in the browser to be shared, sent, or sold to third-parties.\nNo personal information is shared, sent, or sold to third-parties.\n\nEffective Date: 1st Jan 2022\n","description":"This page outlines the Privacy Policy for this site, and the date at which this policy was put into affect.","id":"https://blog.haskell.org/privacy/","title":"Privacy Policy"},"https://blog.haskell.org/report-of-js-code-minification/":{"body":"The JavaScript world has been battling for low bundle size from the very beginning.\nIt is now our turn to enter the battle\n\nDedicated to all front-end developers who doubt, but.\nIntro\nThe JavaScript backend in GHC has a long history of various challenges. One of the most notable is the transition from GHC 8.x to 9.x. Significant work has been done up to today by the GHC team, and progress is still ongoing. Besides the obvious need to make the GHC JavaScript backend functional in general, some specific issues have been raised regarding its use in production, one of them being the size of the produced JavaScript bundles.\nBundle size is an important consideration when commercial applications face challenges in delivering to end users. It is not surprising that consumers pay attention to software user experience. First impressions matter, and the time required for a fully functional interface to appear on the user's device is crucial.\nWeb applications are particularly sensitive to the duration before user interactions can begin. When you are loading a site or web application, you expect it to be fast. Bundle size is a primary target for loading time optimizations, due to the fact that, at this point, you have little control over what to offer the user while the progress bar is filling up.\nBundle Size Challenge\nThe JavaScript world has been battling for low bundle size from the very beginning. Various tactics have been developed up to today. Everyone who has participated in web development has heard words like minification, obfuscation, compression, and code elimination. Each of these terms opens a door to a wide array of tools whose configuration can take a long time and requires special experience: the resulting bundle should not only be lightweight but also functional.\nRoughly speaking, we can categorize all these tools and approaches into the following set of practical actions:\n\nCode rewrite. Simple approaches are known as minification. They are based on the fact that JavaScript supports pulling all code into a single line by removing whitespace. More intelligent approaches swap variable names for shorter ones. A side effect of this is that it makes reading such code harder, which in itself is a practice known as obfuscation. Even more advanced tools support unused (dead) code detection, allowing it to be safely removed. How can this happen? Third-party libraries provide various functions, but a specific application uses only a subset of them. The most advanced tools take things a step further: they can detect some code that can be rewritten in a more optimal form according to its actual use cases. For instance, if you use a constant variable, its value can be substituted directly in a call. In that case, the variable definition itself is not important and can be omitted, with its value used in place (inlined).\nEnvironment-dependent graceful degradation. The runtime environment can vary significantly due to different browsers and their versions. Sometimes you have control over the user's runtime environment, especially if the application is targeted at commercial clients. More often, your runtime environment is very diverse. Different environments impose different restrictions. Rich (and probably more modern) environments provide a large set of built-in features. The way you deliver your programs could depend on these features, as they can help build optimal bundles where your code does not have to implement low-level behaviors from scratch. Such code can have shortcuts for features where there is no need to include the full implementation, which would add more to the bundle. For example, internationalization (i18n) can be supported by some targets, so you do not need to add a full implementation in your code. This approach encourages modern user environments with faster load times, but for others, it makes things \"just work\" at the cost of bundle size. Web servers can detect browsers and their versions to select the best bundle size using the User-Agent header.\nNetwork-level compression. The simplest approach to reducing load time is to use good old compression, usually gzip compression. There is no need to deal with code optimizations. Most environments support it \"out of the box\" through the provided Content-Encoding header. It has its own weakness: the time to unpack the application on the client side. However, such a concern has become less important these days, thanks to modern CPUs—even on low-budget devices.\nDynamic bundle loading. This is the last but not least option when no other ways give you satisfactory results in the battle for short loading times. Usually, even large applications can be split into smaller parts that can be loaded as the user navigates through the interface. It is an old approach used on the Web: hypertext itself encourages this way of loading time optimization. Modern web applications can be designed to load their parts one by one if the tools used support partial loading.\n\nJavaScript ecosystem\nAs mentioned in the previous part, the modern JavaScript ecosystem provides battle-tested approaches to dealing with bundle size. The most notable ones that come to mind include:\n\nTerser, UglifyJS, and Google Closure Compiler. All of them provide methods to transform code into a minified form, ranging from trivial optimizations to more advanced techniques like dead code elimination.\nBabel for environment-related optimizations. Its primary purpose is to construct a set of \"polyfills\" that ensure uniform code execution across environments with different capabilities. Babel does not know a priori which capabilities an environment has, but it can be configured declaratively at build time to specify which features are expected to be present or not. One possible scenario for its usage in the task of bundle size reduction is to categorize possible environments into classes and prepare specific builds for each class. Bundle selection for delivery can be fulfilled by the static content server. For example, this can be implemented with the help of Nginx, where bundles can be associated with the incoming User-Agent header.\nWebpack (Parcel, Rollup) for bundle combining and splitting. The modern JavaScript environment has support for code modularization, but this support is still far from perfect. Even if support becomes more widespread, bundling will probably remain important due to networking: loading one big file generally has fewer side effects on time than loading a set of files with the same total size. Bundlers come into play when your application consists of a large number of modules, which is a common case. Moreover, they add additional value to the application build pipeline: they provide a way to slice a large application into a few bundles that can be loaded dynamically. Such slicing can usually be configured declaratively.\nGzip, Deflate, and Brotli via Nginx through fallback on the Content-Encoding header value. Their usage is quite straightforward. It depends only on the selected delivery method. Usually, web servers and content delivery networks handle this task with the best available efforts, so it is very rare that any manual tweaking is needed.\n\nThe Haskell way\nLet us return to our primary topic and consider how the Haskell environment takes its own seat with the concepts described above.\nNetwork-level compression does not depend on how the JavaScript bundle is generated. It is the most accessible way to address the issue of large bundle sizes. We assume that it is enabled by default and, for measurement purposes, we assume that Gzip is used. So, even if the GHC JavaScript backend does not support anything from the list above related to code splitting or code optimizations, we can still improve user experience by reducing bundle loading time through the correct configuration of the delivery channel to use reliable old compression.\n\nSo, there are no troubles here ✅✅.\n\nDynamic bundle loading is a complex topic. The GHC JavaScript bundle does not support it natively. However, real-world JavaScript applications usually depend on other JavaScript libraries and modules. We assume that a Haskell application could depend on them: call their functions, return results to them, and be called from external JavaScript code. Currently, the GHC 9.x JavaScript backend lacks full support for FFI. It allows only functions as JavaScript imports. However, it is enough to construct the interface where JavaScript can call Haskell functions and vice versa. Thus, we cover two possible top-level architecture scenarios:\n\nHaskell is used to write modules that will be used by some top-level JavaScript code. Such JavaScript code could be used only for bootstrapping purposes actually. In that scenario, bundlers (i.e., Webpack) could consider Haskell code as an old-fashioned JavaScript module that operates through globally exported functions. By this assumption, we gain the full power of slicing our application with a bundler, but its atomic slice is limited to the whole JavaScript bundle from the GHC 9.x JavaScript backend because it is a kind of \"black box\" for the bundler. Thus, it allows you to write different parts of the application in different Haskell modules which could be loaded on-demand from the top-level JavaScript code. The main issue here is to write a correct rule for loading such an \"old-fashioned\" module. A Haskell module (when Emscripten is used) can contain some global variables which require lots of care from the bundler side to ensure they are loaded sequentially by time but safely \"shimmed\" for simultaneous usage in the global JavaScript namespace.\nHaskell is used to write a top-level module that is supposed to be a caller for dependent JavaScript modules. It is supposed that this way is primary for existing commercial frontend applications written in Haskell for the Web. That looks like a straightforward way to begin development but encourages limited benefits from existing JavaScript bundlers. They can be used only to prepare third-party libraries for external calls. The GHC 8.x/9.x JavaScript linker currently does not support dynamically loading dependent Haskell modules on-demand: it assumes that all Haskell code is present statically at the moment of application bootstrap.\n\n\nWell, this way of bundle size optimization is limited even if possible. Even if the first strategy is chosen, the process of keeping the bundle configuration correct throughout the development lifecycle will require deep knowledge and lots of patience. Not sure what is more, so 🤷‍♂️.\n\nAccommodation of this tactic will not be covered by the samples in this article, but it could be an interesting journey for developers who participate in large Haskell web frontend application support. If it finds a strong response from the community, it could be investigated further.\nEnvironment-dependent graceful degradation is related to the previously discussed topic. Such tools (i.e., Babel) in the JavaScript ecosystem tend to be used in conjunction with bundlers (i.e., Webpack), but some of them can be used standalone. Their practical purpose for Haskell applications lies in providing a stable environment with all modern features of ECMAScript implemented natively or through \"polyfills.\" Unfortunately, \"ponyfills\" cannot be used with Haskell frontend applications due to the lack of support for CommonJS/ESM modules in the GHC 8.x/9.x JavaScript backend linker. Fortunately, the GHC 8.x/9.x JavaScript backend generates a very simple JavaScript subset. GHC's JavaScript RTS library has been written with ES5 in mind, with minor inclusions of fat-arrow-style functions from ES6. The used ES-language features are broadly supported nowadays. So, if your code does not use third-party libraries in JavaScript (which is supposed to be a rare case for real-world commercial applications), the usage of tools like Babel does not seem necessary.\nOn the other hand, even a Hello World-like Haskell application comes with a rich set of built-in modules for everyday use. Some modules of i18n and bigint from built-in libraries could be swapped for ones from a stable environment. This could reduce the size of generated JavaScript bundles for modern environments where \"polyfills\" are not needed. For older environments, such \"polyfills\" could be incorporated through declarative Babel configuration.\nWe face two scenarios of graceful degradation tool usage for a Haskell web frontend application:\n\nThird-party JavaScript libraries may require them. There is a dash in the JavaScript world. Authors of popular and reliable libraries tend to use the most modern and fashionable ECMAScript features. This adds additional complexity for Haskell application distribution. Such libraries need to pass through tools like Babel before being added to the resulting bundle.\nThe Haskell application itself relies on built-in packages, which is fine in terms of reliable execution (one of Haskell's strong sides) but not so well with bundle size when the environment provides native or \"polyfilled\" implementations for basic functions to work with things like i18n and Bignum (BigInt).\n\n\nIn short, this way of optimization has little to do with the Haskell application itself for now. It can be integrated into the resulting bundle compilation to process third-party JavaScript dependencies ✅, but currently, GHC 9.x JavaScript does not support swapping functions from built-in packages with those provided by the environment ❌.\n\nExperiments with this tactic remain out of scope for the current attempt to bring some benefits. Here, the same action is relevant as for the previous one: strong response from the community could drive investigations into this field.\nCode rewrite is a common tactic for advanced bundle size optimizations. Besides using optimizing compilers like Google Closure Compiler, the GHC 8.x/9.x JavaScript backend offers features to deal with large bundle sizes. The overview of introduced improvements in this area will be covered in the next section of this article and measured. Also, it is important to keep the resulting bundle compatible with existing optimizing compilers (at least one of them) because it provides additional benefits for application developers.\nAlthough a long route still lies ahead, some steps have already come into play nowadays: optimizing compiler support has been fixed, Unicode dead code elimination improved, string representation optimized, and Unicode (again!) table size notably reduced. ✅ Let us see the details in the next section!\nPassed steps for great good\nBefore anything else, it's necessary to mention that the initial event that sparked this work was an offline discussion where the opinion was formed that even a 100kb total bundle size for a Haskell \"Hello World\" application is not achievable.\nWell, does it really matter? We will measure it with size-limit, which shows sizes and time to load on a bad connection.\nWe are going to begin from the latest master commit at the time of writing this article. Right on this commit, we will revert the added code optimizations:\n\n#24789 Reasoning on Unicode static data compression on the GHC side\n#24504 Eliminate dependency of \"Hello World\" on Read\n#24706 Port back more efficient packing of string data from GHCJS to GHC JavaScript backend\n\nThe order is important. They were added in reverse order, so applying reverts to related commits reconstructs the whole GHC state. We want to take the most modern (and buildable!) GHC state and see how the JavaScript bundle size is improved over these commits.\nAdditionally, it's important to note that there is one more significant issue:\n\n#24602 Google Closure Compiler hard errors\n\nIt is important, but it does not add optimizations to GHC itself. It only allows us to run the Google Closure Compiler over the resulting bundle, which we can turn on/off manually during the following steps. We will apply all measurements with and without it to track its necessity.\nOur building pipeline will be the following:\n\nBuild a sample Haskell program with GHC optimization option -O2.\nProcess all.js through Google Closure Compiler with --compilation_level ADVANCED_OPTIMIZATIONS.\nProcess all.js and all.min.js (result of the Google Closure Compiler) with size-limit.\n\nWe will measure the following:\n\nThe size of all.js after the GHC pass\nThe size of all.min.js after the Google Closure pass\nThe brotlied sizes of them both via size-limit\nThe running time via size-limit to estimate how hard it is for the browser to load on a low budget device. It uses estimo internally.\n\nLets do some initial measurements (when no improvements have been applied via the reverted commits on fresh master):\n\n\nWell, results are far from perfect. 10s to load.\nWarning for experienced researchers: We are not going to make reliable sigma-based measurements. Their purpose is only to demonstrate the direction of improvements.\nEfficient packing of string data #24706\nTo avoid saying the same things twice (you can follow the issue for details) we are going to disclose it in following samples:\n\nVS\n\nYou probably noticed that second sample is shorter than first. It was the point of the ticket. It decreases bundle size besides better readability.\nTo make it happen let us deal how string literals work in GHC. They become an int array in a memory address pointer which has type Addr# internally. But not only string literals are encoded in an int array (Addr#). GHC is smart enough to use same technique for all embedded stuff which can be represented as an int array with a pointer. It can be used for embedded files as well. For anything that can look like an int array.\nSo, we should detect somehow that Addr# is used for string literal representation. Fortunately we are dealing with ByteStrings.\nAccording to the best article about strings representation (The ultimate guide to Haskell Strings) in GHC, we know that a well-formed unicode string should meet the following requirements:\n\nIts content should be limited to UTF8 code points.\n\\0s are not allowed.\n\nPretty small change but how important?\nOur HelloWorld.hs:\n\nResult:\n\n\nWell, our bundle is becoming smaller in size but it remains expensive to load by a low budget device. Note how important it is to use Google Closure Compiler for production builds!\nWhat can be removed from the bundle? Unicode? #24504\nWhile sifting through the contents of app.js, the following was found:\n\nThat is a really long line of code! It takes 4,316,351 characters at the bundle. What is even more interesting that Google Closure Compiler was unable to eliminate it as a dead code. It sounded like for some reason as really needed by:\n\nIt was a challenge to prove that it was exactly needed by the application. A special toolkit was created for call graph analysis\nin JavaScript bundles. Its purpose is very simple: It takes the JavaScript AST, reconstructs actual function calls as STG and creates a visualization\nto be processed by a graph explorer (e.g. Gephi).\nWhen the graph file had been constructed, we only needed to find the shortest path between JavaScript main and h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1. That route was found!\n\n\nFig. 1. The whole route from main function to Unicode. It demonstrates how much nodes were connected and how. It begins from JavaScript main and ends at h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1. Total amount of conntected nodes is 30.\n\nThe most interesting node is h$ghczminternalZCGHCziInternalziUnicodezizdwisSpace. It means that isSpace was the only reason why whole Unicode table had been added to the bundle. And isSpace is used by read parser. So, when we call the read function, that dependency route is triggered to be included into result bundle.\nIt turned out that the root of this issue came from an older one. With the help of call graph tracing, it was possible to establish the actual reason and fix it! (Ben Gamari, thank you so much)\nMeasures:\n\n\n73.92 kB! Even more better! But wait.\nWhat if Unicode is actually needed by some programs? #24789\nAs you noted there, it does not require much effort to trigger the addition of the unicode table. A trivial reference to read is enough to pull back the whole table back into the bundle.\nThat victory is too fragile to be proud of given results. Lots of real applications have to use isSpace when dealing with text parsing and so on. We have to support this case but keep the bundle size low.\nLet us consider the following sample program:\n\nHere we are facing the issue again.\nThe variable h$ghczminternalZCGHCziInternalziUnicodeziCharziUnicodeDataziGeneralCategoryzilvl_1 stores information about the mapping of each Unicode character to its General Category. The number of characters in each category varies. Some categories contain significantly more characters than others. When characters are listed sequentially in memory, their order does not necessarily match the order of the categories. This creates a challenge: how to organize characters in memory so that the search for their categories is both fast and space-efficient.\nNot many ideas came at the beginning, so a broad discussion was required with GHC community to see what can be tried to solve this.\nAdditionally, removing Streamly from GHC sources was needed as well because this dependency didn't keep its API stable.\nPierre Le Marre came with ultimate solution for the problem with large Unicode table but it was considered too powerful to be applied right now, so, the time for shamochu will come next.\nSylvain Henry's approach, less performant in terms of size reduction gains, was deemed much easier to be implemented. The conclusion was to use the latter one because we needed something easier and without additional dependencies at the moment.\nThe main idea is to generate better lookup code which can be translated into switches:\n\nSylvain Henry's approach was enhanced with nested ifs (logarithmic search vs linear search) and makes estimation regarding the most appropriate chunk size (as he predicted in the origin message):\n\n\nFig. 2. Finding the best size of chunks by comparing all possible values against generated function size. It shows that 50 items is a good-enough value of chunks size.\n\nMeasures of applied changes:\n\n\nWell, sizes are looking near same after compression but take a look at Running time. It looks like new version of unicode code is easier to understand by simulated low budget device!\nIntermediate conclusions\nThis article shows that community work can yield results that beat the original opinion about \"completely unachievable 100kb\". We seen how 6.8M became 2.8M for uncompressed Haskell JavaScript bundle and how 181.55 kB became 96.3 kB for completely optimized, compressed production-ready JavaScript bundle of trivial Unicode-enabled Haskell JavaScript application.\nWhat is next? Besides adding various code optimizations it would be nice also to consider other options from the beginning:\n\nGive a try to slice Haskell applications in chunks, with Webpack dynamic loading as \"black box\".\nConsider adding to GHC JavaScript backend the ability to slice code in CJS/ESM modules.\nRewrite call graph visualization tool in Haskell and make its output compatible with webpack-bundle-analyzer.\nExtend GHC JavaScript backend Linker with a feature which would switch on/off built-in modules for environments where they can be already provided by platform.\n\nThanks!\nThanks for the long reading! It was a very interesting journey and the author hopes now it was for you too, dear reader! Let us meet together in contributing to GHC!\nThanks for people with whom I was much impressed to work (in alphabetical order):\n\nBen Gamari\nCheng Shao\nHécate Kleidukos\nJeffrey Young\nLuite Stegeman\nMatthew Craven\nMatthew Pickering\nPierre Le Marre\nRodrigo Mesquita\nSylvain Henry\n\nIt is a pleasure to work with all of you on the Glorious Glasgow Haskell Compiler! Special thanks for Jeffrey Young who opened a door for me first and invited to work on the GHC JavaScript Backend.\n","description":"","id":"https://blog.haskell.org/report-of-js-code-minification/","title":"JavaScript Code Minification Report"},"https://blog.haskell.org/the-haskell-playground/":{"body":"The playground (play.haskell.org) allows you to run single-file Haskell programs right from your browser, and share them with others.\nIn this post, I will introduce the playground and give some implementation details.\n\nBeing able to run small Haskell programs in a browser is useful if you want to share a snippet of Haskell code with someone in such a way that the recipient can easily read, modify and execute the code.\nAnother use-case for the playground is if you're on the go (for example at a functional programming conference!) and want to show off some Haskell to your friends.\nIf those friends are performance-minded, they might ask you what the code compiles to.\nFortunately, the playground can help there too!\nBy clicking the \"Core\" button in the playground, you can see the intermediate representation that GHC converts all Haskell code to, and where it performs most of its optimisations; it is a stripped-down version of Haskell where everything is explicit.\n(Among other things, every memory allocation is marked by a let expression in Core; this can be useful to diagnose performance issues.)\nIf you are courageous, you can even look at the native assembly that GHC generates (with the \"Asm\" button).\nThe playground is, of course, implemented in Haskell.\nThe underlying web server is Snap, which I like because it's not too heavy-weight (for a web server, that is), and doesn't get in your way much.\nOrigins\nThe roots of the playground are on IRC (Internet Relay Chat) — which does, indeed, still exist.\nMost of the general Haskell IRC activity is in #haskell on libera.chat.\nIRC is an old and simple protocol, and multi-line messages are not supported, so what do you do if you want to ask for help with a (multi-line) piece of code?\nYou put it on a pastebin and share the link.\nWhich pastebin?\nPeople were using all kinds, and some of the regulars in the channel were complaining 1. that some of those websites were annoying/slow, and 2. that beginners would often only upload half the code, no output, only paraphrase the compiler error, etc.\nThus the idea of a custom pastebin was born:\n\n<sm> also: a new paste bin customized/structured for #haskell to elicit more info ? eg cabal or yaml file, stack yaml file, command, output, platform..\n<tomsmeding> sm: building that pastebin service would be trivial, question is who’d host it\n<sm> trivial eh :)\n<sm> if you build it I’ll host it :)\n<tomsmeding> sure lol\n\nAnd so a pastebin was born (still need to chase them up on that offer).\nBut soon people were back asking for more stuff:\n\nSomehow, this also happened, and it has been running on a small virtual server since then.\nFor now, this is quite sufficient, but should server load increase in the future, we'll need to re-evaluate.\nImplementation\nWhen I wrote the playground, I was in an optimistic mood and prepared it for horizontal scaling to multiple compilation servers.\nFor now this functionality is essentially unused (there is just one worker), but it does mean that the implementation of the playground is modularised in two executables:\n\nThe web server (play-haskell-server in the repository), which serves the HTML frontend, stores saved snippets in a SQLite database, and accepts compilation/execution jobs from users.\nIt distributes these jobs among workers using a thread-pool-like thing, waits for them to complete, and passes the results back to the client.\nA worker (play-haskell-worker), which accepts compile/run jobs over the network and handles them on one of the cores of the machine it runs on.\nIt simply uses GHCs from GHCup, and (hopefully) knows how to properly sandbox the execution of user-submitted programs.\n\nBoth server and worker accept connections using HTTP, but that can be easily upgraded to HTTPS in the usual way: put a reverse proxy (such as Caddy or Nginx) in front of it and terminate TLS there.\n(Caddy has the bonus feature of having built-in support for requesting TLS certificates from Let's Encrypt, which makes this even easier.)\nLet's dive into two more technical aspects of the playground implementation: sandboxing and the build environment.\nSandboxing\nI already mentioned that the worker has to sandbox execution of submitted programs: since the primary functionality of the playground is literally \"please execute arbitrary code on my machine\", we had better make sure that we can do that safely!\nThe typical way to do sandboxing nowadays seems to be containers (e.g. using Docker), but those frameworks typically do much more than we need, and have the number of CVEs to match.\nSo instead, the playground takes the much safer (?) approach of a stack of three hacky shell scripts that successively:\n\nUse Linux user namespaces (using systemd-run) to set resource quotas: this limits CPU use (to a single CPU core), memory use, and the number of concurrent threads.\nUse Linux cgroups with bwrap (also used by Flatpak) to chroot to a Ubuntu distro and prevent access to disk, network, other processes, etc.\nRead-only access is provided to ~/.ghcup, because that's where the GHCs live.\nActually look at what the job is asking for, and do that.\n\nThis is convoluted, and it can surely be simplified (without reaching for bloated containerisation solutions).\nI just don't know how, so if you do, please reach out.\n(And if you'd like to try to break the sandboxing, I'll gladly help you set up the playground on your own machine so that you can test without spoiling the fun for others. ;) )\nThe build environment: making Haskell packages available\nHaving just the boot packages available would make for a rather bare playground (no System.Random, etc.), so we clearly need to provide something more.\nThe current policy for additional packages is \"if you can convince me that a package is useful that a package is useful and it doesn't unnecessarily bloat the dependency tree, I'll add it together with its transitive dependencies\".\nThis has happened multiple times already (e.g. 1, 2, 3).\nThis policy is admittedly completely subjective, but it's unclear if there is a real alternative.\nThe only \"principled\" option seems to be making all of Stackage available, but that is both unwieldy (there's too many packages in there so it takes a huge amount of disk space) and not always possible (the playground aims to support new GHCs immediately after release, and Stackage naturally lags behind).\nIn any case, we need some way of bringing additional Haskell packages in scope when compiling submitted programs.\nOne would naturally reach for cabal here; a possible design would be to have a Cabal project per GHC version and upon job submission replace its Main.hs with the submitted program, after which it is a matter of invoking cabal run.\nHowever, this design has some disadvantages:\n\nTo prevent interference when two jobs for the same GHC version arrive at a worker simultaneously (to be handled on separate cores), (number of GHCs) projects is not enough: we actually need (number of GHCs) * (number of cores) of them.\nThe playground not only supports running an executable, but also showing Core and assembly (also for non-Main modules).\nWhile we could modify the thing.cabal file together with Main.hs to make cabal do the right thing, it turns out that cabal takes quite a bit of time to reconfigure when the thing.cabal file changes.\nTo not make the user wait so long, we actually need (number of GHCs) * (number of cores) * (number of configurations (currently 3)) project directories!\nAnd if the playground is to support passing additional user-specified options to GHC in the future, then the number of configurations will explode.\nClearly this will not scale.\nFurthermore, even without needing to reconfigure the project, cabal still takes some time to update its own administration for every cabal run — time that is unnecessary because we know exactly what needs to happen: just run the same ghc command as before.\n\nPerhaps cabal could be improved on that last point, but even without that, there is enough reason for the playground to do something different.\nWhat happens instead is the following:\n\nI have one Cabal project directory per GHC version, containing a thing.cabal file defining an executable component that depends on all the packages to be made available.\nWhenever I add a new GHC version to the playground, or want to update package versions for an existing one, I cabal build that directory with the appropriate GHC version.\nThis yields a dist-newstyle/cache/plan.json that contains a wealth of information about the precise dependency tree, including the precise package IDs as found in the Cabal store in ~/.cabal/store.\n\nIt is important that this building happens in approximately (!) the same sandboxing setup as the one for the user-submitted jobs, so that paths to the cabal store etc. are the same in both situations.\nI say \"approximately\" here because cabal of course needs write access to ~/.cabal here, and the user does not.\n\n\nThese package IDs are collected and inserted in a generated shell script that invokes ghc in precisely the right way to bring those packages into scope.\nAs it turns out, ghc doesn't really mind getting Main or non-Main modules here; this means that e.g. Core mode simply appends -ddump-simpl -ddump-to-file to the arguments to ghc, and everything works fine.\n\nThere is thus one such generated shell script for each GHC version on the playground; these are what is actually run when a job is handled by a worker.\nThis way, the overhead is as low as possible: just ghc is invoked, and almost nothing else (apart from the sandboxing machinery).\nThe overhead from sandboxing is reduced to a minimum by starting a new sandbox immediately after the previous one exited, so that one should be already running (waiting for a program to compile) when the next job arrives.\nManual work\nThe awkward part of the current setup is that I need to manually prepare a consistent package list for each GHC version.\nI have some automation for that, but it would of course be nicer if the process of adding a new GHC version to the playground was automatic.\nThe trouble is that this is actually non-trivial.\nAs described above, there is a \"wish list\" of packages that we'd like to be available, but not all those packages build with all GHC versions — either because they haven't been updated for the latest GHC yet, or because they exist only for certain GHC versions by design (e.g. ghc-heap).\nIt is not obvious how to effectively determine a maximal subset of this wish list that builds together!\nBecause package dependency constraints need not be monotonic (e.g. package B may depend on A (>= 1 && < 3) || (>= 4 && < 6)), simply using the newest of each package on the wish list (or oldest, as some people seem to prefer) is not necessarily sufficient.\nThis is why the Cabal dependency solver is a thing.\nThe process of \"whittling down\" the wish list to something that does build together, guided by cabal dependency solving errors, is partially automated, but a comprehensive automated solution (that is nevertheless simple enough to maintain and not introduce a slew of robustness bugs of its own) would be nicer.\nIf you have ideas, please jump into the issue tracker and tell me!\nFuture\nThe playground receives a healthy amount of traffic, and it seems to be useful to people, but of course there is a lot that can still be improved.\nA number of ideas are already listed in the issues on the GitHub repository, but if you have an idea for an improvement that's not yet on the list — be it to the design, the user experience, or the implementation — or if you've found a bug and would like to report it, feel free to open an issue.\nIf you would like to work on the project yourself (and it's more than a one-line fix), please open an issue first; that way we can prevent extra or duplicate work on both sides.\nAs an example of a recently added feature, the GHC error output on the playground now links to the Haskell Error Index (for GHC >= 9.6).\n(If you get a GHC error, such as this one, click on the link, and find that it has not been explained yet in the Error Index, they're looking for contributors!)\nThanks to @MangoIV for suggesting this feature.\nIf you want to say hi, I often hang out in #haskell on libera.chat.\nHappy Haskelling!\n","description":"","id":"https://blog.haskell.org/the-haskell-playground/","title":"The Haskell Playground"}},"docInfo":{"https://blog.haskell.org/":{"body":0,"description":0,"title":0},"https://blog.haskell.org/about/":{"body":35,"description":0,"title":1},"https://blog.haskell.org/archive/":{"body":0,"description":0,"title":0},"https://blog.haskell.org/documentation-best-practices-in-2024/":{"body":652,"description":0,"title":4},"https://blog.haskell.org/intro/":{"body":105,"description":0,"title":1},"https://blog.haskell.org/pages/":{"body":0,"description":0,"title":0},"https://blog.haskell.org/privacy/":{"body":26,"description":9,"title":2},"https://blog.haskell.org/report-of-js-code-minification/":{"body":2274,"description":0,"title":4},"https://blog.haskell.org/the-haskell-playground/":{"body":1137,"description":0,"title":2}},"length":9},"lang":"English"} \ No newline at end of file diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 0000000..b20abb7 --- /dev/null +++ b/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..652282b --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,82 @@ + + + + https://blog.haskell.org/ + + + https://blog.haskell.org/about/ + + + https://blog.haskell.org/archive/ + + + https://blog.haskell.org/authors/ + + + https://blog.haskell.org/authors/hecate/ + + + https://blog.haskell.org/authors/jmct/ + + + https://blog.haskell.org/authors/serge-s-gulin/ + + + https://blog.haskell.org/authors/tom-smeding/ + + + https://blog.haskell.org/categories/ + + + https://blog.haskell.org/categories/community/ + + + https://blog.haskell.org/categories/ghc/ + + + https://blog.haskell.org/categories/haddock/ + + + https://blog.haskell.org/categories/playground/ + + + https://blog.haskell.org/documentation-best-practices-in-2024/ + 2024-09-15 + + + https://blog.haskell.org/intro/ + 2024-09-14 + + + https://blog.haskell.org/page/1/ + + + https://blog.haskell.org/privacy/ + + + https://blog.haskell.org/report-of-js-code-minification/ + 2024-09-15 + + + https://blog.haskell.org/tags/ + + + https://blog.haskell.org/tags/activities-report/ + + + https://blog.haskell.org/tags/community/ + + + https://blog.haskell.org/tags/documentation/ + + + https://blog.haskell.org/tags/javascript/ + + + https://blog.haskell.org/tags/practices/ + + + https://blog.haskell.org/the-haskell-playground/ + 2024-09-15 + + diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..bd899cd --- /dev/null +++ b/sw.js @@ -0,0 +1,191 @@ +class Pwa { + + constructor(self) { + this.scope = self; + const Version = new URL(location).searchParams.get("v"); + this.CACHE_VERSION = Version; + //this.BASE_CACHE_FILES=['/js/theme.min.js','/js/theme_light.min.js','/abridge.css','/js/abridge.min.js','/','/404.html','/offline/','/manifest.json']; + this.BASE_CACHE_FILES = ['/js/theme.min.js','/js/theme_light.min.js','/abridge.css','/js/abridge.min.js','/','/404.html','/offline/','/manifest.min.json']; + this.host = `${self.location.protocol}//${self.location.host}`; + console.info(`Host: ${this.host}`); + this.OFFLINE_PAGE = '/offline/'; + this.NOT_FOUND_PAGE = '/404.html'; + this.CACHE_NAME = `content-v${this.CACHE_VERSION}`; + // 3600=1hour, 28800=8hours, 86400=1day, 604800=1week, 1209600=2weeks + this.NORM_TTL = 0; + this.LONG_TTL = 0; + // keep the ttl on these lower: + this.TTL_NORM = ["sw.min.js", "sw_load.min.js"]; + // rarely change, may be a good idea to periodically refresh, incase I change these and forget to increment service worker version: + this.TTL_LONG = ["jpg", "jpeg", "png", "gif", "webp", "avif", "ico", "svg", "xsl", "txt"]; + // never change, cache forever unless service worker version is incremented: + this.TTL_EXEMPT = ["js", "css", "otf", "eot", "ttf", "woff", "woff2", "mp4", "webm", "mp3", "ogg"]; + // skip these extensions so they expire same time as html: st,wasm,json(search), xml(sitemap,atom,rss) + } + + canCache(url) { + if (url.startsWith("http://localhost")) { + return false; + } + const result = url.toString().startsWith(this.host); + return result; + } + + getFileExtension(url) { + const extension = url.split('.').reverse()[0].split('?')[0]; + return (extension.endsWith('/')) ? '/' : extension; + } + getFileName(url) { + const filename = url.substring(url.lastIndexOf('/') + 1).split('?')[0]; + return (filename.endsWith('/')) ? '/' : filename; + } + + getTTL(url) { + if (typeof url === 'string') { + const extension = this.getFileExtension(url); + const filename = this.getFileName(url); + + if (this.TTL_NORM.indexOf(filename) > -1) { + console.info(url + ' contains a TTL_NORM filename'); + return this.NORM_TTL; + } + if (this.TTL_LONG.indexOf(extension) > -1) { + console.info(url + ' contains a TTL_LONG extension'); + return this.LONG_TTL; + } + if (this.TTL_EXEMPT.indexOf(extension) > -1) { + console.info(url + ' contains a TTL_EXEMPT extension'); + return null; + } + console.info(url + ' TTL_NORM'); + return this.NORM_TTL; + } + return null; + } + + async installServiceWorker() { + try { + await caches.open(this.CACHE_NAME).then((cache) => { + return cache.addAll(this.BASE_CACHE_FILES); + }, err => console.error(`Error with ${this.CACHE_NAME}`, err)); + return this.scope.skipWaiting(); + } + catch (err) { + return console.error("Error with installation: ", err); + } + } + + cleanupLegacyCache() { + + const currentCaches = [this.CACHE_NAME]; + + return new Promise( + (resolve, reject) => { + caches.keys() + .then((keys) => keys.filter((key) => !~currentCaches.indexOf(key))) + .then((legacy) => { + if (legacy.length) { + Promise.all(legacy.map((legacyKey) => caches.delete(legacyKey)) + ).then(() => resolve()).catch((err) => { + console.error("Error in legacy cleanup: ", err); + reject(err); + }); + } else { + resolve(); + } + }).catch((err) => { + console.error("Error in legacy cleanup: ", err); + reject(err); + }); + }); + } + + async preCacheUrl(url) { + const cache = await caches.open(this.CACHE_NAME); + const response = await cache.match(url); + if (!response) { + return fetch(url).then(resp => cache.put(url, resp.clone())); + } + return null; + } + + register() { + this.scope.addEventListener('install', event => { + event.waitUntil( + Promise.all([ + this.installServiceWorker(), + this.scope.skipWaiting(), + ])); + console.info('SW Installed'); + }); + + this.scope.addEventListener('activate', event => { + event.waitUntil(Promise.all( + [this.cleanupLegacyCache(), + this.scope.clients.claim(), + this.scope.skipWaiting()]).catch((err) => { + console.error("Activation error: ", err); + event.skipWaiting(); + })); + }); + + this.scope.addEventListener('fetch', event => { + event.respondWith( + caches.open(this.CACHE_NAME).then(async cache => { + // check if this is NOT a resource we allow cacheing (some other domain), if so fetch it instead of cache. + if (!this.canCache(event.request.url)) { + return fetch(event.request); + } + // check the cache for the requested resource + const response = await cache.match(event.request); + if (response) { + const headers = response.headers.entries(); + let date = null; + for (let pair of headers) { + if (pair[0] === 'date') { + date = new Date(pair[1]); + break; + } + } + // date is not working, so ignore TTL and just serve the cached resource. + if (!date) { + return response; + } + const age = parseInt(((new Date().getTime() - date.getTime()) / 1000).toString()); + const ttl = this.getTTL(event.request.url); + if (ttl === null || (ttl && age < ttl)) { + // return the resource if it is not beyond the TTL + return response; + } + } + // if we made it here then we either did not have the cache, or the TTL was expired. + return fetch(event.request.clone()).then(resp => { + if (resp.status < 400) { + if (this.canCache(event.request.url)) { + cache.put(event.request, resp.clone()); + } + return resp; + } + else { + return cache.match(this.NOT_FOUND_PAGE); + } + }).catch(err => { + // if we made it here then we were unable to fetch the resource. + // maybe we were only fetching because of expired TTL, so use the cache regardless of TTL: + if (typeof event.request.url === 'string') { + console.info("url: "+event.request.url) + } + if (response) { + return response; + } + // if we made it here then we were unable to fetch the resource and do not have it cached. + console.error(`Error fetching ${event.request.url} resulted in offline`, err); + return cache.match(this.OFFLINE_PAGE); + }) + })); + }); + } +} + +const pwa = new Pwa(self); +pwa.register(); diff --git a/sw.min.js b/sw.min.js new file mode 100644 index 0000000..8812d76 --- /dev/null +++ b/sw.min.js @@ -0,0 +1 @@ +class Pwa{constructor(t){this.scope=t;var e=new URL(location).searchParams.get("v");this.CACHE_VERSION=e,this.BASE_CACHE_FILES=["/js/theme.min.js","/js/theme_light.min.js","/abridge.css","/js/abridge.min.js","/","/404.html","/offline/","/manifest.min.json"],this.host=t.location.protocol+"//"+t.location.host,this.OFFLINE_PAGE="/offline/",this.NOT_FOUND_PAGE="/404.html",this.CACHE_NAME="content-v"+this.CACHE_VERSION,this.NORM_TTL=0,this.LONG_TTL=0,this.TTL_NORM=["sw.min.js","sw_load.min.js"],this.TTL_LONG=["jpg","jpeg","png","gif","webp","avif","ico","svg","xsl","txt"],this.TTL_EXEMPT=["js","css","otf","eot","ttf","woff","woff2","mp4","webm","mp3","ogg"]}canCache(t){return!t.startsWith("http://localhost")&&t.toString().startsWith(this.host)}getFileExtension(t){t=t.split(".").reverse()[0].split("?")[0];return t.endsWith("/")?"/":t}getFileName(t){t=t.substring(1+t.lastIndexOf("/")).split("?")[0];return t.endsWith("/")?"/":t}getTTL(t){var e;return"string"==typeof t?(e=this.getFileExtension(t),t=this.getFileName(t),~this.TTL_NORM.indexOf(t)?this.NORM_TTL:~this.TTL_LONG.indexOf(e)?this.LONG_TTL:~this.TTL_EXEMPT.indexOf(e)?null:this.NORM_TTL):null}async installServiceWorker(){try{return await caches.open(this.CACHE_NAME).then(t=>t.addAll(this.BASE_CACHE_FILES),t=>{}),this.scope.skipWaiting()}catch(t){}}cleanupLegacyCache(){let i=[this.CACHE_NAME];return new Promise((e,s)=>{caches.keys().then(t=>t.filter(t=>!~i.indexOf(t))).then(t=>{t.length?Promise.all(t.map(t=>caches.delete(t))).then(()=>e()).catch(t=>{s(t)}):e()}).catch(t=>{s(t)})})}async preCacheUrl(e){let s=await caches.open(this.CACHE_NAME);return await s.match(e)?null:fetch(e).then(t=>s.put(e,t.clone()))}register(){this.scope.addEventListener("install",t=>{t.waitUntil(Promise.all([this.installServiceWorker(),this.scope.skipWaiting()]))}),this.scope.addEventListener("activate",e=>{e.waitUntil(Promise.all([this.cleanupLegacyCache(),this.scope.clients.claim(),this.scope.skipWaiting()]).catch(t=>{e.skipWaiting()}))}),this.scope.addEventListener("fetch",h=>{h.respondWith(caches.open(this.CACHE_NAME).then(async e=>{if(!this.canCache(h.request.url))return fetch(h.request);let s=await e.match(h.request);if(s){var i;let t=null;for(i of s.headers.entries())if("date"===i[0]){t=new Date(i[1]);break}if(!t)return s;var n=parseInt(""+((new Date).getTime()-t.getTime())/1e3),a=this.getTTL(h.request.url);if(null===a||a&&nt.status<400?(this.canCache(h.request.url)&&e.put(h.request,t.clone()),t):e.match(this.NOT_FOUND_PAGE)).catch(t=>(h.request.url,s||e.match(this.OFFLINE_PAGE)))}))})}}let pwa=new Pwa(self);pwa.register(); \ No newline at end of file diff --git a/tags/activities-report/index.html b/tags/activities-report/index.html new file mode 100644 index 0000000..90ce577 --- /dev/null +++ b/tags/activities-report/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + activities-report tag | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +

    + +
    +
    +
    +

    activities-report

    +

    2024

    +

    JavaScript Code Minification Report -

    +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/tags/community/index.html b/tags/community/index.html new file mode 100644 index 0000000..92ea410 --- /dev/null +++ b/tags/community/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Community tag | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Community

    +

    2024

    +

    Welcome -

    +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/tags/documentation/index.html b/tags/documentation/index.html new file mode 100644 index 0000000..616dad4 --- /dev/null +++ b/tags/documentation/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Documentation tag | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Documentation

    +

    2024

    +

    Documentation Best Practices in 2024 -

    +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..dbc8c1b --- /dev/null +++ b/tags/index.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tags | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/tags/javascript/index.html b/tags/javascript/index.html new file mode 100644 index 0000000..8d0ba64 --- /dev/null +++ b/tags/javascript/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript tag | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    javascript

    +

    2024

    +

    JavaScript Code Minification Report -

    +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/tags/practices/index.html b/tags/practices/index.html new file mode 100644 index 0000000..4b77aea --- /dev/null +++ b/tags/practices/index.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Practices tag | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Practices

    +

    2024

    +

    Documentation Best Practices in 2024 -

    +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + diff --git a/the-haskell-playground/index.html b/the-haskell-playground/index.html new file mode 100644 index 0000000..24359bb --- /dev/null +++ b/the-haskell-playground/index.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Haskell Playground | The Haskell Programming Language's blog + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    The Haskell Playground

    + + + Tom Smeding September 15, 2024 [Playground] + + + + +

    The playground (play.haskell.org) allows you to run single-file Haskell programs right from your browser, and share them with others. +In this post, I will introduce the playground and give some implementation details.

    + +

    Being able to run small Haskell programs in a browser is useful if you want to share a snippet of Haskell code with someone in such a way that the recipient can easily read, modify and execute the code. +Another use-case for the playground is if you're on the go (for example at a functional programming conference!) and want to show off some Haskell to your friends.

    +

    If those friends are performance-minded, they might ask you what the code compiles to. +Fortunately, the playground can help there too! +By clicking the "Core" button in the playground, you can see the intermediate representation that GHC converts all Haskell code to, and where it performs most of its optimisations; it is a stripped-down version of Haskell where everything is explicit. +(Among other things, every memory allocation is marked by a let expression in Core; this can be useful to diagnose performance issues.) +If you are courageous, you can even look at the native assembly that GHC generates (with the "Asm" button).

    +

    The playground is, of course, implemented in Haskell. +The underlying web server is Snap, which I like because it's not too heavy-weight (for a web server, that is), and doesn't get in your way much.

    +

    Origins

    +

    The roots of the playground are on IRC (Internet Relay Chat) — which does, indeed, still exist. +Most of the general Haskell IRC activity is in #haskell on libera.chat. +IRC is an old and simple protocol, and multi-line messages are not supported, so what do you do if you want to ask for help with a (multi-line) piece of code? +You put it on a pastebin and share the link. +Which pastebin?

    +

    People were using all kinds, and some of the regulars in the channel were complaining 1. that some of those websites were annoying/slow, and 2. that beginners would often only upload half the code, no output, only paraphrase the compiler error, etc. +Thus the idea of a custom pastebin was born:

    +
    +

    <sm> also: a new paste bin customized/structured for #haskell to elicit more info ? eg cabal or yaml file, stack yaml file, command, output, platform..
    +<tomsmeding> sm: building that pastebin service would be trivial, question is who’d host it
    +<sm> trivial eh :)
    +<sm> if you build it I’ll host it :)
    +<tomsmeding> sure lol

    +
    +

    And so a pastebin was born (still need to chase them up on that offer). +But soon people were back asking for more stuff:

    +
    A GitHub issue with title "Playground on haskell.org?"
    +

    Somehow, this also happened, and it has been running on a small virtual server since then. +For now, this is quite sufficient, but should server load increase in the future, we'll need to re-evaluate.

    +

    Implementation

    +

    When I wrote the playground, I was in an optimistic mood and prepared it for horizontal scaling to multiple compilation servers. +For now this functionality is essentially unused (there is just one worker), but it does mean that the implementation of the playground is modularised in two executables:

    +
      +
    • The web server (play-haskell-server in the repository), which serves the HTML frontend, stores saved snippets in a SQLite database, and accepts compilation/execution jobs from users. +It distributes these jobs among workers using a thread-pool-like thing, waits for them to complete, and passes the results back to the client.
    • +
    • A worker (play-haskell-worker), which accepts compile/run jobs over the network and handles them on one of the cores of the machine it runs on. +It simply uses GHCs from GHCup, and (hopefully) knows how to properly sandbox the execution of user-submitted programs.
    • +
    +

    Both server and worker accept connections using HTTP, but that can be easily upgraded to HTTPS in the usual way: put a reverse proxy (such as Caddy or Nginx) in front of it and terminate TLS there. +(Caddy has the bonus feature of having built-in support for requesting TLS certificates from Let's Encrypt, which makes this even easier.)

    +

    Let's dive into two more technical aspects of the playground implementation: sandboxing and the build environment.

    +

    Sandboxing

    +

    I already mentioned that the worker has to sandbox execution of submitted programs: since the primary functionality of the playground is literally "please execute arbitrary code on my machine", we had better make sure that we can do that safely! +The typical way to do sandboxing nowadays seems to be containers (e.g. using Docker), but those frameworks typically do much more than we need, and have the number of CVEs to match. +So instead, the playground takes the much safer (?) approach of a stack of three hacky shell scripts that successively:

    +
      +
    1. Use Linux user namespaces (using systemd-run) to set resource quotas: this limits CPU use (to a single CPU core), memory use, and the number of concurrent threads.
    2. +
    3. Use Linux cgroups with bwrap (also used by Flatpak) to chroot to a Ubuntu distro and prevent access to disk, network, other processes, etc. +Read-only access is provided to ~/.ghcup, because that's where the GHCs live.
    4. +
    5. Actually look at what the job is asking for, and do that.
    6. +
    +

    This is convoluted, and it can surely be simplified (without reaching for bloated containerisation solutions). +I just don't know how, so if you do, please reach out. +(And if you'd like to try to break the sandboxing, I'll gladly help you set up the playground on your own machine so that you can test without spoiling the fun for others. ;) )

    +

    The build environment: making Haskell packages available

    +

    Having just the boot packages available would make for a rather bare playground (no System.Random, etc.), so we clearly need to provide something more. +The current policy for additional packages is "if you can convince me that a package is useful that a package is useful and it doesn't unnecessarily bloat the dependency tree, I'll add it together with its transitive dependencies". +This has happened multiple times already (e.g. 1, 2, 3). +This policy is admittedly completely subjective, but it's unclear if there is a real alternative. +The only "principled" option seems to be making all of Stackage available, but that is both unwieldy (there's too many packages in there so it takes a huge amount of disk space) and not always possible (the playground aims to support new GHCs immediately after release, and Stackage naturally lags behind).

    +

    In any case, we need some way of bringing additional Haskell packages in scope when compiling submitted programs. +One would naturally reach for cabal here; a possible design would be to have a Cabal project per GHC version and upon job submission replace its Main.hs with the submitted program, after which it is a matter of invoking cabal run. +However, this design has some disadvantages:

    +
      +
    • To prevent interference when two jobs for the same GHC version arrive at a worker simultaneously (to be handled on separate cores), (number of GHCs) projects is not enough: we actually need (number of GHCs) * (number of cores) of them.
    • +
    • The playground not only supports running an executable, but also showing Core and assembly (also for non-Main modules). +While we could modify the thing.cabal file together with Main.hs to make cabal do the right thing, it turns out that cabal takes quite a bit of time to reconfigure when the thing.cabal file changes. +To not make the user wait so long, we actually need (number of GHCs) * (number of cores) * (number of configurations (currently 3)) project directories! +And if the playground is to support passing additional user-specified options to GHC in the future, then the number of configurations will explode. +Clearly this will not scale.
    • +
    • Furthermore, even without needing to reconfigure the project, cabal still takes some time to update its own administration for every cabal run — time that is unnecessary because we know exactly what needs to happen: just run the same ghc command as before.
    • +
    +

    Perhaps cabal could be improved on that last point, but even without that, there is enough reason for the playground to do something different. +What happens instead is the following:

    +
      +
    • I have one Cabal project directory per GHC version, containing a thing.cabal file defining an executable component that depends on all the packages to be made available.
    • +
    • Whenever I add a new GHC version to the playground, or want to update package versions for an existing one, I cabal build that directory with the appropriate GHC version. +This yields a dist-newstyle/cache/plan.json that contains a wealth of information about the precise dependency tree, including the precise package IDs as found in the Cabal store in ~/.cabal/store. +
        +
      • It is important that this building happens in approximately (!) the same sandboxing setup as the one for the user-submitted jobs, so that paths to the cabal store etc. are the same in both situations. +I say "approximately" here because cabal of course needs write access to ~/.cabal here, and the user does not.
      • +
      +
    • +
    • These package IDs are collected and inserted in a generated shell script that invokes ghc in precisely the right way to bring those packages into scope. +As it turns out, ghc doesn't really mind getting Main or non-Main modules here; this means that e.g. Core mode simply appends -ddump-simpl -ddump-to-file to the arguments to ghc, and everything works fine.
    • +
    +

    There is thus one such generated shell script for each GHC version on the playground; these are what is actually run when a job is handled by a worker. +This way, the overhead is as low as possible: just ghc is invoked, and almost nothing else (apart from the sandboxing machinery). +The overhead from sandboxing is reduced to a minimum by starting a new sandbox immediately after the previous one exited, so that one should be already running (waiting for a program to compile) when the next job arrives.

    +

    Manual work

    +

    The awkward part of the current setup is that I need to manually prepare a consistent package list for each GHC version. +I have some automation for that, but it would of course be nicer if the process of adding a new GHC version to the playground was automatic.

    +

    The trouble is that this is actually non-trivial. +As described above, there is a "wish list" of packages that we'd like to be available, but not all those packages build with all GHC versions — either because they haven't been updated for the latest GHC yet, or because they exist only for certain GHC versions by design (e.g. ghc-heap). +It is not obvious how to effectively determine a maximal subset of this wish list that builds together! +Because package dependency constraints need not be monotonic (e.g. package B may depend on A (>= 1 && < 3) || (>= 4 && < 6)), simply using the newest of each package on the wish list (or oldest, as some people seem to prefer) is not necessarily sufficient. +This is why the Cabal dependency solver is a thing.

    +

    The process of "whittling down" the wish list to something that does build together, guided by cabal dependency solving errors, is partially automated, but a comprehensive automated solution (that is nevertheless simple enough to maintain and not introduce a slew of robustness bugs of its own) would be nicer. +If you have ideas, please jump into the issue tracker and tell me!

    +

    Future

    +

    The playground receives a healthy amount of traffic, and it seems to be useful to people, but of course there is a lot that can still be improved. +A number of ideas are already listed in the issues on the GitHub repository, but if you have an idea for an improvement that's not yet on the list — be it to the design, the user experience, or the implementation — or if you've found a bug and would like to report it, feel free to open an issue. +If you would like to work on the project yourself (and it's more than a one-line fix), please open an issue first; that way we can prevent extra or duplicate work on both sides.

    +

    As an example of a recently added feature, the GHC error output on the playground now links to the Haskell Error Index (for GHC >= 9.6). +(If you get a GHC error, such as this one, click on the link, and find that it has not been explained yet in the Error Index, they're looking for contributors!) +Thanks to @MangoIV for suggesting this feature.

    +

    If you want to say hi, I often hang out in #haskell on libera.chat. +Happy Haskelling!

    + + +
    +
    +
    +
    + +

    © 2024 The Haskell Programming Language's blog

    +

    Powered by Zola & Abridge

    +
    +
    + + + + diff --git a/the-haskell-playground/playground-issue.png b/the-haskell-playground/playground-issue.png new file mode 100644 index 0000000000000000000000000000000000000000..89a7ccd8389b47d8605875abb34dbe5e3ce8f58a GIT binary patch literal 40909 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≥e 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 MZ4)f{irbz40u$m?!vFvP literal 0 HcmV?d00001 diff --git a/tinysearch_engine_bg.wasm b/tinysearch_engine_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6524c13000f27398cf4d2bbbba039103820863b8 GIT binary patch literal 97522 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
  • + +
    + +