diff --git a/.all-contributorsrc b/.all-contributorsrc index ca869029..aa0f1857 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -13,6 +13,13 @@ "profile": "https://github.com/profvjreddi", "contributions": [] }, + { + "login": "jasonjabbour", + "name": "jasonjabbour", + "avatar_url": "https://avatars.githubusercontent.com/jasonjabbour", + "profile": "https://github.com/jasonjabbour", + "contributions": [] + }, { "login": "uchendui", "name": "Ikechukwu Uchendu", @@ -28,10 +35,17 @@ "contributions": [] }, { - "login": "jasonjabbour", - "name": "jasonjabbour", - "avatar_url": "https://avatars.githubusercontent.com/jasonjabbour", - "profile": "https://github.com/jasonjabbour", + "login": "Mjrovai", + "name": "Marcelo Rovai", + "avatar_url": "https://avatars.githubusercontent.com/Mjrovai", + "profile": "https://github.com/Mjrovai", + "contributions": [] + }, + { + "login": "Sara-Khosravi", + "name": "Sara Khosravi", + "avatar_url": "https://avatars.githubusercontent.com/Sara-Khosravi", + "profile": "https://github.com/Sara-Khosravi", "contributions": [] }, { @@ -49,10 +63,10 @@ "contributions": [] }, { - "login": "Mjrovai", - "name": "Marcelo Rovai", - "avatar_url": "https://avatars.githubusercontent.com/Mjrovai", - "profile": "https://github.com/Mjrovai", + "login": "kai4avaya", + "name": "Kai Kleinbard", + "avatar_url": "https://avatars.githubusercontent.com/kai4avaya", + "profile": "https://github.com/kai4avaya", "contributions": [] }, { @@ -62,13 +76,6 @@ "profile": "https://github.com/eliasab16", "contributions": [] }, - { - "login": "kai4avaya", - "name": "kai4avaya", - "avatar_url": "https://avatars.githubusercontent.com/kai4avaya", - "profile": "https://github.com/kai4avaya", - "contributions": [] - }, { "login": "JaredP94", "name": "Jared Ping", @@ -104,13 +111,6 @@ "profile": "https://github.com/jaysonzlin", "contributions": [] }, - { - "login": "Sara-Khosravi", - "name": "Sara Khosravi", - "avatar_url": "https://avatars.githubusercontent.com/Sara-Khosravi", - "profile": "https://github.com/Sara-Khosravi", - "contributions": [] - }, { "login": "sophiacho1", "name": "Sophia Cho", @@ -146,13 +146,6 @@ "profile": "https://github.com/korneelf1", "contributions": [] }, - { - "login": "zishenwan", - "name": "Zishen Wan", - "avatar_url": "https://avatars.githubusercontent.com/zishenwan", - "profile": "https://github.com/zishenwan", - "contributions": [] - }, { "login": "colbybanbury", "name": "Colby Banbury", @@ -161,10 +154,10 @@ "contributions": [] }, { - "login": "DivyaAmirtharaj", - "name": "Divya Amirtharaj", - "avatar_url": "https://avatars.githubusercontent.com/DivyaAmirtharaj", - "profile": "https://github.com/DivyaAmirtharaj", + "login": "zishenwan", + "name": "Zishen Wan", + "avatar_url": "https://avatars.githubusercontent.com/zishenwan", + "profile": "https://github.com/zishenwan", "contributions": [] }, { @@ -182,10 +175,17 @@ "contributions": [] }, { - "login": "James-QiuHaoran", - "name": "Haoran Qiu", - "avatar_url": "https://avatars.githubusercontent.com/James-QiuHaoran", - "profile": "https://github.com/James-QiuHaoran", + "login": "DivyaAmirtharaj", + "name": "Divya Amirtharaj", + "avatar_url": "https://avatars.githubusercontent.com/DivyaAmirtharaj", + "profile": "https://github.com/DivyaAmirtharaj", + "contributions": [] + }, + { + "login": "eezike", + "name": "Emeka Ezike", + "avatar_url": "https://avatars.githubusercontent.com/eezike", + "profile": "https://github.com/eezike", "contributions": [] }, { @@ -195,6 +195,13 @@ "profile": "https://github.com/aptl26", "contributions": [] }, + { + "login": "James-QiuHaoran", + "name": "Haoran Qiu", + "avatar_url": "https://avatars.githubusercontent.com/James-QiuHaoran", + "profile": "https://github.com/James-QiuHaoran", + "contributions": [] + }, { "login": "arnaumarin", "name": "marin-llobet", @@ -203,17 +210,17 @@ "contributions": [] }, { - "login": "MichaelSchnebly", - "name": "Michael Schnebly", - "avatar_url": "https://avatars.githubusercontent.com/MichaelSchnebly", - "profile": "https://github.com/MichaelSchnebly", + "login": "Ekhao", + "name": "Emil Njor", + "avatar_url": "https://avatars.githubusercontent.com/Ekhao", + "profile": "https://github.com/Ekhao", "contributions": [] }, { - "login": "oishib", - "name": "oishib", - "avatar_url": "https://avatars.githubusercontent.com/oishib", - "profile": "https://github.com/oishib", + "login": "AditiR-42", + "name": "Aditi Raju", + "avatar_url": "https://avatars.githubusercontent.com/AditiR-42", + "profile": "https://github.com/AditiR-42", "contributions": [] }, { @@ -224,10 +231,17 @@ "contributions": [] }, { - "login": "AditiR-42", - "name": "Aditi Raju", - "avatar_url": "https://avatars.githubusercontent.com/AditiR-42", - "profile": "https://github.com/AditiR-42", + "login": "MichaelSchnebly", + "name": "Michael Schnebly", + "avatar_url": "https://avatars.githubusercontent.com/MichaelSchnebly", + "profile": "https://github.com/MichaelSchnebly", + "contributions": [] + }, + { + "login": "oishib", + "name": "oishib", + "avatar_url": "https://avatars.githubusercontent.com/oishib", + "profile": "https://github.com/oishib", "contributions": [] }, { @@ -237,13 +251,6 @@ "profile": "https://github.com/ELSuitorHarvard", "contributions": [] }, - { - "login": "Ekhao", - "name": "Emil Njor", - "avatar_url": "https://avatars.githubusercontent.com/Ekhao", - "profile": "https://github.com/Ekhao", - "contributions": [] - }, { "login": "BaeHenryS", "name": "Henry Bae", @@ -251,6 +258,13 @@ "profile": "https://github.com/BaeHenryS", "contributions": [] }, + { + "login": "jaywonchung", + "name": "Jae-Won Chung", + "avatar_url": "https://avatars.githubusercontent.com/jaywonchung", + "profile": "https://github.com/jaywonchung", + "contributions": [] + }, { "login": "leo47007", "name": "Yu-Shun Hsiao", @@ -266,24 +280,10 @@ "contributions": [] }, { - "login": "jaywonchung", - "name": "Jae-Won Chung", - "avatar_url": "https://avatars.githubusercontent.com/jaywonchung", - "profile": "https://github.com/jaywonchung", - "contributions": [] - }, - { - "login": "ShvetankPrakash", - "name": "Shvetank Prakash", - "avatar_url": "https://avatars.githubusercontent.com/ShvetankPrakash", - "profile": "https://github.com/ShvetankPrakash", - "contributions": [] - }, - { - "login": "pongtr", - "name": "Pong Trairatvorakul", - "avatar_url": "https://avatars.githubusercontent.com/pongtr", - "profile": "https://github.com/pongtr", + "login": "marcozennaro", + "name": "Marco Zennaro", + "avatar_url": "https://avatars.githubusercontent.com/marcozennaro", + "profile": "https://github.com/marcozennaro", "contributions": [] }, { @@ -300,6 +300,13 @@ "profile": "https://github.com/arbass22", "contributions": [] }, + { + "login": "pongtr", + "name": "Pong Trairatvorakul", + "avatar_url": "https://avatars.githubusercontent.com/pongtr", + "profile": "https://github.com/pongtr", + "contributions": [] + }, { "login": "jzhou1318", "name": "Jennifer Zhou", @@ -308,17 +315,24 @@ "contributions": [] }, { - "login": "marcozennaro", - "name": "Marco Zennaro", - "avatar_url": "https://avatars.githubusercontent.com/marcozennaro", - "profile": "https://github.com/marcozennaro", + "login": "ShvetankPrakash", + "name": "Shvetank Prakash", + "avatar_url": "https://avatars.githubusercontent.com/ShvetankPrakash", + "profile": "https://github.com/ShvetankPrakash", "contributions": [] }, { - "login": "Emeka Ezike", - "name": "Emeka Ezike", - "avatar_url": "https://www.gravatar.com/avatar/af39c27c6090c50a1921a9b6366e81cc?d=identicon&s=100", - "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", + "login": "alex-oesterling", + "name": "Alex Oesterling", + "avatar_url": "https://avatars.githubusercontent.com/alex-oesterling", + "profile": "https://github.com/alex-oesterling", + "contributions": [] + }, + { + "login": "aryatschand", + "name": "Arya Tschand", + "avatar_url": "https://avatars.githubusercontent.com/aryatschand", + "profile": "https://github.com/aryatschand", "contributions": [] }, { @@ -328,13 +342,6 @@ "profile": "https://github.com/BrunoScaglione", "contributions": [] }, - { - "login": "Allen-Kuang", - "name": "Allen-Kuang", - "avatar_url": "https://avatars.githubusercontent.com/Allen-Kuang", - "profile": "https://github.com/Allen-Kuang", - "contributions": [] - }, { "login": "Gjain234", "name": "Gauri Jain", @@ -342,6 +349,13 @@ "profile": "https://github.com/Gjain234", "contributions": [] }, + { + "login": "Allen-Kuang", + "name": "Allen-Kuang", + "avatar_url": "https://avatars.githubusercontent.com/Allen-Kuang", + "profile": "https://github.com/Allen-Kuang", + "contributions": [] + }, { "login": "FinAminToastCrunch", "name": "Fin Amin", @@ -356,6 +370,13 @@ "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", "contributions": [] }, + { + "login": "vitasam", + "name": "The Random DIY", + "avatar_url": "https://avatars.githubusercontent.com/vitasam", + "profile": "https://github.com/vitasam", + "contributions": [] + }, { "login": "gnodipac886", "name": "gnodipac886", @@ -363,13 +384,6 @@ "profile": "https://github.com/gnodipac886", "contributions": [] }, - { - "login": "alex-oesterling", - "name": "Alex Oesterling", - "avatar_url": "https://avatars.githubusercontent.com/alex-oesterling", - "profile": "https://github.com/alex-oesterling", - "contributions": [] - }, { "login": "serco425", "name": "Sercan Ayg\u00fcn", @@ -378,24 +392,31 @@ "contributions": [] }, { - "login": "emmanuel2406", - "name": "Emmanuel Rassou", - "avatar_url": "https://avatars.githubusercontent.com/emmanuel2406", - "profile": "https://github.com/emmanuel2406", + "login": "BravoBaldo", + "name": "Baldassarre Cesarano", + "avatar_url": "https://avatars.githubusercontent.com/BravoBaldo", + "profile": "https://github.com/BravoBaldo", "contributions": [] }, { - "login": "jasonlyik", - "name": "Jason Yik", - "avatar_url": "https://avatars.githubusercontent.com/jasonlyik", - "profile": "https://github.com/jasonlyik", + "login": "AbenezerKb", + "name": "Abenezer", + "avatar_url": "https://avatars.githubusercontent.com/AbenezerKb", + "profile": "https://github.com/AbenezerKb", "contributions": [] }, { - "login": "abigailswallow", - "name": "abigailswallow", - "avatar_url": "https://avatars.githubusercontent.com/abigailswallow", - "profile": "https://github.com/abigailswallow", + "login": "bilgeacun", + "name": "Bilge Acun", + "avatar_url": "https://avatars.githubusercontent.com/bilgeacun", + "profile": "https://github.com/bilgeacun", + "contributions": [] + }, + { + "login": "YLab-UChicago", + "name": "yanjingl", + "avatar_url": "https://avatars.githubusercontent.com/YLab-UChicago", + "profile": "https://github.com/YLab-UChicago", "contributions": [] }, { @@ -406,10 +427,17 @@ "contributions": [] }, { - "login": "bilgeacun", - "name": "Bilge Acun", - "avatar_url": "https://avatars.githubusercontent.com/bilgeacun", - "profile": "https://github.com/bilgeacun", + "login": "abigailswallow", + "name": "abigailswallow", + "avatar_url": "https://avatars.githubusercontent.com/abigailswallow", + "profile": "https://github.com/abigailswallow", + "contributions": [] + }, + { + "login": "jasonlyik", + "name": "Jason Yik", + "avatar_url": "https://avatars.githubusercontent.com/jasonlyik", + "profile": "https://github.com/jasonlyik", "contributions": [] }, { @@ -420,17 +448,24 @@ "contributions": [] }, { - "login": "jessicaquaye", - "name": "Jessica Quaye", - "avatar_url": "https://avatars.githubusercontent.com/jessicaquaye", - "profile": "https://github.com/jessicaquaye", + "login": "ciyer64", + "name": "Curren Iyer", + "avatar_url": "https://avatars.githubusercontent.com/ciyer64", + "profile": "https://github.com/ciyer64", "contributions": [] }, { - "login": "vitasam", - "name": "The Random DIY", - "avatar_url": "https://avatars.githubusercontent.com/vitasam", - "profile": "https://github.com/vitasam", + "login": "emmanuel2406", + "name": "Emmanuel Rassou", + "avatar_url": "https://avatars.githubusercontent.com/emmanuel2406", + "profile": "https://github.com/emmanuel2406", + "contributions": [] + }, + { + "login": "skmur", + "name": "Sonia Murthy", + "avatar_url": "https://avatars.githubusercontent.com/skmur", + "profile": "https://github.com/skmur", "contributions": [] }, { @@ -441,23 +476,23 @@ "contributions": [] }, { - "login": "skmur", - "name": "Sonia Murthy", - "avatar_url": "https://avatars.githubusercontent.com/skmur", - "profile": "https://github.com/skmur", + "login": "jessicaquaye", + "name": "Jessica Quaye", + "avatar_url": "https://avatars.githubusercontent.com/jessicaquaye", + "profile": "https://github.com/jessicaquaye", "contributions": [] }, { - "login": "Costin-Andrei Oncescu", - "name": "Costin-Andrei Oncescu", - "avatar_url": "https://www.gravatar.com/avatar/fc4f3460cdfb9365ab59bdeafb06413e?d=identicon&s=100", - "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", + "login": "vijay-edu", + "name": "Vijay Edupuganti", + "avatar_url": "https://avatars.githubusercontent.com/vijay-edu", + "profile": "https://github.com/vijay-edu", "contributions": [] }, { - "login": "Baldassarre Cesarano", - "name": "Baldassarre Cesarano", - "avatar_url": "https://www.gravatar.com/avatar/13b816dd84837bb4700a55f47a70763e?d=identicon&s=100", + "login": "Costin-Andrei Oncescu", + "name": "Costin-Andrei Oncescu", + "avatar_url": "https://www.gravatar.com/avatar/fc4f3460cdfb9365ab59bdeafb06413e?d=identicon&s=100", "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", "contributions": [] }, @@ -468,13 +503,6 @@ "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", "contributions": [] }, - { - "login": "Vijay Edupuganti", - "name": "Vijay Edupuganti", - "avatar_url": "https://www.gravatar.com/avatar/b15b6e0e9adf58099905c1a0fd474cb9?d=identicon&s=100", - "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", - "contributions": [] - }, { "login": "Jothi Ramaswamy", "name": "Jothi Ramaswamy", @@ -489,13 +517,6 @@ "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", "contributions": [] }, - { - "login": "Curren Iyer", - "name": "Curren Iyer", - "avatar_url": "https://www.gravatar.com/avatar/bd53d146aa888548c8db4da02bf81e7a?d=identicon&s=100", - "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", - "contributions": [] - }, { "login": "Fatima Shah", "name": "Fatima Shah", @@ -503,13 +524,6 @@ "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", "contributions": [] }, - { - "login": "yanjingl", - "name": "yanjingl", - "avatar_url": "https://www.gravatar.com/avatar/f5d58ba6aa9b00189d4c018d370e8f43?d=identicon&s=100", - "profile": "https://github.com/harvard-edge/cs249r_book/graphs/contributors", - "contributions": [] - }, { "login": "a-saraf", "name": "a-saraf", diff --git a/Machine-Learning-Systems.log b/Machine-Learning-Systems.log new file mode 100644 index 00000000..db5e5212 --- /dev/null +++ b/Machine-Learning-Systems.log @@ -0,0 +1,647 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Homebrew) (preloaded format=pdflatex 2024.3.20) 3 NOV 2024 15:47 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**Machine-Learning-Systems.tex +(./Machine-Learning-Systems.tex +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-02-20> + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrb +ook.cls +Document Class: scrbook 2023/07/07 v3.41 KOMA-Script document class (book) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrk +base.sty +Package: scrkbase 2023/07/07 v3.41 KOMA-Script package (KOMA-Script-dependent b +asics and keyval usage) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrb +ase.sty +Package: scrbase 2023/07/07 v3.41 KOMA-Script package (KOMA-Script-independent +basics and keyval usage) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrl +file.sty +Package: scrlfile 2023/07/07 v3.41 KOMA-Script package (file load hooks) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrl +file-hook.sty +Package: scrlfile-hook 2023/07/07 v3.41 KOMA-Script package (using LaTeX hooks) + + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrl +ogo.sty +Package: scrlogo 2023/07/07 v3.41 KOMA-Script package (logo) +))) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics/keyval. +sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks17 +) +Applying: [2021/05/01] Usage of raw or classic option list on input line 252. +Already applied: [0000/00/00] Usage of raw or classic option list on input line + 368. +)) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/tocb +asic.sty +Package: tocbasic 2023/07/07 v3.41 KOMA-Script package (handling toc-files) +\scr@dte@tocline@numberwidth=\skip48 +\scr@dte@tocline@numbox=\box51 +) +Package tocbasic Info: omitting babel extension for `toc' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `toc' on input line 135. +Package scrbook Info: You've used standard option `10pt'. +(scrbook) This is correct! +(scrbook) Internally I'm using `fontsize=10pt'. +(scrbook) If you'd like to set the option with \KOMAoptions, +(scrbook) you'd have to use `fontsize=10pt' there +(scrbook) instead of `10pt', too. +Class scrbook Info: File `scrsize10pt.clo' used to setup font sizes on input li +ne 2691. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/scrs +ize10pt.clo +File: scrsize10pt.clo 2023/07/07 v3.41 KOMA-Script font size class option (10pt +) +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/koma-script/type +area.sty +Package: typearea 2023/07/07 v3.41 KOMA-Script package (type area) +\ta@bcor=\skip49 +\ta@div=\count188 +Package typearea Info: You've used standard option `letterpaper'. +(typearea) This is correct! +(typearea) Internally I'm using `paper=letter'. +(typearea) If you'd like to set the option with \KOMAoptions, +(typearea) you'd have to use `paper=letter' there +(typearea) instead of `letterpaper', too. +\ta@hblk=\skip50 +\ta@vblk=\skip51 +\ta@temp=\skip52 +\footheight=\skip53 +Package typearea Info: With paper sizes other than (almost) `A4' predefined +(typearea) DIV values do not exist. Using DIV calculation for good +(typearea) line width (unless using `version=3.24` or prior). + +DIV calculation for typearea with good linewidth. +Package typearea Info: These are the values describing the layout: +(typearea) DIV = 6 +(typearea) BCOR = 0.0pt +(typearea) \paperwidth = 614.295pt +(typearea) \textwidth = 307.14752pt +(typearea) DIV departure = 7% +(typearea) \evensidemargin = 132.495pt +(typearea) \oddsidemargin = 30.1125pt +(typearea) \paperheight = 794.96999pt +(typearea) \textheight = 406.0pt +(typearea) \topmargin = 27.225pt +(typearea) \headheight = 15.0pt +(typearea) \headsep = 18.0pt +(typearea) \topskip = 10.0pt +(typearea) \footskip = 42.0pt +(typearea) \baselineskip = 12.0pt +(typearea) on input line 1799. +) +\c@part=\count189 +\c@chapter=\count190 +\c@section=\count191 +\c@subsection=\count192 +\c@subsubsection=\count193 +\c@paragraph=\count194 +\c@subparagraph=\count195 +\scr@dte@chapter@maxnumwidth=\skip54 +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\chapter on input line 5990. +\scr@dte@section@maxnumwidth=\skip55 +Class scrbook Info: using compatibility default `runin=bysign' +(scrbook) for `\section on input line 6001. +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\section on input line 6001. +\scr@dte@part@maxnumwidth=\skip56 +Class scrbook Info: using compatibility default `afterindent=true' +(scrbook) for `\part on input line 6010. +\scr@dte@subsection@maxnumwidth=\skip57 +Class scrbook Info: using compatibility default `runin=bysign' +(scrbook) for `\subsection on input line 6020. +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\subsection on input line 6020. +\scr@dte@subsubsection@maxnumwidth=\skip58 +Class scrbook Info: using compatibility default `runin=bysign' +(scrbook) for `\subsubsection on input line 6030. +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\subsubsection on input line 6030. +\scr@dte@paragraph@maxnumwidth=\skip59 +Class scrbook Info: using compatibility default `runin=bysign' +(scrbook) for `\paragraph on input line 6041. +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\paragraph on input line 6041. +\scr@dte@subparagraph@maxnumwidth=\skip60 +Class scrbook Info: using compatibility default `runin=bysign' +(scrbook) for `\subparagraph on input line 6051. +Class scrbook Info: using compatibility default `afterindent=bysign' +(scrbook) for `\subparagraph on input line 6051. +\abovecaptionskip=\skip61 +\belowcaptionskip=\skip62 +\c@pti@nb@sid@b@x=\box52 +Package tocbasic Info: omitting babel extension for `lof' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `lof' on input line 7242. +\scr@dte@figure@maxnumwidth=\skip63 +\c@figure=\count196 +Package tocbasic Info: omitting babel extension for `lot' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `lot' on input line 7259. +\scr@dte@table@maxnumwidth=\skip64 +\c@table=\count197 +Class scrbook Info: Redefining `\numberline' on input line 7430. +\bibindent=\dimen140 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsmath/amsmath. +sty +Package: amsmath 2023/05/13 v2.17o AMS math features +\@mathmargin=\skip65 + +For additional information on amsmath, use the `?' option. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsmath/amstext. +sty +Package: amstext 2021/08/26 v2.01 AMS text + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsmath/amsgen.s +ty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks18 +\ex@=\dimen141 +)) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsmath/amsbsy.s +ty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen142 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsmath/amsopn.s +ty +Package: amsopn 2022/04/08 v2.04 operator names +) +\inf@bad=\count198 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count199 +\leftroot@=\count266 +LaTeX Info: Redefining \overline on input line 399. +LaTeX Info: Redefining \colon on input line 410. +\classnum@=\count267 +\DOTSCASE@=\count268 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box53 +\strutbox@=\box54 +LaTeX Info: Redefining \big on input line 722. +LaTeX Info: Redefining \Big on input line 723. +LaTeX Info: Redefining \bigg on input line 724. +LaTeX Info: Redefining \Bigg on input line 725. +\big@size=\dimen143 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count269 +LaTeX Info: Redefining \bmod on input line 905. +LaTeX Info: Redefining \pmod on input line 910. +LaTeX Info: Redefining \smash on input line 940. +LaTeX Info: Redefining \relbar on input line 970. +LaTeX Info: Redefining \Relbar on input line 971. +\c@MaxMatrixCols=\count270 +\dotsspace@=\muskip16 +\c@parentequation=\count271 +\dspbrk@lvl=\count272 +\tag@help=\toks19 +\row@=\count273 +\column@=\count274 +\maxfields@=\count275 +\andhelp@=\toks20 +\eqnshift@=\dimen144 +\alignsep@=\dimen145 +\tagshift@=\dimen146 +\tagwidth@=\dimen147 +\totwidth@=\dimen148 +\lineht@=\dimen149 +\@envbody=\toks21 +\multlinegap=\skip66 +\multlinetaggap=\skip67 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2953. +LaTeX Info: Redefining \] on input line 2954. +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsfonts/amssymb +.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/amsfonts/amsfont +s.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/iftex/iftex.st +y +Package: iftex 2022/02/03 v1.0f TeX engine tests +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/base/inputenc.st +y +Package: inputenc 2021/02/14 v1.3d Input encoding file +\inpenc@prehook=\toks23 +\inpenc@posthook=\toks24 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/base/textcomp.st +y +Package: textcomp 2020/02/02 v2.0n Standard LaTeX package +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2015/05/01 v1.6.1 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/upquote/upquote. +sty +Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba +tim +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/microtype/microt +ype.sty +Package: microtype 2023/03/13 v3.1a Micro-typographical refinements (RS) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/etoolbox/etoolbo +x.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count276 +) +\MT@toks=\toks25 +\MT@tempbox=\box55 +\MT@count=\count277 +LaTeX Info: Redefining \noprotrusionifhmode on input line 1059. +LaTeX Info: Redefining \leftprotrusion on input line 1060. +\MT@prot@toks=\toks26 +LaTeX Info: Redefining \rightprotrusion on input line 1078. +LaTeX Info: Redefining \textls on input line 1368. +\MT@outer@kern=\dimen150 +LaTeX Info: Redefining \textmicrotypecontext on input line 1988. +\MT@listname@count=\count278 + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/microtype/microt +ype-pdftex.def +File: microtype-pdftex.def 2023/03/13 v3.1a Definitions specific to pdftex (RS) + +LaTeX Info: Redefining \lsstyle on input line 902. +LaTeX Info: Redefining \lslig on input line 902. +\MT@outer@space=\skip68 +) +Package microtype Info: Loading configuration file microtype.cfg. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/microtype/microt +ype.cfg +File: microtype.cfg 2023/03/13 v3.1a microtype main configuration file (RS) +)) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/xcolor/xcolor.st +y +Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics-cfg/col +or.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 274. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics-def/pdf +tex.def +File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics/mathcol +or.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. +Package xcolor Info: Model `RGB' extended on input line 1366. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/geometry/geometr +y.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/iftex/ifvtex.s +ty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count279 +\Gm@cntv=\count280 +\c@Gm@tempcnt=\count281 +\Gm@bindingoffset=\dimen151 +\Gm@wd@mp=\dimen152 +\Gm@odd@mp=\dimen153 +\Gm@even@mp=\dimen154 +\Gm@layoutwidth=\dimen155 +\Gm@layoutheight=\dimen156 +\Gm@layouthoffset=\dimen157 +\Gm@layoutvoffset=\dimen158 +\Gm@dimlist=\toks27 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/tools/longtable. +sty +Package: longtable 2023-11-01 v4.19 Multi-page Table package (DPC) +\LTleft=\skip69 +\LTright=\skip70 +\LTpre=\skip71 +\LTpost=\skip72 +\LTchunksize=\count282 +\LTcapwidth=\dimen159 +\LT@head=\box56 +\LT@firsthead=\box57 +\LT@foot=\box58 +\LT@lastfoot=\box59 +\LT@gbox=\box60 +\LT@cols=\count283 +\LT@rows=\count284 +\c@LT@tables=\count285 +\c@LT@chunks=\count286 +\LT@p@ftn=\toks28 +) +Class scrbook Info: longtable captions redefined on input line 62. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/booktabs/booktab +s.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen160 +\lightrulewidth=\dimen161 +\cmidrulewidth=\dimen162 +\belowrulesep=\dimen163 +\belowbottomsep=\dimen164 +\aboverulesep=\dimen165 +\abovetopsep=\dimen166 +\cmidrulesep=\dimen167 +\cmidrulekern=\dimen168 +\defaultaddspace=\dimen169 +\@cmidla=\count287 +\@cmidlb=\count288 +\@aboverulesep=\dimen170 +\@belowrulesep=\dimen171 +\@thisruleclass=\count289 +\@lastruleclass=\count290 +\@thisrulewidth=\dimen172 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/tools/array.sty +Package: array 2023/10/16 v2.5g Tabular extension package (FMi) +\col@sep=\dimen173 +\ar@mcellbox=\box61 +\extrarowheight=\dimen174 +\NC@list=\toks29 +\extratabsurround=\skip73 +\backup@length=\skip74 +\ar@cellbox=\box62 +) (/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2023/07/08 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count291 +\calc@Bcount=\count292 +\calc@Adimen=\dimen175 +\calc@Bdimen=\dimen176 +\calc@Askip=\skip75 +\calc@Bskip=\skip76 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count293 +\calc@Cskip=\skip77 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/footnotehyper/fo +otnotehyper.sty +Package: footnotehyper 2021/08/13 v1.1e hyperref aware footnote.sty (JFB) +\FNH@notes=\box63 +\FNH@width=\dimen177 +\FNH@toks=\toks30 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics/graphic +x.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics/graphic +s.sty +Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics/trig.st +y +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/graphics-cfg/gra +phics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. +) +\Gin@req@height=\dimen178 +\Gin@req@width=\dimen179 +) +\pandoc@box=\box64 +\cslhangindent=\skip78 +\csllabelwidth=\skip79 + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/babel/babel.st +y +Package: babel 2024/02/07 v24.2 The Babel package +\babel@savecnt=\count294 +\U@D=\dimen180 +\l@unhyphenated=\language89 + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/babel/txtbabel +.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count295 + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/babel-english/ +english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system +Package babel Info: Hyphen rules for 'canadian' set to \l@english +(babel) (\language0). Reported on input line 102. +Package babel Info: Hyphen rules for 'australian' set to \l@ukenglish +(babel) (\language23). Reported on input line 105. +Package babel Info: Hyphen rules for 'newzealand' set to \l@ukenglish +(babel) (\language23). Reported on input line 108. +)) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/generic/babel/locale/e +n/babel-english.tex +Package babel Info: Importing font and identification data for english +(babel) from babel-en.ini. Reported on input line 11. +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/caption/caption. +sty +Package: caption 2023/08/05 v3.6o Customizing captions (AR) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/caption/caption3 +.sty +Package: caption3 2023/07/31 v2.4d caption3 kernel (AR) +\caption@tempdima=\dimen181 +\captionmargin=\dimen182 +\caption@leftmargin=\dimen183 +\caption@rightmargin=\dimen184 +\caption@width=\dimen185 +\caption@indent=\dimen186 +\caption@parindent=\dimen187 +\caption@hangindent=\dimen188 +Package caption Info: KOMA-Script document class detected. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/caption/caption- +koma.sto +File: caption-koma.sto 2023/09/08 v2.0e Adaption of the caption package to the +KOMA-Script document classes (AR) +)) +\c@caption@flags=\count296 +\c@continuedfloat=\count297 +Package caption Info: longtable package is loaded. + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/caption/ltcaptio +n.sty +Package: ltcaption 2021/01/08 v1.4c longtable captions (AR) +) +Package caption Info: KOMA-Script scrextend package detected. +\caption@addmargin@hsize=\dimen189 +\caption@addmargin@linewidth=\dimen190 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/tools/afterpage. +sty +Package: afterpage 2023/07/04 v1.08 After-Page Package (DPC) +\AP@output=\toks31 +\AP@partial=\box65 +\AP@footins=\box66 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/base/atbegshi-lt +x.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/etex-pkg/etex.st +y +Package: etex 2016/08/01 v2.7 eTeX basic definition package (PEB,DPC) + + +Package etex Warning: Extended allocation already in use. +(etex) etex.sty code will not be used. +(etex) To force etex package to load, add +(etex) \RequirePackage{etex} +(etex) at the start of the document. + +) + +Class scrbook Warning: Usage of package `fancyhdr' together +(scrbook) with a KOMA-Script class is not recommended. +(scrbook) I'd suggest to use +(scrbook) package `scrlayer' or `scrlayer-scrpage', because +(scrbook) they support KOMA-Script classes. +(scrbook) With `fancyhdr' several features of class `scrbook' +(scrbook) like options `headsepline', `footsepline' or command +(scrbook) `\MakeMarkcase' and the commands `\setkomafont' and +(scrbook) `\addtokomafont' for the page style elements need +(scrbook) explicite user intervention to work. +(scrbook) Nevertheless, using requested +(scrbook) package `fancyhdr' on input line 129. + + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/fancyhdr/fancyhd +r.sty +Package: fancyhdr 2022/11/09 v4.1 Extensive control of page headers and footers + +\f@nch@headwidth=\skip80 +\f@nch@O@elh=\skip81 +\f@nch@O@erh=\skip82 +\f@nch@O@olh=\skip83 +\f@nch@O@orh=\skip84 +\f@nch@O@elf=\skip85 +\f@nch@O@erf=\skip86 +\f@nch@O@olf=\skip87 +\f@nch@O@orf=\skip88 +) +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/fontspec/fontspe +c.sty +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/l3packages/xpars +e/xparse.sty +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/l3kernel/expl3.s +ty +Package: expl3 2024-02-20 L3 programming layer (loader) + +(/usr/local/Cellar/texlive/20240312/share/texmf-dist/tex/latex/l3backend/l3back +end-pdftex.def +File: l3backend-pdftex.def 2024-02-20 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count298 +\l__pdf_internal_box=\box67 +)) +Package: xparse 2024-02-18 L3 Experimental document command parser +) +Package: fontspec 2024/02/13 v2.9a Font selection for XeLaTeX and LuaLaTeX + + +! Fatal Package fontspec Error: The fontspec package requires either XeTeX or +(fontspec) LuaTeX. +(fontspec) +(fontspec) You must change your typesetting engine to, +(fontspec) e.g., "xelatex" or "lualatex" instead of +(fontspec) "latex" or "pdflatex". + +Type to continue. + ... + +l.95 \msg_fatal:nn {fontspec} {cannot-use-pdftex} + +? + +! Emergency stop. + + +l.95 \msg_fatal:nn {fontspec} {cannot-use-pdftex} + +*** (cannot \read from terminal in nonstop modes) + + +Here is how much of TeX's memory you used: + 11624 strings out of 474116 + 218366 string characters out of 5735128 + 1928187 words of memory out of 5000000 + 33887 multiletter control sequences out of 15000+600000 + 558832 words of font info for 37 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 108i,1n,107p,10919b,271s stack positions out of 10000i,1000n,20000p,200000b,200000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/README.md b/README.md index 616bcfbb..2cbef5e8 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,16 @@

- ⭐ Help Us Reach 1,000 GitHub Stars! ⭐
- For every 25 stars, Arduino and SEEED will donate a Nicla Vision or XIAO ESP32S3 for AI education. -
Your ⭐ makes a difference. Click below to support our mission!
+ 🌟 We Hit 1,000 GitHub Stars - Thank You! 🌟
+ Thanks to your support, Arduino and SEEED are donating Nicla Vision and XIAO ESP32S3 boards for AI education. +
But we’re not stopping here! Every 25 stars from here on helps us bring even more resources to the community.

+

+ ⭐ Keep the Momentum Going - Star Our Repo! ⭐ +

+ +

GitHub Stars @@ -68,11 +73,17 @@ If you're unsure where to start or have any questions, feel free to reach out th Want to build the book locally? Here's how: 1. **Install Quarto**: Follow the [Quarto installation instructions](https://quarto.org/docs/download/). -2. **Render the Book**: +2. **Render the Book in all formats**: ```bash cd cs249r_book quarto render ``` +3. **Render the Book in a specific format (works faster)**: + ```bash + cd cs249r_book + quarto render --to epub + ``` + --- ## Contributors @@ -86,24 +97,24 @@ This project follows the [all-contributors](https://allcontributors.org) specifi Vijay Janapa Reddi
Vijay Janapa Reddi

+ jasonjabbour
jasonjabbour

Ikechukwu Uchendu
Ikechukwu Uchendu

Naeem Khoshnevis
Naeem Khoshnevis

- jasonjabbour
jasonjabbour

- Douwe den Blanken
Douwe den Blanken

+ Marcelo Rovai
Marcelo Rovai

+ Sara Khosravi
Sara Khosravi

+ Douwe den Blanken
Douwe den Blanken

shanzehbatool
shanzehbatool

- Marcelo Rovai
Marcelo Rovai

+ Kai Kleinbard
Kai Kleinbard

Elias Nuwara
Elias Nuwara

- kai4avaya
kai4avaya

- Jared Ping
Jared Ping

+ Jared Ping
Jared Ping

Matthew Stewart
Matthew Stewart

Itai Shapira
Itai Shapira

Maximilian Lam
Maximilian Lam

Jayson Lin
Jayson Lin

- Sara Khosravi
Sara Khosravi

Sophia Cho
Sophia Cho

@@ -113,79 +124,83 @@ This project follows the [all-contributors](https://allcontributors.org) specifi Korneel Van den Berghe
Korneel Van den Berghe

- Zishen Wan
Zishen Wan

Colby Banbury
Colby Banbury

- Divya Amirtharaj
Divya Amirtharaj

+ Zishen Wan
Zishen Wan

Abdulrahman Mahmoud
Abdulrahman Mahmoud

Srivatsan Krishnan
Srivatsan Krishnan

+ Divya Amirtharaj
Divya Amirtharaj

- Haoran Qiu
Haoran Qiu

+ Emeka Ezike
Emeka Ezike

Aghyad Deeb
Aghyad Deeb

+ Haoran Qiu
Haoran Qiu

marin-llobet
marin-llobet

- Michael Schnebly
Michael Schnebly

- oishib
oishib

+ Emil Njor
Emil Njor

- Jared Ni
Jared Ni

Aditi Raju
Aditi Raju

+ Jared Ni
Jared Ni

+ Michael Schnebly
Michael Schnebly

+ oishib
oishib

ELSuitorHarvard
ELSuitorHarvard

- Emil Njor
Emil Njor

- Henry Bae
Henry Bae

+ Henry Bae
Henry Bae

+ Jae-Won Chung
Jae-Won Chung

Yu-Shun Hsiao
Yu-Shun Hsiao

Mark Mazumder
Mark Mazumder

- Jae-Won Chung
Jae-Won Chung

- Shvetank Prakash
Shvetank Prakash

- Pong Trairatvorakul
Pong Trairatvorakul

+ Marco Zennaro
Marco Zennaro

Eura Nofshin
Eura Nofshin

Andrew Bass
Andrew Bass

+ Pong Trairatvorakul
Pong Trairatvorakul

Jennifer Zhou
Jennifer Zhou

- Marco Zennaro
Marco Zennaro

- Emeka Ezike
Emeka Ezike

+ Shvetank Prakash
Shvetank Prakash

+ Alex Oesterling
Alex Oesterling

+ Arya Tschand
Arya Tschand

Bruno Scaglione
Bruno Scaglione

- Allen-Kuang
Allen-Kuang

Gauri Jain
Gauri Jain

- Fin Amin
Fin Amin

- Fatima Shah
Fatima Shah

+ Allen-Kuang
Allen-Kuang

+ Fin Amin
Fin Amin

+ Fatima Shah
Fatima Shah

+ The Random DIY
The Random DIY

gnodipac886
gnodipac886

- Alex Oesterling
Alex Oesterling

Sercan Aygün
Sercan Aygün

- Emmanuel Rassou
Emmanuel Rassou

- Jason Yik
Jason Yik

- abigailswallow
abigailswallow

- Yang Zhou
Yang Zhou

+ Baldassarre Cesarano
Baldassarre Cesarano

+ Abenezer
Abenezer

Bilge Acun
Bilge Acun

+ yanjingl
yanjingl

+ Yang Zhou
Yang Zhou

+ + + abigailswallow
abigailswallow

+ Jason Yik
Jason Yik

happyappledog
happyappledog

- Jessica Quaye
Jessica Quaye

+ Curren Iyer
Curren Iyer

+ Emmanuel Rassou
Emmanuel Rassou

- The Random DIY
The Random DIY

- Shreya Johri
Shreya Johri

Sonia Murthy
Sonia Murthy

+ Shreya Johri
Shreya Johri

+ Jessica Quaye
Jessica Quaye

+ Vijay Edupuganti
Vijay Edupuganti

Costin-Andrei Oncescu
Costin-Andrei Oncescu

- Baldassarre Cesarano
Baldassarre Cesarano

Annie Laurie Cook
Annie Laurie Cook

- Vijay Edupuganti
Vijay Edupuganti

Jothi Ramaswamy
Jothi Ramaswamy

Batur Arslan
Batur Arslan

- Curren Iyer
Curren Iyer

- - Fatima Shah
Fatima Shah

- yanjingl
yanjingl

a-saraf
a-saraf

+ + songhan
songhan

Zishen
Zishen

diff --git a/_quarto.yml b/_quarto.yml index 988d57ea..47ca125c 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -9,7 +9,7 @@ website: announcement: icon: star-half dismissable: false - content: 🌟 Help Us Reach 1,000 GitHub Stars! 🌟 For every 25 stars, Arduino and SEEED will donate a NiclaVision or XIAO ESP32S3 for AI education. Click here to ⭐ + content: ⭐ We Hit 1,000 GitHub Stars 🎉 Thanks to you, Arduino and SEEED donated AI hardware kits for education!
🎓 The [EDGE AI Foundation](https://www.edgeaifoundation.org/) is now matching scholarship funds for every new GitHub ⭐ (up to 10,000 stars). Click here to support! 🙏
🚀 Our mission. 1 ⭐ == 1 👩‍🎓 Learner. Let's make every star a symbol of engagement and support to make cutting-edge education globally accessible. type: info position: below-navbar @@ -75,6 +75,22 @@ book: inference optimization, and benchmarking methodologies. The book also explores crucial systems considerations in areas like reliability, privacy, responsible AI, and solution validation. Enjoy reading it! + + --- + + 🎙 Listen to the **AI Podcast**, + created using Google's Notebook LM and inspired by insights drawn from our + [IEEE education viewpoint paper](https://web.eng.fiu.edu/gaquan/Papers/ESWEEK24Papers/CPS-Proceedings/pdfs/CODES-ISSS/563900a043/563900a043.pdf). + This podcast provides an accessible overview of what this book is all about. + +   + + + _Acknowledgment:_ Special thanks to [Marco Zennaro](https://www.ictp.it/member/marco-zennaro), one of our early community contributors who helped us with the [AI for Good](./contents/core/ai_for_good/ai_for_good.qmd) chapter, for inspiring the creation of this podcast. Thank you, Marco! + + ---- repo-url: https://github.com/harvard-edge/cs249r_book repo-branch: dev @@ -90,54 +106,37 @@ book: chapters: - text: "---" - - part: FRONT MATTER - chapters: - - index.qmd - - contents/dedication.qmd - - contents/acknowledgements/acknowledgements.qmd - - contents/contributors.qmd - - contents/copyright.qmd - - contents/about.qmd + - index.qmd + - contents/copyright.qmd + - contents/dedication.qmd + - contents/core/acknowledgements/acknowledgements.qmd + - contents/contributors.qmd + - contents/about.qmd - text: "---" - - part: MAIN - - part: Fundamentals - chapters: - - contents/introduction/introduction.qmd - - contents/ml_systems/ml_systems.qmd - - contents/dl_primer/dl_primer.qmd - - part: Workflow - chapters: - - contents/workflow/workflow.qmd - - contents/data_engineering/data_engineering.qmd - - contents/frameworks/frameworks.qmd - - part: Training - chapters: - - contents/training/training.qmd - - contents/efficient_ai/efficient_ai.qmd - - contents/optimizations/optimizations.qmd - - contents/hw_acceleration/hw_acceleration.qmd - - part: Deployment - chapters: - - contents/benchmarking/benchmarking.qmd - - contents/ondevice_learning/ondevice_learning.qmd - - contents/ops/ops.qmd - - part: Advanced Topics - chapters: - - contents/privacy_security/privacy_security.qmd - - contents/responsible_ai/responsible_ai.qmd - - contents/sustainable_ai/sustainable_ai.qmd - - contents/robust_ai/robust_ai.qmd - - contents/generative_ai/generative_ai.qmd - - part: Social Impact - chapters: - - contents/ai_for_good/ai_for_good.qmd - - part: Closing - chapters: - - contents/conclusion/conclusion.qmd + - contents/core/introduction/introduction.qmd + - contents/core/ml_systems/ml_systems.qmd + - contents/core/dl_primer/dl_primer.qmd + - contents/core/workflow/workflow.qmd + - contents/core/data_engineering/data_engineering.qmd + - contents/core/frameworks/frameworks.qmd + - contents/core/training/training.qmd + - contents/core/efficient_ai/efficient_ai.qmd + - contents/core/optimizations/optimizations.qmd + - contents/core/hw_acceleration/hw_acceleration.qmd + - contents/core/benchmarking/benchmarking.qmd + - contents/core/ondevice_learning/ondevice_learning.qmd + - contents/core/ops/ops.qmd + - contents/core/privacy_security/privacy_security.qmd + - contents/core/responsible_ai/responsible_ai.qmd + - contents/core/sustainable_ai/sustainable_ai.qmd + - contents/core/robust_ai/robust_ai.qmd + - contents/core/generative_ai/generative_ai.qmd + - contents/core/ai_for_good/ai_for_good.qmd + - contents/core/conclusion/conclusion.qmd - text: "---" - - part: LABS + - part: contents/labs/labs.qmd chapters: - - contents/labs/labs.qmd + - contents/labs/overview.qmd - contents/labs/getting_started.qmd - part: contents/labs/arduino/nicla_vision/nicla_vision.qmd chapters: @@ -167,37 +166,29 @@ book: - part: REFERENCES chapters: - references.qmd - - text: "---" - appendices: - - contents/tools.qmd - - contents/zoo_datasets.qmd - - contents/zoo_models.qmd - - contents/learning_resources.qmd - - contents/community.qmd - - contents/case_studies.qmd bibliography: # main - - contents/introduction/introduction.bib - - contents/ai_for_good/ai_for_good.bib - - contents/benchmarking/benchmarking.bib - - contents/data_engineering/data_engineering.bib - - contents/dl_primer/dl_primer.bib - - contents/efficient_ai/efficient_ai.bib - - contents/ml_systems/ml_systems.bib - - contents/frameworks/frameworks.bib - - contents/generative_ai/generative_ai.bib - - contents/hw_acceleration/hw_acceleration.bib - - contents/ondevice_learning/ondevice_learning.bib - - contents/ops/ops.bib - - contents/optimizations/optimizations.bib - - contents/privacy_security/privacy_security.bib - - contents/responsible_ai/responsible_ai.bib - - contents/robust_ai/robust_ai.bib - - contents/sustainable_ai/sustainable_ai.bib - - contents/training/training.bib - - contents/workflow/workflow.bib - - contents/conclusion/conclusion.bib + - contents/core/introduction/introduction.bib + - contents/core/ai_for_good/ai_for_good.bib + - contents/core/benchmarking/benchmarking.bib + - contents/core/data_engineering/data_engineering.bib + - contents/core/dl_primer/dl_primer.bib + - contents/core/efficient_ai/efficient_ai.bib + - contents/core/ml_systems/ml_systems.bib + - contents/core/frameworks/frameworks.bib + - contents/core/generative_ai/generative_ai.bib + - contents/core/hw_acceleration/hw_acceleration.bib + - contents/core/ondevice_learning/ondevice_learning.bib + - contents/core/ops/ops.bib + - contents/core/optimizations/optimizations.bib + - contents/core/privacy_security/privacy_security.bib + - contents/core/responsible_ai/responsible_ai.bib + - contents/core/robust_ai/robust_ai.bib + - contents/core/sustainable_ai/sustainable_ai.bib + - contents/core/training/training.bib + - contents/core/workflow/workflow.bib + - contents/core/conclusion/conclusion.bib comments: giscus: @@ -273,8 +264,7 @@ format: include-in-header: text: | -# -# + # # # diff --git a/contents/about.qmd b/contents/about.qmd index 047e1bf6..8d06c17a 100644 --- a/contents/about.qmd +++ b/contents/about.qmd @@ -6,30 +6,28 @@ comments: false ## Overview -Welcome to this collaborative project initiated by the CS249r Machine Learning Systems class at Harvard University. Our goal is to make this book a community resource that assists educators and learners in understanding ML systems. The book will be regularly updated to reflect new insights into ML systems and effective teaching methods. +Welcome to this collaborative textbook, developed as part of the CS249r Machine Learning Systems class at Harvard University. Our goal is to provide a comprehensive resource for educators and students seeking to understand machine learning systems. This book is continually updated to incorporate the latest insights and effective teaching strategies. -## Topics Explored - -This book offers a comprehensive look at various aspects of machine learning systems. We cover the entire end-to-end ML systems workflow, starting with fundamental concepts and progressing through data engineering, AI frameworks, and model training. - -You'll learn about optimizing models for efficiency, deploying AI on various hardware platforms, and benchmarking performance. The book also explores more advanced topics like security, privacy, responsible and sustainable AI, robust and generative AI, and the social impact of AI. By the end, you'll have a solid foundation and practical insights into both the technical and ethical dimensions of machine learning. +## What's Inside the Book -By the time you finish this book, we hope that you'll have a foundational understanding of machine learning and its applications. You'll also learn about real-world implementations of machine learning systems and gain practical experience through project-based labs and assignments. +We explore the technical foundations of machine learning systems, the challenges of building and deploying these systems across the computing continuum, and the vast array of applications they enable. A unique aspect of this book is its function as a conduit to seminal scholarly works and academic research papers, aimed at enriching the reader's understanding and encouraging deeper exploration of the subject. This approach seeks to bridge the gap between pedagogical materials and cutting-edge research trends, offering a comprehensive guide that is in step with the evolving field of applied machine learning. -### **Who Should Read This** +To improve the learning experience, we have included a variety of supplementary materials. Throughout the book, you will find slides that summarize key concepts, videos that provide in-depth explanations and demonstrations, exercises that reinforce your understanding, and labs that offer hands-on experience with the tools and techniques discussed. These additional resources are designed to cater to different learning styles and help you gain a deeper, more practical understanding of the subject matter. -This book is tailored for individuals at various stages in their interaction with machine learning systems. It starts with the fundamentals and progresses to more advanced topics pertinent to the ML community and broader research areas. The most relevant audiences include: +## Topics Explored -* **Students in Computer Science and Electrical Engineering:** Senior and graduate students in these fields will find this book invaluable. It introduces the techniques used in designing and building ML systems, focusing on fundamentals rather than depth—typically the focus of classroom instruction. This book aims to provide the necessary background and context, enabling instructors to delve deeper into advanced topics. An important aspect is the end-to-end focus, often overlooked in traditional curricula. +This textbook offers a comprehensive exploration of various aspects of machine learning systems, covering the entire end-to-end workflow. Starting with foundational concepts, it progresses through essential areas such as data engineering, AI frameworks, and model training. -* **Systems Engineers:** For engineers, this book serves as a guide to understanding the challenges of intelligent applications, especially on resource-constrained ML platforms. It covers the conceptual framework and practical components that constitute an ML system, extending beyond specific areas you might specialize in at your job. +To enhance the learning experience, we included a diverse array of supplementary materials. These resources consist of slides that summarize key concepts, videos providing detailed explanations and demonstrations, exercises designed to reinforce understanding, and labs that offer hands-on experience with the discussed tools and techniques. -* **Researchers and Academics:** Researchers will find that this book addresses the unique challenges of running machine learning algorithms on diverse platforms. Efficiency is becoming increasingly important; understanding algorithms alone is not sufficient, as a deeper understanding of systems is necessary to build more efficient models. For researchers, the book cites seminal papers, guiding you towards foundational works that have shaped the field and drawing connections between various areas with significant implications for your work. +Readers will gain insights into optimizing models for efficiency, deploying AI across different hardware platforms, and benchmarking performance. The book also delves into advanced topics, including security, privacy, responsible and sustainable AI, robust AI, and generative AI. Additionally, it examines the social impact of AI, concluding with an emphasis on the positive contributions AI can make to society. ## Key Learning Outcomes Readers will acquire skills in training and deploying deep neural network models on various platforms, along with understanding the broader challenges involved in their design, development, and deployment. Specifically, after completing this book, learners will be able to: +::: {.callout-tip} + 1. Explain core concepts and their relevance to AI systems. 2. Describe the fundamental components and architecture of AI systems. @@ -50,6 +48,8 @@ Readers will acquire skills in training and deploying deep neural network models 10. Critically assess the ethical implications and societal impacts of AI systems. +::: + ## Prerequisites for Readers * **Basic Programming Skills:** We recommend that you have some prior programming experience, ideally in Python. A grasp of variables, data types, and control structures will make it easier to engage with the book. @@ -65,3 +65,128 @@ Readers will acquire skills in training and deploying deep neural network models * **Resource Availability:** For the hands-on aspects, you'll need a computer with Python and the relevant libraries installed. Optional access to development boards or specific hardware will also be beneficial for experimenting with machine learning model deployment. By meeting these prerequisites, you'll be well-positioned to deepen your understanding of machine learning systems, engage in coding exercises, and even implement practical applications on various devices. + +## Who Should Read This + +This book is designed for individuals at different stages of their journey with machine learning systems, from beginners to those more advanced in the field. It introduces fundamental concepts and progresses to complex topics relevant to the machine learning community and expansive research areas. The key audiences for this book include: + +* **Students in Computer Science and Electrical Engineering:** Senior and graduate students will find this book particularly valuable. It introduces the techniques essential for designing and building ML systems, focusing on foundational knowledge rather than exhaustive detail---often the focus of classroom instruction. This book will provide the necessary background and context, enabling instructors to explore advanced topics more deeply. An essential feature is its end-to-end perspective, which is often overlooked in traditional curricula. + +* **Systems Engineers:** This book serves as a guide for engineers seeking to understand the complexities of intelligent systems and applications, particularly involving ML. It encompasses the conceptual frameworks and practical components that comprise an ML system, extending beyond the specific areas you might encounter in your professional role. + +* **Researchers and Academics:** For researchers, this book addresses the distinct challenges of executing machine learning algorithms across diverse platforms. As efficiency gains importance, a robust understanding of systems, beyond algorithms alone, is crucial for developing more efficient models. The book references seminal papers, directing researchers to works that have influenced the field and establishing connections between various areas with significant implications for their research. + +## How to Navigate This Book + +To get the most out of this book, we recommend a structured learning approach that leverages the various resources provided. Each chapter includes slides, videos, exercises, and labs to cater to different learning styles and reinforce your understanding. + +1. **Fundamentals (Chapters 1-3):** Start by building a strong foundation with the initial chapters, which provide an introduction to AI and cover core topics like AI systems and deep learning. + +2. **Workflow (Chapters 4-6):** With that foundation, move on to the chapters focused on practical aspects of the AI model building process like workflows, data engineering, and frameworks. + +3. **Training (Chapters 7-10):** These chapters offer insights into effectively training AI models, including techniques for efficiency, optimizations, and acceleration. + +4. **Deployment (Chapters 11-13):** Learn about deploying AI on devices and monitoring the operationalization through methods like benchmarking, on-device learning, and MLOps. + +5. **Advanced Topics (Chapters 14-18):** Critically examine topics like security, privacy, ethics, sustainability, robustness, and generative AI. + +6. **Social Impact (Chapter 19):** Explore the positive applications and potential of AI for societal good. + +7. **Conclusion (Chapter 20):** Reflect on the key takeaways and future directions in AI systems. + +While the book is designed for progressive learning, we encourage an interconnected learning approach that allows you to navigate chapters based on your interests and needs. Throughout the book, you'll find case studies and hands-on exercises that help you relate theory to real-world applications. We also recommend participating in forums and groups to engage in [discussions](https://github.com/harvard-edge/cs249r_book/discussions), debate concepts, and share insights with fellow learners. Regularly revisiting chapters can help reinforce your learning and offer new perspectives on the concepts covered. By adopting this structured yet flexible approach and actively engaging with the content and the community, you'll embark on a fulfilling and enriching learning experience that maximizes your understanding. + +## Chapter-by-Chapter Insights + +Here's a closer look at what each chapter covers. We have structured the book into six main sections: Fundamentals, Workflow, Training, Deployment, Advanced Topics, and Impact. These sections closely reflect the major components of a typical machine learning pipeline, from understanding the basic concepts to deploying and maintaining AI systems in real-world applications. By organizing the content in this manner, we aim to provide a logical progression that mirrors the actual process of developing and implementing AI systems. + +### Fundamentals + +In the Fundamentals section, we lay the groundwork for understanding AI. This is far from being a thorough deep dive into the algorithms, but we aim to introduce key concepts, provide an overview of machine learning systems, and dive into the principles and algorithms of deep learning that power AI applications in their associated systems. This section equips you with the essential knowledge needed to grasp the subsequent chapters. + +1. **[Introduction:](./core/introduction/introduction.qmd)** This chapter sets the stage, providing an overview of AI and laying the groundwork for the chapters that follow. +2. **[ML Systems:](./core/ml_systems/ml_systems.qmd)** We introduce the basics of machine learning systems, the platforms where AI algorithms are widely applied. +3. **[Deep Learning Primer:](./core/dl_primer/dl_primer.qmd)** This chapter offers a brief introduction to the algorithms and principles that underpin AI applications in ML systems. + +### Workflow + +The Workflow section guides you through the practical aspects of building AI models. We break down the AI workflow, discuss data engineering best practices, and review popular AI frameworks. By the end of this section, you'll have a clear understanding of the steps involved in developing proficient AI applications and the tools available to streamline the process. + +4. **[AI Workflow:](./core/workflow/workflow.qmd)** This chapter breaks down the machine learning workflow, offering insights into the steps leading to proficient AI applications. +5. **[Data Engineering:](./core/data_engineering/data_engineering.qmd)** We focus on the importance of data in AI systems, discussing how to effectively manage and organize data. +6. **[AI Frameworks:](./core/frameworks/frameworks.qmd)** This chapter reviews different frameworks for developing machine learning models, guiding you in choosing the most suitable one for your projects. + +### Training + +In the Training section, we explore techniques for training efficient and reliable AI models. We cover strategies for achieving efficiency, model optimizations, and the role of specialized hardware in AI acceleration. This section empowers you with the knowledge to develop high-performing models that can be seamlessly integrated into AI systems. + +7. **[AI Training:](./core/training/training.qmd)** This chapter explores model training, exploring techniques for developing efficient and reliable models. +8. **[Efficient AI:](./core/efficient_ai/efficient_ai.qmd)** Here, we discuss strategies for achieving efficiency in AI applications, from computational resource optimization to performance enhancement. +9. **[Model Optimizations:](./core/optimizations/optimizations.qmd)** We explore various avenues for optimizing AI models for seamless integration into AI systems. +10. **[AI Acceleration:](./core/hw_acceleration/hw_acceleration.qmd)** We discuss the role of specialized hardware in enhancing the performance of AI systems. + +### Deployment + +The Deployment section focuses on the challenges and solutions for deploying AI models. We discuss benchmarking methods to evaluate AI system performance, techniques for on-device learning to improve efficiency and privacy, and the processes involved in ML operations. This section equips you with the skills to effectively deploy and maintain AI functionalities in AI systems. + +11. **[Benchmarking AI:](./core/benchmarking/benchmarking.qmd)** This chapter focuses on how to evaluate AI systems through systematic benchmarking methods. +12. **[On-Device Learning:](./core/ondevice_learning/ondevice_learning.qmd)** We explore techniques for localized learning, which enhances both efficiency and privacy. +13. **[ML Operations:](./core/ops/ops.qmd)** This chapter looks at the processes involved in the seamless integration, monitoring, and maintenance of AI functionalities. + +### Advanced Topics + +In the Advanced Topics section, We will study the critical issues surrounding AI. We address privacy and security concerns, explore the ethical principles of responsible AI, discuss strategies for sustainable AI development, examine techniques for building robust AI models, and introduce the exciting field of generative AI. This section broadens your understanding of the complex landscape of AI and prepares you to navigate its challenges. + +14. **[Security & Privacy:](./core/privacy_security/privacy_security.qmd)** As AI becomes more ubiquitous, this chapter addresses the crucial aspects of privacy and security in AI systems. +15. **[Responsible AI:](./core/responsible_ai/responsible_ai.qmd)** We discuss the ethical principles guiding the responsible use of AI, focusing on fairness, accountability, and transparency. +16. **[Sustainable AI:](./core/sustainable_ai/sustainable_ai.qmd)** This chapter explores practices and strategies for sustainable AI, ensuring long-term viability and reduced environmental impact. +17. **[Robust AI:](./core/robust_ai/robust_ai.qmd)** We discuss techniques for developing reliable and robust AI models that can perform consistently across various conditions. +18. **[Generative AI:](./core/generative_ai/generative_ai.qmd)** This chapter explores the algorithms and techniques behind generative AI, opening avenues for innovation and creativity. + +### Social Impact + +The Impact section highlights the transformative potential of AI in various domains. We showcase real-world applications of TinyML in healthcare, agriculture, conservation, and other areas where AI is making a positive difference. This section inspires you to leverage the power of AI for societal good and to contribute to the development of impactful solutions. + +19. **[AI for Good:](./core/ai_for_good/ai_for_good.qmd)** We highlight positive applications of TinyML in areas like healthcare, agriculture, and conservation. + +### Closing + +In the Closing section, we reflect on the key learnings from the book and look ahead to the future of AI. We synthesize the concepts covered, discuss emerging trends, and provide guidance on continuing your learning journey in this rapidly evolving field. This section leaves you with a comprehensive understanding of AI and the excitement to apply your knowledge in innovative ways. + +20. **[Conclusion:](./core/conclusion/conclusion.qmd)** The book concludes with a reflection on the key learnings and future directions in the field of AI. + +## Tailored Learning + +We understand that readers have diverse interests; some may wish to grasp the fundamentals, while others are eager to delve into advanced topics like hardware acceleration or AI ethics. To help you navigate the book more effectively, we've created a persona-based reading guide tailored to your specific interests and goals. This guide assists you in identifying the reader persona that best matches your interests. Each persona represents a distinct reader profile with specific objectives. By selecting the persona that resonates with you, you can focus on the chapters and sections most relevant to your needs. + ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| Persona | Description | Chapters | Focus | ++:=======================+:=========================================================================+:==============================================+:==========================================================================================================+ +| The TinyML Newbie | You are new to the field of TinyML and eager to learn the basics. | 1-3, 8, 9, 10, 12 | Understand the fundamentals, gain insights into efficient and optimized ML, | +| | | | and learn about on-device learning. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The EdgeML Enthusiast | You have some TinyML knowledge and are interested in exploring | 1-3, 8, 9, 10, 12, 13 | Build a strong foundation, delve into the intricacies of efficient ML, | +| | the broader world of EdgeML. | | and explore the operational aspects of embedded systems. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The Computer Visionary | You are fascinated by computer vision and its applications in TinyML | 1-3, 5, 8-10, 12, 13, 17, 20 | Start with the basics, explore data engineering, and study methods for optimizing ML | +| | and EdgeML. | | models. Learn about robustness and the future of ML systems. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The Data Maestro | You are passionate about data and its crucial role in ML systems. | 1-5, 8-13 | Gain a comprehensive understanding of data's role in ML systems, explore the ML | +| | | | workflow, and dive into model optimization and deployment considerations. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The Hardware Hero | You are excited about the hardware aspects of ML systems and how | 1-3, 6, 8-10, 12, 14, 17, 20 | Build a solid foundation in ML systems and frameworks, explore challenges of | +| | they impact model performance. | | optimizing models for efficiency, hardware-software co-design, and security aspects. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The Sustainability | You are an advocate for sustainability and want to learn how to | 1-3, 8-10, 12, 15, 16, 20 | Begin with the fundamentals of ML systems and TinyML, explore model optimization | +| Champion | develop eco-friendly AI systems. | | techniques, and learn about responsible and sustainable AI practices. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The AI Ethicist | You are concerned about the ethical implications of AI and want to | 1-3, 5, 7, 12, 14-16, 19, 20 | Gain insights into the ethical considerations surrounding AI, including fairness, | +| | ensure responsible development and deployment. | | privacy, sustainability, and responsible development practices. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ +| The Full-Stack ML | You are a seasoned ML expert and want to deepen your understanding | The entire book | Understand the end-to-end process of building and deploying ML systems, from data | +| Engineer | of the entire ML system stack. | | engineering and model optimization to hardware acceleration and ethical considerations. | ++------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------+ + +## Join the Community + +Learning in the fast-paced world of AI is a collaborative journey. We set out to nurture a vibrant community of learners, innovators, and contributors. As you explore the concepts and engage with the exercises, we encourage you to share your insights and experiences. Whether it's a novel approach, an interesting application, or a thought-provoking question, your contributions can enrich the learning ecosystem. Engage in discussions, offer and seek guidance, and collaborate on projects to foster a culture of mutual growth and learning. By sharing knowledge, you play an important role in fostering a globally connected, informed, and empowered community. diff --git a/contents/benchmarking/benchmarking.bib b/contents/benchmarking/benchmarking.bib deleted file mode 100644 index 9b0cd0e6..00000000 --- a/contents/benchmarking/benchmarking.bib +++ /dev/null @@ -1,380 +0,0 @@ -%comment{This file was created with betterbib v5.0.11.} - - -@article{bianco2018benchmark, - author = {Bianco, Simone and Cadene, Remi and Celona, Luigi and Napoletano, Paolo}, - title = {Benchmark analysis of representative deep neural network architectures}, - journal = {IEEE access}, - volume = {6}, - pages = {64270--64277}, - year = {2018}, - publisher = {IEEE}, -} - -@inproceedings{adolf2016fathom, - author = {Adolf, Robert and Rama, Saketh and Reagen, Brandon and Wei, Gu-yeon and Brooks, David}, - booktitle = {2016 IEEE International Symposium on Workload Characterization (IISWC)}, - doi = {10.1109/iiswc.2016.7581275}, - organization = {IEEE}, - pages = {1--10}, - publisher = {IEEE}, - source = {Crossref}, - title = {Fathom: {Reference} workloads for modern deep learning methods}, - url = {https://doi.org/10.1109/iiswc.2016.7581275}, - year = {2016}, - month = sep, -} - -@inproceedings{antol2015vqa, - author = {Antol, Stanislaw and Agrawal, Aishwarya and Lu, Jiasen and Mitchell, Margaret and Batra, Dhruv and Zitnick, C. Lawrence and Parikh, Devi}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/iccv/AntolALMBZP15.bib}, - booktitle = {2015 IEEE International Conference on Computer Vision (ICCV)}, - doi = {10.1109/iccv.2015.279}, - pages = {2425--2433}, - publisher = {IEEE}, - timestamp = {Wed, 24 May 2017 01:00:00 +0200}, - title = {{VQA:} {Visual} Question Answering}, - url = {https://doi.org/10.1109/iccv.2015.279}, - year = {2015}, - source = {Crossref}, - month = dec, -} - -@article{banbury2020benchmarking, - author = {Banbury, Colby R and Reddi, Vijay Janapa and Lam, Max and Fu, William and Fazel, Amin and Holleman, Jeremy and Huang, Xinyuan and Hurtado, Robert and Kanter, David and Lokhmotov, Anton and others}, - journal = {ArXiv preprint}, - title = {Benchmarking tinyml systems: {Challenges} and direction}, - url = {https://arxiv.org/abs/2003.04821}, - volume = {abs/2003.04821}, - year = {2020}, -} - -@article{beyer2020we, - author = {Beyer, Lucas and H\'enaff, Olivier J and Kolesnikov, Alexander and Zhai, Xiaohua and Oord, A\"aron van den}, - journal = {ArXiv preprint}, - title = {Are we done with imagenet?}, - url = {https://arxiv.org/abs/2006.07159}, - volume = {abs/2006.07159}, - year = {2020}, -} - -@inproceedings{brown2020language, - author = {Brown, Tom B. and Mann, Benjamin and Ryder, Nick and Subbiah, Melanie and Kaplan, Jared and Dhariwal, Prafulla and Neelakantan, Arvind and Shyam, Pranav and Sastry, Girish and Askell, Amanda and Agarwal, Sandhini and Herbert-Voss, Ariel and Krueger, Gretchen and Henighan, Tom and Child, Rewon and Ramesh, Aditya and Ziegler, Daniel M. and Wu, Jeffrey and Winter, Clemens and Hesse, Christopher and Chen, Mark and Sigler, Eric and Litwin, Mateusz and Gray, Scott and Chess, Benjamin and Clark, Jack and Berner, Christopher and McCandlish, Sam and Radford, Alec and Sutskever, Ilya and Amodei, Dario}, - editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/BrownMRSKDNSSAA20.bib}, - booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, - timestamp = {Tue, 19 Jan 2021 00:00:00 +0100}, - title = {Language Models are Few-Shot Learners}, - url = {https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html}, - year = {2020}, -} - -@inproceedings{chu2021discovering, - author = {Chu, Grace and Arikan, Okan and Bender, Gabriel and Wang, Weijun and Brighton, Achille and Kindermans, Pieter-Jan and Liu, Hanxiao and Akin, Berkin and Gupta, Suyog and Howard, Andrew}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/cvpr/ChuABWBKLAG021.bib}, - booktitle = {2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW)}, - doi = {10.1109/cvprw53098.2021.00337}, - pages = {3022--3031}, - publisher = {IEEE}, - timestamp = {Mon, 18 Jul 2022 01:00:00 +0200}, - title = {Discovering Multi-Hardware Mobile Models via Architecture Search}, - url = {https://doi.org/10.1109/cvprw53098.2021.00337}, - year = {2021}, - source = {Crossref}, - month = jun, -} - -@article{coleman2017dawnbench, - author = {Coleman, Cody and Kang, Daniel and Narayanan, Deepak and Nardi, Luigi and Zhao, Tian and Zhang, Jian and Bailis, Peter and Olukotun, Kunle and R\'e, Chris and Zaharia, Matei}, - doi = {10.1145/3352020.3352024}, - issn = {0163-5980}, - journal = {ACM SIGOPS Operating Systems Review}, - number = {1}, - pages = {14--25}, - publisher = {Association for Computing Machinery (ACM)}, - source = {Crossref}, - title = {Analysis of {DAWNBench,} a Time-to-Accuracy Machine Learning Performance Benchmark}, - url = {https://doi.org/10.1145/3352020.3352024}, - volume = {53}, - year = {2019}, - month = jul, -} - -@inproceedings{coleman2022similarity, - author = {Coleman, Cody and Chou, Edward and Katz-Samuels, Julian and Culatana, Sean and Bailis, Peter and Berg, Alexander C. and Nowak, Robert D. and Sumbaly, Roshan and Zaharia, Matei and Yalniz, I. Zeki}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/aaai/ColemanCKCBBNSZ22.bib}, - booktitle = {Thirty-Sixth AAAI Conference on Artificial Intelligence, AAAI 2022, Thirty-Fourth Conference on Innovative Applications of Artificial Intelligence, IAAI 2022, The Twelveth Symposium on Educational Advances in Artificial Intelligence, EAAI 2022 Virtual Event, February 22 - March 1, 2022}, - pages = {6402--6410}, - publisher = {AAAI Press}, - timestamp = {Mon, 11 Jul 2022 01:00:00 +0200}, - title = {Similarity Search for Efficient Active Learning and Search of Rare Concepts}, - url = {https://ojs.aaai.org/index.php/AAAI/article/view/20591}, - year = {2022}, -} - -@article{david2021tensorflow, - author = {David, Robert and Duke, Jared and Jain, Advait and Janapa Reddi, Vijay and Jeffries, Nat and Li, Jian and Kreeger, Nick and Nappier, Ian and Natraj, Meghna and Wang, Tiezhen and others}, - journal = {Proceedings of Machine Learning and Systems}, - pages = {800--811}, - title = {Tensorflow lite micro: {Embedded} machine learning for tinyml systems}, - volume = {3}, - year = {2021}, -} - -@article{davies2018loihi, - author = {Davies, Mike and Srinivasa, Narayan and Lin, Tsung-Han and Chinya, Gautham and Cao, Yongqiang and Choday, Sri Harsha and Dimou, Georgios and Joshi, Prasad and Imam, Nabil and Jain, Shweta and Liao, Yuyun and Lin, Chit-Kwan and Lines, Andrew and Liu, Ruokun and Mathaikutty, Deepak and McCoy, Steven and Paul, Arnab and Tse, Jonathan and Venkataramanan, Guruguhanathan and Weng, Yi-Hsin and Wild, Andreas and Yang, Yoonseok and Wang, Hong}, - doi = {10.1109/mm.2018.112130359}, - issn = {0272-1732, 1937-4143}, - journal = {IEEE Micro}, - number = {1}, - pages = {82--99}, - publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, - source = {Crossref}, - title = {Loihi: {A} Neuromorphic Manycore Processor with On-Chip Learning}, - url = {https://doi.org/10.1109/mm.2018.112130359}, - volume = {38}, - year = {2018}, - month = jan, -} - -@inproceedings{devlin2018bert, - author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, - address = {Minneapolis, Minnesota}, - booktitle = {Proceedings of the 2019 Conference of the North}, - doi = {10.18653/v1/n19-1423}, - pages = {4171--4186}, - publisher = {Association for Computational Linguistics}, - title = {{BERT:} {Pre-training} of Deep Bidirectional Transformers for Language Understanding}, - url = {https://doi.org/10.18653/v1/n19-1423}, - year = {2019}, - source = {Crossref}, -} - -@article{gaviria2022dollar, - author = {Mattson, Peter and Reddi, Vijay Janapa and Cheng, Christine and Coleman, Cody and Diamos, Greg and Kanter, David and Micikevicius, Paulius and Patterson, David and Schmuelling, Guenther and Tang, Hanlin and Wei, Gu-Yeon and Wu, Carole-Jean}, - doi = {10.1109/mm.2020.2974843}, - issn = {0272-1732, 1937-4143}, - journal = {IEEE Micro}, - number = {2}, - pages = {8--16}, - publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, - source = {Crossref}, - title = {{MLPerf:} {An} Industry Standard Benchmark Suite for Machine Learning Performance}, - url = {https://doi.org/10.1109/mm.2020.2974843}, - volume = {40}, - year = {2020}, - month = mar, -} - -@inproceedings{hendrycks2021natural, - author = {Hendrycks, Dan and Zhao, Kevin and Basart, Steven and Steinhardt, Jacob and Song, Dawn}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/cvpr/HendrycksZBSS21.bib}, - booktitle = {2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, - doi = {10.1109/cvpr46437.2021.01501}, - pages = {15262--15271}, - publisher = {IEEE}, - timestamp = {Mon, 18 Jul 2022 01:00:00 +0200}, - title = {Natural Adversarial Examples}, - url = {https://doi.org/10.1109/cvpr46437.2021.01501}, - year = {2021}, - source = {Crossref}, - month = jun, -} - -@inproceedings{ignatov2018ai, - author = {Ignatov, Andrey and Timofte, Radu and Kulik, Andrei and Yang, Seungsoo and Wang, Ke and Baum, Felix and Wu, Max and Xu, Lirong and Van Gool, Luc}, - booktitle = {2019 IEEE/CVF International Conference on Computer Vision Workshop (ICCVW)}, - doi = {10.1109/iccvw.2019.00447}, - pages = {0--0}, - publisher = {IEEE}, - source = {Crossref}, - title = {{AI} Benchmark: {All} About Deep Learning on Smartphones in 2019}, - url = {https://doi.org/10.1109/iccvw.2019.00447}, - year = {2019}, - month = oct, -} - -@inproceedings{kiela2021dynabench, - author = {Kiela, Douwe and Bartolo, Max and Nie, Yixin and Kaushik, Divyansh and Geiger, Atticus and Wu, Zhengxuan and Vidgen, Bertie and Prasad, Grusha and Singh, Amanpreet and Ringshia, Pratik and Ma, Zhiyi and Thrush, Tristan and Riedel, Sebastian and Waseem, Zeerak and Stenetorp, Pontus and Jia, Robin and Bansal, Mohit and Potts, Christopher and Williams, Adina}, - address = {Online}, - booktitle = {Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies}, - doi = {10.18653/v1/2021.naacl-main.324}, - pages = {4110--4124}, - publisher = {Association for Computational Linguistics}, - title = {Dynabench: {Rethinking} Benchmarking in {NLP}}, - url = {https://doi.org/10.18653/v1/2021.naacl-main.324}, - year = {2021}, - source = {Crossref}, -} - -@inproceedings{koh2021wilds, - author = {Koh, Pang Wei and Sagawa, Shiori and Marklund, Henrik and Xie, Sang Michael and Zhang, Marvin and Balsubramani, Akshay and Hu, Weihua and Yasunaga, Michihiro and Phillips, Richard Lanas and Gao, Irena and Lee, Tony and David, Etienne and Stavness, Ian and Guo, Wei and Earnshaw, Berton and Haque, Imran S. and Beery, Sara M. and Leskovec, Jure and Kundaje, Anshul and Pierson, Emma and Levine, Sergey and Finn, Chelsea and Liang, Percy}, - editor = {Meila, Marina and Zhang, Tong}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/icml/KohSMXZBHYPGLDS21.bib}, - booktitle = {Proceedings of the 38th International Conference on Machine Learning, ICML 2021, 18-24 July 2021, Virtual Event}, - pages = {5637--5664}, - publisher = {PMLR}, - series = {Proceedings of Machine Learning Research}, - timestamp = {Tue, 13 Dec 2022 00:00:00 +0100}, - title = {{WILDS:} {A} Benchmark of in-the-Wild Distribution Shifts}, - url = {http://proceedings.mlr.press/v139/koh21a.html}, - volume = {139}, - year = {2021}, -} - -@inproceedings{lin2014microsoft, - author = {Lin, Tsung-Yi and Maire, Michael and Belongie, Serge and Hays, James and Perona, Pietro and Ramanan, Deva and Doll\'ar, Piotr and Zitnick, C Lawrence}, - booktitle = {Computer Vision{\textendash}ECCV 2014: 13th European Conference, Zurich, Switzerland, September 6-12, 2014, Proceedings, Part V 13}, - organization = {Springer}, - pages = {740--755}, - title = {Microsoft coco: {Common} objects in context}, - year = {2014}, -} - -@inproceedings{lundberg2017unified, - author = {Lundberg, Scott M. and Lee, Su-In}, - editor = {Guyon, Isabelle and von Luxburg, Ulrike and Bengio, Samy and Wallach, Hanna M. and Fergus, Rob and Vishwanathan, S. V. N. and Garnett, Roman}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/LundbergL17.bib}, - booktitle = {Advances in Neural Information Processing Systems 30: Annual Conference on Neural Information Processing Systems 2017, December 4-9, 2017, Long Beach, CA, USA}, - pages = {4765--4774}, - timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, - title = {A Unified Approach to Interpreting Model Predictions}, - url = {https://proceedings.neurips.cc/paper/2017/hash/8a20a8621978632d76c43dfd28b67767-Abstract.html}, - year = {2017}, -} - -@article{maass1997networks, - author = {Maass, Wolfgang}, - doi = {10.1016/s0893-6080(97)00011-7}, - issn = {0893-6080}, - journal = {Neural Networks}, - number = {9}, - pages = {1659--1671}, - publisher = {Elsevier BV}, - source = {Crossref}, - title = {Networks of spiking neurons: {The} third generation of neural network models}, - url = {https://doi.org/10.1016/s0893-6080(97)00011-7}, - volume = {10}, - year = {1997}, - month = dec, -} - -@article{mattson2020mlperf, - author = {Mattson, Peter and Reddi, Vijay Janapa and Cheng, Christine and Coleman, Cody and Diamos, Greg and Kanter, David and Micikevicius, Paulius and Patterson, David and Schmuelling, Guenther and Tang, Hanlin and Wei, Gu-Yeon and Wu, Carole-Jean}, - doi = {10.1109/mm.2020.2974843}, - issn = {0272-1732, 1937-4143}, - journal = {IEEE Micro}, - number = {2}, - pages = {8--16}, - publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, - source = {Crossref}, - title = {{MLPerf:} {An} Industry Standard Benchmark Suite for Machine Learning Performance}, - url = {https://doi.org/10.1109/mm.2020.2974843}, - volume = {40}, - year = {2020}, - month = mar, -} - -@article{modha2023neural, - author = {Modha, Dharmendra S. and Akopyan, Filipp and Andreopoulos, Alexander and Appuswamy, Rathinakumar and Arthur, John V. and Cassidy, Andrew S. and Datta, Pallab and DeBole, Michael V. and Esser, Steven K. and Otero, Carlos Ortega and Sawada, Jun and Taba, Brian and Amir, Arnon and Bablani, Deepika and Carlson, Peter J. and Flickner, Myron D. and Gandhasri, Rajamohan and Garreau, Guillaume J. and Ito, Megumi and Klamo, Jennifer L. and Kusnitz, Jeffrey A. and McClatchey, Nathaniel J. and McKinstry, Jeffrey L. and Nakamura, Yutaka and Nayak, Tapan K. and Risk, William P. and Schleupen, Kai and Shaw, Ben and Sivagnaname, Jay and Smith, Daniel F. and Terrizzano, Ignacio and Ueda, Takanori}, - doi = {10.1126/science.adh1174}, - issn = {0036-8075, 1095-9203}, - journal = {Science}, - number = {6668}, - pages = {329--335}, - publisher = {American Association for the Advancement of Science (AAAS)}, - source = {Crossref}, - title = {Neural inference at the frontier of energy, space, and time}, - url = {https://doi.org/10.1126/science.adh1174}, - volume = {382}, - year = {2023}, - month = oct, -} - -@inproceedings{reddi2020mlperf, - author = {Reddi, Vijay Janapa and Cheng, Christine and Kanter, David and Mattson, Peter and Schmuelling, Guenther and Wu, Carole-Jean and Anderson, Brian and Breughe, Maximilien and Charlebois, Mark and Chou, William and Chukka, Ramesh and Coleman, Cody and Davis, Sam and Deng, Pan and Diamos, Greg and Duke, Jared and Fick, Dave and Gardner, J. Scott and Hubara, Itay and Idgunji, Sachin and Jablin, Thomas B. and Jiao, Jeff and John, Tom St. and Kanwar, Pankaj and Lee, David and Liao, Jeffery and Lokhmotov, Anton and Massa, Francisco and Meng, Peng and Micikevicius, Paulius and Osborne, Colin and Pekhimenko, Gennady and Rajan, Arun Tejusve Raghunath and Sequeira, Dilip and Sirasao, Ashish and Sun, Fei and Tang, Hanlin and Thomson, Michael and Wei, Frank and Wu, Ephrem and Xu, Lingjie and Yamada, Koichi and Yu, Bing and Yuan, George and Zhong, Aaron and Zhang, Peizhao and Zhou, Yuchen}, - booktitle = {2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)}, - doi = {10.1109/isca45697.2020.00045}, - organization = {IEEE}, - pages = {446--459}, - publisher = {IEEE}, - source = {Crossref}, - title = {{MLPerf} Inference Benchmark}, - url = {https://doi.org/10.1109/isca45697.2020.00045}, - year = {2020}, - month = may, -} - -@inproceedings{ribeiro2016should, - author = {Ribeiro, Marco Tulio and Singh, Sameer and Guestrin, Carlos}, - booktitle = {Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining}, - pages = {1135--1144}, - title = {{\textquotedblright} Why should i trust you?{\textquotedblright} Explaining the predictions of any classifier}, - year = {2016}, -} - -@article{schuman2022opportunities, - author = {Schuman, Catherine D. and Kulkarni, Shruti R. and Parsa, Maryam and Mitchell, J. Parker and Date, Prasanna and Kay, Bill}, - doi = {10.1038/s43588-021-00184-y}, - issn = {2662-8457}, - journal = {Nature Computational Science}, - number = {1}, - pages = {10--19}, - publisher = {Springer Science and Business Media LLC}, - source = {Crossref}, - title = {Opportunities for neuromorphic computing algorithms and applications}, - url = {https://doi.org/10.1038/s43588-021-00184-y}, - volume = {2}, - year = {2022}, - month = jan, -} - -@article{warden2018speech, - author = {Warden, Pete}, - journal = {ArXiv preprint}, - title = {Speech commands: {A} dataset for limited-vocabulary speech recognition}, - url = {https://arxiv.org/abs/1804.03209}, - volume = {abs/1804.03209}, - year = {2018}, -} - -@inproceedings{xie2020adversarial, - author = {Xie, Cihang and Tan, Mingxing and Gong, Boqing and Wang, Jiang and Yuille, Alan L. and Le, Quoc V.}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/cvpr/XieTGWYL20.bib}, - booktitle = {2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, - doi = {10.1109/cvpr42600.2020.00090}, - pages = {816--825}, - publisher = {IEEE}, - timestamp = {Tue, 13 Oct 2020 01:00:00 +0200}, - title = {Adversarial Examples Improve Image Recognition}, - url = {https://doi.org/10.1109/cvpr42600.2020.00090}, - year = {2020}, - source = {Crossref}, - month = jun, -} - -@article{xu2023demystifying, - author = {Xu, Hu and Xie, Saining and Tan, Xiaoqing Ellen and Huang, Po-Yao and Howes, Russell and Sharma, Vasu and Li, Shang-Wen and Ghosh, Gargi and Zettlemoyer, Luke and Feichtenhofer, Christoph}, - journal = {ArXiv preprint}, - title = {Demystifying {CLIP} Data}, - url = {https://arxiv.org/abs/2309.16671}, - volume = {abs/2309.16671}, - year = {2023}, -} - -@misc{yik2023neurobench, - author = {Yik, Jason and Ahmed, Soikat Hasan and Ahmed, Zergham and Anderson, Brian and Andreou, Andreas G. and Bartolozzi, Chiara and Basu, Arindam and den Blanken, Douwe and Bogdan, Petrut and Bohte, Sander and Bouhadjar, Younes and Buckley, Sonia and Cauwenberghs, Gert and Corradi, Federico and de Croon, Guido and Danielescu, Andreea and Daram, Anurag and Davies, Mike and Demirag, Yigit and Eshraghian, Jason and Forest, Jeremy and Furber, Steve and Furlong, Michael and Gilra, Aditya and Indiveri, Giacomo and Joshi, Siddharth and Karia, Vedant and Khacef, Lyes and Knight, James C. and Kriener, Laura and Kubendran, Rajkumar and Kudithipudi, Dhireesha and Lenz, Gregor and Manohar, Rajit and Mayr, Christian and Michmizos, Konstantinos and Muir, Dylan and Neftci, Emre and Nowotny, Thomas and Ottati, Fabrizio and Ozcelikkale, Ayca and Pacik-Nelson, Noah and Panda, Priyadarshini and Pao-Sheng, Sun and Payvand, Melika and Pehle, Christian and Petrovici, Mihai A. and Posch, Christoph and Renner, Alpha and Sandamirskaya, Yulia and Schaefer, Clemens JS and van Schaik, Andr\'e and Schemmel, Johannes and Schuman, Catherine and Seo, Jae-sun and Sheik, Sadique and Shrestha, Sumit Bam and Sifalakis, Manolis and Sironi, Amos and Stewart, Kenneth and Stewart, Terrence C. and Stratmann, Philipp and Tang, Guangzhi and Timcheck, Jonathan and Verhelst, Marian and Vineyard, Craig M. and Vogginger, Bernhard and Yousefzadeh, Amirreza and Zhou, Biyan and Zohora, Fatima Tuz and Frenkel, Charlotte and Reddi, Vijay Janapa}, - archiveprefix = {arXiv}, - eprint = {2304.04640}, - primaryclass = {cs.AI}, - title = {{NeuroBench:} {Advancing} Neuromorphic Computing through Collaborative, Fair and Representative Benchmarking}, - year = {2023}, -} diff --git a/contents/case_studies.qmd b/contents/case_studies.qmd deleted file mode 100644 index e346f64e..00000000 --- a/contents/case_studies.qmd +++ /dev/null @@ -1,8 +0,0 @@ -# Case Studies {#sec-case_studies} - -::: {.callout-tip} - -## Learning Objectives - -* *Coming soon.* -::: diff --git a/contents/community.qmd b/contents/community.qmd deleted file mode 100644 index ed282795..00000000 --- a/contents/community.qmd +++ /dev/null @@ -1,50 +0,0 @@ -# Communities {#sec-communities} - -Welcome to our dedicated hub for TinyML enthusiasts. Whether you are a seasoned developer, a researcher, or a curious hobbyist looking to dive into the world of TinyML, this page is a non-exhaustive list of community resources and forums to help you get started and thrive in this domain. From vibrant online communities and educational platforms to blogs and social media groups, discover a world brimming with knowledge, collaboration, and innovation. Begin your TinyML journey here, where opportunities for learning and networking are just a click away! - -## Online Forums - -1. **TinyML Forum** - Website: [TinyML Forum](https://forums.tinyml.org/) - Description: A dedicated forum for discussions, news, and updates on TinyML. - -2. **Reddit** - Subreddits: r/TinyML - Description: Reddit community discussing various topics related to TinyML. - -## Blogs and Websites - -1. **TinyML Foundation** - Website: [TinyML Foundation](https://tinyml.org/) - Description: The official website offers a wealth of information including research, news, and events. - -2. **Edge Impulse Blog** - Website: [Blog](https://www.edgeimpulse.com/blog) - Description: Contains several articles, tutorials, and resources on TinyML. - -3. **Tiny Machine Learning Open Education Initiative (TinyMLedu)** - Website: [TinyML Open Education Initiative](https://tinymledu.org/) - Description: The website offers links to educational materials on TinyML, training events and research papers. - -## Social Media Groups - -1. **LinkedIn Groups** - Description: Join TinyML groups on LinkedIn to connect with professionals and enthusiasts in the field. - -2. **Twitter** - Description: Follow TinyML enthusiasts, organizations, and experts on Twitter for the latest news and updates. - Example handles to follow: - - [Twitter](https://twitter.com/tinymlf) - - [EdgeImpulse](https://twitter.com/EdgeImpulse) - -## Conferences and Meetups - -1. **TinyML Summit** - Website: [TinyML Summit](https://www.tinyml.org/) - Description: Annual event where professionals and enthusiasts gather to discuss the latest developments in TinyML. - -2. **Meetup** - Website: [Meetup](https://www.meetup.com/pro/tinyml) - Description: Search for TinyML groups on Meetup to find local or virtual gatherings. - -Remember to always check the credibility and activity level of the platforms and groups before diving in to ensure a productive experience. diff --git a/contents/contributors.bib b/contents/contributors.bib deleted file mode 100644 index e69de29b..00000000 diff --git a/contents/contributors.qmd b/contents/contributors.qmd index ac5cd3db..a5e4415d 100644 --- a/contents/contributors.qmd +++ b/contents/contributors.qmd @@ -73,24 +73,24 @@ We extend our sincere thanks to the diverse group of individuals who have genero Vijay Janapa Reddi
Vijay Janapa Reddi

+ jasonjabbour
jasonjabbour

Ikechukwu Uchendu
Ikechukwu Uchendu

Naeem Khoshnevis
Naeem Khoshnevis

- jasonjabbour
jasonjabbour

- Douwe den Blanken
Douwe den Blanken

+ Marcelo Rovai
Marcelo Rovai

+ Sara Khosravi
Sara Khosravi

+ Douwe den Blanken
Douwe den Blanken

shanzehbatool
shanzehbatool

- Marcelo Rovai
Marcelo Rovai

+ Kai Kleinbard
Kai Kleinbard

Elias Nuwara
Elias Nuwara

- kai4avaya
kai4avaya

- Jared Ping
Jared Ping

+ Jared Ping
Jared Ping

Matthew Stewart
Matthew Stewart

Itai Shapira
Itai Shapira

Maximilian Lam
Maximilian Lam

Jayson Lin
Jayson Lin

- Sara Khosravi
Sara Khosravi

Sophia Cho
Sophia Cho

@@ -100,79 +100,83 @@ We extend our sincere thanks to the diverse group of individuals who have genero Korneel Van den Berghe
Korneel Van den Berghe

- Zishen Wan
Zishen Wan

Colby Banbury
Colby Banbury

- Divya Amirtharaj
Divya Amirtharaj

+ Zishen Wan
Zishen Wan

Abdulrahman Mahmoud
Abdulrahman Mahmoud

Srivatsan Krishnan
Srivatsan Krishnan

+ Divya Amirtharaj
Divya Amirtharaj

- Haoran Qiu
Haoran Qiu

+ Emeka Ezike
Emeka Ezike

Aghyad Deeb
Aghyad Deeb

+ Haoran Qiu
Haoran Qiu

marin-llobet
marin-llobet

- Michael Schnebly
Michael Schnebly

- oishib
oishib

+ Emil Njor
Emil Njor

- Jared Ni
Jared Ni

Aditi Raju
Aditi Raju

+ Jared Ni
Jared Ni

+ Michael Schnebly
Michael Schnebly

+ oishib
oishib

ELSuitorHarvard
ELSuitorHarvard

- Emil Njor
Emil Njor

- Henry Bae
Henry Bae

+ Henry Bae
Henry Bae

+ Jae-Won Chung
Jae-Won Chung

Yu-Shun Hsiao
Yu-Shun Hsiao

Mark Mazumder
Mark Mazumder

- Jae-Won Chung
Jae-Won Chung

- Shvetank Prakash
Shvetank Prakash

- Pong Trairatvorakul
Pong Trairatvorakul

+ Marco Zennaro
Marco Zennaro

Eura Nofshin
Eura Nofshin

Andrew Bass
Andrew Bass

+ Pong Trairatvorakul
Pong Trairatvorakul

Jennifer Zhou
Jennifer Zhou

- Marco Zennaro
Marco Zennaro

- Emeka Ezike
Emeka Ezike

+ Shvetank Prakash
Shvetank Prakash

+ Alex Oesterling
Alex Oesterling

+ Arya Tschand
Arya Tschand

Bruno Scaglione
Bruno Scaglione

- Allen-Kuang
Allen-Kuang

Gauri Jain
Gauri Jain

- Fin Amin
Fin Amin

- Fatima Shah
Fatima Shah

+ Allen-Kuang
Allen-Kuang

+ Fin Amin
Fin Amin

+ Fatima Shah
Fatima Shah

+ The Random DIY
The Random DIY

gnodipac886
gnodipac886

- Alex Oesterling
Alex Oesterling

Sercan Aygün
Sercan Aygün

- Emmanuel Rassou
Emmanuel Rassou

- Jason Yik
Jason Yik

- abigailswallow
abigailswallow

- Yang Zhou
Yang Zhou

+ Baldassarre Cesarano
Baldassarre Cesarano

+ Abenezer
Abenezer

Bilge Acun
Bilge Acun

+ yanjingl
yanjingl

+ Yang Zhou
Yang Zhou

+ + + abigailswallow
abigailswallow

+ Jason Yik
Jason Yik

happyappledog
happyappledog

- Jessica Quaye
Jessica Quaye

+ Curren Iyer
Curren Iyer

+ Emmanuel Rassou
Emmanuel Rassou

- The Random DIY
The Random DIY

- Shreya Johri
Shreya Johri

Sonia Murthy
Sonia Murthy

+ Shreya Johri
Shreya Johri

+ Jessica Quaye
Jessica Quaye

+ Vijay Edupuganti
Vijay Edupuganti

Costin-Andrei Oncescu
Costin-Andrei Oncescu

- Baldassarre Cesarano
Baldassarre Cesarano

Annie Laurie Cook
Annie Laurie Cook

- Vijay Edupuganti
Vijay Edupuganti

Jothi Ramaswamy
Jothi Ramaswamy

Batur Arslan
Batur Arslan

- Curren Iyer
Curren Iyer

- - Fatima Shah
Fatima Shah

- yanjingl
yanjingl

a-saraf
a-saraf

+ + songhan
songhan

Zishen
Zishen

diff --git a/contents/conventions.qmd b/contents/conventions.qmd deleted file mode 100644 index 109fc7e5..00000000 --- a/contents/conventions.qmd +++ /dev/null @@ -1,68 +0,0 @@ -# Conventions Used in this Book - -Please follow these conventions as you contribute to this online book: - -1. **Clear Structure and Organization:** - - - **Chapter Outlines:** Begin each chapter with an outline that provides an - overview of the topics covered. - - **Sequential Numbering:** Utilize sequential numbering for chapters, - sections, and subsections to facilitate easy reference. - -2. **Accessible Language:** - - - **Glossary:** Include a glossary that defines technical terms and jargon. - - **Consistent Terminology:** Maintain consistent use of terminology - throughout the book to avoid confusion. - -3. **Learning Aids:** - - - **Diagrams and Figures:** Employ diagrams, figures, and tables to visually - convey complex concepts. - - **Sidebars:** Use sidebars for additional information, anecdotes, or to - provide real-world context to the theoretical content. - -4. **Interactive Elements:** - - - **Colabs and Projects:** Integrate exercises and projects at the end of - each chapter to encourage active learning and practical application of - concepts. - - **Case Studies:** Incorporate case studies to provide a deeper - understanding of how principles are applied in real-world situations. - -5. **References and Further Reading:** - - - **Bibliography:** Include a bibliography at the end of each chapter for - readers who wish to dive deeper into specific topics. - - **Citations:** Maintain a consistent style for citations, adhering to - recognized academic standards like APA, MLA, or Chicago. - -6. **Supporting Materials:** - - - **Supplementary Online Resources:** Provide links to supplementary online - resources, such as video lectures, webinars, or interactive modules. - - **Datasets and Code Repositories:** Share datasets and code repositories - for hands-on practice, particularly for sections dealing with algorithms - and applications. - -7. **Feedback and Community Engagement:** - - - **Forums and Discussion Groups:** Establish forums or discussion groups - where readers can interact, ask questions, and share knowledge. - - **Open Review Process:** Implement an open review process, inviting - feedback from the community to continuously improve the content. - -8. **Inclusivity and Accessibility:** - - - **Inclusive Language:** Utilize inclusive language that respects diversity - and promotes equality. - - **Accessible Formats:** Ensure the textbook is available in accessible - formats, including audio and Braille, to cater to readers with - disabilities. - -9. **Index:** - - **Comprehensive Index:** Include a comprehensive index at the end of the - book to help readers quickly locate specific information. - -Implementing these conventions can contribute to creating a textbook that is -comprehensive, accessible, and conducive to effective learning. diff --git a/contents/acknowledgements/acknowledgements.qmd b/contents/core/acknowledgements/acknowledgements.qmd similarity index 86% rename from contents/acknowledgements/acknowledgements.qmd rename to contents/core/acknowledgements/acknowledgements.qmd index 7f285aab..5cb77312 100644 --- a/contents/acknowledgements/acknowledgements.qmd +++ b/contents/core/acknowledgements/acknowledgements.qmd @@ -10,13 +10,11 @@ Assembling this book has been a long journey, spanning several years of hard wor We extend our heartfelt gratitude to the open source community of learners, teachers and sharers. Whether you contributed an entire section, a single sentence, or merely corrected a typo, your efforts have enhanced this book. We deeply appreciate everyone's time, expertise, and commitment. This book is as much yours as it is ours. -Special thanks go to Professor Vijay Janapa Reddi, whose belief in the transformative power of open-source communities and invaluable guidance have been our guiding light from the outset. - We also owe a great deal to the team at GitHub and Quarto. You've revolutionized the way people collaborate, and this book stands as a testament to what can be achieved when barriers to global cooperation are removed. ## Funding Agencies and Companies -We are immensely grateful for the generous support from the various funding agencies and companies that supported the teaching assistants (TAs) involved in this work. The organizations listed below played a crucial role in bringing this project to life with their contributions. +We are immensely grateful for the generous support from the various funding agencies and companies that supported the teaching assistants (TAs) involved in this work. The organizations listed below played an important role in bringing this project to life with their contributions. ::: {layout-nrow=2} diff --git a/contents/acknowledgements/images/png/HDSI.png b/contents/core/acknowledgements/images/png/HDSI.png similarity index 100% rename from contents/acknowledgements/images/png/HDSI.png rename to contents/core/acknowledgements/images/png/HDSI.png diff --git a/contents/acknowledgements/images/png/NSF.png b/contents/core/acknowledgements/images/png/NSF.png similarity index 100% rename from contents/acknowledgements/images/png/NSF.png rename to contents/core/acknowledgements/images/png/NSF.png diff --git a/contents/acknowledgements/images/png/google.png b/contents/core/acknowledgements/images/png/google.png similarity index 100% rename from contents/acknowledgements/images/png/google.png rename to contents/core/acknowledgements/images/png/google.png diff --git a/contents/acknowledgements/images/png/harvard-xtension-school.png b/contents/core/acknowledgements/images/png/harvard-xtension-school.png similarity index 100% rename from contents/acknowledgements/images/png/harvard-xtension-school.png rename to contents/core/acknowledgements/images/png/harvard-xtension-school.png diff --git a/contents/ai_for_good/ai_for_good.bib b/contents/core/ai_for_good/ai_for_good.bib similarity index 100% rename from contents/ai_for_good/ai_for_good.bib rename to contents/core/ai_for_good/ai_for_good.bib diff --git a/contents/ai_for_good/ai_for_good.qmd b/contents/core/ai_for_good/ai_for_good.qmd similarity index 98% rename from contents/ai_for_good/ai_for_good.qmd rename to contents/core/ai_for_good/ai_for_good.qmd index 9374f5ab..ca1c9087 100644 --- a/contents/ai_for_good/ai_for_good.qmd +++ b/contents/core/ai_for_good/ai_for_good.qmd @@ -5,7 +5,7 @@ bibliography: ai_for_good.bib # AI for Good {#sec-ai_for_good} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ai-for-good-resource), [Videos](#sec-ai-for-good-resource), [Exercises](#sec-ai-for-good-resource), [Labs](#sec-ai-for-good-resource) +Resources: [Slides](#sec-ai-for-good-resource), [Videos](#sec-ai-for-good-resource), [Exercises](#sec-ai-for-good-resource) ::: ![_DALL·E 3 Prompt: Illustration of planet Earth wrapped in shimmering neural networks, with diverse humans and AI robots working together on various projects like planting trees, cleaning the oceans, and developing sustainable energy solutions. The positive and hopeful atmosphere represents a united effort to create a better future._](images/png/cover_ai_good.png) @@ -34,12 +34,12 @@ By aligning AI progress with human values, goals, and ethics, the ultimate goal To give ourselves a framework around which to think about AI for social good, we will be following the UN Sustainable Development Goals (SDGs). The UN SDGs are a collection of 17 global goals, shown in @fig-sdg, adopted by the United Nations in 2015 as part of the 2030 Agenda for Sustainable Development. The SDGs address global challenges related to poverty, inequality, climate change, environmental degradation, prosperity, and peace and justice. +![United Nations Sustainable Development Goals (SDG). Source: [United Nations](https://sdgs.un.org/goals).](https://www.un.org/sustainabledevelopment/wp-content/uploads/2015/12/english_SDG_17goals_poster_all_languages_with_UN_emblem_1.png){#fig-sdg} + What is special about the SDGs is that they are a collection of interlinked objectives designed to serve as a "shared blueprint for peace and prosperity for people and the planet, now and into the future." The SDGs emphasize sustainable development's interconnected environmental, social, and economic aspects by putting sustainability at their center. A recent study [@vinuesa2020role] highlights the influence of AI on all aspects of sustainable development, particularly on the 17 Sustainable Development Goals (SDGs) and 169 targets internationally defined in the 2030 Agenda for Sustainable Development. The study shows that AI can act as an enabler for 134 targets through technological improvements, but it also highlights the challenges of AI on some targets. The study shows that AI can benefit 67 targets when considering AI and societal outcomes. Still, it also warns about the issues related to the implementation of AI in countries with different cultural values and wealth. -![United Nations Sustainable Development Goals (SDG). Source: [United Nations](https://sdgs.un.org/goals).](https://www.un.org/sustainabledevelopment/wp-content/uploads/2015/12/english_SDG_17goals_poster_all_languages_with_UN_emblem_1.png){#fig-sdg} - In our book's context, TinyML could help advance at least some of these SDG goals. * **Goal 1 - No Poverty:** TinyML could help provide low-cost solutions for crop monitoring to improve agricultural yields in developing countries. @@ -285,15 +285,3 @@ These slides are a valuable tool for instructors to deliver lectures and for stu * @exr-hc ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - - - diff --git a/contents/ai_for_good/images/png/cover_ai_good.png b/contents/core/ai_for_good/images/png/cover_ai_good.png similarity index 100% rename from contents/ai_for_good/images/png/cover_ai_good.png rename to contents/core/ai_for_good/images/png/cover_ai_good.png diff --git a/contents/ai_for_good/images/png/msfarmbeats.png b/contents/core/ai_for_good/images/png/msfarmbeats.png similarity index 100% rename from contents/ai_for_good/images/png/msfarmbeats.png rename to contents/core/ai_for_good/images/png/msfarmbeats.png diff --git a/contents/core/benchmarking/benchmarking.bib b/contents/core/benchmarking/benchmarking.bib new file mode 100644 index 00000000..c785dd69 --- /dev/null +++ b/contents/core/benchmarking/benchmarking.bib @@ -0,0 +1,454 @@ +%comment{This file was created with betterbib v5.0.11.} + +@article{bianco2018benchmark, + doi = {10.1109/access.2018.2877890}, + pages = {64270--64277}, + source = {Crossref}, + volume = {6}, + author = {Bianco, Simone and Cadene, Remi and Celona, Luigi and Napoletano, Paolo}, + year = {2018}, + url = {https://doi.org/10.1109/access.2018.2877890}, + issn = {2169-3536}, + journal = {IEEE Access}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {Benchmark Analysis of Representative Deep Neural Network Architectures}, +} + +@inproceedings{adolf2016fathom, + doi = {10.1109/iiswc.2016.7581275}, + pages = {1--10}, + source = {Crossref}, + author = {Adolf, Robert and Rama, Saketh and Reagen, Brandon and Wei, Gu-yeon and Brooks, David}, + year = {2016}, + month = sep, + url = {https://doi.org/10.1109/iiswc.2016.7581275}, + booktitle = {2016 IEEE International Symposium on Workload Characterization (IISWC)}, + publisher = {IEEE}, + title = {Fathom: reference workloads for modern deep learning methods}, + organization = {IEEE}, +} + +@inproceedings{antol2015vqa, + doi = {10.1109/iccv.2015.279}, + pages = {2425--2433}, + source = {Crossref}, + author = {Antol, Stanislaw and Agrawal, Aishwarya and Lu, Jiasen and Mitchell, Margaret and Batra, Dhruv and Zitnick, C. Lawrence and Parikh, Devi}, + year = {2015}, + month = dec, + url = {https://doi.org/10.1109/iccv.2015.279}, + booktitle = {2015 IEEE International Conference on Computer Vision (ICCV)}, + publisher = {IEEE}, + title = {VQA: Visual Question Answering}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/iccv/AntolALMBZP15.bib}, + timestamp = {Wed, 24 May 2017 01:00:00 +0200}, +} + +@article{banbury2020benchmarking, + url = {http://arxiv.org/abs/2003.04821v4}, + year = {2020}, + month = mar, + title = {Benchmarking TinyML Systems: Challenges and Direction}, + author = {Banbury, Colby R. and Reddi, Vijay Janapa and Lam, Max and Fu, William and Fazel, Amin and Holleman, Jeremy and Huang, Xinyuan and Hurtado, Robert and Kanter, David and Lokhmotov, Anton and Patterson, David and Pau, Danilo and Seo, Jae-sun and Sieracki, Jeff and Thakker, Urmish and Verhelst, Marian and Yadav, Poonam}, + primaryclass = {cs.PF}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/2003.04821}, +} + +@article{banbury2021mlperf, + url = {http://arxiv.org/abs/2106.07597v4}, + year = {2021}, + month = jun, + title = {MLPerf Tiny Benchmark}, + author = {Banbury, Colby and Reddi, Vijay Janapa and Torelli, Peter and Holleman, Jeremy and Jeffries, Nat and Kiraly, Csaba and Montino, Pietro and Kanter, David and Ahmed, Sebastian and Pau, Danilo and Thakker, Urmish and Torrini, Antonio and Warden, Peter and Cordaro, Jay and Guglielmo, Giuseppe Di and Duarte, Javier and Gibellini, Stephen and Parekh, Videet and Tran, Honson and Tran, Nhan and Wenxu, Niu and Xuesong, Xu}, + primaryclass = {cs.LG}, + archiveprefix = {arXiv}, + journal = {arXiv preprint arXiv:2106.07597}, +} + +@article{beyer2020we, + url = {http://arxiv.org/abs/2006.07159v1}, + year = {2020}, + month = jun, + title = {Are we done with ImageNet?}, + author = {Beyer, Lucas and H\'enaff, Olivier J. and Kolesnikov, Alexander and Zhai, Xiaohua and van den Oord, A\"aron}, + primaryclass = {cs.CV}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/2006.07159}, +} + +@inproceedings{brown2020language, + author = {Brown, Tom B. and Mann, Benjamin and Ryder, Nick and Subbiah, Melanie and Kaplan, Jared and Dhariwal, Prafulla and Neelakantan, Arvind and Shyam, Pranav and Sastry, Girish and Askell, Amanda and Agarwal, Sandhini and Herbert-Voss, Ariel and Krueger, Gretchen and Henighan, Tom and Child, Rewon and Ramesh, Aditya and Ziegler, Daniel M. and Wu, Jeffrey and Winter, Clemens and Hesse, Christopher and Chen, Mark and Sigler, Eric and Litwin, Mateusz and Gray, Scott and Chess, Benjamin and Clark, Jack and Berner, Christopher and McCandlish, Sam and Radford, Alec and Sutskever, Ilya and Amodei, Dario}, + editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/BrownMRSKDNSSAA20.bib}, + booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, + timestamp = {Tue, 19 Jan 2021 00:00:00 +0100}, + title = {Language Models are Few-Shot Learners}, + url = {https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html}, + year = {2020}, +} + +@article{10.1145/3467017, + number = {12}, + doi = {10.1145/3467017}, + pages = {58--65}, + source = {Crossref}, + volume = {64}, + author = {Hooker, Sara}, + year = {2021}, + month = nov, + url = {https://doi.org/10.1145/3467017}, + issn = {0001-0782,1557-7317}, + journal = {Communications of the ACM}, + publisher = {Association for Computing Machinery (ACM)}, + title = {The hardware lottery}, + issue_date = {December 2021}, + address = {New York, NY, USA}, + abstract = {After decades of incentivizing the isolation of hardware, software, and algorithm development, the catalysts for closer collaboration are changing the paradigm.}, + numpages = {8}, +} + +@inproceedings{chu2021discovering, + doi = {10.1109/cvprw53098.2021.00337}, + pages = {3016--3025}, + source = {Crossref}, + author = {Chu, Grace and Arikan, Okan and Bender, Gabriel and Wang, Weijun and Brighton, Achille and Kindermans, Pieter-Jan and Liu, Hanxiao and Akin, Berkin and Gupta, Suyog and Howard, Andrew}, + year = {2021}, + month = jun, + url = {https://doi.org/10.1109/cvprw53098.2021.00337}, + booktitle = {2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW)}, + publisher = {IEEE}, + title = {Discovering Multi-Hardware Mobile Models via Architecture Search}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/cvpr/ChuABWBKLAG021.bib}, + timestamp = {Mon, 18 Jul 2022 01:00:00 +0200}, +} + +@article{coleman2017dawnbench, + number = {1}, + doi = {10.1145/3352020.3352024}, + pages = {14--25}, + source = {Crossref}, + volume = {53}, + author = {Coleman, Cody and Kang, Daniel and Narayanan, Deepak and Nardi, Luigi and Zhao, Tian and Zhang, Jian and Bailis, Peter and Olukotun, Kunle and R\'e, Chris and Zaharia, Matei}, + year = {2019}, + month = jul, + url = {https://doi.org/10.1145/3352020.3352024}, + issn = {0163-5980}, + journal = {ACM SIGOPS Operating Systems Review}, + publisher = {Association for Computing Machinery (ACM)}, + title = {Analysis of DAWNBench, a Time-to-Accuracy Machine Learning Performance Benchmark}, +} + +@article{coleman2022similarity, + number = {6}, + doi = {10.1609/aaai.v36i6.20591}, + pages = {6402--6410}, + source = {Crossref}, + volume = {36}, + author = {Coleman, Cody and Chou, Edward and Katz-Samuels, Julian and Culatana, Sean and Bailis, Peter and Berg, Alexander C. and Nowak, Robert and Sumbaly, Roshan and Zaharia, Matei and Yalniz, I. Zeki}, + year = {2022}, + month = jun, + url = {https://doi.org/10.1609/aaai.v36i6.20591}, + issn = {2374-3468,2159-5399}, + journal = {Proceedings of the AAAI Conference on Artificial Intelligence}, + publisher = {Association for the Advancement of Artificial Intelligence (AAAI)}, + title = {Similarity Search for Efficient Active Learning and Search of Rare Concepts}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/aaai/ColemanCKCBBNSZ22.bib}, + booktitle = {Thirty-Sixth AAAI Conference on Artificial Intelligence, AAAI 2022, Thirty-Fourth Conference on Innovative Applications of Artificial Intelligence, IAAI 2022, The Twelveth Symposium on Educational Advances in Artificial Intelligence, EAAI 2022 Virtual Event, February 22 - March 1, 2022}, + timestamp = {Mon, 11 Jul 2022 01:00:00 +0200}, +} + +@article{david2021tensorflow, + author = {David, Robert and Duke, Jared and Jain, Advait and Janapa Reddi, Vijay and Jeffries, Nat and Li, Jian and Kreeger, Nick and Nappier, Ian and Natraj, Meghna and Wang, Tiezhen and others}, + journal = {Proceedings of Machine Learning and Systems}, + pages = {800--811}, + title = {Tensorflow lite micro: Embedded machine learning for tinyml systems}, + volume = {3}, + year = {2021}, +} + +@article{davies2018loihi, + number = {1}, + doi = {10.1109/mm.2018.112130359}, + pages = {82--99}, + source = {Crossref}, + volume = {38}, + author = {Davies, Mike and Srinivasa, Narayan and Lin, Tsung-Han and Chinya, Gautham and Cao, Yongqiang and Choday, Sri Harsha and Dimou, Georgios and Joshi, Prasad and Imam, Nabil and Jain, Shweta and Liao, Yuyun and Lin, Chit-Kwan and Lines, Andrew and Liu, Ruokun and Mathaikutty, Deepak and McCoy, Steven and Paul, Arnab and Tse, Jonathan and Venkataramanan, Guruguhanathan and Weng, Yi-Hsin and Wild, Andreas and Yang, Yoonseok and Wang, Hong}, + year = {2018}, + month = jan, + url = {https://doi.org/10.1109/mm.2018.112130359}, + issn = {0272-1732,1937-4143}, + journal = {IEEE Micro}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {Loihi: A Neuromorphic Manycore Processor with On-Chip Learning}, +} + +@inproceedings{devlin2018bert, + doi = {10.18653/v1/n19-1423}, + source = {Crossref}, + author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, + year = {2019}, + url = {https://doi.org/10.18653/v1/n19-1423}, + booktitle = {Proceedings of the 2019 Conference of the North}, + publisher = {Association for Computational Linguistics}, + title = {None}, + address = {Minneapolis, Minnesota}, + pages = {4171--4186}, +} + +@article{gaviria2022dollar, + number = {2}, + doi = {10.1109/mm.2020.2974843}, + pages = {8--16}, + source = {Crossref}, + volume = {40}, + author = {Mattson, Peter and Reddi, Vijay Janapa and Cheng, Christine and Coleman, Cody and Diamos, Greg and Kanter, David and Micikevicius, Paulius and Patterson, David and Schmuelling, Guenther and Tang, Hanlin and Wei, Gu-Yeon and Wu, Carole-Jean}, + year = {2020}, + month = mar, + url = {https://doi.org/10.1109/mm.2020.2974843}, + issn = {0272-1732,1937-4143}, + journal = {IEEE Micro}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {MLPerf: An Industry Standard Benchmark Suite for Machine Learning Performance}, +} + +@inproceedings{hendrycks2021natural, + doi = {10.1109/cvpr46437.2021.01501}, + pages = {15257--15266}, + source = {Crossref}, + author = {Hendrycks, Dan and Zhao, Kevin and Basart, Steven and Steinhardt, Jacob and Song, Dawn}, + year = {2021}, + month = jun, + url = {https://doi.org/10.1109/cvpr46437.2021.01501}, + booktitle = {2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, + publisher = {IEEE}, + title = {Natural Adversarial Examples}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/cvpr/HendrycksZBSS21.bib}, + timestamp = {Mon, 18 Jul 2022 01:00:00 +0200}, +} + +@inproceedings{ignatov2018ai, + doi = {10.1109/iccvw.2019.00447}, + pages = {3617--3635}, + source = {Crossref}, + author = {Ignatov, Andrey and Timofte, Radu and Kulik, Andrei and Yang, Seungsoo and Wang, Ke and Baum, Felix and Wu, Max and Xu, Lirong and Van Gool, Luc}, + year = {2019}, + month = oct, + url = {https://doi.org/10.1109/iccvw.2019.00447}, + booktitle = {2019 IEEE/CVF International Conference on Computer Vision Workshop (ICCVW)}, + publisher = {IEEE}, + title = {AI Benchmark: All About Deep Learning on Smartphones in 2019}, +} + +@inproceedings{kiela2021dynabench, + doi = {10.18653/v1/2021.naacl-main.324}, + source = {Crossref}, + author = {Kiela, Douwe and Bartolo, Max and Nie, Yixin and Kaushik, Divyansh and Geiger, Atticus and Wu, Zhengxuan and Vidgen, Bertie and Prasad, Grusha and Singh, Amanpreet and Ringshia, Pratik and Ma, Zhiyi and Thrush, Tristan and Riedel, Sebastian and Waseem, Zeerak and Stenetorp, Pontus and Jia, Robin and Bansal, Mohit and Potts, Christopher and Williams, Adina}, + year = {2021}, + url = {https://doi.org/10.18653/v1/2021.naacl-main.324}, + booktitle = {Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies}, + publisher = {Association for Computational Linguistics}, + title = {Dynabench: Rethinking Benchmarking in NLP}, + address = {Online}, + pages = {4110--4124}, +} + +@inproceedings{koh2021wilds, + author = {Koh, Pang Wei and Sagawa, Shiori and Marklund, Henrik and Xie, Sang Michael and Zhang, Marvin and Balsubramani, Akshay and Hu, Weihua and Yasunaga, Michihiro and Phillips, Richard Lanas and Gao, Irena and Lee, Tony and David, Etienne and Stavness, Ian and 0002, Wei Guo and Earnshaw, Berton and Haque, Imran S. and Beery, Sara M. and Leskovec, Jure and Kundaje, Anshul and Pierson, Emma and Levine, Sergey and Finn, Chelsea and Liang, Percy}, + title = {WILDS: A Benchmark of in-the-Wild Distribution Shifts.}, + journal = {ICML}, + pages = {5637--5664}, + year = {2021}, + url = {http://proceedings.mlr.press/v139/koh21a.html}, + source = {DBLP}, + editor = {Meila, Marina and Zhang, Tong}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/icml/KohSMXZBHYPGLDS21.bib}, + booktitle = {Proceedings of the 38th International Conference on Machine Learning, ICML 2021, 18-24 July 2021, Virtual Event}, + publisher = {PMLR}, + series = {Proceedings of Machine Learning Research}, + timestamp = {Tue, 13 Dec 2022 00:00:00 +0100}, + volume = {139}, +} + +@incollection{lin2014microsoft, + doi = {10.1007/978-3-319-10602-1\_48}, + pages = {740--755}, + source = {Crossref}, + author = {Lin, Tsung-Yi and Maire, Michael and Belongie, Serge and Hays, James and Perona, Pietro and Ramanan, Deva and Doll\'ar, Piotr and Zitnick, C. Lawrence}, + year = {2014}, + isbn = {9783319106014,9783319106021}, + url = {https://doi.org/10.1007/978-3-319-10602-1\_48}, + issn = {0302-9743,1611-3349}, + booktitle = {Computer Vision -- ECCV 2014}, + publisher = {Springer International Publishing}, + title = {Microsoft COCO: Common Objects in Context}, + organization = {Springer}, +} + +@inproceedings{lundberg2017unified, + author = {Lundberg, Scott M. and Lee, Su-In}, + editor = {Guyon, Isabelle and von Luxburg, Ulrike and Bengio, Samy and Wallach, Hanna M. and Fergus, Rob and Vishwanathan, S. V. N. and Garnett, Roman}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/LundbergL17.bib}, + booktitle = {Advances in Neural Information Processing Systems 30: Annual Conference on Neural Information Processing Systems 2017, December 4-9, 2017, Long Beach, CA, USA}, + pages = {4765--4774}, + timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, + title = {A Unified Approach to Interpreting Model Predictions}, + url = {https://proceedings.neurips.cc/paper/2017/hash/8a20a8621978632d76c43dfd28b67767-Abstract.html}, + year = {2017}, +} + +@article{maass1997networks, + number = {9}, + doi = {10.1016/s0893-6080(97)00011-7}, + pages = {1659--1671}, + source = {Crossref}, + volume = {10}, + author = {Maass, Wolfgang}, + year = {1997}, + month = dec, + url = {https://doi.org/10.1016/s0893-6080(97)00011-7}, + issn = {0893-6080}, + journal = {Neural Networks}, + publisher = {Elsevier BV}, + title = {Networks of spiking neurons: The third generation of neural network models}, +} + +@article{mattson2020mlperf, + number = {2}, + doi = {10.1109/mm.2020.2974843}, + pages = {8--16}, + source = {Crossref}, + volume = {40}, + author = {Mattson, Peter and Reddi, Vijay Janapa and Cheng, Christine and Coleman, Cody and Diamos, Greg and Kanter, David and Micikevicius, Paulius and Patterson, David and Schmuelling, Guenther and Tang, Hanlin and Wei, Gu-Yeon and Wu, Carole-Jean}, + year = {2020}, + month = mar, + url = {https://doi.org/10.1109/mm.2020.2974843}, + issn = {0272-1732,1937-4143}, + journal = {IEEE Micro}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {MLPerf: An Industry Standard Benchmark Suite for Machine Learning Performance}, +} + +@article{modha2023neural, + number = {6668}, + doi = {10.1126/science.adh1174}, + pages = {329--335}, + source = {Crossref}, + volume = {382}, + author = {Modha, Dharmendra S. and Akopyan, Filipp and Andreopoulos, Alexander and Appuswamy, Rathinakumar and Arthur, John V. and Cassidy, Andrew S. and Datta, Pallab and DeBole, Michael V. and Esser, Steven K. and Otero, Carlos Ortega and Sawada, Jun and Taba, Brian and Amir, Arnon and Bablani, Deepika and Carlson, Peter J. and Flickner, Myron D. and Gandhasri, Rajamohan and Garreau, Guillaume J. and Ito, Megumi and Klamo, Jennifer L. and Kusnitz, Jeffrey A. and McClatchey, Nathaniel J. and McKinstry, Jeffrey L. and Nakamura, Yutaka and Nayak, Tapan K. and Risk, William P. and Schleupen, Kai and Shaw, Ben and Sivagnaname, Jay and Smith, Daniel F. and Terrizzano, Ignacio and Ueda, Takanori}, + year = {2023}, + month = oct, + url = {https://doi.org/10.1126/science.adh1174}, + issn = {0036-8075,1095-9203}, + journal = {Science}, + publisher = {American Association for the Advancement of Science (AAAS)}, + title = {Neural inference at the frontier of energy, space, and time}, +} + +@inproceedings{reddi2020mlperf, + doi = {10.1109/isca45697.2020.00045}, + pages = {446--459}, + source = {Crossref}, + author = {Reddi, Vijay Janapa and Cheng, Christine and Kanter, David and Mattson, Peter and Schmuelling, Guenther and Wu, Carole-Jean and Anderson, Brian and Breughe, Maximilien and Charlebois, Mark and Chou, William and Chukka, Ramesh and Coleman, Cody and Davis, Sam and Deng, Pan and Diamos, Greg and Duke, Jared and Fick, Dave and Gardner, J. Scott and Hubara, Itay and Idgunji, Sachin and Jablin, Thomas B. and Jiao, Jeff and John, Tom St. and Kanwar, Pankaj and Lee, David and Liao, Jeffery and Lokhmotov, Anton and Massa, Francisco and Meng, Peng and Micikevicius, Paulius and Osborne, Colin and Pekhimenko, Gennady and Rajan, Arun Tejusve Raghunath and Sequeira, Dilip and Sirasao, Ashish and Sun, Fei and Tang, Hanlin and Thomson, Michael and Wei, Frank and Wu, Ephrem and Xu, Lingjie and Yamada, Koichi and Yu, Bing and Yuan, George and Zhong, Aaron and Zhang, Peizhao and Zhou, Yuchen}, + year = {2020}, + month = may, + url = {https://doi.org/10.1109/isca45697.2020.00045}, + booktitle = {2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)}, + publisher = {IEEE}, + title = {MLPerf Inference Benchmark}, + organization = {IEEE}, +} + +@inproceedings{ribeiro2016should, + author = {Ribeiro, Marco Tulio and Singh, Sameer and Guestrin, Carlos}, + booktitle = {Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining}, + pages = {1135--1144}, + title = {'' Why should i trust you?'' Explaining the predictions of any classifier}, + year = {2016}, +} + +@article{schuman2022opportunities, + number = {1}, + doi = {10.1038/s43588-021-00184-y}, + pages = {10--19}, + source = {Crossref}, + volume = {2}, + author = {Schuman, Catherine D. and Kulkarni, Shruti R. and Parsa, Maryam and Mitchell, J. Parker and Date, Prasanna and Kay, Bill}, + year = {2022}, + month = jan, + url = {https://doi.org/10.1038/s43588-021-00184-y}, + issn = {2662-8457}, + journal = {Nature Computational Science}, + publisher = {Springer Science and Business Media LLC}, + title = {Opportunities for neuromorphic computing algorithms and applications}, +} + +@article{warden2018speech, + url = {http://arxiv.org/abs/1804.03209v1}, + year = {2018}, + month = apr, + title = {Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition}, + author = {Warden, Pete}, + primaryclass = {cs.CL}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/1804.03209}, +} + +@inproceedings{xie2020adversarial, + doi = {10.1109/cvpr42600.2020.00090}, + source = {Crossref}, + author = {Xie, Cihang and Tan, Mingxing and Gong, Boqing and Wang, Jiang and Yuille, Alan L. and Le, Quoc V.}, + year = {2020}, + month = jun, + url = {https://doi.org/10.1109/cvpr42600.2020.00090}, + booktitle = {2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, + publisher = {IEEE}, + title = {Adversarial Examples Improve Image Recognition}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/cvpr/XieTGWYL20.bib}, + pages = {816--825}, + timestamp = {Tue, 13 Oct 2020 01:00:00 +0200}, +} + +@article{xu2023demystifying, + url = {http://arxiv.org/abs/2309.16671v4}, + year = {2023}, + month = sep, + title = {Demystifying CLIP Data}, + author = {Xu, Hu and Xie, Saining and Tan, Xiaoqing Ellen and Huang, Po-Yao and Howes, Russell and Sharma, Vasu and Li, Shang-Wen and Ghosh, Gargi and Zettlemoyer, Luke and Feichtenhofer, Christoph}, + primaryclass = {cs.CV}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/2309.16671}, +} + +@article{yik2023neurobench, + url = {http://arxiv.org/abs/2304.04640v3}, + year = {2023}, + month = apr, + title = {NeuroBench: A Framework for Benchmarking Neuromorphic Computing Algorithms and Systems}, + author = {Yik, Jason and den Berghe, Korneel Van and den Blanken, Douwe and Bouhadjar, Younes and Fabre, Maxime and Hueber, Paul and Kleyko, Denis and Pacik-Nelson, Noah and Sun, Pao-Sheng Vincent and Tang, Guangzhi and Wang, Shenqi and Zhou, Biyan and Ahmed, Soikat Hasan and Joseph, George Vathakkattil and Leto, Benedetto and Micheli, Aurora and Mishra, Anurag Kumar and Lenz, Gregor and Sun, Tao and Ahmed, Zergham and Akl, Mahmoud and Anderson, Brian and Andreou, Andreas G. and Bartolozzi, Chiara and Basu, Arindam and Bogdan, Petrut and Bohte, Sander and Buckley, Sonia and Cauwenberghs, Gert and Chicca, Elisabetta and Corradi, Federico and de Croon, Guido and Danielescu, Andreea and Daram, Anurag and Davies, Mike and Demirag, Yigit and Eshraghian, Jason and Fischer, Tobias and Forest, Jeremy and Fra, Vittorio and Furber, Steve and Furlong, P. Michael and Gilpin, William and Gilra, Aditya and Gonzalez, Hector A. and Indiveri, Giacomo and Joshi, Siddharth and Karia, Vedant and Khacef, Lyes and Knight, James C. and Kriener, Laura and Kubendran, Rajkumar and Kudithipudi, Dhireesha and Liu, Yao-Hong and Liu, Shih-Chii and Ma, Haoyuan and Manohar, Rajit and Margarit-Taul\'e, Josep Maria and Mayr, Christian and Michmizos, Konstantinos and Muir, Dylan and Neftci, Emre and Nowotny, Thomas and Ottati, Fabrizio and Ozcelikkale, Ayca and Panda, Priyadarshini and Park, Jongkil and Payvand, Melika and Pehle, Christian and Petrovici, Mihai A. and Pierro, Alessandro and Posch, Christoph and Renner, Alpha and Sandamirskaya, Yulia and Schaefer, Clemens JS and van Schaik, Andr\'e and Schemmel, Johannes and Schmidgall, Samuel and Schuman, Catherine and Seo, Jae-sun and Sheik, Sadique and Shrestha, Sumit Bam and Sifalakis, Manolis and Sironi, Amos and Stewart, Matthew and Stewart, Kenneth and Stewart, Terrence C. and Stratmann, Philipp and Timcheck, Jonathan and T\"omen, Nergis and Urgese, Gianvito and Verhelst, Marian and Vineyard, Craig M. and Vogginger, Bernhard and Yousefzadeh, Amirreza and Zohora, Fatima Tuz and Frenkel, Charlotte and Reddi, Vijay Janapa}, + primaryclass = {cs.AI}, + archiveprefix = {arXiv}, + eprint = {2304.04640}, +} + +@article{tschand2024mlperf, + url = {http://arxiv.org/abs/2410.12032v1}, + year = {2024}, + month = oct, + title = {MLPerf Power: Benchmarking the Energy Efficiency of Machine Learning Systems from Microwatts to Megawatts for Sustainable AI}, + author = {Tschand, Arya and Rajan, Arun Tejusve Raghunath and Idgunji, Sachin and Ghosh, Anirban and Holleman, Jeremy and Kiraly, Csaba and Ambalkar, Pawan and Borkar, Ritika and Chukka, Ramesh and Cockrell, Trevor and Curtis, Oliver and Fursin, Grigori and Hodak, Miro and Kassa, Hiwot and Lokhmotov, Anton and Miskovic, Dejan and Pan, Yuechao and Manmathan, Manu Prasad and Raymond, Liz and John, Tom St. and Suresh, Arjun and Taubitz, Rowan and Zhan, Sean and Wasson, Scott and Kanter, David and Reddi, Vijay Janapa}, + primaryclass = {cs.AR}, + archiveprefix = {arXiv}, + journal = {arXiv preprint arXiv:2410.12032}, +} \ No newline at end of file diff --git a/contents/benchmarking/benchmarking.qmd b/contents/core/benchmarking/benchmarking.qmd similarity index 75% rename from contents/benchmarking/benchmarking.qmd rename to contents/core/benchmarking/benchmarking.qmd index febebceb..737d988f 100644 --- a/contents/benchmarking/benchmarking.qmd +++ b/contents/core/benchmarking/benchmarking.qmd @@ -5,7 +5,7 @@ bibliography: benchmarking.bib # Benchmarking AI {#sec-benchmarking_ai} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-benchmarking-ai-resource), [Videos](#sec-benchmarking-ai-resource), [Exercises](#sec-benchmarking-ai-resource), [Labs](#sec-benchmarking-ai-resource) +Resources: [Slides](#sec-benchmarking-ai-resource), [Videos](#sec-benchmarking-ai-resource), [Exercises](#sec-benchmarking-ai-resource) ::: ![_DALL·E 3 Prompt: Photo of a podium set against a tech-themed backdrop. On each tier of the podium, there are AI chips with intricate designs. The top chip has a gold medal hanging from it, the second one has a silver medal, and the third has a bronze medal. Banners with 'AI Olympics' are displayed prominently in the background._](images/png/cover_ai_benchmarking.png) @@ -20,7 +20,7 @@ This chapter will provide an overview of popular ML benchmarks, best practices f * Understand the purpose and goals of benchmarking AI systems, including performance assessment, resource evaluation, validation, and more. -* Learn about key model benchmarks, metrics, and trends, including accuracy, fairness, complexity, and efficiency. +* Learn about key model benchmarks, metrics, and trends, including accuracy, fairness, complexity, performance, and energy efficiency. * Become familiar with the key components of an AI benchmark, including datasets, tasks, metrics, baselines, reproducibility rules, and more. @@ -36,7 +36,7 @@ This chapter will provide an overview of popular ML benchmarks, best practices f ::: -## Introduction {#sec-benchmarking-ai} +## Introduction Benchmarking provides the essential measurements needed to drive machine learning progress and truly understand system performance. As the physicist Lord Kelvin famously said, "To measure is to know." Benchmarks allow us to quantitatively know the capabilities of different models, software, and hardware. They allow ML developers to measure the inference time, memory usage, power consumption, and other metrics that characterize a system. Moreover, benchmarks create standardized processes for measurement, enabling fair comparisons across different solutions. @@ -46,6 +46,8 @@ Benchmarking has several important goals and objectives that guide its implement * **Performance assessment.** This involves evaluating key metrics like a given model's speed, accuracy, and efficiency. For instance, in a TinyML context, it is crucial to benchmark how quickly a voice assistant can recognize commands, as this evaluates real-time performance. +* **Power assessment.** Evaluating the power drawn by a workload along with its performance equates to its energy efficiency. As the environmental impact of ML computing continues to grow, benchmarking energy can enable us to better optimize our systems for sustainability. + * **Resource evaluation.** This means assessing the model's impact on critical system resources, including battery life, memory usage, and computational overhead. A relevant example is comparing the battery drain of two different image recognition algorithms running on a wearable device. * **Validation and verification.** Benchmarking helps ensure the system functions correctly and meets specified requirements. One way is by checking the accuracy of an algorithm, like a heart rate monitor on a smartwatch, against readings from medical-grade equipment as a form of clinical validation. @@ -60,7 +62,7 @@ This chapter will cover the 3 types of AI benchmarks, the standard metrics, tool ## Historical Context -### Standard Benchmarks +### Performance Benchmarks The evolution of benchmarks in computing vividly illustrates the industry's relentless pursuit of excellence and innovation. In the early days of computing during the 1960s and 1970s, benchmarks were rudimentary and designed for mainframe computers. For example, the [Whetstone benchmark](https://en.wikipedia.org/wiki/Whetstone_(benchmark)), named after the Whetstone ALGOL compiler, was one of the first standardized tests to measure the floating-point arithmetic performance of a CPU. These pioneering benchmarks prompted manufacturers to refine their architectures and algorithms to achieve better benchmark scores. @@ -70,7 +72,25 @@ The 1990s brought the era of graphics-intensive applications and video games. Th The 2000s saw a surge in mobile phones and portable devices like tablets. With portability came the challenge of balancing performance and power consumption. Benchmarks like [MobileMark](https://bapco.com/products/mobilemark-2014/) by BAPCo evaluated speed and battery life. This drove companies to develop more energy-efficient System-on-Chips (SOCs), leading to the emergence of architectures like ARM that prioritized power efficiency. -The focus of the recent decade has shifted towards cloud computing, big data, and artificial intelligence. Cloud service providers like Amazon Web Services and Google Cloud compete on performance, scalability, and cost-effectiveness. Tailored cloud benchmarks like [CloudSuite](http://cloudsuite.ch/) have become essential, driving providers to optimize their infrastructure for better services. +The focus of the recent decade has shifted towards cloud computing, big data, and artificial intelligence. Cloud service providers like Amazon Web Services and Google Cloud compete on performance, scalability, and cost-effectiveness. Tailored cloud benchmarks like [CloudSuite](http://cloudsuite.ch/) have become essential, driving providers to optimize their infrastructure for better services. + +### Energy Benchmarks + +Energy consumption and environmental concerns have gained prominence in recent years, making power (more precisely, energy) benchmarking increasingly important in the industry. This shift began in the mid-2000s when processors and systems started hitting cooling limits, and scaling became a crucial aspect of building large-scale systems due to internet advancements. Since then, energy considerations have expanded to encompass all areas of computing, from personal devices to large-scale data centers. + +Power benchmarking aims to measure the energy efficiency of computing systems, evaluating performance in relation to power consumption. This is crucial for several reasons: + +* **Environmental impact:** With the growing carbon footprint of the tech industry, there's a pressing need to reduce energy consumption. +* **Operational costs:** Energy expenses constitute a significant portion of data center operating costs. +* **Device longevity:** For mobile devices, power efficiency directly impacts battery life and user experience. + +Several key benchmarks have emerged in this space: + +* **SPEC Power:** Introduced in 2007, [SPEC Power](https://www.spec.org/power/) was one of the first industry-standard benchmarks for evaluating the power and performance characteristics of computer servers. +* **Green500:** The [Green500](https://top500.org/lists/green500/) list ranks supercomputers by energy efficiency, complementing the performance-focused TOP500 list. +* **Energy Star:** While not a benchmark per se, [ENERGY STAR for Computers](https://www.energystar.gov/products/computers) certification program has driven manufacturers to improve the energy efficiency of consumer electronics. + +Power benchmarking faces unique challenges, such as accounting for different workloads and system configurations, and measuring power consumption accurately across a range of hardware that scales from microWatts to megaWatts in power consumption. As AI and edge computing continue to grow, power benchmarking is likely to become even more critical, driving the development of specialized energy-efficient AI hardware and software optimizations. ### Custom Benchmarks @@ -88,7 +108,7 @@ A key prerogative for any benchmark to be impactful is that it must reflect the Furthermore, benchmarks published with broad co-authorship from respected institutions carry authority and validity that convinces the community to adopt them as trusted standards. Benchmarks perceived as biased by particular corporate or institutional interests breed skepticism. Ongoing community engagement through workshops and challenges is also key after the initial release, and that is what, for instance, led to the success of ImageNet. As research progresses, collective participation enables continual refinement and expansion of benchmarks over time. -Finally, community-developed benchmarks released with open access accelerate adoption and consistent implementation. We shared open-source code, documentation, models, and infrastructure to lower barriers for groups to benchmark solutions on an equal footing using standardized implementations. This consistency is critical for fair comparisons. Without coordination, labs and companies may implement benchmarks differently, reducing result reproducibility. +Finally, releasing community-developed benchmarks with open access promotes their adoption and consistent use. By providing open-source code, documentation, models, and infrastructure, we reduce barriers to entry, enabling groups to benchmark solutions on an equal footing with standardized implementations. This consistency is essential for fair comparisons. Without coordination, labs and companies might implement benchmarks differently, which can undermine reproducibility and comparability of results. Community consensus brings benchmarks lasting relevance, while fragmentation confuses. Through collaborative development and transparent operation, benchmarks can become authoritative standards for tracking progress. Several of the benchmarks that we discuss in this chapter were developed and built by the community, for the community, and that is what ultimately led to their success. @@ -106,7 +126,7 @@ The architecture, size, and complexity of AI models vary widely. Different model ### Data Benchmarks -AI, particularly machine learning, is inherently data-driven. The quality, size, and diversity of data influence AI models' training efficacy and generalization capability. Data benchmarks focus on the datasets used in AI training and evaluation. They provide standardized datasets the community can use to train and test models, ensuring a level playing field for comparisons. Moreover, these benchmarks highlight data quality, diversity, and representation challenges, pushing the community to address biases and gaps in AI training data. By understanding data benchmarks, researchers can also gauge how models might perform in real-world scenarios, ensuring robustness and reliability. +In machine learning, data is foundational because the quality, scale, and diversity of datasets directly impact model efficacy and generalization. Data benchmarks focus on the datasets used in training and evaluation. They provide standardized datasets the community can use to train and test models, ensuring a level playing field for comparisons. Moreover, these benchmarks highlight data quality, diversity, and representation challenges, pushing the community to address biases and gaps in training data. By understanding data benchmarks, researchers can also gauge how models might perform in real-world scenarios, ensuring robustness and reliability. In the remainder of the sections, we will discuss each of these benchmark types. The focus will be an in-depth exploration of system benchmarks, as these are critical to understanding and advancing machine learning system performance. We will briefly cover model and data benchmarks for a comprehensive perspective, but the emphasis and majority of the content will be devoted to system benchmarks. @@ -123,7 +143,7 @@ Machine learning system benchmarking provides a structured and systematic approa #### Micro Benchmarks -Micro-benchmarks in AI are specialized, evaluating distinct components or specific operations within a broader machine learning process. These benchmarks zero in on individual tasks, offering insights into the computational demands of a particular neural network layer, the efficiency of a unique optimization technique, or the throughput of a specific activation function. For instance, practitioners might use micro-benchmarks to measure the computational time required by a convolutional layer in a deep learning model or to evaluate the speed of data preprocessing that feeds data into the model. Such granular assessments are instrumental in fine-tuning and optimizing discrete aspects of AI models, ensuring that each component operates at its peak potential. +Micro-benchmarks are specialized, evaluating distinct components or specific operations within a broader machine learning process. These benchmarks focus on individual tasks, offering insights into the computational demands of a particular neural network layer, the efficiency of a unique optimization technique, or the throughput of a specific activation function. For instance, practitioners might use micro-benchmarks to measure the computational time required by a convolutional layer in a deep learning model or to evaluate the speed of data preprocessing that feeds data into the model. Such granular assessments are instrumental in fine-tuning and optimizing discrete aspects of models, ensuring that each component operates at its peak potential. These types of microbenchmarks include zooming into very specific operations or components of the AI pipeline, such as the following: @@ -133,7 +153,7 @@ These types of microbenchmarks include zooming into very specific operations or * **Layer Benchmarks:** Evaluations of the computational efficiency of distinct neural network layers, such as LSTM or Transformer blocks, when operating on standardized input sizes. -Example: [DeepBench](https://github.com/baidu-research/DeepBench), introduced by Baidu, is a good example of something that assesses the above. DeepBench assesses the performance of basic operations in deep learning models, providing insights into how different hardware platforms handle neural network training and inference. +Example: [DeepBench](https://github.com/baidu-research/DeepBench), introduced by Baidu, is a good benchmark that evaluates fundamental deep learning operations, such as those mentioned above. DeepBench assesses the performance of basic operations in deep learning models, providing insights into how different hardware platforms handle neural network training and inference. :::{#exr-cuda .callout-caution collapse="true"} @@ -147,7 +167,7 @@ Ever wonder how your image filters get so fast? Special libraries like cuDNN sup #### Macro Benchmarks -Macro benchmarks provide a holistic view, assessing the end-to-end performance of entire machine learning models or comprehensive AI systems. Rather than focusing on individual operations, macro-benchmarks evaluate the collective efficacy of models under real-world scenarios or tasks. For example, a macro-benchmark might assess the complete performance of a deep learning model undertaking image classification on a dataset like [ImageNet](https://www.image-net.org/). This includes gauging accuracy, computational speed, and resource consumption. Similarly, one might measure the cumulative time and resources needed to train a natural language processing model on extensive text corpora or evaluate the performance of an entire recommendation system, from data ingestion to final user-specific outputs. +Macro benchmarks provide a holistic view, assessing the end-to-end performance of entire machine learning models or comprehensive ML systems. Rather than focusing on individual operations, macro-benchmarks evaluate the collective efficacy of models under real-world scenarios or tasks. For example, a macro-benchmark might assess the complete performance of a deep learning model undertaking image classification on a dataset like [ImageNet](https://www.image-net.org/). This includes gauging accuracy, computational speed, and resource consumption. Similarly, one might measure the cumulative time and resources needed to train a natural language processing model on extensive text corpora or evaluate the performance of an entire recommendation system, from data ingestion to final user-specific outputs. Examples: These benchmarks evaluate the AI model: @@ -159,7 +179,7 @@ Examples: These benchmarks evaluate the AI model: #### End-to-end Benchmarks -End-to-end benchmarks provide an all-inclusive evaluation that extends beyond the boundaries of the AI model itself. Instead of focusing solely on a machine learning model's computational efficiency or accuracy, these benchmarks encompass the entire pipeline of an AI system. This includes initial data preprocessing, the core model's performance, post-processing of the model's outputs, and other integral components like storage and network interactions. +End-to-end benchmarks provide an all-inclusive evaluation that extends beyond the boundaries of the ML model itself. Instead of focusing solely on a machine learning model's computational efficiency or accuracy, these benchmarks encompass the entire pipeline of an AI system. This includes initial data preprocessing, the core model's performance, post-processing of the model's outputs, and other integral components like storage and network interactions. Data preprocessing is the first stage in many AI systems, transforming raw data into a format suitable for model training or inference. These preprocessing steps' efficiency, scalability, and accuracy are vital for the overall system's performance. End-to-end benchmarks assess this phase, ensuring that data cleaning, normalization, augmentation, or any other transformation process doesn't become a bottleneck. @@ -197,7 +217,7 @@ Example: Tasks for natural language processing benchmarks might include sentimen #### Evaluation Metrics -Once a task is defined, benchmarks require metrics to quantify performance. These metrics offer objective measures to compare different models or systems. In classification tasks, metrics like accuracy, precision, recall, and [F1 score](https://en.wikipedia.org/wiki/F-score) are commonly used. Mean squared or absolute errors might be employed for regression tasks. +Once a task is defined, benchmarks require metrics to quantify performance. These metrics offer objective measures to compare different models or systems. In classification tasks, metrics like accuracy, precision, recall, and [F1 score](https://en.wikipedia.org/wiki/F-score) are commonly used. Mean squared or absolute errors might be employed for regression tasks. We can also measure the power consumed by the benchmark execution to calculate energy efficiency. #### Baselines and Baseline Models @@ -234,28 +254,19 @@ Beyond raw scores or metrics, benchmarks often provide guidelines or context to Example: A benchmark might highlight that while Model A scored higher than Model B in accuracy, it offers better real-time performance, making it more suitable for time-sensitive applications. -### Training vs. Inference - -The development life cycle of a machine learning model involves two critical phases - training and inference. [Training](../training/training.qmd), as you may recall, is the process of learning patterns from data to create the model. Inference refers to the model making predictions on new unlabeled data. Both phases play indispensable yet distinct roles. Consequently, each phase warrants rigorous benchmarking to evaluate performance metrics like speed, accuracy, and computational efficiency. - -Benchmarking the training phase provides insights into how different model architectures, hyperparameter values, and optimization algorithms impact the time and resources needed to train the model. For instance, benchmarking shows how neural network depth affects training time on a given dataset. Benchmarking also reveals how hardware accelerators like GPUs and TPUs can speed up training. - -On the other hand, benchmarking inference evaluates model performance in real-world conditions after deployment. Key metrics include latency, throughput, memory footprint, and power consumption. This type of benchmarking determines if a model meets the requirements of its target application regarding response time and device constraints. However, we will discuss these broadly to ensure a general understanding. - - ### Training Benchmarks -Training represents the phase where the system processes and ingests raw data to adjust and refine its parameters. Therefore, it is an algorithmic activity and involves system-level considerations, including data pipelines, storage, computing resources, and orchestration mechanisms. The goal is to ensure that the ML system can efficiently learn from data, optimizing both the model's performance and the system's resource utilization. +The development life cycle of a machine learning model involves two critical phases - training and inference. Training represents the phase where the system processes and ingests raw data to adjust and refine its parameters. Benchmarking the training phase reveals how choices in data pipelines, storage solutions, model architectures, computing resources, hyperparameter settings, and optimization algorithms affect the efficiency and resource demands of model training. The goal is to ensure that the ML system can efficiently learn from data, optimizing both the model's performance and the system's resource utilization. #### Purpose -From an ML systems perspective, training benchmarks evaluate how well the system scales with increasing data volumes and computational demands. It's about understanding the interplay between hardware, software, and the data pipeline in the training process. +From a systems perspective, training machine learning models is resource-intensive, especially when working with large models. These models often contain billions or even trillions of trainable parameters and require enormous amounts of data, often on the scale of many terabytes. For example, [OpenAI's GPT-3](https://arxiv.org/abs/2005.14165) [@brown2020language] has 175 billion parameters, was trained on 45 TB of compressed plaintext data, and required 3,640 petaflop-days of compute for pretraining. ML training benchmarks evaluate the systems and resources required to manage the computational load of training such models. -Consider a distributed ML system designed to train on vast datasets, like those used in large-scale e-commerce product recommendations. A training benchmark would assess how efficiently the system scales across multiple nodes, manage data sharding and handle failures or node drop-offs during training. +Efficient data storage and delivery during training also play a major role in the training process. For instance, in a machine learning model that predicts bounding boxes around objects in an image, thousands of images may be required. However, loading an entire image dataset into memory is typically infeasible, so practitioners rely on data loaders (as disucssed in @sec-frameworks-data-loaders) from ML frameworks. Successful model training depends on timely and efficient data delivery, making it essential to benchmark tools like data loaders, data pipelines, preprocessing speed, and storage retrieval times to understand their impact on training performance. -Training benchmarks evaluate CPU, GPU, memory, and network utilization during the training phase, guiding system optimizations. When training a model in a cloud-based ML system, it's crucial to understand how resources are being utilized. Are GPUs being fully leveraged? Is there unnecessary memory overhead? Benchmarks can highlight bottlenecks or inefficiencies in resource utilization, leading to cost savings and performance improvements. +Hardware selection is another key factor in training machine learning systems, as it can significantly impact training time. Training benchmarks evaluate CPU, GPU, memory, and network utilization during the training phase to guide system optimizations. Understanding how resources are used is essential: Are GPUs being fully leveraged? Is there unnecessary memory overhead? Benchmarks can uncover bottlenecks or inefficiencies in resource utilization, leading to cost savings and performance improvements. -Training an ML model is contingent on timely and efficient data delivery. Benchmarks in this context would also assess the efficiency of data pipelines, data preprocessing speed, and storage retrieval times. For real-time analytics systems, like those used in fraud detection, the speed at which training data is ingested, preprocessed, and fed into the model can be critical. Benchmarks would evaluate the latency of data pipelines, the efficiency of storage systems (like SSDs vs. HDDs), and the speed of data augmentation or transformation tasks. +In many cases, using a single hardware accelerator, such as a single GPU, is insufficient to meet the computational demands of large-scale model training. Machine learning models are often trained in data centers with multiple GPUs or TPUs, where distributed computing enables parallel processing across nodes. Training benchmarks assess how efficiently the system scales across multiple nodes, manages data sharding, and handles challenges like node failures or drop-offs during training. #### Metrics @@ -265,13 +276,13 @@ The following metrics are often considered important: 1. **Training Time:** The time it takes to train a model from scratch until it reaches a satisfactory performance level. It directly measures the computational resources required to train a model. For example, [Google's BERT](https://arxiv.org/abs/1810.04805) [@devlin2018bert] is a natural language processing model that requires several days to train on a massive corpus of text data using multiple GPUs. The long training time is a significant resource consumption and cost challenge. In some cases, benchmarks can instead measure the training throughput (training samples per unit of time). Throughput can be calculated much faster and easier than training time but may obscure the metrics we really care about (e.g. time to train). -2. **Scalability:** How well the training process can handle increases in data size or model complexity. Scalability can be assessed by measuring training time, memory usage, and other resource consumption as data size or model complexity increases. [OpenAI's GPT-3](https://arxiv.org/abs/2005.14165) [@brown2020language] model has 175 billion parameters, making it one of the largest language models in existence. Training GPT-3 required extensive engineering efforts to scale the training process to handle the massive model size. This involved using specialized hardware, distributed training, and other techniques to ensure the model could be trained efficiently. +2. **Scalability:** How well the training process can handle increases in data size or model complexity. Scalability can be assessed by measuring training time, memory usage, and other resource consumption as data size or model complexity increases. For instance, training OpenAI's GPT-3 required extensive engineering efforts to scale the training process across many GPU nodes to handle the massive model size. This involved using specialized hardware, distributed training, and other techniques to ensure the model could be trained efficiently. 3. **Resource Utilization:** The extent to which the training process utilizes available computational resources such as CPU, GPU, memory, and disk I/O. High resource utilization can indicate an efficient training process, while low utilization can suggest bottlenecks or inefficiencies. For instance, training a convolutional neural network (CNN) for image classification requires significant GPU resources. Utilizing multi-GPU setups and optimizing the training code for GPU acceleration can greatly improve resource utilization and training efficiency. 4. **Memory Consumption:** The amount of memory the training process uses. Memory consumption can be a limiting factor for training large models or datasets. For example, Google researchers faced significant memory consumption challenges when training BERT. The model has hundreds of millions of parameters, requiring large amounts of memory. The researchers had to develop techniques to reduce memory consumption, such as gradient checkpointing and model parallelism. -5. **Energy Consumption:** The energy consumed during training. As machine learning models become more complex, energy consumption has become an important consideration. Training large machine learning models can consume significant energy, leading to a large carbon footprint. For instance, the training of OpenAI's GPT-3 was estimated to have a carbon footprint equivalent to traveling by car for 700,000 kilometers. +5. **Energy Consumption:** The energy consumed during training. As machine learning models become more complex, energy consumption has become an important consideration. Training large machine learning models can consume significant energy, leading to a large carbon footprint. For instance, the training of OpenAI's GPT-3 was estimated to have a carbon footprint equivalent to traveling by car for 700,000 kilometers (~435,000 miles). 6. **Throughput:** The number of training samples processed per unit time. Higher throughput generally indicates a more efficient training process. The throughput is an important metric to consider when training a recommendation system for an e-commerce platform. A high throughput ensures that the model can process large volumes of user interaction data promptly, which is crucial for maintaining the relevance and accuracy of the recommendations. But it's also important to understand how to balance throughput with latency bounds. Therefore, a latency-bounded throughput constraint is often imposed on service-level agreements for data center application deployments. @@ -285,27 +296,13 @@ The following metrics are often considered important: By benchmarking for these types of metrics, we can obtain a comprehensive view of the training process's performance and efficiency from a systems perspective. This can help identify areas for improvement and ensure that resources are used effectively. -#### Tasks - -Selecting a handful of representative tasks for benchmarking machine learning systems is challenging because machine learning is applied to various domains with unique characteristics and requirements. Here are some of the challenges faced in selecting representative tasks: - -1. **Diversity of Applications:** Machine learning is used in numerous fields such as healthcare, finance, natural language processing, computer vision, and many more. Each field has specific tasks that may not be representative of other fields. For example, image classification tasks in computer vision may not be relevant to financial fraud detection. -2. **Variability in Data Types and Quality:** Different tasks require different data types, such as text, images, videos, or numerical data. Data quality and availability can vary greatly between tasks, making it difficult to select tasks that are representative of the general challenges faced in machine learning. -3. **Task Complexity and Difficulty:** The complexity of tasks varies greatly. Some are relatively straightforward, while others are highly complex and require sophisticated models and techniques. Selecting representative tasks that cover the complexities encountered in machine learning is challenging. -4. **Ethical and Privacy Concerns:** Some tasks may involve sensitive or private data, such as medical records or personal information. These tasks may have ethical and privacy concerns that need to be addressed, making them less suitable as representative tasks for benchmarking. -5. **Scalability and Resource Requirements:** Different tasks may have different scalability and resource requirements. Some tasks may require extensive computational resources, while others can be performed with minimal resources. Selecting tasks that represent the general resource requirements in machine learning is difficult. -6. **Evaluation Metrics:** The metrics used to evaluate the performance of machine learning models vary between tasks. Some tasks may have well-established evaluation metrics, while others lack clear or standardized metrics. This can make it challenging to compare performance across different tasks. -7. **Generalizability of Results:** The results obtained from benchmarking on a specific task may not be generalizable to other tasks. This means that a machine learning system's performance on a selected task may not be indicative of its performance on other tasks. - -It is important to carefully consider these factors when designing benchmarks to ensure they are meaningful and relevant to the diverse range of tasks encountered in machine learning. - #### Benchmarks Here are some original works that laid the fundamental groundwork for developing systematic benchmarks for training machine learning systems. -*[MLPerf Training Benchmark](https://github.com/mlcommons/training)* +**[MLPerf Training Benchmark](https://github.com/mlcommons/training)**: MLPerf is a suite of benchmarks designed to measure the performance of machine learning hardware, software, and services. The MLPerf Training benchmark [@mattson2020mlperf] focuses on the time it takes to train models to a target quality metric. It includes diverse workloads, such as image classification, object detection, translation, and reinforcement learning. @fig-perf-trend highlights the performance improvements in progressive versions of MLPerf Training benchmarks, which have all outpaced Moore's Law. Using standardized benchmarking trends enables us to rigorously showcase the rapid evolution of ML computing. -MLPerf is a suite of benchmarks designed to measure the performance of machine learning hardware, software, and services. The MLPerf Training benchmark [@mattson2020mlperf] focuses on the time it takes to train models to a target quality metric. It includes diverse workloads, such as image classification, object detection, translation, and reinforcement learning. +![MLPerf Training performance trends. Source: @mattson2020mlperf.](images/png/mlperf_perf_trend.png){#fig-perf-trend} Metrics: @@ -313,9 +310,7 @@ Metrics: * Throughput (examples per second) * Resource utilization (CPU, GPU, memory, disk I/O) -*[DAWNBench](https://dawn.cs.stanford.edu/benchmark/)* - -DAWNBench [@coleman2017dawnbench] is a benchmark suite focusing on end-to-end deep learning training time and inference performance. It includes common tasks such as image classification and question answering. +**[DAWNBench](https://dawn.cs.stanford.edu/benchmark/)**: DAWNBench [@coleman2017dawnbench] is a benchmark suite focusing on end-to-end deep learning training time and inference performance. It includes common tasks such as image classification and question answering. Metrics: @@ -323,9 +318,7 @@ Metrics: * Inference latency * Cost (in terms of cloud computing and storage resources) -*[Fathom](https://github.com/rdadolf/fathom)* - -Fathom [@adolf2016fathom] is a benchmark from Harvard University that evaluates the performance of deep learning models using a diverse set of workloads. These include common tasks such as image classification, speech recognition, and language modeling. +**[Fathom](https://github.com/rdadolf/fathom)**: Fathom [@adolf2016fathom] is a benchmark from Harvard University that evaluates the performance of deep learning models using a diverse set of workloads. These include common tasks such as image classification, speech recognition, and language modeling. Metrics: @@ -335,17 +328,18 @@ Metrics: #### Example Use Case -Consider a scenario where we want to benchmark the training of an image classification model on a specific hardware platform. +Imagine you have been tasked with benchmarking the training performance of an image classification model on a specific hardware platform. Let’s break down how you might approach this: + +1. **Define the Task**: First, choose a model and dataset. In this case, you’ll be training a CNN to classify images in the [CIFAR-10](https://www.cs.toronto.edu/kriz/cifar.html) dataset, a widely used benchmark in computer vision. -1. **Task:** The task is to train a convolutional neural network (CNN) for image classification on the CIFAR-10 dataset. -2. **Benchmark:** We can use the MLPerf Training benchmark for this task. It includes an image classification workload that is relevant to our task. -3. **Metrics:** We will measure the following metrics: +2. **Select the Benchmark**: Choosing a widely accepted benchmark helps ensure your setup is comparable with other real-world evaluations. You could choose to use the MLPerf Training benchmark because it provides a structured image classification workload, making it a relevant and standardized option for assessing training performance on CIFAR-10. Using MLPerf enables you to evaluate your system against industry-standard metrics, helping to ensure that results are meaningful and comparable to those achieved on other hardware platforms. -* Training time to reach a target accuracy of 90%. -* Throughput in terms of images processed per second. -* GPU and CPU utilization during training. +3. **Identify Key Metrics**: Now, decide on the metrics that will help you evaluate the system’s training performance. For this example, you might track: + - **Training Time**: How long does it take to reach 90% accuracy? + - **Throughput**: How many images are processed per second? + - **Resource Utilization**: What’s the GPU and CPU usage throughout training? -By measuring these metrics, we can assess the performance and efficiency of the training process on the selected hardware platform. This information can then be used to identify potential bottlenecks or areas for improvement. +By analyzing these metrics, you’ll gain insights into the model's training performance on your chosen hardware platform. Consider whether training time meets your expectations, if there are any bottlenecks, such as underutilized GPUs or slow data loading. This process helps identify areas for potential optimization, like improving data handling or adjusting resource allocation, and can guide future benchmarking decisions. ### Inference Benchmarks @@ -375,26 +369,6 @@ Finally, it is vital to ensure that the model's predictions are not only accurat 6. **Memory Usage:** Memory usage quantifies the volume of RAM needed by a machine learning model to carry out inference tasks. A relevant example to illustrate this would be a face recognition system based on a CNN; if such a system requires 150 MB of RAM to process and recognize faces within an image, its memory usage is 150 MB. -#### Tasks - -The challenges in picking representative tasks for benchmarking inference machine learning systems are, by and large, somewhat similar to the taxonomy we have provided for training. Nevertheless, to be pedantic, let's discuss those in the context of inference machine learning systems. - -1. **Diversity of Applications:** Inference machine learning is employed across numerous domains such as healthcare, finance, entertainment, security, and more. Each domain has unique tasks, and what's representative in one domain might not be in another. For example, an inference task for predicting stock prices in the financial domain might differ from image recognition tasks in the medical domain. - -2. **Variability in Data Types:** Different inference tasks require different types of data—text, images, videos, numerical data, etc. Ensuring that benchmarks address the wide variety of data types used in real-world applications is challenging. For example, voice recognition systems process audio data, which is vastly different from the visual data processed by facial recognition systems. - -3. **Task Complexity:** The complexity of inference tasks can differ immensely, from basic classification tasks to intricate tasks requiring state-of-the-art models. For example, differentiating between two categories (binary classification) is typically simpler than detecting hundreds of object types in a crowded scene. - -4. **Real-time Requirements:** Some applications demand immediate or real-time responses, while others may allow for some delay. In autonomous driving, real-time object detection and decision-making are paramount, whereas a recommendation engine for a shopping website might tolerate slight delays. - -5. **Scalability Concerns:** Given the varied scale of applications, from edge devices to cloud-based servers, tasks must represent the diverse computational environments where inference occurs. For example, an inference task running on a smartphone's limited resources differs from a powerful cloud server. - -6. **Evaluation Metrics Diversity:** The metrics used to evaluate performance can differ significantly depending on the task. Finding a common ground or universally accepted metric for diverse tasks is challenging. For example, precision and recall might be vital for a medical diagnosis task, whereas throughput (inferences per second) might be more crucial for video processing tasks. - -7. **Ethical and Privacy Concerns:** Concerns related to ethics and privacy exist, especially in sensitive areas like facial recognition or personal data processing. These concerns can impact the selection and nature of tasks used for benchmarking. For example, using real-world facial data for benchmarking can raise privacy issues, whereas synthetic data might not replicate real-world challenges. - -8. **Hardware Diversity:** With a wide range of devices from GPUs, CPUs, and TPUs to custom ASICs used for inference, ensuring that tasks are representative across varied hardware is challenging. For example, a task optimized for inference on a GPU might perform sub-optimally on an edge device. - #### Benchmarks Here are some original works that laid the fundamental groundwork for developing systematic benchmarks for inference machine learning systems. @@ -434,20 +408,19 @@ Metrics: #### Example Use Case -Consider a scenario where we want to evaluate the inference performance of an object detection model on a specific edge device. +Suppose you were tasked with evaluating the inference performance of an object detection model on a specific edge device. Here’s how you might approach structuring this benchmark: -Task: The task is to perform real-time object detection on video streams, detecting and identifying objects such as vehicles, pedestrians, and traffic signs. +1. **Define the Task**: In this case, the task is real-time object detection on video streams, identifying objects such as vehicles, pedestrians, and traffic signs. -Benchmark: We can use the AI Benchmark for this task as it evaluates inference performance on edge devices, which suits our scenario. +2. **Select the Benchmark**: To align with your goal of evaluating inference on an edge device, the AI Benchmark is a suitable choice. It provides a standardized framework specifically for assessing inference performance on edge hardware, making it relevant to this scenario. -Metrics: We will measure the following metrics: +3. **Identify Key Metrics**: Now, determine the metrics that will help evaluate the model’s inference performance. For this example, you might track: + - **Inference Time**: How long does it take to process each video frame? + - **Latency**: What is the delay in generating bounding boxes for detected objects? + - **Energy Consumption**: How much power is used during inference? + - **Throughput**: How many video frames are processed per second? -* Inference time to process each video frame -* Latency to generate the bounding boxes for detected objects -* Energy consumption during the inference process -* Throughput in terms of video frames processed per second - -By measuring these metrics, we can assess the performance of the object detection model on the edge device and identify any potential bottlenecks or areas for optimization to improve real-time processing capabilities. +By measuring these metrics, you’ll gain insights into how well the object detection model performs on the edge device. This can help identify any bottlenecks, such as slow frame processing or high energy consumption, and highlight areas for potential optimization to improve real-time performance. :::{#exr-perf .callout-caution collapse="true"} @@ -459,6 +432,31 @@ Get ready to put your AI models to the ultimate test! MLPerf is like the Olympic ::: + +### Benchmark Task Selection + +Selecting representative tasks for benchmarking machine learning systems is complex due to the varied applications, data types, and requirements across different domains. Machine learning is applied in fields such as healthcare, finance, natural language processing, and computer vision, each with unique tasks that may not be relevant or comparable to others. Key challenges in task selection include: + +1. **Diversity of Applications and Data Types:** Tasks across domains involve different data types (e.g., text, images, video) and qualities, making it difficult to find benchmarks that universally represent ML challenges. +2. **Task Complexity and Resource Needs:** Tasks vary in complexity and resource demands, with some requiring substantial computational power and sophisticated models, while others can be addressed with simpler resources and methods. +3. **Privacy Concerns:** Tasks involving sensitive data, such as medical records or personal information, introduce ethical and privacy issues, making them unsuitable for general benchmarks. +4. **Evaluation Metrics:** Performance metrics vary widely across tasks, and results from one task often do not generalize to others, complicating comparisons and limiting insights from one benchmarked task to another. + +Addressing these challenges is essential to designing meaningful benchmarks that are relevant across the diverse tasks encountered in machine learning, ensuring benchmarks provide useful, generalizable insights for both training and inference. + + +### Measuring Energy Efficiency + +As machine learning capabilities expand, both in training and inference, concerns about increased power consumption and its ecological footprint have intensified. Addressing the sustainability of ML systems, a topic explored in more depth in the [Sustainable AI](../sustainable_ai/sustainable_ai.qmd) chapter, has thus become a key priority. This focus on sustainability has led to the development of standardized benchmarks designed to accurately measure energy efficiency. However, standardizing these methodologies poses challenges due to the need to accommodate vastly different scales—from the microwatt consumption of TinyML devices to the megawatt demands of data center training systems. Moreover, ensuring that benchmarking is fair and reproducible requires accommodating the diverse range of hardware configurations and architectures in use today. + +One example is the MLPerf Power benchmarking methodology [@tschand2024mlperf], which tackles these challenges by tailoring the methodologies for datacenter, edge inference, and tiny inference systems while measuring power consumption as comprehensively as possible for each scale. This methodology adapts to a variety of hardware, from general-purpose CPUs to specialized AI accelerators, while maintaining uniform measurement principles to ensure that comparisons are both fair and accurate across different platforms. + +@fig-power-diagram illustrates the power measurement boundaries for different system scales, from TinyML devices to inference nodes and training racks. Each example highlights the components within the measurement boundary and those outside it. This setup allows for accurate reflection of the true energy costs associated with running ML workloads across various real-world scenarios, and ensures that the benchmark captures the full spectrum of energy consumption. + +![MLPerf Power system measurement diagram. Source: @tschand2024mlperf.](images/png/power_component_diagram.png){#fig-power-diagram} + +It is important to note that optimizing a system for performance may not lead to the most energy efficient execution. Oftentimes, sacrificing a small amount of performance or accuracy can lead to significant gains in energy efficiency, highlighting the importance of accurately benchmarking power metrics. Future insights from energy efficiency and sustainability benchmarking will enable us to optimize for more sustainable ML systems. + ### Benchmark Example To properly illustrate the components of a systems benchmark, we can look at the keyword spotting benchmark in MLPerf Tiny and explain the motivation behind each decision. @@ -505,15 +503,13 @@ But of all these, the most important challenge is benchmark engineering. #### Hardware Lottery -The ["hardware lottery"](https://arxiv.org/abs/2009.06489) in benchmarking machine learning systems refers to the situation where the success or efficiency of a machine learning model is significantly influenced by the compatibility of the model with the underlying hardware [@chu2021discovering]. In other words, some models perform exceptionally well because they are a good fit for the particular characteristics or capabilities of the hardware they are run on rather than because they are intrinsically superior models. - -![Hardware Lottery.](images/png/hardware_lottery.png){#fig-hardware-lottery} +The hardware lottery, first described by @10.1145/3467017, refers to the situation where a machine learning model's success or efficiency is significantly influenced by its compatibility with the underlying hardware [@chu2021discovering]. Some models perform exceptionally well not because they are intrinsically superior, but because they are optimized for specific hardware characteristics, such as the parallel processing capabilities of Graphics Processing Units (GPUs) or Tensor Processing Units (TPUs). -For instance, certain machine learning models may be designed and optimized to take advantage of the parallel processing capabilities of specific hardware accelerators, such as Graphics Processing Units (GPUs) or Tensor Processing Units (TPUs). As a result, these models might show superior performance when benchmarked on such hardware compared to other models that are not optimized for the hardware. +For instance, @fig-hardware-lottery compares the performance of models across different hardware platforms. The multi-hardware models show comparable results to "MobileNetV3 Large min" on both the CPU uint8 and GPU configurations. However, these multi-hardware models demonstrate significant performance improvements over the MobileNetV3 Large baseline when run on the EdgeTPU and DSP hardware. This emphasizes the variable efficiency of multi-hardware models in specialized computing environments. -For example, a 2018 paper introduced a new convolutional neural network architecture for image classification that achieved state-of-the-art accuracy on ImageNet. However, the paper only mentioned that the model was trained on 8 GPUs without specifying the model, memory size, or other relevant details. A follow-up study tried to reproduce the results but found that training the same model on commonly available GPUs achieved 10% lower accuracy, even after hyperparameter tuning. The original hardware likely had far higher memory bandwidth and compute power. As another example, training times for large language models can vary drastically based on the GPUs used. +![Accuracy-latency trade-offs of multiple ML models and how they perform on various hardware. Source: @chu2021discovering](images/png/hardware_lottery.png){#fig-hardware-lottery} -The "hardware lottery" can introduce challenges and biases in benchmarking machine learning systems, as the model's performance is not solely dependent on the model's architecture or algorithm but also on the compatibility and synergies with the underlying hardware. This can make it difficult to compare different models fairly and to identify the best model based on its intrinsic merits. It can also lead to a situation where the community converges on models that are a good fit for the popular hardware of the day, potentially overlooking other models that might be superior but incompatible with the current hardware trends. +Hardware lottery can introduce challenges and biases in benchmarking machine learning systems, as the model's performance is not solely dependent on the model's architecture or algorithm but also on the compatibility and synergies with the underlying hardware. This can make it difficult to compare different models fairly and to identify the best model based on its intrinsic merits. It can also lead to a situation where the community converges on models that are a good fit for the popular hardware of the day, potentially overlooking other models that might be superior but incompatible with the current hardware trends. #### Benchmark Engineering @@ -521,7 +517,7 @@ Hardware lottery occurs when a machine learning model unintentionally performs e In contrast to the accidental hardware lottery, benchmark engineering involves deliberately optimizing or designing a machine learning model to perform exceptionally well on specific hardware, often to win benchmarks or competitions. This intentional optimization might include tweaking the model's architecture, algorithms, or parameters to exploit the hardware's features and capabilities fully. -#### Problem +##### Problem Benchmark engineering refers to tweaking or modifying an AI system to optimize performance on specific benchmark tests, often at the expense of generalizability or real-world performance. This can include adjusting hyperparameters, training data, or other aspects of the system specifically to achieve high scores on benchmark metrics without necessarily improving the overall functionality or utility of the system. @@ -531,7 +527,7 @@ It can lead to several risks and challenges. One of the primary risks is that th The AI community must prioritize transparency and accountability to mitigate the risks associated with benchmark engineering. This can include disclosing any optimizations or adjustments made specifically for benchmark tests and providing more comprehensive evaluations of AI systems that include real-world performance metrics and benchmark scores. Researchers and developers must prioritize holistic improvements to AI systems that improve their generalizability and functionality across various applications rather than focusing solely on benchmark-specific optimizations. -#### Issues +##### Issues One of the primary problems with benchmark engineering is that it can compromise the real-world performance of AI systems. When developers focus on optimizing their systems to achieve high scores on specific benchmark tests, they may neglect other important system performance aspects crucial in real-world applications. For example, an AI system designed for image recognition might be engineered to perform exceptionally well on a benchmark test that includes a specific set of images but needs help to recognize images slightly different from those in the test set accurately. @@ -539,15 +535,15 @@ Another area for improvement with benchmark engineering is that it can result in It can also lead to misleading results. When AI systems are engineered to perform well on benchmark tests, the results may not accurately reflect the system's true capabilities. This can be problematic for users or investors who rely on benchmark scores to make informed decisions about which AI systems to use or invest in. For example, an AI system engineered to achieve high scores on a benchmark test for speech recognition might need to be more capable of accurately recognizing speech in real-world situations, leading users or investors to make decisions based on inaccurate information. -#### Mitigation +##### Mitigation There are several ways to mitigate benchmark engineering. Transparency in the benchmarking process is crucial to maintaining benchmark accuracy and reliability. This involves clearly disclosing the methodologies, data sets, and evaluation criteria used in benchmark tests, as well as any optimizations or adjustments made to the AI system for the purpose of the benchmark. One way to achieve transparency is through the use of open-source benchmarks. Open-source benchmarks are made publicly available, allowing researchers, developers, and other stakeholders to review, critique, and contribute to them, thereby ensuring their accuracy and reliability. This collaborative approach also facilitates sharing best practices and developing more robust and comprehensive benchmarks. -One example is the MLPerf Tiny. It's an open-source framework designed to make it easy to compare different solutions in the world of TinyML. Its modular design allows components to be swapped out for comparison or improvement. The reference implementations, shown in green and orange in @fig-ml-perf, act as the baseline for results. TinyML often needs optimization across the entire system, and users can contribute by focusing on specific parts, like quantization. The modular benchmark design allows users to showcase their contributions and competitive advantage by modifying a reference implementation. In short, MLPerf Tiny offers a flexible and modular way to assess and improve TinyML applications, making it easier to compare and improve different aspects of the technology. +The modular design of MLPerf Tiny connects to the problem of benchmark engineering by providing a structured yet flexible approach that encourages a balanced evaluation of TinyML. In benchmark engineering, systems may be overly optimized for specific benchmarks, leading to inflated performance scores that don’t necessarily translate to real-world effectiveness. MLPerf Tiny’s modular design aims to address this issue by allowing contributors to swap out and test specific components within a standardized framework, such as hardware, quantization techniques, or inference models. The reference implementations, highlighted in green and orange in @fig-ml-perf, provide a baseline for results, enabling flexible yet controlled testing by specifying which components can be modified. This structure supports transparency and flexibility, enabling a focus on genuine improvements rather than benchmark-specific optimizations. -![MLPerf Tiny modular design. Source: @mattson2020mlperf.](images/png/mlperf_tiny.png){#fig-ml-perf} +![Modular design of the MLPerf Tiny benchmark, showing the reference implementation with modifiable components. This modular approach enables flexible, targeted testing while maintaining a standardized baseline. Source: @banbury2021mlperf.](images/png/mlperf_tiny.png){#fig-ml-perf} Another method for achieving transparency is through peer review of benchmarks. This involves having independent experts review and validate the benchmark's methodology, data sets, and results to ensure their credibility and reliability. Peer review can provide a valuable means of verifying the accuracy of benchmark tests and help build confidence in the results. @@ -569,17 +565,17 @@ Machine learning datasets have a rich history and have evolved significantly ove The [MNIST dataset](https://www.tensorflow.org/datasets/catalog/mnist), created by Yann LeCun, Corinna Cortes, and Christopher J.C. Burges in 1998, can be considered a cornerstone in the history of machine learning datasets. It comprises 70,000 labeled 28x28 pixel grayscale images of handwritten digits (0-9). MNIST has been widely used for benchmarking algorithms in image processing and machine learning as a starting point for many researchers and practitioners. @fig-mnist shows some examples of handwritten digits. -![MNIST handwritten digits. Source: [Suvanjanprasai.](https://en.wikipedia.org/wiki/File:MnistExamplesModified.png)](images/png/mnist.png){#fig-mnist} +![MNIST handwritten digits. Source: [Suvanjanprasai](https://en.wikipedia.org/wiki/File:MnistExamplesModified.png)](images/png/mnist.png){#fig-mnist} #### ImageNet (2009) -Fast forward to 2009, and we see the introduction of the [ImageNet dataset](https://www.tensorflow.org/datasets/catalog/imagenet2012), which marked a significant leap in the scale and complexity of datasets. ImageNet consists of over 14 million labeled images spanning more than 20,000 categories. Fei-Fei Li and her team developed it to advance object recognition and computer vision research. The dataset became synonymous with the ImageNet Large Scale Visual Recognition Challenge (ILSVRC), an annual competition crucial in developing deep learning models, including the famous AlexNet in 2012. +Fast forward to 2009, and we see the introduction of the [ImageNet dataset](https://www.tensorflow.org/datasets/catalog/imagenet2012), which marked a significant leap in the scale and complexity of datasets. ImageNet consists of over 14 million labeled images spanning more than 20,000 categories. Fei-Fei Li and her team developed it to advance object recognition and computer vision research. The dataset became synonymous with the ImageNet [Large Scale Visual Recognition Challenge (LSVRC)](https://www.image-net.org/challenges/LSVRC/), an annual competition crucial in developing deep learning models, including the famous AlexNet in 2012. #### COCO (2014) -The [Common Objects in Context (COCO) dataset](https://cocodataset.org/) [@lin2014microsoft], released in 2014, further expanded the landscape of machine learning datasets by introducing a richer set of annotations. COCO consists of images containing complex scenes with multiple objects, and each image is annotated with object bounding boxes, segmentation masks, and captions. This dataset has been instrumental in advancing research in object detection, segmentation, and image captioning. +The [Common Objects in Context (COCO) dataset](https://cocodataset.org/) [@lin2014microsoft], released in 2014, further expanded the landscape of machine learning datasets by introducing a richer set of annotations. COCO consists of images containing complex scenes with multiple objects, and each image is annotated with object bounding boxes, segmentation masks, and captions, as shown in @fig-coco. This dataset has been instrumental in advancing research in object detection, segmentation, and image captioning. -![Coco dataset. Source: Coco.](images/png/coco.png){#fig-coco} +![Example images from the COCO dataset. Source: [Coco](https://cocodataset.org/)](images/png/coco.png){#fig-coco} #### GPT-3 (2020) @@ -607,61 +603,45 @@ Machine learning model evaluation has evolved from a narrow focus on accuracy to #### Accuracy -Accuracy is one of the most intuitive and commonly used metrics for evaluating machine learning models. At its core, accuracy measures the proportion of correct predictions made by the model out of all predictions. For example, imagine we have developed a machine learning model to classify images as either containing a cat or not. If we test this model on a dataset of 100 images, and it correctly identifies 90 of them, we would calculate its accuracy as 90%. +Accuracy is one of the most intuitive and commonly used metrics for evaluating machine learning models. In the early stages of machine learning, accuracy was often the primary, if not the only, metric considered when evaluating model performance. However, as the field has evolved, it’s become clear that relying solely on accuracy can be misleading, especially in applications where certain types of errors carry significant consequences. -In the initial stages of machine learning, accuracy was often the primary, if not the only, metric considered when evaluating model performance. This is understandable, given its straightforward nature and ease of interpretation. However, as the field has progressed, the limitations of relying solely on accuracy have become more apparent. +Consider the example of a medical diagnosis model with an accuracy of 95%. While at first glance this may seem impressive, we must look deeper to assess the model's performance fully. Suppose the model fails to accurately diagnose severe conditions that, while rare, can have severe consequences; its high accuracy may not be as meaningful. A well-known example of this limitation is [Google’s diabetic retinopathy model](https://about.google/intl/ALL_us/stories/seeingpotential/). While it achieved high accuracy in lab settings, it encountered challenges when deployed in real-world clinics in Thailand, where variations in patient populations, image quality, and environmental factors reduced its effectiveness. This example illustrates that even models with high accuracy need to be tested for their ability to generalize across diverse, unpredictable conditions to ensure reliability and impact in real-world settings. -Consider the example of a medical diagnosis model with an accuracy of 95%. While at first glance this may seem impressive, we must look deeper to assess the model's performance fully. Suppose the model fails to accurately diagnose severe conditions that, while rare, can have severe consequences; its high accuracy may not be as meaningful. A pertinent example of this is [Google's retinopathy machine learning model](https://about.google/intl/ALL_us/stories/seeingpotential/), which was designed to diagnose diabetic retinopathy and diabetic macular edema from retinal photographs. +Similarly, if the model performs well on average but exhibits significant disparities in performance across different demographic groups, this, too, would be cause for concern. The evolution of machine learning has thus seen a shift towards a more holistic approach to model evaluation, taking into account not just accuracy, but also other crucial factors such as fairness, transparency, and real-world applicability. A prime example is the [Gender Shades project](http://gendershades.org/) at MIT Media Lab, led by Joy Buolamwini, highlighting biases by performing better on lighter-skinned and male faces compared to darker-skinned and female faces. -The Google model demonstrated impressive accuracy levels in lab settings. Still, when deployed in real-world clinical environments in Thailand, [it faced significant challenges](https://www.technologyreview.com/2020/04/27/1000658/google-medical-ai-accurate-lab-real-life-clinic-covid-diabetes-retina-disease/). In the real-world setting, the model encountered diverse patient populations, varying image quality, and a range of different medical conditions that it had not been exposed to during its training. Consequently, its performance could have been better, and it struggled to maintain the same accuracy levels observed in lab settings. This example serves as a clear reminder that while high accuracy is an important and desirable attribute for a medical diagnosis model, it must be evaluated in conjunction with other factors, such as the model's ability to generalize to different populations and handle diverse and unpredictable real-world conditions, to understand its value and potential impact on patient care truly. - -Similarly, if the model performs well on average but exhibits significant disparities in performance across different demographic groups, this, too, would be cause for concern. - -The evolution of machine learning has thus seen a shift towards a more holistic approach to model evaluation, taking into account not just accuracy, but also other crucial factors such as fairness, transparency, and real-world applicability. A prime example is the [Gender Shades project](http://gendershades.org/) at MIT Media Lab, led by Joy Buolamwini, highlighting significant racial and gender biases in commercial facial recognition systems. The project evaluated the performance of three facial recognition technologies developed by IBM, Microsoft, and Face++. It found that they all exhibited biases, performing better on lighter-skinned and male faces compared to darker-skinned and female faces. - -While accuracy remains a fundamental and valuable metric for evaluating machine learning models, a more comprehensive approach is required to fully assess a model's performance. This means considering additional metrics that account for fairness, transparency, and real-world applicability, as well as conducting rigorous testing across diverse datasets to uncover and mitigate any potential biases. The move towards a more holistic approach to model evaluation reflects the maturation of the field and its increasing recognition of the real-world implications and ethical considerations associated with deploying machine learning models. +While accuracy remains essential for evaluating machine learning models, a comprehensive approach is needed to fully assess performance. This includes additional metrics for fairness, transparency, and real-world applicability, along with rigorous testing across diverse datasets to identify and address biases. This holistic evaluation approach reflects the field’s growing awareness of real-world implications in deploying models. #### Fairness -Fairness in machine learning models is a multifaceted and critical aspect that requires careful attention, particularly in high-stakes applications that significantly affect people's lives, such as in loan approval processes, hiring, and criminal justice. It refers to the equitable treatment of all individuals, irrespective of their demographic or social attributes such as race, gender, age, or socioeconomic status. - -Simply relying on accuracy can be insufficient and potentially misleading when evaluating models. For instance, consider a loan approval model with a 95% accuracy rate. While this figure may appear impressive at first glance, it does not reveal how the model performs across different demographic groups. If this model consistently discriminates against a particular group, its accuracy is less commendable, and its fairness is questioned. +Fairness in machine learning involves ensuring that models perform consistently across diverse groups, especially in high-impact applications like loan approvals, hiring, and criminal justice. Relying solely on accuracy can be misleading if the model exhibits biased outcomes across demographic groups. For example, a loan approval model with high accuracy may still consistently deny loans to certain groups, raising questions about its fairness. -Discrimination can manifest in various forms, such as direct discrimination, where a model explicitly uses sensitive attributes like race or gender in its decision-making process, or indirect discrimination, where seemingly neutral variables correlate with sensitive attributes, indirectly influencing the model's outcomes. An infamous example of the latter is the COMPAS tool used in the US criminal justice system, which exhibited racial biases in predicting recidivism rates despite not explicitly using race as a variable. +Bias in models can arise directly, when sensitive attributes like race or gender influence decisions, or indirectly, when neutral features correlate with these attributes, affecting outcomes. Simply relying on accuracy can be insufficient when evaluating models. For instance, consider a loan approval model with a 95% accuracy rate. While this figure may appear impressive at first glance, it does not reveal how the model performs across different demographic groups. For instance, a well-known example is the COMPAS tool used in the US criminal justice system, which showed racial biases in predicting recidivism despite not explicitly using race as a variable. -Addressing fairness involves careful examination of the model's performance across diverse groups, identifying potential biases, and rectifying disparities through corrective measures such as re-balancing datasets, adjusting model parameters, and implementing fairness-aware algorithms. Researchers and practitioners continuously develop metrics and methodologies tailored to specific use cases to evaluate fairness in real-world scenarios. For example, disparate impact analysis, demographic parity, and equal opportunity are some of the metrics employed to assess fairness. +Addressing fairness requires analyzing a model’s performance across groups, identifying biases, and applying corrective measures like re-balancing datasets or using fairness-aware algorithms. Researchers and practitioners continuously develop metrics and methodologies tailored to specific use cases to evaluate fairness in real-world scenarios. For example, disparate impact analysis, demographic parity, and equal opportunity are some of the metrics employed to assess fairness. Additionally, transparency and interpretability of models are fundamental to achieving fairness. Tools like [AI Fairness 360](https://ai-fairness-360.org/) and [Fairness Indicators](https://www.tensorflow.org/tfx/guide/fairness_indicators) help explain how a model makes decisions, allowing developers to detect and correct fairness issues in machine learning models. -Additionally, transparency and interpretability of models are fundamental to achieving fairness. Understanding how a model makes decisions can reveal potential biases and enable stakeholders to hold developers accountable. Open-source tools like [AI Fairness 360](https://ai-fairness-360.org/) by IBM and [Fairness Indicators](https://www.tensorflow.org/tfx/guide/fairness_indicators) by TensorFlow are being developed to facilitate fairness assessments and mitigation of biases in machine learning models. - -Ensuring fairness in machine learning models, particularly in applications that significantly impact people's lives, requires rigorous evaluation of the model's performance across diverse groups, careful identification and mitigation of biases, and implementation of transparency and interpretability measures. By comprehensively addressing fairness, we can work towards developing machine learning models that are equitable, just, and beneficial for society. +While accuracy is a valuable metric, it doesn’t always provide the full picture; assessing fairness ensures models are effective across real-world scenarios. Ensuring fairness in machine learning models, particularly in applications that significantly impact people's lives, requires rigorous evaluation of the model's performance across diverse groups, careful identification and mitigation of biases, and implementation of transparency and interpretability measures. #### Complexity -##### Parameters* - -In the initial stages of machine learning, model benchmarking often relied on parameter counts as a proxy for model complexity. The rationale was that more parameters typically lead to a more complex model, which should, in turn, deliver better performance. However, this approach has proven inadequate as it needs to account for the computational cost associated with processing many parameters. +##### Parameters -For example, GPT-3, developed by OpenAI, is a language model that boasts an astounding 175 billion parameters. While it achieves state-of-the-art performance on various natural language processing tasks, its size and the computational resources required to run it make it impractical for deployment in many real-world scenarios, especially those with limited computational capabilities. +In the initial stages of machine learning, model benchmarking often relied on parameter counts as a proxy for model complexity. The rationale was that more parameters typically lead to a more complex model, which should, in turn, deliver better performance. However, this approach overlooks the practical costs associated with processing large models. As parameter counts increase, so do the computational resources required, making such models impractical for deployment in real-world scenarios, particularly on devices with limited processing power. -Relying on parameter counts as a proxy for model complexity also fails to consider the model's efficiency. If optimized for efficiency, a model with fewer parameters might be just as effective, if not more so, than a model with a higher parameter count. For instance, MobileNets, developed by Google, is a family of models designed specifically for mobile and edge devices. They use depth-wise separable convolutions to reduce the number of parameters and computational costs while still achieving competitive performance. +Relying on parameter counts as a proxy for model complexity also fails to consider the model's efficiency. A well-optimized model with fewer parameters can often achieve comparable or even superior performance to a larger model. For instance, MobileNets, developed by Google, is a family of models designed specifically for mobile and edge devices. They used depth-wise separable convolutions to reduce parameter counts and computational demands while still maintaining strong performance. -In light of these limitations, the field has moved towards a more holistic approach to model benchmarking that considers parameter counts and other crucial factors such as floating-point operations per second (FLOPs), memory consumption, and latency. FLOPs, in particular, have emerged as an important metric as they provide a more accurate representation of the computational load a model imposes. This shift towards a more comprehensive approach to model benchmarking reflects a recognition of the need to balance performance with practicality, ensuring that models are effective, efficient, and deployable in real-world scenarios. +In light of these limitations, the field has moved towards a more holistic approach to model benchmarking that considers parameter counts and other crucial factors such as floating-point operations per second (FLOPs), memory consumption, and latency. This comprehensive approach balances performance with deployability, ensuring that models are not only accurate but also efficient and suitable for real-world applications. ##### FLOPS -The size of a machine learning model is an essential aspect that directly impacts its usability in practical scenarios, especially when computational resources are limited. Traditionally, the number of parameters in a model was often used as a proxy for its size, with the underlying assumption being that more parameters would translate to better performance. However, this simplistic view does not consider the computational cost of processing these parameters. This is where the concept of floating-point operations per second (FLOPs) comes into play, providing a more accurate representation of the computational load a model imposes. +FLOPs, or floating-point operations per second, have become a critical metric for representing a model’s computational load. Traditionally, parameter count was used as a proxy for model complexity, based on the assumption that more parameters would yield better performance. However, this approach overlooks the computational cost of processing these parameters, which can impact a model’s usability in real-world scenarios with limited resources. -FLOPs measure the number of floating-point operations a model performs to generate a prediction. A model with many FLOPs requires substantial computational resources to process the vast number of operations, which may render it impractical for certain applications. Conversely, a model with a lower FLOP count is more lightweight and can be easily deployed in scenarios where computational resources are limited. - -@fig-flops, from [@bianco2018benchmark], shows the relationship between Top-1 Accuracy on ImageNet (y-axis), the model's G-FLOPs (x-axis), and the model's parameter count (circle-size). +FLOPs measure the number of floating-point operations a model performs to generate a prediction. A model with many FLOPs requires substantial computational resources to process the vast number of operations, which may render it impractical for certain applications. Conversely, a model with a lower FLOP count is more lightweight and can be easily deployed in scenarios where computational resources are limited. @fig-flops, from [@bianco2018benchmark], illustrates the trade-off between ImageNet accuracy, FLOPs, and parameter count, showing that some architectures achieve higher efficiency than others. ![A graph that depicts the top-1 imagenet accuracy vs. the FLOP count of a model along with the model's parameter count. The figure shows a overall tradeoff between model complexity and accuracy, although some model architectures are more efficiency than others. Source: @bianco2018benchmark.](images/png/model_FLOPS_VS_TOP_1.png){#fig-flops} -Let's consider an example. BERT [Bidirectional Encoder Representations from Transformers] [@devlin2018bert], a popular natural language processing model, has over 340 million parameters, making it a large model with high accuracy and impressive performance across various tasks. However, the sheer size of BERT, coupled with its high FLOP count, makes it a computationally intensive model that may not be suitable for real-time applications or deployment on edge devices with limited computational capabilities. - -In light of this, there has been a growing interest in developing smaller models that can achieve similar performance levels as their larger counterparts while being more efficient in computational load. DistilBERT, for instance, is a smaller version of BERT that retains 97% of its performance while being 40% smaller in terms of parameter count. The size reduction also translates to a lower FLOP count, making DistilBERT a more practical choice for resource-constrained scenarios. +Let's consider an example. BERT---Bidirectional Encoder Representations from Transformers [@devlin2018bert]---is a popular natural language processing model, has over 340 million parameters, making it a large model with high accuracy and impressive performance across various tasks. However, the sheer size of BERT, coupled with its high FLOP count, makes it a computationally intensive model that may not be suitable for real-time applications or deployment on edge devices with limited computational capabilities. In light of this, there has been a growing interest in developing smaller models that can achieve similar performance levels as their larger counterparts while being more efficient in computational load. DistilBERT, for instance, is a smaller version of BERT that retains 97% of its performance while being 40% smaller in terms of parameter count. The size reduction also translates to a lower FLOP count, making DistilBERT a more practical choice for resource-constrained scenarios. -In summary, while parameter count provides a useful indication of model size, it is not a comprehensive metric as it needs to consider the computational cost associated with processing these parameters. FLOPs, on the other hand, offer a more accurate representation of a model's computational load and are thus an essential consideration when deploying machine learning models in real-world scenarios, particularly when computational resources are limited. The evolution from relying solely on parameter count to considering FLOPs signifies a maturation in the field, reflecting a greater awareness of the practical constraints and challenges of deploying machine learning models in diverse settings. +While parameter count indicates model size, it does not fully capture the computational cost. FLOPs provide a more accurate measure of computational load, highlighting the practical trade-offs in model deployment. This shift from parameter count to FLOPs reflects the field’s growing awareness of deployment challenges in diverse settings. ##### Efficiency @@ -717,10 +697,10 @@ The [Speech Commands dataset](https://arxiv.org/pdf/1804.03209.pdf) and its succ For the past several years, AI has focused on developing increasingly sophisticated machine learning models like large language models. The goal has been to create models capable of human-level or superhuman performance on a wide range of tasks by training them on massive datasets. This model-centric approach produced rapid progress, with models attaining state-of-the-art results on many established benchmarks. @fig-superhuman-perf shows the performance of AI systems relative to human performance (marked by the horizontal line at 0) across five applications: handwriting recognition, speech recognition, image recognition, reading comprehension, and language understanding. Over the past decade, the AI performance has surpassed that of humans. -However, growing concerns about issues like bias, safety, and robustness persist even in models that achieve high accuracy on standard benchmarks. Additionally, some popular datasets used for evaluating models are beginning to saturate, with models reaching near-perfect performance on existing test splits [@kiela2021dynabench]. As a simple example, there are test images in the classic MNIST handwritten digit dataset that may look indecipherable to most human evaluators but were assigned a label when the dataset was created - models that happen to agree with those labels may appear to exhibit superhuman performance but instead may only be capturing idiosyncrasies of the labeling and acquisition process from the dataset's creation in 1994. In the same spirit, computer vision researchers now ask, "Are we done with ImageNet?" [@beyer2020we]. This highlights limitations in the conventional model-centric approach of optimizing accuracy on fixed datasets through architectural innovations. - ![AI vs human performane. Source: @kiela2021dynabench.](images/png/dynabench.png){#fig-superhuman-perf} +However, growing concerns about issues like bias, safety, and robustness persist even in models that achieve high accuracy on standard benchmarks. Additionally, some popular datasets used for evaluating models are beginning to saturate, with models reaching near-perfect performance on existing test splits [@kiela2021dynabench]. As a simple example, there are test images in the classic MNIST handwritten digit dataset that may look indecipherable to most human evaluators but were assigned a label when the dataset was created - models that happen to agree with those labels may appear to exhibit superhuman performance but instead may only be capturing idiosyncrasies of the labeling and acquisition process from the dataset's creation in 1994. In the same spirit, computer vision researchers now ask, "Are we done with ImageNet?" [@beyer2020we]. This highlights limitations in the conventional model-centric approach of optimizing accuracy on fixed datasets through architectural innovations. + An alternative paradigm is emerging called data-centric AI. Rather than treating data as static and focusing narrowly on model performance, this approach recognizes that models are only as good as their training data. So, the emphasis shifts to curating high-quality datasets that better reflect real-world complexity, developing more informative evaluation benchmarks, and carefully considering how data is sampled, preprocessed, and augmented. The goal is to optimize model behavior by improving the data rather than just optimizing metrics on flawed datasets. Data-centric AI critically examines and enhances the data itself to produce beneficial AI. This reflects an important evolution in mindset as the field addresses the shortcomings of narrow benchmarking. This section will explore the key differences between model-centric and data-centric approaches to AI. This distinction has important implications for how we benchmark AI systems. Specifically, we will see how focusing on data quality and Efficiency can directly improve machine learning performance as an alternative to optimizing model architectures solely. The data-centric approach recognizes that models are only as good as their training data. So, enhancing data curation, evaluation benchmarks, and data handling processes can produce AI systems that are safer, fairer, and more robust. Rethinking benchmarking to prioritize data alongside models represents an important evolution as the field strives to deliver trustworthy real-world impact. @@ -776,7 +756,7 @@ Several approaches can be taken to improve data quality. These methods include a * **Feature Engineering:** Transforming or creating new features can significantly improve model performance by providing more relevant information for learning. * **Data Augmentation:** Augmenting data by creating new samples through various transformations can help improve model robustness and generalization. * **Active Learning:** This is a semi-supervised learning approach where the model actively queries a human oracle to label the most informative samples [@coleman2022similarity]. This ensures that the model is trained on the most relevant data. -* Dimensionality Reduction: Techniques like PCA can reduce the number of features in a dataset, thereby reducing complexity and training time. +* **Dimensionality Reduction:** Techniques like PCA can reduce the number of features in a dataset, thereby reducing complexity and training time. There are many other methods in the wild. But the goal is the same. Refining the dataset and ensuring it is of the highest quality can reduce the training time required for models to converge. However, achieving this requires developing and implementing sophisticated methods, algorithms, and techniques that can clean, preprocess, and augment data while retaining the most informative samples. This is an ongoing challenge that will require continued research and innovation in the field of machine learning. @@ -788,7 +768,7 @@ Benchmarking the triad of system, model, and data in an integrated fashion will @fig-benchmarking-trifecta illustrates the many potential ways to interplay data benchmarking, model benchmarking, and system infrastructure benchmarking together. Exploring these intricate interactions is likely to uncover new optimization opportunities and enhancement capabilities. The data, model, and system benchmark triad offers a rich space for co-design and co-optimization. -![Benchmarking trifecta.](images/png/trifecta.png){#fig-benchmarking-trifecta} +![Benchmarking trifecta.](images/png/benchmarking_trifecta.png){#fig-benchmarking-trifecta} While this integrated perspective represents an emerging trend, the field has much more to discover about the synergies and trade-offs between these components. As we iteratively benchmark combinations of data, models, and systems, new insights that remain hidden when these elements are studied in isolation will emerge. This multifaceted benchmarking approach charting the intersections of data, algorithms, and hardware promises to be a fruitful avenue for major progress in AI, even though it is still in its early stages. @@ -847,13 +827,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-perf ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ - -::: diff --git a/contents/core/benchmarking/images/png/benchmarking_trifecta.png b/contents/core/benchmarking/images/png/benchmarking_trifecta.png new file mode 100644 index 00000000..3b2b9e56 Binary files /dev/null and b/contents/core/benchmarking/images/png/benchmarking_trifecta.png differ diff --git a/contents/benchmarking/images/png/coco.png b/contents/core/benchmarking/images/png/coco.png similarity index 100% rename from contents/benchmarking/images/png/coco.png rename to contents/core/benchmarking/images/png/coco.png diff --git a/contents/benchmarking/images/png/cover_ai_benchmarking.png b/contents/core/benchmarking/images/png/cover_ai_benchmarking.png similarity index 100% rename from contents/benchmarking/images/png/cover_ai_benchmarking.png rename to contents/core/benchmarking/images/png/cover_ai_benchmarking.png diff --git a/contents/benchmarking/images/png/datavsmodelai.png b/contents/core/benchmarking/images/png/datavsmodelai.png similarity index 100% rename from contents/benchmarking/images/png/datavsmodelai.png rename to contents/core/benchmarking/images/png/datavsmodelai.png diff --git a/contents/benchmarking/images/png/dynabench.png b/contents/core/benchmarking/images/png/dynabench.png similarity index 100% rename from contents/benchmarking/images/png/dynabench.png rename to contents/core/benchmarking/images/png/dynabench.png diff --git a/contents/benchmarking/images/png/end2end.png b/contents/core/benchmarking/images/png/end2end.png similarity index 100% rename from contents/benchmarking/images/png/end2end.png rename to contents/core/benchmarking/images/png/end2end.png diff --git a/contents/benchmarking/images/png/hardware_lottery.png b/contents/core/benchmarking/images/png/hardware_lottery.png similarity index 100% rename from contents/benchmarking/images/png/hardware_lottery.png rename to contents/core/benchmarking/images/png/hardware_lottery.png diff --git a/contents/core/benchmarking/images/png/mlperf_perf_trend.png b/contents/core/benchmarking/images/png/mlperf_perf_trend.png new file mode 100644 index 00000000..711915a0 Binary files /dev/null and b/contents/core/benchmarking/images/png/mlperf_perf_trend.png differ diff --git a/contents/benchmarking/images/png/mlperf_tiny.png b/contents/core/benchmarking/images/png/mlperf_tiny.png similarity index 100% rename from contents/benchmarking/images/png/mlperf_tiny.png rename to contents/core/benchmarking/images/png/mlperf_tiny.png diff --git a/contents/benchmarking/images/png/mlperf_training_06-12-2024.png b/contents/core/benchmarking/images/png/mlperf_training_06-12-2024.png similarity index 100% rename from contents/benchmarking/images/png/mlperf_training_06-12-2024.png rename to contents/core/benchmarking/images/png/mlperf_training_06-12-2024.png diff --git a/contents/benchmarking/images/png/mlperf_training_progress.png b/contents/core/benchmarking/images/png/mlperf_training_progress.png similarity index 100% rename from contents/benchmarking/images/png/mlperf_training_progress.png rename to contents/core/benchmarking/images/png/mlperf_training_progress.png diff --git a/contents/benchmarking/images/png/mnist.png b/contents/core/benchmarking/images/png/mnist.png similarity index 100% rename from contents/benchmarking/images/png/mnist.png rename to contents/core/benchmarking/images/png/mnist.png diff --git a/contents/benchmarking/images/png/model_FLOPS_VS_TOP_1.png b/contents/core/benchmarking/images/png/model_FLOPS_VS_TOP_1.png similarity index 100% rename from contents/benchmarking/images/png/model_FLOPS_VS_TOP_1.png rename to contents/core/benchmarking/images/png/model_FLOPS_VS_TOP_1.png diff --git a/contents/core/benchmarking/images/png/power_component_diagram.png b/contents/core/benchmarking/images/png/power_component_diagram.png new file mode 100644 index 00000000..2bab340c Binary files /dev/null and b/contents/core/benchmarking/images/png/power_component_diagram.png differ diff --git a/contents/benchmarking/images/png/trainingvsinference.png b/contents/core/benchmarking/images/png/trainingvsinference.png similarity index 100% rename from contents/benchmarking/images/png/trainingvsinference.png rename to contents/core/benchmarking/images/png/trainingvsinference.png diff --git a/contents/benchmarking/images/png/trifecta.png b/contents/core/benchmarking/images/png/trifecta.png similarity index 100% rename from contents/benchmarking/images/png/trifecta.png rename to contents/core/benchmarking/images/png/trifecta.png diff --git a/contents/conclusion/conclusion.bib b/contents/core/conclusion/conclusion.bib similarity index 100% rename from contents/conclusion/conclusion.bib rename to contents/core/conclusion/conclusion.bib diff --git a/contents/conclusion/conclusion.qmd b/contents/core/conclusion/conclusion.qmd similarity index 100% rename from contents/conclusion/conclusion.qmd rename to contents/core/conclusion/conclusion.qmd diff --git a/contents/conclusion/images/png/cover_conclusion.png b/contents/core/conclusion/images/png/cover_conclusion.png similarity index 100% rename from contents/conclusion/images/png/cover_conclusion.png rename to contents/core/conclusion/images/png/cover_conclusion.png diff --git a/contents/data_engineering/data_engineering.bib b/contents/core/data_engineering/data_engineering.bib similarity index 100% rename from contents/data_engineering/data_engineering.bib rename to contents/core/data_engineering/data_engineering.bib diff --git a/contents/data_engineering/data_engineering.qmd b/contents/core/data_engineering/data_engineering.qmd similarity index 92% rename from contents/data_engineering/data_engineering.qmd rename to contents/core/data_engineering/data_engineering.qmd index 9c475633..7e93fb06 100644 --- a/contents/data_engineering/data_engineering.qmd +++ b/contents/core/data_engineering/data_engineering.qmd @@ -5,7 +5,7 @@ bibliography: data_engineering.bib # Data Engineering {#sec-data_engineering} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-data-engineering-resource), [Videos](#sec-data-engineering-resource), [Exercises](#sec-data-engineering-resource), [Labs](#sec-data-engineering-resource) +Resources: [Slides](#sec-data-engineering-resource), [Videos](#sec-data-engineering-resource), [Exercises](#sec-data-engineering-resource) ::: ![_DALL·E 3 Prompt: Create a rectangular illustration visualizing the concept of data engineering. Include elements such as raw data sources, data processing pipelines, storage systems, and refined datasets. Show how raw data is transformed through cleaning, processing, and storage to become valuable information that can be analyzed and used for decision-making._](images/png/cover_data_engineering.png) @@ -45,18 +45,20 @@ We begin by discussing data collection: Where do we source data, and how do we g ## Problem Definition -In many machine learning domains, sophisticated algorithms take center stage, while the fundamental importance of data quality is often overlooked. This neglect gives rise to ["Data Cascades"](https://research.google/pubs/pub49953/) by @sambasivan2021everyone (see @fig-cascades)—events where lapses in data quality compound, leading to negative downstream consequences such as flawed predictions, project terminations, and even potential harm to communities. In @fig-cascades, we have an illustration of potential data pitfalls at every stage and how they influence the entire process down the line. The influence of data collection errors is especially pronounced. Any lapses in this stage will become apparent at later stages (in model evaluation and deployment) and might lead to costly consequences, such as abandoning the entire model and restarting anew. Therefore, investing in data engineering techniques from the onset will help us detect errors early. +In many machine learning domains, sophisticated algorithms take center stage, while the fundamental importance of data quality is often overlooked. This neglect gives rise to ["Data Cascades"](https://research.google/pubs/pub49953/) by @sambasivan2021everyone—events where lapses in data quality compound, leading to negative downstream consequences such as flawed predictions, project terminations, and even potential harm to communities. + +@fig-cascades illustrates these potential data pitfalls at every stage and how they influence the entire process down the line. The influence of data collection errors is especially pronounced. As depicted in the figure, any lapses in this initial stage will become apparent at later stages (in model evaluation and deployment) and might lead to costly consequences, such as abandoning the entire model and restarting anew. Therefore, investing in data engineering techniques from the onset will help us detect errors early, mitigating the cascading effects illustrated in the figure. ![Data cascades: compounded costs. Source: @sambasivan2021everyone.](images/png/data_engineering_cascades.png){#fig-cascades} Despite many ML professionals recognizing the importance of data, numerous practitioners report facing these cascades. This highlights a systemic issue: while the allure of developing advanced models remains, data often needs to be more appreciated. -Take, for example, Keyword Spotting (KWS) (see @fig-keywords). KWS is a prime example of TinyML in action and is a critical technology behind voice-enabled interfaces on endpoint devices such as smartphones. Typically functioning as lightweight wake-word engines, these systems are consistently active, listening for a specific phrase to trigger further actions. When we say "OK, Google" or "Alexa," this initiates a process on a microcontroller embedded within the device. Despite their limited resources, these microcontrollers play an important role in enabling seamless voice interactions with devices, often operating in environments with high ambient noise. The uniqueness of the wake word helps minimize false positives, ensuring that the system is not triggered inadvertently. - -It is important to appreciate that these keyword-spotting technologies are not isolated; they integrate seamlessly into larger systems, processing signals continuously while managing low power consumption. These systems extend beyond simple keyword recognition, evolving to facilitate diverse sound detections, such as glass breaking. This evolution is geared towards creating intelligent devices capable of understanding and responding to vocal commands, heralding a future where even household appliances can be controlled through voice interactions. +Keyword Spotting (KWS) provides an excellent example of TinyML in action, as illustrated in @fig-keywords. This technology is critical for voice-enabled interfaces on endpoint devices such as smartphones. Typically functioning as lightweight wake-word engines, KWS systems are consistently active, listening for a specific phrase to trigger further actions. As depicted in the figure, when we say "OK, Google" or "Alexa," this initiates a process on a microcontroller embedded within the device. Despite their limited resources, these microcontrollers play an important role in enabling seamless voice interactions with devices, often operating in environments with high ambient noise. The uniqueness of the wake word, as shown in the figure, helps minimize false positives, ensuring that the system is not triggered inadvertently. ![Keyword Spotting example: interacting with Alexa. Source: Amazon.](images/png/data_engineering_kws.png){#fig-keywords} +It is important to appreciate that these keyword-spotting technologies are not isolated; they integrate seamlessly into larger systems, processing signals continuously while managing low power consumption. These systems extend beyond simple keyword recognition, evolving to facilitate diverse sound detections, such as glass breaking. This evolution is geared towards creating intelligent devices capable of understanding and responding to vocal commands, heralding a future where even household appliances can be controlled through voice interactions. + Building a reliable KWS model is a complex task. It demands a deep understanding of the deployment scenario, encompassing where and how these devices will operate. For instance, a KWS model's effectiveness is not just about recognizing a word; it's about discerning it among various accents and background noises, whether in a bustling cafe or amid the blaring sound of a television in a living room or a kitchen where these devices are commonly found. It's about ensuring that a whispered "Alexa" in the dead of night or a shouted "OK Google" in a noisy marketplace are recognized with equal precision. Moreover, many current KWS voice assistants support a limited number of languages, leaving a substantial portion of the world's linguistic diversity unrepresented. This limitation is partly due to the difficulty in gathering and monetizing data for languages spoken by smaller populations. The long-tail distribution of languages implies that many languages have limited data, making the development of supportive technologies challenging. @@ -125,12 +127,12 @@ In this context, using KWS as an example, we can break each of the steps out as ### Keyword Spotting with TensorFlow Lite Micro -Explore a hands-on guide for building and deploying Keyword Spotting (KWS) systems using TensorFlow Lite Micro. Follow steps from data collection to model training and deployment to microcontrollers. Learn to create efficient KWS models that recognize specific keywords amidst background noise. Perfect for those interested in machine learning on embedded systems. Unlock the potential of voice-enabled devices with TensorFlow Lite Micro! +Explore a hands-on guide for building and deploying Keyword Spotting systems using TensorFlow Lite Micro. Follow steps from data collection to model training and deployment to microcontrollers. Learn to create efficient KWS models that recognize specific keywords amidst background noise. Perfect for those interested in machine learning on embedded systems. Unlock the potential of voice-enabled devices with TensorFlow Lite Micro! [![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/drive/17I7GL8WTieGzXYKRtQM2FrFi3eLQIrOM) ::: -The current chapter underscores the essential role of data quality in ML, using Keyword Spotting (KWS) systems as an example. It outlines key steps, from problem definition to stakeholder engagement, emphasizing iterative feedback. The forthcoming chapter will dig deeper into data quality management, discussing its consequences and future trends, focusing on the importance of high-quality, diverse data in AI system development, addressing ethical considerations and data sourcing methods. +The current chapter underscores the essential role of data quality in ML, using Keyword Spotting systems as an example. It outlines key steps, from problem definition to stakeholder engagement, emphasizing iterative feedback. The forthcoming chapter will dig deeper into data quality management, discussing its consequences and future trends, focusing on the importance of high-quality, diverse data in AI system development, addressing ethical considerations and data sourcing methods. ## Data Sourcing @@ -144,10 +146,12 @@ The quality assurance that comes with popular pre-existing datasets is important While platforms like Kaggle and UCI Machine Learning Repository are invaluable resources, it's essential to understand the context in which the data was collected. Researchers should be wary of potential overfitting when using popular datasets, as multiple models might have been trained on them, leading to inflated performance metrics. Sometimes, these [datasets do not reflect the real-world data](https://venturebeat.com/uncategorized/3-big-problems-with-datasets-in-ai-and-machine-learning/). -In addition, bias, validity, and reproducibility issues may exist in these datasets, and there has been a growing awareness of these issues in recent years. Furthermore, using the same dataset to train different models as shown in @fig-misalignment can sometimes create misalignment: training multiple models using the same dataset results in a 'misalignment' between the models and the world, in which an entire ecosystem of models reflects only a narrow subset of the real-world data. +In recent years, there has been growing awareness of bias, validity, and reproducibility issues that may exist in machine learning datasets. @fig-misalignment illustrates another critical concern: the potential for misalignment when using the same dataset to train different models. ![Training different models on the same dataset. Source: (icons from left to right: Becris; Freepik; Freepik; Paul J; SBTS2018).](images/png/dataset_myopia.png){#fig-misalignment} +As shown in @fig-misalignment, training multiple models using the same dataset can result in a 'misalignment' between the models and the world. This misalignment creates an entire ecosystem of models that reflects only a narrow subset of the real-world data. Such a scenario can lead to limited generalization and potentially biased outcomes across various applications using these models. + ### Web Scraping Web scraping refers to automated techniques for extracting data from websites. It typically involves sending HTTP requests to web servers, retrieving HTML content, and parsing that content to extract relevant information. Popular tools and frameworks for web scraping include Beautiful Soup, Scrapy, and Selenium. These tools offer different functionalities, from parsing HTML content to automating web browser interactions, especially for websites that load content dynamically using JavaScript. @@ -201,7 +205,11 @@ Thus, while crowdsourcing can work well in many cases, the specialized needs of ### Synthetic Data -Synthetic data generation can be useful for addressing some of the data collection limitations. It involves creating data that wasn't originally captured or observed but is generated using algorithms, simulations, or other techniques to resemble real-world data. As shown in @fig-synthetic-data, synthetic data is merged with historical data and then used as input for model training. It has become a valuable tool in various fields, particularly when real-world data is scarce, expensive, or ethically challenging (e.g., TinyML). Various techniques, such as Generative Adversarial Networks (GANs), can produce high-quality synthetic data almost indistinguishable from real data. These techniques have advanced significantly, making synthetic data generation increasingly realistic and reliable. +Synthetic data generation can be a valuable solution for addressing data collection limitations. @fig-synthetic-data illustrates how this process works: synthetic data is merged with historical data to create a larger, more diverse dataset for model training. + +![Increasing training data size with synthetic data generation. Source: [AnyLogic](https://www.anylogic.com/features/artificial-intelligence/synthetic-data/).](images/jpg/synthetic_data.jpg){#fig-synthetic-data} + +As shown in the figure, synthetic data involves creating information that wasn't originally captured or observed but is generated using algorithms, simulations, or other techniques to resemble real-world data. This approach has become particularly valuable in fields where real-world data is scarce, expensive, or ethically challenging to obtain, such as in TinyML applications. Various techniques, including Generative Adversarial Networks (GANs), can produce high-quality synthetic data almost indistinguishable from real data. These methods have advanced significantly, making synthetic data generation increasingly realistic and reliable. More real-world data may need to be available for analysis or training machine learning models in many domains, especially emerging ones. Synthetic data can fill this gap by producing large volumes of data that mimic real-world scenarios. For instance, detecting the sound of breaking glass might be challenging in security applications where a TinyML device is trying to identify break-ins. Collecting real-world data would require breaking numerous windows, which is impractical and costly. @@ -215,8 +223,6 @@ Many embedded use cases deal with unique situations, such as manufacturing plant While synthetic data offers numerous advantages, it is essential to use it judiciously. Care must be taken to ensure that the generated data accurately represents the underlying real-world distributions and does not introduce unintended biases. -![Increasing training data size with synthetic data generation. Source: [AnyLogic](https://www.anylogic.com/features/artificial-intelligence/synthetic-data/).](images/jpg/synthetic_data.jpg){#fig-synthetic-data} - :::{#exr-sd .callout-caution collapse="true"} ### Synthetic Data @@ -247,12 +253,16 @@ Data sourcing and data storage go hand in hand, and data must be stored in a for : Comparative overview of the database, data warehouse, and data lake. {#tbl-storage .striped .hover} -The stored data is often accompanied by metadata, defined as 'data about data.' It provides detailed contextual information about the data, such as means of data creation, time of creation, attached data use license, etc. For example, [Hugging Face](https://huggingface.co/) has [Dataset Cards](https://huggingface.co/docs/hub/datasets-cards). To promote responsible data use, dataset creators should disclose potential biases through the dataset cards. These cards can educate users about a dataset's contents and limitations. The cards also give vital context on appropriate dataset usage by highlighting biases and other important details. Having this type of metadata can also allow fast retrieval if structured properly. Once the model is developed and deployed to edge devices, the storage systems can continue to store incoming data, model updates, or analytical results. @fig-data-collection showcases the pillars of data collection and their collection methods. +The stored data is often accompanied by metadata, defined as 'data about data. It provides detailed contextual information about the data, such as means of data creation, time of creation, attached data use license, etc. @fig-data-collection illustrates the key pillars of data collection and their associated methods, highlighting the importance of structured data management. For example, [Hugging Face](https://huggingface.co/) has implemented [Dataset Cards](https://huggingface.co/docs/hub/datasets-cards) to promote responsible data use. These cards, which align with the documentation pillar shown in @fig-data-collection, allow dataset creators to disclose potential biases and educate users about a dataset's contents and limitations. + +The dataset cards provide important context on appropriate dataset usage by highlighting biases and other important details. Having this type of structured metadata can also allow for fast retrieval, aligning with the efficient data management principles illustrated in the figure. Once the model is developed and deployed to edge devices, the storage systems can continue to store incoming data, model updates, or analytical results, potentially utilizing methods from multiple pillars shown in @fig-data-collection. This ongoing data collection and management process ensures that the model remains up-to-date and relevant in its operational environment. ![Pillars of data collection. Source: [Alexsoft](https://www.altexsoft.com/blog/data-collection-machine-learning/)](images/png/datacollection.png){#fig-data-collection} **Data Governance:** With a large amount of data storage, it is also imperative to have policies and practices (i.e., data governance) that help manage data during its life cycle, from acquisition to disposal. Data governance outlines how data is managed and includes making key decisions about data access and control. @fig-governance illustrates the different domains involved in data governance. It involves exercising authority and making decisions concerning data to uphold its quality, ensure compliance, maintain security, and derive value. Data governance is operationalized by developing policies, incentives, and penalties, cultivating a culture that perceives data as a valuable asset. Specific procedures and assigned authorities are implemented to safeguard data quality and monitor its utilization and related risks. +![An overview of the data governance framework. Source: [StarCIO.](https://www.groundwatergovernance.org/the-importance-of-governance-for-all-stakeholders/).](images/jpg/data_governance.jpg){#fig-governance} + Data governance utilizes three integrative approaches: planning and control, organizational, and risk-based. * **The planning and control approach**, common in IT, aligns business and technology through annual cycles and continuous adjustments, focusing on policy-driven, auditable governance. @@ -261,8 +271,6 @@ Data governance utilizes three integrative approaches: planning and control, org * **The risk-based approach**, intensified by AI advancements, focuses on identifying and managing inherent risks in data and algorithms. It especially addresses AI-specific issues through regular assessments and proactive risk management strategies, allowing for incidental and preventive actions to mitigate undesired algorithm impacts. -![An overview of the data governance framework. Source: [StarCIO.](https://www.groundwatergovernance.org/the-importance-of-governance-for-all-stakeholders/).](images/jpg/data_governance.jpg){#fig-governance} - Some examples of data governance across different sectors include: * **Medicine:** [Health Information Exchanges(HIEs)](https://www.healthit.gov/topic/health-it-and-health-information-exchange-basics/what-hie) enable the sharing of health information across different healthcare providers to improve patient care. They implement strict data governance practices to maintain data accuracy, integrity, privacy, and security, complying with regulations such as the [Health Insurance Portability and Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html). Governance policies ensure that patient data is only shared with authorized entities and that patients can control access to their information. @@ -302,7 +310,10 @@ Data often comes from diverse sources and can be unstructured or semi-structured * Using techniques like dimensionality reduction Data validation serves a broader role than ensuring adherence to certain standards, like preventing temperature values from falling below absolute zero. These issues arise in TinyML because sensors may malfunction or temporarily produce incorrect readings; such transients are not uncommon. Therefore, it is imperative to catch data errors early before propagating through the data pipeline. Rigorous validation processes, including verifying the initial annotation practices, detecting outliers, and handling missing values through techniques like mean imputation, contribute directly to the quality of datasets. This, in turn, impacts the performance, fairness, and safety of the models trained on them. -Let's take a look at @fig-data-engineering-kws2 for an example of a data processing pipeline. In the context of TinyML, the Multilingual Spoken Words Corpus (MSWC) is an example of data processing pipelines—systematic and automated workflows for data transformation, storage, and processing. The input data (which's a collection of short recordings) goes through several phases of processing, such as audio-word alignement and keyword extraction. By streamlining the data flow, from raw data to usable datasets, data pipelines improve productivity and facilitate the rapid development of machine learning models. The MSWC is an expansive and expanding collection of audio recordings of spoken words in 50 different languages, which are collectively used by over 5 billion people. This dataset is intended for academic study and business uses in areas like keyword identification and speech-based search. It is openly licensed under Creative Commons Attribution 4.0 for broad usage. + +Let's take a look at @fig-data-engineering-kws2 for an example of a data processing pipeline. In the context of TinyML, the Multilingual Spoken Words Corpus (MSWC) is an example of data processing pipelines—systematic and automated workflows for data transformation, storage, and processing. The input data (which's a collection of short recordings) goes through several phases of processing, such as audio-word alignement and keyword extraction. + +MSWC streamlines the data flow, from raw data to usable datasets, data pipelines improve productivity and facilitate the rapid development of machine learning models. The MSWC is an expansive and expanding collection of audio recordings of spoken words in 50 different languages, which are collectively used by over 5 billion people. This dataset is intended for academic study and business uses in areas like keyword identification and speech-based search. It is openly licensed under Creative Commons Attribution 4.0 for broad usage. ![An overview of the Multilingual Spoken Words Corpus (MSWC) data processing pipeline. Source: @mazumder2021multilingual.](images/png/data_engineering_kws2.png){#fig-data-engineering-kws2} @@ -333,7 +344,8 @@ Labels capture information about key tasks or concepts. @fig-labels includes som Unless focused on self-supervised learning, a dataset will likely provide labels addressing one or more tasks of interest. Given their unique resource constraints, dataset creators must consider what information labels should capture and how they can practically obtain the necessary labels. Creators must first decide what type(s) of content labels should capture. For example, a creator interested in car detection would want to label cars in their dataset. Still, they might also consider whether to simultaneously collect labels for other tasks that the dataset could potentially be used for, such as pedestrian detection. -Additionally, annotators can provide metadata that provides insight into how the dataset represents different characteristics of interest (see @sec-data-transparency). The Common Voice dataset, for example, includes various types of metadata that provide information about the speakers, recordings, and dataset quality for each language represented [@ardila2020common]. They include demographic splits showing the number of recordings by speaker age range and gender. This allows us to see who contributed recordings for each language. They also include statistics like average recording duration and total hours of validated recordings. These give insights into the nature and size of the datasets for each language. +Additionally, annotators can provide metadata that provides insight into how the dataset represents different characteristics of interest (see @sec-data-transparency). The Common Voice dataset, for example, includes various types of metadata that provide information about the speakers, recordings, and dataset quality for each language represented [@ardila2020common]. They include demographic splits showing the number of recordings by speaker age range and gender. This allows us to see who contributed recordings for each language. They also include statistics like average recording duration and total hours of validated recordings. These give insights into the nature and size of the datasets for each language. + Additionally, quality control metrics like the percentage of recordings that have been validated are useful to know how complete and clean the datasets are. The metadata also includes normalized demographic splits scaled to 100% for comparison across languages. This highlights representation differences between higher and lower resource languages. Next, creators must determine the format of those labels. For example, a creator interested in car detection might choose between binary classification labels that say whether a car is present, bounding boxes that show the general locations of any cars, or pixel-wise segmentation labels that show the exact location of each car. Their choice of label format may depend on their use case and resource constraints, as finer-grained labels are typically more expensive and time-consuming to acquire. @@ -376,14 +388,14 @@ ML has an insatiable demand for data. Therefore, more data is needed. This raise * **Active learning:** AI models can identify the most informative data points in a dataset, which can then be prioritized for human annotation. This can help improve the labeled dataset's quality while reducing the overall annotation time. * **Quality control:** AI models can identify and flag potential errors in human annotations, helping to ensure the accuracy and consistency of the labeled dataset. +![Strategies for acquiring additional labeled training data. Source: [Standford AI Lab.](https://ai.stanford.edu/blog/weak-supervision/)](https://ai.stanford.edu/blog//assets/img/posts/2019-03-03-weak_supervision/WS_mapping.png){#fig-weak-supervision} + Here are some examples of how AI-assisted annotation has been proposed to be useful: * **Medical imaging:** AI-assisted annotation labels medical images, such as MRI scans and X-rays [@krishnan2022selfsupervised]. Carefully annotating medical datasets is extremely challenging, especially at scale, since domain experts are scarce and become costly. This can help to train AI models to diagnose diseases and other medical conditions more accurately and efficiently. * **Self-driving cars:** AI-assisted annotation is being used to label images and videos from self-driving cars. This can help to train AI models to identify objects on the road, such as other vehicles, pedestrians, and traffic signs. * **Social media:** AI-assisted annotation labels social media posts like images and videos. This can help to train AI models to identify and classify different types of content, such as news, advertising, and personal posts. -![Strategies for acquiring additional labeled training data. Source: [Standford AI Lab.](https://ai.stanford.edu/blog/weak-supervision/)](https://dawn.cs.stanford.edu/assets/img/2017-07-16-weak-supervision/WS_mapping.png){#fig-weak-supervision} - ## Data Version Control Production systems are perpetually inundated with fluctuating and escalating volumes of data, prompting the rapid emergence of numerous data replicas. This increasing data serves as the foundation for training machine learning models. For instance, a global sales company engaged in sales forecasting continuously receives consumer behavior data. Similarly, healthcare systems formulating predictive models for disease diagnosis are consistently acquiring new patient data. TinyML applications, such as keyword spotting, are highly data-hungry regarding the amount of data generated. Consequently, meticulous tracking of data versions and the corresponding model performance is imperative. @@ -394,8 +406,7 @@ Data Version Control offers a structured methodology to handle alterations and v **Collaboration and Efficiency:** Easy access to different dataset versions in one place can improve data sharing of specific checkpoints and enable efficient collaboration. -**Reproducibility:** Data version control allows for tracking the performance of models concerning different versions of the data, -and therefore enabling reproducibility. +**Reproducibility:** Data version control allows for tracking the performance of models concerning different versions of the data, and therefore enabling reproducibility. **Key Concepts** @@ -411,7 +422,7 @@ With data version control in place, we can track the changes shown in @fig-data- **Popular Data Version Control Systems** -[**[DVC]{.underline}**](https://dvc.org/doc): It stands for Data Version Control in short and is an open-source, lightweight tool that works on top of Git Hub and supports all kinds of data formats. It can seamlessly integrate into the workflow if Git is used to manage code. It captures the versions of data and models in the Git commits while storing them on-premises or on the cloud (e.g., AWS, Google Cloud, Azure). These data and models (e.g., ML artifacts) are defined in the metadata files, which get updated in every commit. It can allow metrics tracking of models on different versions of the data. +[**[DVC]**](https://dvc.org/doc): It stands for Data Version Control in short and is an open-source, lightweight tool that works on top of Git Hub and supports all kinds of data formats. It can seamlessly integrate into the workflow if Git is used to manage code. It captures the versions of data and models in the Git commits while storing them on-premises or on the cloud (e.g., AWS, Google Cloud, Azure). These data and models (e.g., ML artifacts) are defined in the metadata files, which get updated in every commit. It can allow metrics tracking of models on different versions of the data. **[lakeFS](https://docs.lakefs.io/):** It is an open-source tool that supports the data version control on data lakes. It supports many git-like operations, such as branching and merging of data, as well as reverting to previous versions of the data. It also has a unique UI feature, making exploring and managing data much easier. @@ -542,15 +553,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-bl ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - - - diff --git a/contents/data_engineering/images/jpg/1914_traffic.jpeg b/contents/core/data_engineering/images/jpg/1914_traffic.jpeg similarity index 100% rename from contents/data_engineering/images/jpg/1914_traffic.jpeg rename to contents/core/data_engineering/images/jpg/1914_traffic.jpeg diff --git a/contents/data_engineering/images/jpg/data_engineering_features.jpg b/contents/core/data_engineering/images/jpg/data_engineering_features.jpg similarity index 100% rename from contents/data_engineering/images/jpg/data_engineering_features.jpg rename to contents/core/data_engineering/images/jpg/data_engineering_features.jpg diff --git a/contents/data_engineering/images/jpg/data_governance.jpg b/contents/core/data_engineering/images/jpg/data_governance.jpg similarity index 100% rename from contents/data_engineering/images/jpg/data_governance.jpg rename to contents/core/data_engineering/images/jpg/data_governance.jpg diff --git a/contents/data_engineering/images/jpg/synthetic_data.jpg b/contents/core/data_engineering/images/jpg/synthetic_data.jpg similarity index 100% rename from contents/data_engineering/images/jpg/synthetic_data.jpg rename to contents/core/data_engineering/images/jpg/synthetic_data.jpg diff --git a/contents/data_engineering/images/png/CS249r_Labels.png b/contents/core/data_engineering/images/png/CS249r_Labels.png similarity index 100% rename from contents/data_engineering/images/png/CS249r_Labels.png rename to contents/core/data_engineering/images/png/CS249r_Labels.png diff --git a/contents/data_engineering/images/png/cover_data_engineering.png b/contents/core/data_engineering/images/png/cover_data_engineering.png similarity index 100% rename from contents/data_engineering/images/png/cover_data_engineering.png rename to contents/core/data_engineering/images/png/cover_data_engineering.png diff --git a/contents/data_engineering/images/png/data_card.png b/contents/core/data_engineering/images/png/data_card.png similarity index 100% rename from contents/data_engineering/images/png/data_card.png rename to contents/core/data_engineering/images/png/data_card.png diff --git a/contents/data_engineering/images/png/data_engineering_cascades.png b/contents/core/data_engineering/images/png/data_engineering_cascades.png similarity index 100% rename from contents/data_engineering/images/png/data_engineering_cascades.png rename to contents/core/data_engineering/images/png/data_engineering_cascades.png diff --git a/contents/data_engineering/images/png/data_engineering_features.png b/contents/core/data_engineering/images/png/data_engineering_features.png similarity index 100% rename from contents/data_engineering/images/png/data_engineering_features.png rename to contents/core/data_engineering/images/png/data_engineering_features.png diff --git a/contents/data_engineering/images/png/data_engineering_kws.png b/contents/core/data_engineering/images/png/data_engineering_kws.png similarity index 100% rename from contents/data_engineering/images/png/data_engineering_kws.png rename to contents/core/data_engineering/images/png/data_engineering_kws.png diff --git a/contents/data_engineering/images/png/data_engineering_kws2.png b/contents/core/data_engineering/images/png/data_engineering_kws2.png similarity index 100% rename from contents/data_engineering/images/png/data_engineering_kws2.png rename to contents/core/data_engineering/images/png/data_engineering_kws2.png diff --git a/contents/data_engineering/images/png/data_version_ctrl.png b/contents/core/data_engineering/images/png/data_version_ctrl.png similarity index 100% rename from contents/data_engineering/images/png/data_version_ctrl.png rename to contents/core/data_engineering/images/png/data_version_ctrl.png diff --git a/contents/data_engineering/images/png/data_versioning.png b/contents/core/data_engineering/images/png/data_versioning.png similarity index 100% rename from contents/data_engineering/images/png/data_versioning.png rename to contents/core/data_engineering/images/png/data_versioning.png diff --git a/contents/data_engineering/images/png/datacollection.png b/contents/core/data_engineering/images/png/datacollection.png similarity index 100% rename from contents/data_engineering/images/png/datacollection.png rename to contents/core/data_engineering/images/png/datacollection.png diff --git a/contents/data_engineering/images/png/dataset_myopia.png b/contents/core/data_engineering/images/png/dataset_myopia.png similarity index 100% rename from contents/data_engineering/images/png/dataset_myopia.png rename to contents/core/data_engineering/images/png/dataset_myopia.png diff --git a/contents/dl_primer/dl_primer.bib b/contents/core/dl_primer/dl_primer.bib similarity index 100% rename from contents/dl_primer/dl_primer.bib rename to contents/core/dl_primer/dl_primer.bib diff --git a/contents/dl_primer/dl_primer.qmd b/contents/core/dl_primer/dl_primer.qmd similarity index 82% rename from contents/dl_primer/dl_primer.qmd rename to contents/core/dl_primer/dl_primer.qmd index 08718e5b..c44639d4 100644 --- a/contents/dl_primer/dl_primer.qmd +++ b/contents/core/dl_primer/dl_primer.qmd @@ -5,12 +5,14 @@ bibliography: dl_primer.bib # DL Primer {#sec-dl_primer} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-deep-learning-primer-resource), [Videos](#sec-deep-learning-primer-resource), [Exercises](#sec-deep-learning-primer-resource), [Labs](#sec-deep-learning-primer-resource) +Resources: [Slides](#sec-deep-learning-primer-resource), [Videos](#sec-deep-learning-primer-resource), [Exercises](#sec-deep-learning-primer-resource) ::: ![_DALL·E 3 Prompt: Photo of a classic classroom with a large blackboard dominating one wall. Chalk drawings showcase a detailed deep neural network with several hidden layers, and each node and connection is precisely labeled with white chalk. The rustic wooden floor and brick walls provide a contrast to the modern concepts. Surrounding the room, posters mounted on frames emphasize deep learning themes: convolutional networks, transformers, neurons, activation functions, and more._](images/png/cover_dl_primer.png) -This section briefly introduces deep learning, starting with an overview of its history, applications, and relevance to embedded AI systems. It examines the core concepts like neural networks, highlighting key components like perceptrons, multilayer perceptrons, activation functions, and computational graphs. The primer also briefly explores major deep learning architecture, contrasting their applications and uses. Additionally, it compares deep learning to traditional machine learning to equip readers with the general conceptual building blocks to make informed choices between deep learning and traditional ML techniques based on problem constraints, setting the stage for more advanced techniques and applications that will follow in subsequent chapters. +This section serves as a primer for deep learning, providing systems practitioners with essential context and foundational knowledge needed to implement deep learning solutions effectively. Rather than delving into theoretical depths, we focus on key concepts, architectures, and practical considerations relevant to systems implementation. We begin with an overview of deep learning's evolution and its particular significance in embedded AI systems. Core concepts like neural networks are introduced with an emphasis on implementation considerations rather than mathematical foundations. + +The primer explores major deep learning architectures from a systems perspective, examining their practical implications and resource requirements. We also compare deep learning to traditional machine learning approaches, helping readers make informed architectural choices based on real-world system constraints. This high-level overview sets the context for the more detailed systems-focused techniques and optimizations covered in subsequent chapters. ::: {.callout-tip} @@ -30,17 +32,23 @@ This section briefly introduces deep learning, starting with an overview of its ### Definition and Importance -Deep learning, a specialized area within machine learning and artificial intelligence (AI), utilizes algorithms modeled after the structure and function of the human brain, known as artificial neural networks. This field is a foundational element in AI, driving progress in diverse sectors such as computer vision, natural language processing, and self-driving vehicles. Its significance in embedded AI systems is highlighted by its capability to handle intricate calculations and predictions, optimizing the limited resources in embedded settings. @fig-ai-ml-dl illustrates the chronological development and relative segmentation of the three fields. +Deep learning, a specialized area within machine learning and artificial intelligence (AI), utilizes algorithms modeled after the structure and function of the human brain, known as artificial neural networks. This field is a foundational element in AI, driving progress in diverse sectors such as computer vision, natural language processing, and self-driving vehicles. Its significance in embedded AI systems is highlighted by its capability to handle intricate calculations and predictions, optimizing the limited resources in embedded settings. + +@fig-ai-ml-dl provides a visual representation of how deep learning fits within the broader context of AI and machine learning. The diagram illustrates the chronological development and relative segmentation of these three interconnected fields, showcasing deep learning as a specialized subset of machine learning, which in turn is a subset of AI. ![The diagram illustrates artificial intelligence as the overarching field encompassing all computational methods that mimic human cognitive functions. Machine learning is a subset of AI that includes algorithms capable of learning from data. Deep learning, a further subset of ML, specifically involves neural networks that are able to learn more complex patterns in large volumes of data. Source: NVIDIA.](images/png/ai_dl_progress_nvidia.png){#fig-ai-ml-dl} +As shown in the figure, AI represents the overarching field, encompassing all computational methods that mimic human cognitive functions. Machine learning, shown as a subset of AI, includes algorithms capable of learning from data. Deep learning, the smallest subset in the diagram, specifically involves neural networks that are able to learn more complex patterns from large volumes of data. + ### Brief History of Deep Learning The idea of deep learning has origins in early artificial neural networks. It has experienced several cycles of interest, starting with the introduction of the Perceptron in the 1950s [@rosenblatt1957perceptron], followed by the invention of backpropagation algorithms in the 1980s [@rumelhart1986learning]. The term "deep learning" became prominent in the 2000s, characterized by advances in computational power and data accessibility. Important milestones include the successful training of deep networks like AlexNet [@krizhevsky2012imagenet] by [Geoffrey Hinton](https://amturing.acm.org/award_winners/hinton_4791679.cfm), a leading figure in AI, and the renewed focus on neural networks as effective tools for data analysis and modeling. -Deep learning has recently seen exponential growth, transforming various industries. Computational growth followed an 18-month doubling pattern from 1952 to 2010, which then accelerated to a 6-month cycle from 2010 to 2022, as shown in @fig-trends. Concurrently, we saw the emergence of large-scale models between 2015 and 2022, appearing 2 to 3 orders of magnitude faster and following a 10-month doubling cycle. +Deep learning has recently seen exponential growth, transforming various industries. @fig-trends illustrates this remarkable progression, highlighting two key trends in the field. First, the graph shows that computational growth followed an 18-month doubling pattern from 1952 to 2010. This trend then dramatically accelerated to a 6-month doubling cycle from 2010 to 2022, indicating a significant leap in computational capabilities. + +Second, the figure depicts the emergence of large-scale models between 2015 and 2022. These models appeared 2 to 3 orders of magnitude faster than the general trend, following an even more aggressive 10-month doubling cycle. This rapid scaling of model sizes represents a paradigm shift in deep learning capabilities. ![Growth of deep learning models.](https://epochai.org/assets/images/posts/2022/compute-trends.png){#fig-trends} @@ -54,11 +62,11 @@ Organizations worldwide recognize deep learning's transformative potential and i ### Applications of Deep Learning -Deep learning is extensively used across numerous industries today, and its transformative impact on society is evident. In finance, it powers stock market prediction, risk assessment, and fraud detection. For instance, deep learning algorithms can predict stock market trends, guide investment strategies, and improve financial decisions. In marketing, it drives customer segmentation, personalization, and content optimization. Deep learning analyzes consumer behavior and preferences to enable highly targeted advertising and personalized content delivery. In manufacturing, deep learning streamlines production processes and enhances quality control by continuously analyzing large volumes of data. This allows companies to boost productivity and minimize waste, leading to the production of higher quality goods at lower costs. In healthcare, machine learning aids in diagnosis, treatment planning, and patient monitoring. Similarly, deep learning can make medical predictions that improve patient diagnosis and save lives. The benefits are clear: machine learning predicts with greater accuracy than humans and does so much more quickly. @fig-deeplearning further illustrates some applications of deep learning. +Deep learning is extensively used across numerous industries today, with its transformative impact evident in various sectors, as illustrated in @fig-deeplearning. In finance, it powers stock market prediction, risk assessment, and fraud detection, guiding investment strategies and improving financial decisions. Marketing leverages deep learning for customer segmentation and personalization, enabling highly targeted advertising and content optimization based on consumer behavior analysis. In manufacturing, it streamlines production processes and enhances quality control, allowing companies to boost productivity and minimize waste. Healthcare benefits from deep learning in diagnosis, treatment planning, and patient monitoring, potentially saving lives through improved medical predictions. -Deep learning enhances everyday products, such as strengthening Netflix's recommender systems to provide users with more [personalized recommendations](https://dl.acm.org/doi/abs/10.1145/3543873.3587675). At Google, deep learning models have driven significant improvements in [Google Translate](https://research.google/blog/recent-advances-in-google-translate/), enabling it to handle over [100 languages](https://cloud.google.com/translate/docs/languages). Autonomous vehicles from companies like Waymo, Cruise, and Motional have become a reality through the use of deep learning in their [perception system](https://motional.com/news/technically-speaking-improving-av-perception-through-transformative-machine-learning). Additionally, Amazon employs deep learning at the edge in their Alexa devices to perform [keyword spotting](https://towardsdatascience.com/how-amazon-alexa-works-your-guide-to-natural-language-processing-ai-7506004709d3). +![Deep learning applications, benefits, and implementations across various industries including finance, marketing, manufacturing, and healthcare. Source: [Leeway Hertz](https://www.leewayhertz.com/what-is-deep-learning/)](images/png/deeplearning.png){#fig-deeplearning} -![Deep learning applications, benefits and implementations. Source: [Leeway Hertz](https://www.leewayhertz.com/what-is-deep-learning/)](images/png/deeplearning.png){#fig-deeplearning} +Beyond these core industries, deep learning enhances everyday products and services. Netflix uses it to strengthen its recommender systems, providing users with more [personalized recommendations](https://dl.acm.org/doi/abs/10.1145/3543873.3587675). Google has significantly improved its Translate service, now handling over [100 languages](https://cloud.google.com/translate/docs/languages) with increased accuracy, as highlighted in their [recent advances](https://research.google/blog/recent-advances-in-google-translate/). Autonomous vehicles from companies like Waymo, Cruise, and Motional have become a reality through deep learning in their [perception system](https://motional.com/news/technically-speaking-improving-av-perception-through-transformative-machine-learning). Additionally, Amazon employs deep learning at the edge in Alexa devices for tasks such as [keyword spotting](https://towardsdatascience.com/how-amazon-alexa-works-your-guide-to-natural-language-processing-ai-7506004709d3). These applications demonstrate how machine learning often predicts and processes information with greater accuracy and speed than humans, revolutionizing various aspects of our daily lives. ### Relevance to Embedded AI @@ -74,7 +82,11 @@ Below, we examine the primary components and structures in neural networks. ### Perceptrons -The Perceptron is the basic unit or node that forms the foundation for more complex structures. It functions by taking multiple inputs, each representing a feature of the object under analysis, such as the characteristics of a home for predicting its price or the attributes of a song to forecast its popularity in music streaming services. These inputs are denoted as $x_1, x_2, ..., x_n$. +The Perceptron is the basic unit or node that forms the foundation for more complex structures. It functions by taking multiple inputs, each representing a feature of the object under analysis, such as the characteristics of a home for predicting its price or the attributes of a song to forecast its popularity in music streaming services. These inputs are denoted as $x_1, x_2, ..., x_n$. A perceptron can be configured to perform either regression or classification tasks. For regression, the actual numerical output $\hat{y}$ is used. For classification, the output depends on whether $\hat{y}$ crosses a certain threshold. If $\hat{y}$ exceeds this threshold, the perceptron might output one class (e.g., 'yes'), and if it does not, another class (e.g., 'no'). + +@fig-perceptron illustrates the fundamental building blocks of a perceptron, which serves as the foundation for more complex neural networks. A perceptron can be thought of as a miniature decision-maker, utilizing its weights, bias, and activation function to process inputs and generate outputs based on learned parameters. This concept forms the basis for understanding more intricate neural network architectures, such as multilayer perceptrons. In these advanced structures, layers of perceptrons work in concert, with each layer's output serving as the input for the subsequent layer. This hierarchical arrangement creates a deep learning model capable of comprehending and modeling complex, abstract patterns within data. By stacking these simple units, neural networks gain the ability to tackle increasingly sophisticated tasks, from image recognition to natural language processing. + +![Perceptron. Conceived in the 1950s, perceptrons paved the way for developing more intricate neural networks and have been a fundamental building block in deep learning. Source: Wikimedia - Chrislb.](images/png/Rosenblattperceptron.png){#fig-perceptron} Each input $x_i$ has a corresponding weight $w_{ij}$, and the perceptron simply multiplies each input by its matching weight. This operation is similar to linear regression, where the intermediate output, $z$, is computed as the sum of the products of inputs and their weights: @@ -98,21 +110,15 @@ $$ ![Activation functions enable the modeling of complex non-linear relationships. Source: Medium - Sachin Kaushik.](images/png/nonlinear_patterns.png){#fig-nonlinear} -A perceptron can be configured to perform either regression or classification tasks. For regression, the actual numerical output $\hat{y}$ is used. For classification, the output depends on whether $\hat{y}$ crosses a certain threshold. If $\hat{y}$ exceeds this threshold, the perceptron might output one class (e.g., 'yes'), and if it does not, another class (e.g., 'no'). - -![Perceptron. Conceived in the 1950s, perceptrons paved the way for developing more intricate neural networks and have been a fundamental building block in deep learning. Source: Wikimedia - Chrislb.](images/png/Rosenblattperceptron.png){#fig-perceptron} - -@fig-perceptron illustrates the fundamental building blocks of a perceptron, which serves as the foundation for more complex neural networks. A perceptron can be thought of as a miniature decision-maker, utilizing its weights, bias, and activation function to process inputs and generate outputs based on learned parameters. This concept forms the basis for understanding more intricate neural network architectures, such as multilayer perceptrons. In these advanced structures, layers of perceptrons work in concert, with each layer's output serving as the input for the subsequent layer. This hierarchical arrangement creates a deep learning model capable of comprehending and modeling complex, abstract patterns within data. By stacking these simple units, neural networks gain the ability to tackle increasingly sophisticated tasks, from image recognition to natural language processing. - ### Multilayer Perceptrons -Multilayer perceptrons (MLPs) are an evolution of the single-layer perceptron model, featuring multiple layers of nodes connected in a feedforward manner. In a feedforward network, information moves in only one direction - from the input layer, through the hidden layers, to the output layer, without any cycles or loops. This structure is illustrated in @fig-mlp. The network layers include an input layer for data reception, several hidden layers for data processing, and an output layer for final result generation. - -While a single perceptron is limited in its capacity to model complex patterns, the real strength of neural networks emerges from the assembly of multiple layers. Each layer consists of numerous perceptrons working together, allowing the network to capture intricate and non-linear relationships within the data. With sufficient depth and breadth, these networks can approximate virtually any function, no matter how complex. +Multilayer perceptrons (MLPs) are an evolution of the single-layer perceptron model, featuring multiple layers of nodes connected in a feedforward manner. @fig-mlp provides a visual representation of this structure. As illustrated in the figure, information in a feedforward network moves in only one direction - from the input layer on the left, through the hidden layers in the middle, to the output layer on the right, without any cycles or loops. ![Multilayer Perceptron. Source: Wikimedia - Charlie.](https://www.nomidl.com/wp-content/uploads/2022/04/image-7.png){width=70% #fig-mlp} -### Training Process +While a single perceptron is limited in its capacity to model complex patterns, the real strength of neural networks emerges from the assembly of multiple layers. Each layer consists of numerous perceptrons working together, allowing the network to capture intricate and non-linear relationships within the data. With sufficient depth and breadth, these networks can approximate virtually any function, no matter how complex. + +### Training Process A neural network receives an input, performs a calculation, and produces a prediction. The prediction is determined by the calculations performed within the sets of perceptrons found between the input and output layers. These calculations depend primarily on the input and the weights. Since you do not have control over the input, the objective during training is to adjust the weights in such a way that the output of the network provides the most accurate prediction. @@ -120,9 +126,7 @@ The training process involves several key steps, beginning with the forward pass #### Forward Pass -The forward pass is the initial phase where data moves through the network from the input to the output layer. At the start of training, the network's weights are randomly initialized, setting the initial conditions for learning. During the forward pass, each layer performs specific computations on the input data using these weights and biases, and the results are then passed to the subsequent layer. The final output of this phase is the network's prediction. This prediction is compared to the actual target values present in the dataset to calculate the loss, which can be thought of as the difference between the predicted outputs and the target values. The loss quantifies the network's performance at this stage, providing a crucial metric for the subsequent adjustment of weights during the backward pass. - -@fig-forward-propagation explains the concept of forward pass using an illustration. +The forward pass is the initial phase where data moves through the network from the input to the output layer, as illustrated in @fig-forward-propagation. At the start of training, the network's weights are randomly initialized, setting the initial conditions for learning. During the forward pass, each layer performs specific computations on the input data using these weights and biases, and the results are then passed to the subsequent layer. The final output of this phase is the network's prediction. This prediction is compared to the actual target values present in the dataset to calculate the loss, which can be thought of as the difference between the predicted outputs and the target values. The loss quantifies the network's performance at this stage, providing a crucial metric for the subsequent adjustment of weights during the backward pass. ![Neural networks - forward and backward propagation. Source: [Linkedin](https://www.linkedin.com/pulse/lecture2-unveiling-theoretical-foundations-ai-machine-underdown-phd-oqsuc/)](images/png/forwardpropagation.png){#fig-forward-propagation} @@ -199,8 +203,8 @@ CNNs are crucial for image and video recognition tasks, where real-time processi ### Convolutional Neural Networks (CNNs) -We discussed that CNNs excel at identifying image features, making them ideal for tasks like object classification. Now, you'll get to put this knowledge into action! This Colab notebook focuses on building a CNN to classify images from the CIFAR-10 dataset, which includes objects like airplanes, cars, and animals. You'll learn about the key differences between CIFAR-10 and the MNIST dataset we explored earlier and how these differences influence model choice. By the end of this notebook, you'll have a grasp of CNNs for image recognition and be well on your way to becoming a TinyML expert!   -   +We discussed that CNNs excel at identifying image features, making them ideal for tasks like object classification. Now, you'll get to put this knowledge into action! This Colab notebook focuses on building a CNN to classify images from the CIFAR-10 dataset, which includes objects like airplanes, cars, and animals. You'll learn about the key differences between CIFAR-10 and the MNIST dataset we explored earlier and how these differences influence model choice. By the end of this notebook, you'll have a grasp of CNNs for image recognition. + [![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/github/Mjrovai/UNIFEI-IESTI01-TinyML-2022.1/blob/main/00_Curse_Folder/1_Fundamentals/Class_11/CNN_Cifar_10.ipynb) ::: @@ -233,7 +237,13 @@ These architectures serve specific purposes and excel in different domains, offe ### Traditional ML vs Deep Learning -Deep learning extends traditional machine learning by utilizing neural networks to discern patterns in data. In contrast, traditional machine learning relies on a set of established algorithms such as decision trees, k-nearest neighbors, and support vector machines, but does not involve neural networks. To briefly highlight the differences, @tbl-mlvsdl illustrates the contrasting characteristics between traditional ML and deep learning. @fig-ml-dl further explains the differences between Machine Learning and Deep Learning. +Deep learning extends traditional machine learning by utilizing neural networks to discern patterns in data. In contrast, traditional machine learning relies on a set of established algorithms such as decision trees, k-nearest neighbors, and support vector machines, but does not involve neural networks. @fig-ml-dl provides a visual comparison of Machine Learning and Deep Learning, highlighting their key differences in approach and capabilities. + +![Comparing Machine Learning and Deep Learning. Source: [Medium](https://aoyilmaz.medium.com/understanding-the-differences-between-deep-learning-and-machine-learning-eb41d64f1732)](images/png/mlvsdl.png){#fig-ml-dl} + +As shown in the figure, deep learning models can process raw data directly and automatically extract relevant features, while traditional machine learning often requires manual feature engineering. The figure also illustrates how deep learning models can handle more complex tasks and larger datasets compared to traditional machine learning approaches. + +To further highlight the differences, @tbl-mlvsdl provides a more detailed comparison of the contrasting characteristics between traditional ML and deep learning. This table complements the visual representation in @fig-ml-dl by offering specific points of comparison across various aspects of these two approaches. +-------------------------------+-----------------------------------------------------------+--------------------------------------------------------------+ | Aspect | Traditional ML | Deep Learning | @@ -253,8 +263,6 @@ Deep learning extends traditional machine learning by utilizing neural networks : Comparison of traditional machine learning and deep learning. {#tbl-mlvsdl .striped .hover} -![Comparing Machine Learning and Deep Learning. Source: [Medium](https://aoyilmaz.medium.com/understanding-the-differences-between-deep-learning-and-machine-learning-eb41d64f1732)](images/png/mlvsdl.png){#fig-ml-dl} - ### Choosing Traditional ML vs. DL #### Data Availability and Volume @@ -367,10 +375,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-cnn ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -* _Coming soon._ -::: diff --git a/contents/dl_primer/images/jpg/activation-functions3.jpg b/contents/core/dl_primer/images/jpg/activation-functions3.jpg similarity index 100% rename from contents/dl_primer/images/jpg/activation-functions3.jpg rename to contents/core/dl_primer/images/jpg/activation-functions3.jpg diff --git a/contents/dl_primer/images/png/Rosenblattperceptron.png b/contents/core/dl_primer/images/png/Rosenblattperceptron.png similarity index 100% rename from contents/dl_primer/images/png/Rosenblattperceptron.png rename to contents/core/dl_primer/images/png/Rosenblattperceptron.png diff --git a/contents/dl_primer/images/png/ai_dl_progress_nvidia.png b/contents/core/dl_primer/images/png/ai_dl_progress_nvidia.png similarity index 100% rename from contents/dl_primer/images/png/ai_dl_progress_nvidia.png rename to contents/core/dl_primer/images/png/ai_dl_progress_nvidia.png diff --git a/contents/dl_primer/images/png/cover_dl_primer.png b/contents/core/dl_primer/images/png/cover_dl_primer.png similarity index 100% rename from contents/dl_primer/images/png/cover_dl_primer.png rename to contents/core/dl_primer/images/png/cover_dl_primer.png diff --git a/contents/dl_primer/images/png/deeplearning.png b/contents/core/dl_primer/images/png/deeplearning.png similarity index 100% rename from contents/dl_primer/images/png/deeplearning.png rename to contents/core/dl_primer/images/png/deeplearning.png diff --git a/contents/dl_primer/images/png/forwardpropagation.png b/contents/core/dl_primer/images/png/forwardpropagation.png similarity index 100% rename from contents/dl_primer/images/png/forwardpropagation.png rename to contents/core/dl_primer/images/png/forwardpropagation.png diff --git a/contents/dl_primer/images/png/mlvsdl.png b/contents/core/dl_primer/images/png/mlvsdl.png similarity index 100% rename from contents/dl_primer/images/png/mlvsdl.png rename to contents/core/dl_primer/images/png/mlvsdl.png diff --git a/contents/dl_primer/images/png/nonlinear_patterns.png b/contents/core/dl_primer/images/png/nonlinear_patterns.png similarity index 100% rename from contents/dl_primer/images/png/nonlinear_patterns.png rename to contents/core/dl_primer/images/png/nonlinear_patterns.png diff --git a/contents/efficient_ai/efficient_ai.bib b/contents/core/efficient_ai/efficient_ai.bib similarity index 100% rename from contents/efficient_ai/efficient_ai.bib rename to contents/core/efficient_ai/efficient_ai.bib diff --git a/contents/efficient_ai/efficient_ai.qmd b/contents/core/efficient_ai/efficient_ai.qmd similarity index 96% rename from contents/efficient_ai/efficient_ai.qmd rename to contents/core/efficient_ai/efficient_ai.qmd index 9ebd1b27..dc6bd007 100644 --- a/contents/efficient_ai/efficient_ai.qmd +++ b/contents/core/efficient_ai/efficient_ai.qmd @@ -5,12 +5,12 @@ bibliography: efficient_ai.bib # Efficient AI {#sec-efficient_ai} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-efficient-ai-resource), [Videos](#sec-efficient-ai-resource), [Exercises](#sec-efficient-ai-resource), [Labs](#sec-efficient-ai-resource) +Resources: [Slides](#sec-efficient-ai-resource), [Videos](#sec-efficient-ai-resource), [Exercises](#sec-efficient-ai-resource) ::: ![_DALL·E 3 Prompt: A conceptual illustration depicting efficiency in artificial intelligence using a shipyard analogy. The scene shows a bustling shipyard where containers represent bits or bytes of data. These containers are being moved around efficiently by cranes and vehicles, symbolizing the streamlined and rapid information processing in AI systems. The shipyard is meticulously organized, illustrating the concept of optimal performance within the constraints of limited resources. In the background, ships are docked, representing different platforms and scenarios where AI is applied. The atmosphere should convey advanced technology with an underlying theme of sustainability and wide applicability._](images/png/cover_efficient_ai.png) -Efficiency in artificial intelligence (AI) is not simply a luxury but a necessity. In this chapter, we dive into the key concepts underpinning AI systems' efficiency. The computational demands on neural networks can be daunting, even for minimal systems. For AI to be seamlessly integrated into everyday devices and essential systems, it must perform optimally within the constraints of limited resources while maintaining its efficacy. The pursuit of efficiency guarantees that AI models are streamlined, rapid, and sustainable, thereby widening their applicability across various platforms and scenarios. +Efficiency in artificial intelligence is not simply a luxury but a necessity. In this chapter, we dive into the key concepts underpinning AI systems' efficiency. The computational demands on neural networks can be daunting, even for minimal systems. For AI to be seamlessly integrated into everyday devices and essential systems, it must perform optimally within the constraints of limited resources while maintaining its efficacy. The pursuit of efficiency guarantees that AI models are streamlined, rapid, and sustainable, thereby widening their applicability across various platforms and scenarios. ::: {.callout-tip} @@ -103,7 +103,7 @@ Machine learning, and especially deep learning, involves enormous amounts of com ### Numerical Formats {#sec-numerical-formats} -There are many different types of numerics. Numerics have a long history in computing systems. +There are many different types of numerics. Numerics have a long history in computing systems. **Floating point:** Known as a single-precision floating point, FP32 utilizes 32 bits to represent a number, incorporating its sign, exponent, and mantissa. Understanding how floating point numbers are represented under the hood is crucial for grasping the various optimizations possible in numerical computations. The sign bit determines whether the number is positive or negative, the exponent controls the range of values that can be represented, and the mantissa determines the precision of the number. The combination of these components allows floating point numbers to represent a vast range of values with varying degrees of precision. @@ -117,18 +117,16 @@ There are many different types of numerics. Numerics have a long history in comp ::: +FP32 is widely adopted in many deep learning frameworks and balances accuracy and computational requirements. It is prevalent in the training phase for many neural networks due to its sufficient precision in capturing minute details during weight updates. Also known as half-precision floating point, FP16 uses 16 bits to represent a number, including its sign, exponent, and fraction. It offers a good balance between precision and memory savings. FP16 is particularly popular in deep learning training on GPUs that support mixed-precision arithmetic, combining the speed benefits of FP16 with the precision of FP32 where needed. -FP32 is widely adopted in many deep learning frameworks and balances accuracy and computational requirements. It is prevalent in the training phase for many neural networks due to its sufficient precision in capturing minute details during weight updates. -Also known as half-precision floating point, FP16 uses 16 bits to represent a number, including its sign, exponent, and fraction. It offers a good balance between precision and memory savings. FP16 is particularly popular in deep learning training on GPUs that support mixed-precision arithmetic, combining the speed benefits of FP16 with the precision of FP32 where needed. +@fig-float-point-formats shows three different floating-point formats: Float32, Float16, and BFloat16. + +![Three floating-point formats.](images/png/three_float_types.png){#fig-float-point-formats width=90%} Several other numerical formats fall into an exotic class. An exotic example is BF16 or Brain Floating Point. It is a 16-bit numerical format designed explicitly for deep learning applications. It is a compromise between FP32 and FP16, retaining the 8-bit exponent from FP32 while reducing the mantissa to 7 bits (as compared to FP32's 23-bit mantissa). This structure prioritizes range over precision. BF16 has achieved training results comparable in accuracy to FP32 while using significantly less memory and computational resources [@kalamkar2019study]. This makes it suitable not just for inference but also for training deep neural networks. By retaining the 8-bit exponent of FP32, BF16 offers a similar range, which is crucial for deep learning tasks where certain operations can result in very large or very small numbers. At the same time, by truncating precision, BF16 allows for reduced memory and computational requirements compared to FP32. BF16 has emerged as a promising middle ground in the landscape of numerical formats for deep learning, providing an efficient and effective alternative to the more traditional FP32 and FP16 formats. -@fig-float-point-formats shows three different floating-point formats: Float32, Float16, and BFloat16. - -![Three floating-point formats.](images/png/three_float_types.png){#fig-float-point-formats width=90%} - **Integer:** These are integer representations using 8, 4, and 2 bits. They are often used during the inference phase of neural networks, where the weights and activations of the model are quantized to these lower precisions. Integer representations are deterministic and offer significant speed and memory advantages over floating-point representations. For many inference tasks, especially on edge devices, the slight loss in accuracy due to quantization is often acceptable, given the efficiency gains. An extreme form of integer numerics is for binary neural networks (BNNs), where weights and activations are constrained to one of two values: +1 or -1. **Variable bit widths:** Beyond the standard widths, research is ongoing into extremely low bit-width numerics, even down to binary or ternary representations. Extremely low bit-width operations can offer significant speedups and further reduce power consumption. While challenges remain in maintaining model accuracy with such drastic quantization, advances continue to be made in this area. @@ -257,13 +255,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer - _Coming soon._ ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -- _Coming soon._ -::: - diff --git a/contents/efficient_ai/images/jpg/DmUyPSSW0AAChGa.jpg b/contents/core/efficient_ai/images/jpg/DmUyPSSW0AAChGa.jpg similarity index 100% rename from contents/efficient_ai/images/jpg/DmUyPSSW0AAChGa.jpg rename to contents/core/efficient_ai/images/jpg/DmUyPSSW0AAChGa.jpg diff --git a/contents/efficient_ai/images/jpg/ds_stoves.jpg b/contents/core/efficient_ai/images/jpg/ds_stoves.jpg similarity index 100% rename from contents/efficient_ai/images/jpg/ds_stoves.jpg rename to contents/core/efficient_ai/images/jpg/ds_stoves.jpg diff --git a/contents/efficient_ai/images/jpg/pruning.jpeg b/contents/core/efficient_ai/images/jpg/pruning.jpeg similarity index 100% rename from contents/efficient_ai/images/jpg/pruning.jpeg rename to contents/core/efficient_ai/images/jpg/pruning.jpeg diff --git a/contents/efficient_ai/images/jpg/quantization.jpeg b/contents/core/efficient_ai/images/jpg/quantization.jpeg similarity index 100% rename from contents/efficient_ai/images/jpg/quantization.jpeg rename to contents/core/efficient_ai/images/jpg/quantization.jpeg diff --git a/contents/efficient_ai/images/png/cover_efficient_ai.png b/contents/core/efficient_ai/images/png/cover_efficient_ai.png similarity index 100% rename from contents/efficient_ai/images/png/cover_efficient_ai.png rename to contents/core/efficient_ai/images/png/cover_efficient_ai.png diff --git a/contents/efficient_ai/images/png/knowledgedistillation.png b/contents/core/efficient_ai/images/png/knowledgedistillation.png similarity index 100% rename from contents/efficient_ai/images/png/knowledgedistillation.png rename to contents/core/efficient_ai/images/png/knowledgedistillation.png diff --git a/contents/efficient_ai/images/png/tflite_edge_tpu_perf.png b/contents/core/efficient_ai/images/png/tflite_edge_tpu_perf.png similarity index 100% rename from contents/efficient_ai/images/png/tflite_edge_tpu_perf.png rename to contents/core/efficient_ai/images/png/tflite_edge_tpu_perf.png diff --git a/contents/efficient_ai/images/png/three_float_types.png b/contents/core/efficient_ai/images/png/three_float_types.png similarity index 100% rename from contents/efficient_ai/images/png/three_float_types.png rename to contents/core/efficient_ai/images/png/three_float_types.png diff --git a/contents/frameworks/frameworks.bib b/contents/core/frameworks/frameworks.bib similarity index 100% rename from contents/frameworks/frameworks.bib rename to contents/core/frameworks/frameworks.bib diff --git a/contents/frameworks/frameworks.qmd b/contents/core/frameworks/frameworks.qmd similarity index 92% rename from contents/frameworks/frameworks.qmd rename to contents/core/frameworks/frameworks.qmd index c369eb7d..0779d729 100644 --- a/contents/frameworks/frameworks.qmd +++ b/contents/core/frameworks/frameworks.qmd @@ -5,7 +5,7 @@ bibliography: frameworks.bib # AI Frameworks {#sec-ai_frameworks} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ai-frameworks-resource), [Videos](#sec-ai-frameworks-resource), [Exercises](#sec-ai-frameworks-resource), [Labs](#sec-ai-frameworks-resource) +Resources: [Slides](#sec-ai-frameworks-resource), [Videos](#sec-ai-frameworks-resource), [Exercises](#sec-ai-frameworks-resource) ::: ![_DALL·E 3 Prompt: Illustration in a rectangular format, designed for a professional textbook, where the content spans the entire width. The vibrant chart represents training and inference frameworks for ML. Icons for TensorFlow, Keras, PyTorch, ONNX, and TensorRT are spread out, filling the entire horizontal space, and aligned vertically. Each icon is accompanied by brief annotations detailing their features. The lively colors like blues, greens, and oranges highlight the icons and sections against a soft gradient background. The distinction between training and inference frameworks is accentuated through color-coded sections, with clean lines and modern typography maintaining clarity and focus._](images/png/cover_ml_frameworks.png) @@ -74,7 +74,7 @@ Each generation of frameworks unlocked new capabilities that powered advancement * TensorFlow Graphics (2020) added 3D data structures to handle point clouds and meshes. -In recent years, the frameworks have converged. @fig-ml-framework shows that TensorFlow and PyTorch have become the overwhelmingly dominant ML frameworks, representing more than 95% of ML frameworks used in research and production. @fig-tensorflow-pytorch draws a contrast between the attributes of TensorFlow and PyTorch. Keras was integrated into TensorFlow in 2019; Preferred Networks transitioned Chainer to PyTorch in 2019; and Microsoft stopped actively developing CNTK in 2022 to support PyTorch on Windows. +In recent years, the landscape of machine learning frameworks has significantly consolidated. @fig-ml-framework illustrates this convergence, showing that TensorFlow and PyTorch have become the overwhelmingly dominant ML frameworks, collectively representing more than 95% of ML frameworks used in research and production. While both frameworks have risen to prominence, they have distinct characteristics. @fig-tensorflow-pytorch draws a contrast between the attributes of TensorFlow and PyTorch, helping to explain their complementary dominance in the field. ![PyTorch vs. TensorFlow: Features and Functions. Source: [K&C](https://www.google.com/url?sa=i&url=https%3A%2F%2Fkruschecompany.com%2Fpytorch-vs-tensorflow%2F&psig=AOvVaw1-DSFxXYprQmYH7Z4Nk6Tk&ust=1722533288351000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCPDhst7m0YcDFQAAAAAdAAAAABAg)](images/png/tensorflowpytorch.png){#fig-tensorflow-pytorch} @@ -190,9 +190,7 @@ PyTorch and TensorFlow have established themselves as frontrunners in the indust **Performance:** Both frameworks offer efficient hardware acceleration for their operations. However, TensorFlow has a slightly more robust optimization workflow, such as the XLA (Accelerated Linear Algebra) compiler, which can further boost performance. Its static computational graph was also advantageous for certain optimizations in the early versions. -**Ecosystem:** PyTorch has a growing ecosystem with tools like TorchServe for serving models and libraries like TorchVision, TorchText, and TorchAudio for specific domains. As we mentioned earlier, TensorFlow has a broad and mature ecosystem. TensorFlow Extended (TFX) provides an end-to-end platform for deploying production machine learning pipelines. Other tools and libraries include TensorFlow Lite, TensorFlow Lite Micro, TensorFlow.js, TensorFlow Hub, and TensorFlow Serving. - -@tbl-pytorch_vs_tf provides a comparative analysis: +**Ecosystem:** PyTorch has a growing ecosystem with tools like TorchServe for serving models and libraries like TorchVision, TorchText, and TorchAudio for specific domains. As we mentioned earlier, TensorFlow has a broad and mature ecosystem. TensorFlow Extended (TFX) provides an end-to-end platform for deploying production machine learning pipelines. Other tools and libraries include TensorFlow Lite, TensorFlow Lite Micro, TensorFlow.js, TensorFlow Hub, and TensorFlow Serving. @tbl-pytorch_vs_tf provides a comparative analysis: +-------------------------------+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------+ | Aspect | Pytorch | TensorFlow | @@ -216,14 +214,13 @@ Having introduced the popular machine learning frameworks and provided a high-le ### Tensor data structures {#sec-tensor-data-structures} -To understand tensors, let us start from the familiar concepts in linear algebra. As demonstrated in @fig-tensor-data-structure, vectors can be represented as a stack of numbers in a 1-dimensional array. Matrices follow the same idea, and one can think of them as many vectors stacked on each other, making them 2 dimensional. Higher dimensional tensors work the same way. A 3-dimensional tensor is simply a set of matrices stacked on each other in another direction. Therefore, vectors and matrices can be considered special cases of tensors with 1D and 2D dimensions, respectively. - -![Visualization of Tensor Data Structure.](images/png/image2.png){#fig-tensor-data-structure} +As shown in the figure, vectors can be represented as a stack of numbers in a 1-dimensional array. Matrices follow the same idea, and one can think of them as many vectors stacked on each other, making them 2 dimensional. Higher dimensional tensors work the same way. A 3-dimensional tensor, as illustrated in @fig-tensor-data-structure-a, is simply a set of matrices stacked on each other in another direction. Therefore, vectors and matrices can be considered special cases of tensors with 1D and 2D dimensions, respectively. -Tensors offer a flexible structure that can represent data in higher dimensions. For instance, to represent image data, the pixels at each position of an image are structured as matrices. However, images are not represented by just one matrix of pixel values; they typically have three channels where each channel is a matrix containing pixel values that represent the intensity of red, green, or blue. Together, these channels create a colored image. Without tensors, storing all this information from multiple matrices can be complex. With tensors, it is easy to contain image data in a single 3-dimensional tensor, with each number representing a certain color value at a specific location in the image. +![Visualization of Tensor Data Structure.](images/png/image2.png){#fig-tensor-data-structure-a} -![Visualization of colored image structure that can be easily stored as a 3D Tensor. Credit: [Niklas Lang](https://towardsdatascience.com/what-are-tensors-in-machine-learning-5671814646ff)](images/png/color_channels_of_image.png){#fig-tensor-data-structure} +Tensors offer a flexible structure that can represent data in higher dimensions. @fig-tensor-data-structure-b illustrates how this concept applies to image data. As shown in the figure, images are not represented by just one matrix of pixel values. Instead, they typically have three channels, where each channel is a matrix containing pixel values that represent the intensity of red, green, or blue. Together, these channels create a colored image. Without tensors, storing all this information from multiple matrices can be complex. However, as @fig-tensor-data-structure-b illustrates, tensors make it easy to contain image data in a single 3-dimensional structure, with each number representing a certain color value at a specific location in the image. +![Visualization of colored image structure that can be easily stored as a 3D Tensor. Credit: [Niklas Lang](https://towardsdatascience.com/what-are-tensors-in-machine-learning-5671814646ff)](images/png/color_channels_of_image.png){#fig-tensor-data-structure-b} You don't have to stop there. If we wanted to store a series of images, we could use a 4-dimensional tensor, where the new dimension represents different images. This means you are storing multiple images, each having three matrices that represent the three color channels. This gives you an idea of the usefulness of tensors when dealing with multi-dimensional data efficiently. @@ -302,13 +299,13 @@ This automatic differentiation is a powerful feature of tensors in frameworks li #### Graph Definition -Computational graphs are a key component of deep learning frameworks like TensorFlow and PyTorch. They allow us to express complex neural network architectures efficiently and differently. A computational graph consists of a directed acyclic graph (DAG) where each node represents an operation or variable, and edges represent data dependencies between them. +Computational graphs are a key component of deep learning frameworks like TensorFlow and PyTorch. They allow us to express complex neural network architectures efficiently and differently. A computational graph consists of a directed acyclic graph (DAG) where each node represents an operation or variable, and edges represent data dependencies between them. -It's important to differentiate computational graphs from neural network diagrams, such as those for multilayer perceptrons (MLPs), which depict nodes and layers. Neural network diagrams, as depicted in [Chapter 3](../dl_primer/dl_primer.qmd), visualize the architecture and flow of data through nodes and layers, providing an intuitive understanding of the model's structure. In contrast, computational graphs provide a low-level representation of the underlying mathematical operations and data dependencies required to implement and train these networks. +It is important to differentiate computational graphs from neural network diagrams, such as those for multilayer perceptrons (MLPs), which depict nodes and layers. Neural network diagrams, as depicted in [Chapter 3](../dl_primer/dl_primer.qmd), visualize the architecture and flow of data through nodes and layers, providing an intuitive understanding of the model's structure. In contrast, computational graphs provide a low-level representation of the underlying mathematical operations and data dependencies required to implement and train these networks. -For example, a node might represent a matrix multiplication operation, taking two input matrices (or tensors) and producing an output matrix (or tensor). To visualize this, consider the simple example in @fig-computational-graph. The directed acyclic graph above computes $z = x \times y$, where each variable is just numbers. +For example, a node might represent a matrix multiplication operation, taking two input matrices (or tensors) and producing an output matrix (or tensor). To visualize this, consider the simple example in @fig-comp-graph. The directed acyclic graph computes $z = x \times y$, where each variable is just numbers. -![Basic example of a computational graph.](images/png/image1.png){#fig-computational-graph width="50%" height="auto" align="center"} +![Basic example of a computational graph.](images/png/image1.png){#fig-comp-graph width="50%" height="auto" align="center"} Frameworks like TensorFlow and PyTorch create computational graphs to implement the architectures of neural networks that we typically represent with diagrams. When you define a neural network layer in code (e.g., a dense layer in TensorFlow), the framework constructs a computational graph that includes all the necessary operations (such as matrix multiplication, addition, and activation functions) and their data dependencies. This graph enables the framework to efficiently manage the flow of data, optimize the execution of operations, and automatically compute gradients for training. Underneath the hood, the computational graphs represent abstractions for common layers like convolutional, pooling, recurrent, and dense layers, with data including activations, weights, and biases represented in tensors. This representation allows for efficient computation, leveraging the structure of the graph to parallelize operations and apply optimizations. @@ -400,20 +397,20 @@ Recently, the distinction has blurred as frameworks adopt both modes. TensorFlow Computational graphs can only be as good as the data they learn from and work on. Therefore, feeding training data efficiently is crucial for optimizing deep neural network performance, though it is often overlooked as one of the core functionalities. Many modern AI frameworks provide specialized pipelines to ingest, process, and augment datasets for model training. -#### Data Loaders +#### Data Loaders {#sec-frameworks-data-loaders} At the core of these pipelines are data loaders, which handle reading training examples from sources like files, databases, and object storage. Data loaders facilitate efficient data loading and preprocessing, crucial for deep learning models. For instance, TensorFlow's [tf.data](https://www.tensorflow.org/guide/data) dataloading pipeline is designed to manage this process. Depending on the application, deep learning models require diverse data formats such as CSV files or image folders. Some popular formats include: -* CSV, a versatile, simple format often used for tabular data. +* **CSV**: A versatile, simple format often used for tabular data. -* TFRecord: TensorFlow's proprietary format, optimized for performance. +* **TFRecord**: TensorFlow's proprietary format, optimized for performance. -* Parquet: Columnar storage, offering efficient data compression and retrieval. +* **Parquet**: Columnar storage, offering efficient data compression and retrieval. -* JPEG/PNG: Commonly used for image data. +* **JPEG/PNG**: Commonly used for image data. -* WAV/MP3: Prevalent formats for audio data. +* **WAV/MP3**: Prevalent formats for audio data. Data loaders batch examples to leverage vectorization support in hardware. Batching refers to grouping multiple data points for simultaneous processing, leveraging the vectorized computation capabilities of hardware like GPUs. While typical batch sizes range from 32 to 512 examples, the optimal size often depends on the data's memory footprint and the specific hardware constraints. Advanced loaders can stream virtually unlimited datasets from disk and cloud storage. They stream large datasets from disks or networks instead of fully loading them into memory, enabling unlimited dataset sizes. @@ -549,9 +546,11 @@ These steps to remove barriers to entry continue to democratize machine learning Transfer learning is the practice of using knowledge gained from a pre-trained model to train and improve the performance of a model for a different task. For example, models such as MobileNet and ResNet are trained on the ImageNet dataset. To do so, one may freeze the pre-trained model, utilizing it as a feature extractor to train a much smaller model built on top of the feature extraction. One can also fine-tune the entire model to fit the new task. Machine learning frameworks make it easy to load pre-trained models, freeze specific layers, and train custom layers on top. They simplify this process by providing intuitive APIs and easy access to large repositories of [pre-trained models](https://keras.io/api/applications/). -Transfer learning has challenges, such as the modified model's inability to conduct its original tasks after transfer learning. Papers such as ["Learning without Forgetting"](https://browse.arxiv.org/pdf/1606.09282.pdf) by @li2017learning try to address these challenges and have been implemented in modern machine learning platforms. @fig-transfer-learning simplifies the concept of transfer learning through an example. +Transfer learning, while powerful, comes with challenges. One significant issue is the modified model's potential inability to conduct its original tasks after transfer learning. To address these challenges, researchers have proposed various solutions. For example, @li2017learning introduced the concept of "Learning without Forgetting" in their paper ["Learning without Forgetting"](https://browse.arxiv.org/pdf/1606.09282.pdf), which has since been implemented in modern machine learning platforms. @fig-tl provides a simplified illustration of the transfer learning concept: + +![Transfer learning. Source: [Tech Target](https://www.google.com/url?sa=i&url=https%3A%2F%2Fanalyticsindiamag.com%2Fdevelopers-corner%2Fcomplete-guide-to-understanding-precision-and-recall-curves%2F&psig=AOvVaw3MosZItazJt2eermLTArjj&ust=1722534897757000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCIi389bs0YcDFQAAAAAdAAAAABAw)](images/png/transferlearning.png){#fig-tl} -![Transfer learning. Source: [Tech Target](https://www.google.com/url?sa=i&url=https%3A%2F%2Fanalyticsindiamag.com%2Fdevelopers-corner%2Fcomplete-guide-to-understanding-precision-and-recall-curves%2F&psig=AOvVaw3MosZItazJt2eermLTArjj&ust=1722534897757000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCIi389bs0YcDFQAAAAAdAAAAABAw)](images/png/transferlearning.png){#fig-transfer-learning} +As shown in @fig-tl, transfer learning involves taking a model trained on one task (the source task) and adapting it to perform a new, related task (the target task). This process allows the model to leverage knowledge gained from the source task, potentially improving performance and reducing training time on the target task. However, as mentioned earlier, care must be taken to ensure that the model doesn't "forget" its ability to perform the original task during this process. #### Federated Learning @@ -763,29 +762,43 @@ Through various custom techniques, such as static compilation, model-based sched ## Choosing the Right Framework -Choosing the right machine learning framework for a given application requires carefully evaluating models, hardware, and software considerations. By analyzing these three aspects—models, hardware, and software—ML engineers can select the optimal framework and customize it as needed for efficient and performant on-device ML applications. The goal is to balance model complexity, hardware limitations, and software integration to design a tailored ML pipeline for embedded and edge devices. +Choosing the right machine learning framework for a given application requires carefully evaluating models, hardware, and software considerations. @fig-tf-comparison provides a comparison of different TensorFlow frameworks, which we'll discuss in more detail: ![TensorFlow Framework Comparison - General. Source: TensorFlow.](images/png/image4.png){#fig-tf-comparison width="100%" height="auto" align="center" caption="TensorFlow Framework Comparison - General"} +Analyzing these three aspects—models, hardware, and software—as depicted in @fig-tf-comparison, ML engineers can select the optimal framework and customize it as needed for efficient and performant on-device ML applications. The goal is to balance model complexity, hardware limitations, and software integration to design a tailored ML pipeline for embedded and edge devices. As we examine the differences shown in @fig-tf-comparison, we'll gain insights into how to pick the right framework and understand what causes the variations between frameworks. + ### Model -TensorFlow supports significantly more operations (ops) than TensorFlow Lite and TensorFlow Lite Micro as it is typically used for research or cloud deployment, which require a large number of and more flexibility with operators (see @fig-tf-comparison). TensorFlow Lite supports select ops for on-device training, whereas TensorFlow Micro does not. TensorFlow Lite also supports dynamic shapes and quantization-aware training, but TensorFlow Micro does not. In contrast, TensorFlow Lite and TensorFlow Micro offer native quantization tooling and support, where quantization refers to transforming an ML program into an approximated representation with available lower precision operations. +@fig-tf-comparison illustrates the key differences between TensorFlow variants, particularly in terms of supported operations (ops) and features. TensorFlow supports significantly more operations than TensorFlow Lite and TensorFlow Lite Micro, as it is typically used for research or cloud deployment, which require a large number of and more flexibility with operators. + +The figure clearly demonstrates this difference in op support across the frameworks. TensorFlow Lite supports select ops for on-device training, whereas TensorFlow Micro does not. Additionally, the figure shows that TensorFlow Lite supports dynamic shapes and quantization-aware training, features that are absent in TensorFlow Micro. In contrast, both TensorFlow Lite and TensorFlow Micro offer native quantization tooling and support. Here, quantization refers to transforming an ML program into an approximated representation with available lower precision operations, a crucial feature for embedded and edge devices with limited computational resources. ### Software +As shown in @fig-tf-sw-comparison, TensorFlow Lite Micro does not have OS support, while TensorFlow and TensorFlow Lite do. This design choice for TensorFlow Lite Micro helps reduce memory overhead, make startup times faster, and consume less energy. Instead, TensorFlow Lite Micro can be used in conjunction with real-time operating systems (RTOS) like FreeRTOS, Zephyr, and Mbed OS. + +The figure also highlights an important memory management feature: TensorFlow Lite and TensorFlow Lite Micro support model memory mapping, allowing models to be directly accessed from flash storage rather than loaded into RAM. In contrast, TensorFlow does not offer this capability. + ![TensorFlow Framework Comparison - Software. Source: TensorFlow.](images/png/image5.png){#fig-tf-sw-comparison width="100%" height="auto" align="center" caption="TensorFlow Framework Comparison - Model"} -TensorFlow Lite Micro does not have OS support, while TensorFlow and TensorFlow Lite do, to reduce memory overhead, make startup times faster, and consume less energy (see @fig-tf-sw-comparison). TensorFlow Lite Micro can be used in conjunction with real-time operating systems (RTOS) like FreeRTOS, Zephyr, and Mbed OS. TensorFlow Lite and TensorFlow Lite Micro support model memory mapping, allowing models to be directly accessed from flash storage rather than loaded into RAM, whereas TensorFlow does not. TensorFlow and TensorFlow Lite support accelerator delegation to schedule code to different accelerators, whereas TensorFlow Lite Micro does not, as embedded systems tend to have a limited array of specialized accelerators. +Another key difference is accelerator delegation. TensorFlow and TensorFlow Lite support this feature, allowing them to schedule code to different accelerators. However, TensorFlow Lite Micro does not offer accelerator delegation, as embedded systems tend to have a limited array of specialized accelerators. + +These differences demonstrate how each TensorFlow variant is optimized for its target deployment environment, from powerful cloud servers to resource-constrained embedded devices. ### Hardware +TensorFlow Lite and TensorFlow Lite Micro have significantly smaller base binary sizes and memory footprints than TensorFlow (see @fig-tf-hw-comparison). For example, a typical TensorFlow Lite Micro binary is less than 200KB, whereas TensorFlow is much larger. This is due to the resource-constrained environments of embedded systems. TensorFlow supports x86, TPUs, and GPUs like NVIDIA, AMD, and Intel. + ![TensorFlow Framework Comparison - Hardware. Source: TensorFlow.](images/png/image3.png){#fig-tf-hw-comparison width="100%" height="auto" align="center" caption="TensorFlow Framework Comparison - Hardware"} -TensorFlow Lite and TensorFlow Lite Micro have significantly smaller base binary sizes and memory footprints than TensorFlow (see @fig-tf-hw-comparison). For example, a typical TensorFlow Lite Micro binary is less than 200KB, whereas TensorFlow is much larger. This is due to the resource-constrained environments of embedded systems. TensorFlow supports x86, TPUs, and GPUs like NVIDIA, AMD, and Intel. TensorFlow Lite supports Arm Cortex-A and x86 processors commonly used on mobile phones and tablets. The latter is stripped of all the unnecessary training logic for on-device deployment. TensorFlow Lite Micro provides support for microcontroller-focused Arm Cortex M cores like M0, M3, M4, and M7, as well as DSPs like Hexagon and SHARC and MCUs like STM32, NXP Kinetis, Microchip AVR. +TensorFlow Lite supports Arm Cortex-A and x86 processors commonly used on mobile phones and tablets. The latter is stripped of all the unnecessary training logic for on-device deployment. TensorFlow Lite Micro provides support for microcontroller-focused Arm Cortex M cores like M0, M3, M4, and M7, as well as DSPs like Hexagon and SHARC and MCUs like STM32, NXP Kinetis, Microchip AVR. ### Other Factors -Selecting the appropriate AI framework is essential to ensure that embedded systems can efficiently execute AI models. Several key factors beyond models, hardware, and software should be considered when evaluating AI frameworks for embedded systems. Other key factors to consider when choosing a machine learning framework are performance, scalability, ease of use, integration with data engineering tools, integration with model optimization tools, and community support. By understanding these factors, you can make informed decisions and maximize the potential of your machine-learning initiatives. +Selecting the appropriate AI framework is essential to ensure that embedded systems can efficiently execute AI models. Several key factors beyond models, hardware, and software should be considered when evaluating AI frameworks for embedded systems. + +Other key factors to consider when choosing a machine learning framework are performance, scalability, ease of use, integration with data engineering tools, integration with model optimization tools, and community support. Developers can make informed decisions and maximize the potential of your machine-learning initiatives by understanding these various factors. #### Performance @@ -843,7 +856,7 @@ We first introduced the necessity of machine learning frameworks like TensorFlow Advanced features further improve these frameworks' usability, enabling tasks like fine-tuning large pre-trained models and facilitating federated learning. These capabilities are critical for developing sophisticated machine learning models efficiently. -Embedded AI frameworks, such as TensorFlow Lite Micro, provide specialized tools for deploying models on resource-constrained platforms. TensorFlow Lite Micro, for instance, offers comprehensive optimization tooling, including quantization mapping and kernel optimizations, to ensure high performance on microcontroller-based platforms like Arm Cortex-M and RISC-V processors. Frameworks specifically built for specialized hardware like CMSIS-NN on Cortex-M processors can further maximize performance but sacrifice portability. Integrated frameworks from processor vendors tailor the stack to their architectures, unlocking the full potential of their chips but locking you into their ecosystem. +Embedded AI or TinyML frameworks, such as TensorFlow Lite Micro, provide specialized tools for deploying models on resource-constrained platforms. TensorFlow Lite Micro, for instance, offers comprehensive optimization tooling, including quantization mapping and kernel optimizations, to ensure high performance on microcontroller-based platforms like Arm Cortex-M and RISC-V processors. Frameworks specifically built for specialized hardware like CMSIS-NN on Cortex-M processors can further maximize performance but sacrifice portability. Integrated frameworks from processor vendors tailor the stack to their architectures, unlocking the full potential of their chips but locking you into their ecosystem. Ultimately, choosing the right framework involves finding the best match between its capabilities and the requirements of the target platform. This requires balancing trade-offs between performance needs, hardware constraints, model complexity, and other factors. Thoroughly assessing the intended models and use cases and evaluating options against key metrics will guide developers in selecting the ideal framework for their machine learning applications. @@ -896,15 +909,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-k ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - - - diff --git a/contents/frameworks/images/png/color_channels_of_image.png b/contents/core/frameworks/images/png/color_channels_of_image.png similarity index 100% rename from contents/frameworks/images/png/color_channels_of_image.png rename to contents/core/frameworks/images/png/color_channels_of_image.png diff --git a/contents/frameworks/images/png/cover_ml_frameworks.png b/contents/core/frameworks/images/png/cover_ml_frameworks.png similarity index 100% rename from contents/frameworks/images/png/cover_ml_frameworks.png rename to contents/core/frameworks/images/png/cover_ml_frameworks.png diff --git a/contents/frameworks/images/png/federated_learning.png b/contents/core/frameworks/images/png/federated_learning.png similarity index 100% rename from contents/frameworks/images/png/federated_learning.png rename to contents/core/frameworks/images/png/federated_learning.png diff --git a/contents/frameworks/images/png/hardware_accelerator.ai b/contents/core/frameworks/images/png/hardware_accelerator.ai similarity index 100% rename from contents/frameworks/images/png/hardware_accelerator.ai rename to contents/core/frameworks/images/png/hardware_accelerator.ai diff --git a/contents/frameworks/images/png/hardware_accelerator.png b/contents/core/frameworks/images/png/hardware_accelerator.png similarity index 100% rename from contents/frameworks/images/png/hardware_accelerator.png rename to contents/core/frameworks/images/png/hardware_accelerator.png diff --git a/contents/frameworks/images/png/image1.png b/contents/core/frameworks/images/png/image1.png similarity index 100% rename from contents/frameworks/images/png/image1.png rename to contents/core/frameworks/images/png/image1.png diff --git a/contents/frameworks/images/png/image2.png b/contents/core/frameworks/images/png/image2.png similarity index 100% rename from contents/frameworks/images/png/image2.png rename to contents/core/frameworks/images/png/image2.png diff --git a/contents/frameworks/images/png/image3.png b/contents/core/frameworks/images/png/image3.png similarity index 100% rename from contents/frameworks/images/png/image3.png rename to contents/core/frameworks/images/png/image3.png diff --git a/contents/frameworks/images/png/image4.png b/contents/core/frameworks/images/png/image4.png similarity index 100% rename from contents/frameworks/images/png/image4.png rename to contents/core/frameworks/images/png/image4.png diff --git a/contents/frameworks/images/png/image5.png b/contents/core/frameworks/images/png/image5.png similarity index 100% rename from contents/frameworks/images/png/image5.png rename to contents/core/frameworks/images/png/image5.png diff --git a/contents/frameworks/images/png/image6.png b/contents/core/frameworks/images/png/image6.png similarity index 100% rename from contents/frameworks/images/png/image6.png rename to contents/core/frameworks/images/png/image6.png diff --git a/contents/frameworks/images/png/image7.png b/contents/core/frameworks/images/png/image7.png similarity index 100% rename from contents/frameworks/images/png/image7.png rename to contents/core/frameworks/images/png/image7.png diff --git a/contents/frameworks/images/png/image8.png b/contents/core/frameworks/images/png/image8.png similarity index 100% rename from contents/frameworks/images/png/image8.png rename to contents/core/frameworks/images/png/image8.png diff --git a/contents/frameworks/images/png/overfittingunderfitting.png b/contents/core/frameworks/images/png/overfittingunderfitting.png similarity index 100% rename from contents/frameworks/images/png/overfittingunderfitting.png rename to contents/core/frameworks/images/png/overfittingunderfitting.png diff --git a/contents/frameworks/images/png/precisionrecall.png b/contents/core/frameworks/images/png/precisionrecall.png similarity index 100% rename from contents/frameworks/images/png/precisionrecall.png rename to contents/core/frameworks/images/png/precisionrecall.png diff --git a/contents/frameworks/images/png/staticvsdynamic.png b/contents/core/frameworks/images/png/staticvsdynamic.png similarity index 100% rename from contents/frameworks/images/png/staticvsdynamic.png rename to contents/core/frameworks/images/png/staticvsdynamic.png diff --git a/contents/frameworks/images/png/tensorflow.png b/contents/core/frameworks/images/png/tensorflow.png similarity index 100% rename from contents/frameworks/images/png/tensorflow.png rename to contents/core/frameworks/images/png/tensorflow.png diff --git a/contents/frameworks/images/png/tensorflowpytorch.png b/contents/core/frameworks/images/png/tensorflowpytorch.png similarity index 100% rename from contents/frameworks/images/png/tensorflowpytorch.png rename to contents/core/frameworks/images/png/tensorflowpytorch.png diff --git a/contents/frameworks/images/png/transferlearning.png b/contents/core/frameworks/images/png/transferlearning.png similarity index 100% rename from contents/frameworks/images/png/transferlearning.png rename to contents/core/frameworks/images/png/transferlearning.png diff --git a/contents/generative_ai/generative_ai.bib b/contents/core/generative_ai/generative_ai.bib similarity index 100% rename from contents/generative_ai/generative_ai.bib rename to contents/core/generative_ai/generative_ai.bib diff --git a/contents/generative_ai/generative_ai.qmd b/contents/core/generative_ai/generative_ai.qmd similarity index 100% rename from contents/generative_ai/generative_ai.qmd rename to contents/core/generative_ai/generative_ai.qmd diff --git a/contents/generative_ai/images/png/generative_ai_evolution.png b/contents/core/generative_ai/images/png/generative_ai_evolution.png similarity index 100% rename from contents/generative_ai/images/png/generative_ai_evolution.png rename to contents/core/generative_ai/images/png/generative_ai_evolution.png diff --git a/contents/hw_acceleration/hw_acceleration.bib b/contents/core/hw_acceleration/hw_acceleration.bib similarity index 100% rename from contents/hw_acceleration/hw_acceleration.bib rename to contents/core/hw_acceleration/hw_acceleration.bib diff --git a/contents/hw_acceleration/hw_acceleration.qmd b/contents/core/hw_acceleration/hw_acceleration.qmd similarity index 97% rename from contents/hw_acceleration/hw_acceleration.qmd rename to contents/core/hw_acceleration/hw_acceleration.qmd index 590bbb6f..5e8599df 100644 --- a/contents/hw_acceleration/hw_acceleration.qmd +++ b/contents/core/hw_acceleration/hw_acceleration.qmd @@ -5,7 +5,7 @@ bibliography: hw_acceleration.bib # AI Acceleration {#sec-ai_acceleration} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ai-acceleration-resource), [Videos](#sec-ai-acceleration-resource), [Exercises](#sec-ai-acceleration-resource), [Labs](#sec-ai-acceleration-resource) +Resources: [Slides](#sec-ai-acceleration-resource), [Videos](#sec-ai-acceleration-resource), [Exercises](#sec-ai-acceleration-resource) ::: ![_DALL·E 3 Prompt: Create an intricate and colorful representation of a System on Chip (SoC) design in a rectangular format. Showcase a variety of specialized machine learning accelerators and chiplets, all integrated into the processor. Provide a detailed view inside the chip, highlighting the rapid movement of electrons. Each accelerator and chiplet should be designed to interact with neural network neurons, layers, and activations, emphasizing their processing speed. Depict the neural networks as a network of interconnected nodes, with vibrant data streams flowing between the accelerator pieces, showcasing the enhanced computation speed._](images/png/cover_ai_hardware.png) @@ -58,14 +58,14 @@ This evolution demonstrates how hardware acceleration has focused on solving com The evolution of hardware acceleration is closely tied to the broader history of computing. Central to this history is the role of transistors, the fundamental building blocks of modern electronics. Transistors act as tiny switches that can turn on or off, enabling the complex computations that drive everything from simple calculators to advanced machine learning models. In the early decades, chip design was governed by Moore's Law, which predicted that the number of transistors on an integrated circuit would double approximately every two years, and Dennard Scaling, which observed that as transistors became smaller, their performance (speed) increased, while power density (power per unit area) remained constant. These two laws were held through the single-core era. @fig-moore-dennard shows the trends of different microprocessor metrics. As the figure denotes, Dennard Scaling fails around the mid-2000s; notice how the clock speed (frequency) remains almost constant even as the number of transistors keeps increasing. +![Microprocessor trends. Source: [Karl Rupp](https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/).](images/png/hwai_40yearsmicrotrenddata.png){#fig-moore-dennard} + However, as @patterson2016computer describes, technological constraints eventually forced a transition to the multicore era, with chips containing multiple processing cores to deliver performance gains. Power limitations prevented further scaling, which led to "dark silicon" ([Dark Silicon](https://en.wikipedia.org/wiki/Dark_silicon)), where not all chip areas could be simultaneously active [@xiu2019time]. "Dark silicon" refers to portions of the chip that cannot be powered simultaneously due to thermal and power limitations. Essentially, as the density of transistors increased, the proportion of the chip that could be actively used without overheating or exceeding power budgets shrank. This phenomenon meant that while chips had more transistors, not all could be operational simultaneously, limiting potential performance gains. This power crisis necessitated a shift to the accelerator era, with specialized hardware units tailored for specific tasks to maximize efficiency. The explosion in AI workloads further drove demand for customized accelerators. Enabling factors included new programming languages, software tools, and manufacturing advances. -![Microprocessor trends. Source: [Karl Rupp](https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/).](images/png/hwai_40yearsmicrotrenddata.png){#fig-moore-dennard} - Fundamentally, hardware accelerators are evaluated on performance, power, and silicon area (PPA)—the nature of the target application—whether memory-bound or compute-bound—heavily influences the design. For example, memory-bound workloads demand high bandwidth and low latency access, while compute-bound applications require maximal computational throughput. ### General Principles @@ -140,10 +140,10 @@ By structuring the analysis along this spectrum, we aim to illustrate the fundam @fig-design-tradeoffs illustrates the complex interplay between flexibility, performance, functional diversity, and area of architecture design. Notice how the ASIC is on the bottom-right corner, with minimal area, flexibility, and power consumption and maximal performance, due to its highly specialized application-specific nature. A key tradeoff is functional diversity vs performance: general purpose architectures can serve diverse applications but their application performance is degraded as compared to more customized architectures. -The progression begins with the most specialized option, ASICs purpose-built for AI, to ground our understanding in the maximum possible optimizations before expanding to more generalizable architectures. This structured approach elucidates the accelerator design space. - ![Design tradeoffs. Source: @rayis2014.](images/png/tradeoffs.png){#fig-design-tradeoffs} +The progression begins with the most specialized option, ASICs purpose-built for AI, to ground our understanding in the maximum possible optimizations before expanding to more generalizable architectures. This structured approach elucidates the accelerator design space. + ### Application-Specific Integrated Circuits (ASICs) An Application-Specific Integrated Circuit (ASIC) is a type of [integrated circuit](https://en.wikipedia.org/wiki/Integrated_circuit) (IC) that is custom-designed for a specific application or workload rather than for general-purpose use. Unlike CPUs and GPUs, ASICs do not support multiple applications or workloads. Rather, they are optimized to perform a single task extremely efficiently. The Google TPU is an example of an ASIC. @@ -267,7 +267,7 @@ While FPGAs may not achieve the utmost performance and efficiency of workload-sp ##### Customized Parallelism and Pipelining -FPGA architectures can leverage spatial parallelism and pipelining by tailoring the hardware design to mirror the parallelism in ML models. For example, Intel's HARPv2 FPGA platform splits the layers of an MNIST convolutional network across separate processing elements to maximize throughput. Unique parallel patterns like tree ensemble evaluations are also possible on FPGAs. Deep pipelines with optimized buffering and dataflow can be customized to each model's structure and datatypes. This level of tailored parallelism and pipelining is not feasible on GPUs. +FPGA architectures can leverage spatial parallelism and pipelining by tailoring the hardware design to mirror the parallelism in ML models. For example, on an Intel's HARPv2 FPGA platform one can split the layers of a convolutional network across separate processing elements to maximize throughput. Unique parallel patterns like tree ensemble evaluations are also possible on FPGAs. Deep pipelines with optimized buffering and dataflow can be customized to each model's structure and datatypes. This level of tailored parallelism and pipelining is not feasible on GPUs. ##### Low Latency On-Chip Memory @@ -275,15 +275,14 @@ Large amounts of high-bandwidth on-chip memory enable localized storage for weig ##### Native Support for Low Precision -A key advantage of FPGAs is the ability to natively implement any bit width for arithmetic units, such as INT4 or bfloat16, used in quantized ML models. For example, Intel's Stratix 10 NX FPGAs have dedicated INT8 cores that can achieve up to 143 INT8 TOPS (Tera Operations Per Second) at ~1 TOPS/W (Tera Operations Per Second per Watt) [Intel Stratix 10 NX FPGA -](https://www.intel.com/content/www/us/en/products/details/fpga/stratix/10/nx.html). TOPS is a measure of performance similar to FLOPS, but while FLOPS measures floating-point calculations, TOPS measures the number of integer operations a system can perform per second. Lower bit widths, like INT8 or INT4, increase arithmetic density and performance. FPGAs can even support mixed precision or dynamic precision tuning at runtime. +A key advantage of FPGAs is the ability to natively implement any bit width for arithmetic units, such as INT4 or bfloat16, used in quantized ML models. For example, [Intel Stratix 10 NX FPGA +](https://www.intel.com/content/www/us/en/products/details/fpga/stratix/10/nx.html) has dedicated INT8 cores that can achieve up to 143 INT8 TOPS (Tera Operations Per Second) at ~1 TOPS/W (Tera Operations Per Second per Watt). TOPS is a measure of performance similar to FLOPS, but while FLOPS measures floating-point calculations, TOPS measures the number of integer operations a system can perform per second. Lower bit widths, like INT8 or INT4, increase arithmetic density and performance. FPGAs can even support mixed precision or dynamic precision tuning at runtime. #### Disadvantages ##### Lower Peak Throughput than ASICs -FPGAs cannot match the raw throughput numbers of ASICs customized for a specific model and precision. The overheads of the reconfigurable fabric compared to fixed function hardware result in lower peak performance. For example, the TPU v5e pods allow up to 256 chips to be connected with more than 100 petaOps (Peta Operations Per Second) of INT8 performance, while FPGAs can offer up to 143 INT8 TOPS or 286 INT4 TOPS [Intel Stratix 10 NX FPGA -](https://www.intel.com/content/www/us/en/products/details/fpga/stratix/10/nx.html). PetaOps represents quadrillions of operations per second, whereas TOPS measures trillions, highlighting the much greater throughput capability of TPU pods compared to FPGAs. +FPGAs cannot match the raw throughput numbers of ASICs customized for a specific model and precision. The overheads of the reconfigurable fabric compared to fixed function hardware result in lower peak performance. For example, the TPU v5e pods allow up to 256 chips to be connected with more than 100 PetaOps (Peta Operations Per Second) of INT8 performance, while FPGAs can offer up to 143 INT8 TOPS or 286 INT4 TOPS such as on the Intel Stratix 10 NX FPGA; PetaOps represents quadrillions of operations per second, whereas TOPS measures trillions, highlighting the much greater throughput capability of TPU pods compared to FPGAs. This is because FPGAs comprise basic building blocks—configurable logic blocks, RAM blocks, and interconnects. Vendors provide a set amount of these resources. To program FPGAs, engineers write HDL code and compile it into bitstreams that rearrange the fabric, which has inherent overheads versus an ASIC purpose-built for one computation. @@ -319,7 +318,7 @@ DSPs integrate large amounts of fast on-chip SRAM memory to hold data locally fo ##### Power Efficiency -DSPs are engineered to provide high performance per watt on digital signal workloads. Efficient data paths, parallelism, and memory architectures enable trillions of math operations per second within tight mobile power budgets. For example, [Qualcomm's Hexagon DSP](https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor) can deliver 4 trillion operations per second (TOPS) while consuming minimal watts. +DSPs are engineered to provide high performance per watt on digital signal workloads. Efficient data paths, parallelism, and memory architectures enable trillions of math operations per second within tight mobile power budgets. For example, [Qualcomm's Hexagon DSP](https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor) can deliver 4 TOPS while consuming minimal watts. ##### Support for Integer and Floating Point Math @@ -696,7 +695,7 @@ The [benchmarking chapter](../benchmarking/benchmarking.qmd) explores this topic Benchmarking suites such as MLPerf, Fathom, and AI Benchmark offer a set of standardized tests that can be used across different hardware platforms. These suites measure AI accelerator performance across various neural networks and machine learning tasks, from basic image classification to complex language processing. Providing a common ground for Comparison, they help ensure that performance claims are consistent and verifiable. These "tools" are applied not only to guide the development of hardware but also to ensure that the software stack leverages the full potential of the underlying architecture. -* **MLPerf:** Includes a broad set of benchmarks covering both training [@mattson2020mlperf] and inference [@reddi2020mlperf] for a range of machine learning tasks. @fig-ml-perf showcases the uses of MLperf. +* **MLPerf:** Includes a broad set of benchmarks covering both training [@mattson2020mlperf] and inference [@reddi2020mlperf] for a range of machine learning tasks. @fig-ml-perf showcases the diversity of AI use cases covered by MLPerf. * **Fathom:** Focuses on core operations in deep learning models, emphasizing their execution on different architectures [@adolf2016fathom]. * **AI Benchmark:** Targets mobile and consumer devices, assessing AI performance in end-user applications [@ignatov2018ai]. @@ -799,10 +798,10 @@ In response, new manufacturing techniques like wafer-scale fabrication and advan Wafer-scale AI takes an extremely integrated approach, manufacturing an entire silicon wafer as one gigantic chip. This differs drastically from conventional CPUs and GPUs, which cut each wafer into many smaller individual chips. @fig-wafer-scale shows a comparison between Cerebras Wafer Scale Engine 2, which is the largest chip ever built, and the largest GPU. While some GPUs may contain billions of transistors, they still pale in Comparison to the scale of a wafer-size chip with over a trillion transistors. -The wafer-scale approach also diverges from more modular system-on-chip designs that still have discrete components communicating by bus. Instead, wafer-scale AI enables full customization and tight integration of computation, memory, and interconnects across the entire die. - ![Wafer-scale vs. GPU. Source: [Cerebras](https://www.cerebras.net/product-chip/).](images/png/aimage1.png){#fig-wafer-scale} +The wafer-scale approach also diverges from more modular system-on-chip designs that still have discrete components communicating by bus. Instead, wafer-scale AI enables full customization and tight integration of computation, memory, and interconnects across the entire die. + By designing the wafer as one integrated logic unit, data transfer between elements is minimized. This provides lower latency and power consumption than discrete system-on-chip or chiplet designs. While chiplets can offer flexibility by mixing and matching components, communication between chiplets is challenging. The monolithic nature of wafer-scale integration eliminates these inter-chip communication bottlenecks. However, the ultra-large-scale also poses difficulties for manufacturability and yield with wafer-scale designs. Defects in any region of the wafer can make (certain parts of) the chip unusable. Specialized lithography techniques are required to produce such large dies. So, wafer-scale integration pursues the maximum performance gains from integration but requires overcoming substantial fabrication challenges. @@ -819,7 +818,9 @@ However, the ultra-large-scale also poses difficulties for manufacturability and #### Chiplets for AI -Chiplet design refers to a semiconductor architecture in which a single integrated circuit (IC) is constructed from multiple smaller, individual components known as chiplets. Each chiplet is a self-contained functional block, typically specialized for a specific task or functionality. These chiplets are then interconnected on a larger substrate or package to create a cohesive system. @fig-chiplet illustrates this concept. For AI hardware, chiplets enable the mixing of different types of chips optimized for tasks like matrix multiplication, data movement, analog I/O, and specialized memories. This heterogeneous integration differs greatly from wafer-scale integration, where all logic is manufactured as one monolithic chip. Companies like Intel and AMD have adopted chiplet designs for their CPUs. +Chiplet design refers to a semiconductor architecture in which a single integrated circuit (IC) is constructed from multiple smaller, individual components known as chiplets. Each chiplet is a self-contained functional block, typically specialized for a specific task or functionality. These chiplets are then interconnected on a larger substrate or package to create a cohesive system. + +@fig-chiplet illustrates this concept. For AI hardware, chiplets enable the mixing of different types of chips optimized for tasks like matrix multiplication, data movement, analog I/O, and specialized memories. This heterogeneous integration differs greatly from wafer-scale integration, where all logic is manufactured as one monolithic chip. Companies like Intel and AMD have adopted chiplet designs for their CPUs. Chiplets are interconnected using advanced packaging techniques like high-density substrate interposers, 2.5D/3D stacking, and wafer-level packaging. This allows combining chiplets fabricated with different process nodes, specialized memories, and various optimized AI engines. @@ -848,7 +849,9 @@ Neuromorphic computing is an emerging field aiming to emulate the efficiency and Intel and IBM are leading commercial efforts in neuromorphic hardware. Intel's Loihi and Loihi 2 chips [@davies2018loihi; @davies2021advancing] offer programmable neuromorphic cores with on-chip learning. IBM's Northpole [@modha2023neural] device comprises over 100 million magnetic tunnel junction synapses and 68 billion transistors. These specialized chips deliver benefits like low power consumption for edge inference. -Spiking neural networks (SNNs) [@maass1997networks] are computational models for neuromorphic hardware. Unlike deep neural networks communicating via continuous values, SNNs use discrete spikes that are more akin to biological neurons. This allows efficient event-based computation rather than constant processing. Additionally, SNNs consider the temporal and spatial characteristics of input data. This better mimics biological neural networks, where the timing of neuronal spikes plays an important role. However, training SNNs remains challenging due to the added temporal complexity. @fig-spiking provides an overview of the spiking methodology: (a) Diagram of a neuron; (b) Measuring an action potential propagated along the axon of a neuron. Only the action potential is detectable along the axon; (c) The neuron's spike is approximated with a binary representation; (d) Event-Driven Processing; (e) Active Pixel Sensor and Dynamic Vision Sensor. +Spiking neural networks (SNNs) [@maass1997networks] are computational models for neuromorphic hardware. Unlike deep neural networks communicating via continuous values, SNNs use discrete spikes that are more akin to biological neurons. This allows efficient event-based computation rather than constant processing. Additionally, SNNs consider the temporal and spatial characteristics of input data. This better mimics biological neural networks, where the timing of neuronal spikes plays an important role. + +However, training SNNs remains challenging due to the added temporal complexity. @fig-spiking provides an overview of the spiking methodology: (a) illustration of a neuron; (b) Measuring an action potential propagated along the axon of a neuron. Only the action potential is detectable along the axon; (c) The neuron's spike is approximated with a binary representation; (d) Event-Driven Processing; (e) Active Pixel Sensor and Dynamic Vision Sensor. ![Neuromorphic spiking. Source: @eshraghian2023training.](images/png/aimage4.png){#fig-spiking} @@ -924,7 +927,7 @@ While in-memory computing technologies like ReRAM and PIM offer exciting prospec ### Optical Computing -In AI acceleration, a burgeoning area of interest lies in novel technologies that deviate from traditional paradigms. Some emerging technologies mentioned above, such as flexible electronics, in-memory computing, or even neuromorphic computing, are close to becoming a reality, given their ground-breaking innovations and applications. One of the promising and leading next-gen frontiers is optical computing technologies [@miller2000optical,@zhou2022photonic ]. Companies like [[LightMatter]](https://lightmatter.co/) are pioneering the use of light photonics for calculations, thereby utilizing photons instead of electrons for data transmission and computation. +In AI acceleration, a burgeoning area of interest lies in novel technologies that deviate from traditional paradigms. Some emerging technologies mentioned above, such as flexible electronics, in-memory computing, or even neuromorphic computing, are close to becoming a reality, given their ground-breaking innovations and applications. One of the promising and leading next-gen frontiers is optical computing technologies [@miller2000optical,@zhou2022photonic ]. Companies like [LightMatter](https://lightmatter.co/) are pioneering the use of light photonics for calculations, thereby utilizing photons instead of electrons for data transmission and computation. Optical computing utilizes photons and photonic devices rather than traditional electronic circuits for computing and data processing. It takes inspiration from fiber optic communication links that rely on light for fast, efficient data transfer [@shastri2021photonics]. Light can propagate with much less loss than semiconductors' electrons, enabling inherent speed and efficiency benefits. @@ -949,7 +952,7 @@ As a result, optical computing is still in the very early research stage despite Quantum computers leverage unique phenomena of quantum physics, like superposition and entanglement, to represent and process information in ways not possible classically. Instead of binary bits, the fundamental unit is the quantum bit or qubit. Unlike classical bits, which are limited to 0 or 1, qubits can exist simultaneously in a superposition of both states due to quantum effects. -Multiple qubits can also be entangled, leading to exponential information density but introducing probabilistic results. Superposition enables parallel computation on all possible states, while entanglement allows nonlocal correlations between qubits. @fig-qubit simulates the structure of a qubit. +Multiple qubits can also be entangled, leading to exponential information density but introducing probabilistic results. Superposition enables parallel computation on all possible states, while entanglement allows nonlocal correlations between qubits. @fig-qubit visually conveys the differences between classical bits in computing and quantum bits (qbits). ![Qubits, the building blocks of quantum computing. Source: [Microsoft](https://azure.microsoft.com/en-gb/resources/cloud-computing-dictionary/what-is-a-qubit)](images/png/qubit.png){#fig-qubit} @@ -968,7 +971,7 @@ However, quantum states are fragile and prone to errors that require error-corre While meaningful quantum advantage for ML remains far off, active research at companies like [D-Wave](https://www.dwavesys.com/company/about-d-wave/), [Rigetti](https://www.rigetti.com/), and [IonQ](https://ionq.com/) is advancing quantum computer engineering and quantum algorithms. Major technology companies like Google, [IBM](https://www.ibm.com/quantum?utm_content=SRCWW&p1=Search&p4C700050385964705&p5=e&gclid=Cj0KCQjw-pyqBhDmARIsAKd9XIPD9U1Sjez_S0z5jeDDE4nRyd6X_gtVDUKJ-HIolx2vOc599KgW8gAaAv8gEALw_wcB&gclsrc=aw.ds), and Microsoft are actively exploring quantum computing. Google recently announced a 72-qubit quantum processor called [Bristlecone](https://blog.research.google/2018/03/a-preview-of-bristlecone-googles-new.html) and plans to build a 49-qubit commercial quantum system. Microsoft also has an active research program in topological quantum computing and collaborates with quantum startup [IonQ](https://ionq.com/) -Quantum techniques may first make inroads into optimization before more generalized ML adoption. Realizing quantum ML's full potential awaits major milestones in quantum hardware development and ecosystem maturity. @fig-q-computing illustrates a comparison between quantum computing and classical computing. +Quantum techniques may first make inroads into optimization before more generalized ML adoption. Realizing quantum ML's full potential awaits major milestones in quantum hardware development and ecosystem maturity. @fig-q-computing illustratively compares quantum computing and classical computing. ![Comparing quantum computing with classical computing. Source: [Devopedia](​​https://devopedia.org/quantum-computing)](images/png/qcomputing.png){#fig-q-computing} @@ -1103,10 +1106,3 @@ Here is a curated list of resources to support students and instructors in their * @exr-tvm ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -* _Coming soon._ -::: diff --git a/contents/hw_acceleration/images/jpg/flexible-circuit.jpeg b/contents/core/hw_acceleration/images/jpg/flexible-circuit.jpeg similarity index 100% rename from contents/hw_acceleration/images/jpg/flexible-circuit.jpeg rename to contents/core/hw_acceleration/images/jpg/flexible-circuit.jpeg diff --git a/contents/hw_acceleration/images/png/aimage1.png b/contents/core/hw_acceleration/images/png/aimage1.png similarity index 100% rename from contents/hw_acceleration/images/png/aimage1.png rename to contents/core/hw_acceleration/images/png/aimage1.png diff --git a/contents/hw_acceleration/images/png/aimage2.png b/contents/core/hw_acceleration/images/png/aimage2.png similarity index 100% rename from contents/hw_acceleration/images/png/aimage2.png rename to contents/core/hw_acceleration/images/png/aimage2.png diff --git a/contents/hw_acceleration/images/png/aimage3.png b/contents/core/hw_acceleration/images/png/aimage3.png similarity index 100% rename from contents/hw_acceleration/images/png/aimage3.png rename to contents/core/hw_acceleration/images/png/aimage3.png diff --git a/contents/hw_acceleration/images/png/aimage4.png b/contents/core/hw_acceleration/images/png/aimage4.png similarity index 100% rename from contents/hw_acceleration/images/png/aimage4.png rename to contents/core/hw_acceleration/images/png/aimage4.png diff --git a/contents/hw_acceleration/images/png/aimage6.png b/contents/core/hw_acceleration/images/png/aimage6.png similarity index 100% rename from contents/hw_acceleration/images/png/aimage6.png rename to contents/core/hw_acceleration/images/png/aimage6.png diff --git a/contents/hw_acceleration/images/png/cover_ai_hardware.png b/contents/core/hw_acceleration/images/png/cover_ai_hardware.png similarity index 100% rename from contents/hw_acceleration/images/png/cover_ai_hardware.png rename to contents/core/hw_acceleration/images/png/cover_ai_hardware.png diff --git a/contents/hw_acceleration/images/png/fpga.png b/contents/core/hw_acceleration/images/png/fpga.png similarity index 100% rename from contents/hw_acceleration/images/png/fpga.png rename to contents/core/hw_acceleration/images/png/fpga.png diff --git a/contents/hw_acceleration/images/png/hwai_40yearsmicrotrenddata.png b/contents/core/hw_acceleration/images/png/hwai_40yearsmicrotrenddata.png similarity index 100% rename from contents/hw_acceleration/images/png/hwai_40yearsmicrotrenddata.png rename to contents/core/hw_acceleration/images/png/hwai_40yearsmicrotrenddata.png diff --git a/contents/hw_acceleration/images/png/mlperf.png b/contents/core/hw_acceleration/images/png/mlperf.png similarity index 100% rename from contents/hw_acceleration/images/png/mlperf.png rename to contents/core/hw_acceleration/images/png/mlperf.png diff --git a/contents/hw_acceleration/images/png/nre.png b/contents/core/hw_acceleration/images/png/nre.png similarity index 100% rename from contents/hw_acceleration/images/png/nre.png rename to contents/core/hw_acceleration/images/png/nre.png diff --git a/contents/hw_acceleration/images/png/qcomputing.png b/contents/core/hw_acceleration/images/png/qcomputing.png similarity index 100% rename from contents/hw_acceleration/images/png/qcomputing.png rename to contents/core/hw_acceleration/images/png/qcomputing.png diff --git a/contents/hw_acceleration/images/png/qubit.png b/contents/core/hw_acceleration/images/png/qubit.png similarity index 100% rename from contents/hw_acceleration/images/png/qubit.png rename to contents/core/hw_acceleration/images/png/qubit.png diff --git a/contents/hw_acceleration/images/png/tradeoffs.png b/contents/core/hw_acceleration/images/png/tradeoffs.png similarity index 100% rename from contents/hw_acceleration/images/png/tradeoffs.png rename to contents/core/hw_acceleration/images/png/tradeoffs.png diff --git a/contents/core/introduction/image.png b/contents/core/introduction/image.png new file mode 100644 index 00000000..309a9612 Binary files /dev/null and b/contents/core/introduction/image.png differ diff --git a/contents/introduction/images/png/21st_computer.png b/contents/core/introduction/images/png/21st_computer.png similarity index 100% rename from contents/introduction/images/png/21st_computer.png rename to contents/core/introduction/images/png/21st_computer.png diff --git a/contents/core/introduction/images/png/alexnet_arch.png b/contents/core/introduction/images/png/alexnet_arch.png new file mode 100644 index 00000000..0ac147ac Binary files /dev/null and b/contents/core/introduction/images/png/alexnet_arch.png differ diff --git a/contents/core/introduction/images/png/alphafold.gif b/contents/core/introduction/images/png/alphafold.gif new file mode 100644 index 00000000..a164287d Binary files /dev/null and b/contents/core/introduction/images/png/alphafold.gif differ diff --git a/contents/core/introduction/images/png/alphafold.png b/contents/core/introduction/images/png/alphafold.png new file mode 100644 index 00000000..bcb1788a Binary files /dev/null and b/contents/core/introduction/images/png/alphafold.png differ diff --git a/contents/core/introduction/images/png/book_pillars.png b/contents/core/introduction/images/png/book_pillars.png new file mode 100644 index 00000000..7949c0ca Binary files /dev/null and b/contents/core/introduction/images/png/book_pillars.png differ diff --git a/contents/introduction/images/png/cover_introduction.png b/contents/core/introduction/images/png/cover_introduction.png similarity index 100% rename from contents/introduction/images/png/cover_introduction.png rename to contents/core/introduction/images/png/cover_introduction.png diff --git a/contents/core/introduction/images/png/farmbeats.png b/contents/core/introduction/images/png/farmbeats.png new file mode 100644 index 00000000..e22fc190 Binary files /dev/null and b/contents/core/introduction/images/png/farmbeats.png differ diff --git a/contents/ops/images/png/hidden_debt.png b/contents/core/introduction/images/png/hidden_debt.png similarity index 100% rename from contents/ops/images/png/hidden_debt.png rename to contents/core/introduction/images/png/hidden_debt.png diff --git a/contents/core/introduction/images/png/ml_lifecycle_overview.png b/contents/core/introduction/images/png/ml_lifecycle_overview.png new file mode 100644 index 00000000..53124511 Binary files /dev/null and b/contents/core/introduction/images/png/ml_lifecycle_overview.png differ diff --git a/contents/introduction/images/png/mlapplications.png b/contents/core/introduction/images/png/mlapplications.png similarity index 100% rename from contents/introduction/images/png/mlapplications.png rename to contents/core/introduction/images/png/mlapplications.png diff --git a/contents/introduction/images/png/mlprojectlifecycle.png b/contents/core/introduction/images/png/mlprojectlifecycle.png similarity index 100% rename from contents/introduction/images/png/mlprojectlifecycle.png rename to contents/core/introduction/images/png/mlprojectlifecycle.png diff --git a/contents/core/introduction/images/png/triangle.png b/contents/core/introduction/images/png/triangle.png new file mode 100644 index 00000000..3b2b9e56 Binary files /dev/null and b/contents/core/introduction/images/png/triangle.png differ diff --git a/contents/introduction/introduction.bib b/contents/core/introduction/introduction.bib similarity index 100% rename from contents/introduction/introduction.bib rename to contents/core/introduction/introduction.bib diff --git a/contents/core/introduction/introduction.qmd b/contents/core/introduction/introduction.qmd new file mode 100644 index 00000000..650b7597 --- /dev/null +++ b/contents/core/introduction/introduction.qmd @@ -0,0 +1,422 @@ +--- +bibliography: introduction.bib +--- + +# Introduction {#sec-introduction} + +![_DALL·E 3 Prompt: A detailed, rectangular, flat 2D illustration depicting a roadmap of a book's chapters on machine learning systems, set on a crisp, clean white background. The image features a winding road traveling through various symbolic landmarks. Each landmark represents a chapter topic: Introduction, ML Systems, Deep Learning, AI Workflow, Data Engineering, AI Frameworks, AI Training, Efficient AI, Model Optimizations, AI Acceleration, Benchmarking AI, On-Device Learning, Embedded AIOps, Security & Privacy, Responsible AI, Sustainable AI, AI for Good, Robust AI, Generative AI. The style is clean, modern, and flat, suitable for a technical book, with each landmark clearly labeled with its chapter title._](images/png/cover_introduction.png) + +## Why Machine Learning Systems Matter + +AI is everywhere. Consider your morning routine: You wake up to an AI-powered smart alarm that learned your sleep patterns. Your phone suggests your route to work, having learned from traffic patterns. During your commute, your music app automatically creates a playlist it thinks you'll enjoy. At work, your email client filters spam and prioritizes important messages. Throughout the day, your smartwatch monitors your activity, suggesting when to move or exercise. In the evening, your streaming service recommends shows you might like, while your smart home devices adjust lighting and temperature based on your learned preferences. + +But these everyday conveniences are just the beginning. AI is transforming our world in extraordinary ways. Today, AI systems detect early-stage cancers with unprecedented accuracy, predict and track extreme weather events to save lives, and accelerate drug discovery by simulating millions of molecular interactions. Autonomous vehicles navigate complex city streets while processing real-time sensor data from dozens of sources. Language models engage in sophisticated conversations, translate between hundreds of languages, and help scientists analyze vast research databases. In scientific laboratories, AI systems are making breakthrough discoveries - from predicting protein structures that unlock new medical treatments to identifying promising materials for next-generation solar cells and batteries. Even in creative fields, AI collaborates with artists and musicians to explore new forms of expression, pushing the boundaries of human creativity. + +This isn't science fiction---it's the reality of how artificial intelligence, specifically machine learning systems, has become woven into the fabric of our daily lives. In the early 1990s, [Mark Weiser](https://en.wikipedia.org/wiki/Mark_Weiser), a pioneering computer scientist, introduced the world to a revolutionary concept that would forever change how we interact with technology. This vision was succinctly captured in his seminal paper, "The Computer for the 21st Century" (see @fig-ubiquitous). Weiser envisioned a future where computing would be seamlessly integrated into our environments, becoming an invisible, integral part of daily life. + +![Ubiquitous computing as envisioned by Mark Weiser.](images/png/21st_computer.png){#fig-ubiquitous width=50%} + +He termed this concept "ubiquitous computing," promising a world where technology would serve us without demanding our constant attention or interaction. Today, we find ourselves living in Weiser's envisioned future, largely enabled by machine learning systems. The true essence of his vision—creating an intelligent environment that can anticipate our needs and act on our behalf—has become reality through the development and deployment of ML systems that span entire ecosystems, from powerful cloud data centers to edge devices to the tiniest IoT sensors. + +Yet most of us rarely think about the complex systems that make this possible. Behind each of these seemingly simple interactions lies a sophisticated infrastructure of data, algorithms, and computing resources working together. Understanding how these systems work—their capabilities, limitations, and requirements—has become increasingly critical as they become more integrated into our world. + +To appreciate the magnitude of this transformation and the complexity of modern machine learning systems, we need to understand how we got here. The journey from early artificial intelligence to today's ubiquitous ML systems is a story of not just technological evolution, but of changing perspectives on what's possible and what's necessary to make AI practical and reliable. + +## The Evolution of AI + +The evolution of AI, depicted in the timeline shown in @fig-ai-timeline, highlights key milestones such as the development of the "perceptron"[^defn-perceptron] in 1957 by Frank Rosenblatt, a foundational element for modern neural networks. Imagine walking into a computer lab in 1965. You'd find room-sized mainframes running programs that could prove basic mathematical theorems or play simple games like tic-tac-toe. These early artificial intelligence systems, while groundbreaking for their time, were a far cry from today's machine learning systems that can detect cancer in medical images or understand human speech. The timeline shows the progression from early innovations like the ELIZA chatbot in 1966, to significant breakthroughs such as IBM's Deep Blue defeating chess champion Garry Kasparov in 1997. More recent advancements include the introduction of OpenAI's GPT-3 in 2020 and GPT-4 in 2023, demonstrating the dramatic evolution and increasing complexity of AI systems over the decades. + +[^defn-perceptron]: The first artificial neural network—a simple model that could learn to classify visual patterns, similar to a single neuron making a yes/no decision based on its inputs. + +![Milestones in AI from 1950 to 2020. Source: IEEE Spectrum](https://spectrum.ieee.org/media-library/a-chart-of-milestones-in-ai-from-1950-to-2020.png?id=27547255){#fig-ai-timeline} + +Let's explore how we got here. + +### Symbolic AI (1956-1974) + +The story of machine learning begins at the historic Dartmouth Conference in 1956, where pioneers like John McCarthy, Marvin Minsky, and Claude Shannon first coined the term "artificial intelligence." Their approach was based on a compelling idea: intelligence could be reduced to symbol manipulation. Consider Daniel Bobrow's STUDENT system from 1964, one of the first AI programs that could solve algebra word problems: + +::: {.callout-note} +### Example: STUDENT (1964) + +``` +Problem: "If the number of customers Tom gets is twice the +square of 20% of the number of advertisements he runs, and +the number of advertisements is 45, what is the number of +customers Tom gets?" + +STUDENT would: + +1. Parse the English text +2. Convert it to algebraic equations +3. Solve the equation: n = 2(0.2 × 45)² +4. Provide the answer: 162 customers +``` +::: + +Early AI like STUDENT suffered from a fundamental limitation: they could only handle inputs that exactly matched their pre-programmed patterns and rules. Imagine a language translator that only works when sentences follow perfect grammatical structure---even slight variations like changing word order, using synonyms, or natural speech patterns would cause the STUDENT to fail. This "brittleness" meant that while these solutions could appear intelligent when handling very specific cases they were designed for, they would break down completely when faced with even minor variations or real-world complexity. This limitation wasn't just a technical inconvenience—it revealed a deeper problem with rule-based approaches to AI: they couldn't genuinely understand or generalize from their programming, they could only match and manipulate patterns exactly as specified. + +### Expert Systems(1970s-1980s) + +By the mid-1970s, researchers realized that general AI was too ambitious. Instead, they focused on capturing human expert knowledge in specific domains. MYCIN, developed at Stanford, was one of the first large-scale expert systems designed to diagnose blood infections: + +::: {.callout-note} +### Example: MYCIN (1976) +``` +Rule Example from MYCIN: +IF + The infection is primary-bacteremia + The site of the culture is one of the sterile sites + The suspected portal of entry is the gastrointestinal tract +THEN + There is suggestive evidence (0.7) that infection is bacteroid +``` +::: + +While MYCIN represented a major advance in medical AI with its 600 expert rules for diagnosing blood infections, it revealed fundamental challenges that still plague ML today. Getting domain knowledge from human experts and converting it into precise rules proved incredibly time-consuming and difficult—doctors often couldn't explain exactly how they made decisions. MYCIN struggled with uncertain or incomplete information, unlike human doctors who could make educated guesses. Perhaps most importantly, maintaining and updating the rule base became exponentially more complex as MYCIN grew—adding new rules often conflicted with existing ones, and medical knowledge itself kept evolving. These same challenges of knowledge capture, uncertainty handling, and maintenance remain central concerns in modern machine learning, even though we now use different technical approaches to address them. + +### Statistical Learning: A Paradigm Shift (1990s) + +The 1990s marked a radical transformation in artificial intelligence as the field moved away from hand-coded rules toward statistical learning approaches. This wasn't a simple choice—it was driven by three converging factors that made statistical methods both possible and powerful. The digital revolution meant massive amounts of data were suddenly available to train the algorithms. **Moore's Law**[^defn-mooreslaw] delivered the computational power needed to process this data effectively. And researchers developed new algorithms like Support Vector Machines and improved neural networks that could actually learn patterns from this data rather than following pre-programmed rules. This combination fundamentally changed how we built AI: instead of trying to encode human knowledge directly, we could now let machines discover patterns automatically from examples, leading to more robust and adaptable AI. + +[^defn-mooreslaw]: The observation made by Intel co-founder Gordon Moore in 1965 that the number of transistors on a microchip doubles approximately every two years, while the cost halves. This exponential growth in computing power has been a key driver of advances in machine learning, though the pace has begun to slow in recent years. + +Consider how email spam filtering evolved: + +::: {.callout-note} +### Example: Early Spam Detection Systems + +``` +Rule-based (1980s): +IF contains("viagra") OR contains("winner") THEN spam + +Statistical (1990s): +P(spam|word) = (frequency in spam emails) / (total frequency) +Combined using Naive Bayes: +P(spam|email) ∝ P(spam) × ∏ P(word|spam) +``` +::: + +The move to statistical approaches fundamentally changed how we think about building AI by introducing three core concepts that remain important today. First, the quality and quantity of training data became as important as the algorithms themselves---AI could only learn patterns that were present in its training examples. Second, we needed rigorous ways to evaluate how well AI actually performed, leading to metrics that could measure success and compare different approaches. Third, we discovered an inherent tension between precision (being right when we make a prediction) and recall (catching all the cases we should find), forcing designers to make explicit trade-offs based on their application's needs. For example, a spam filter might tolerate some spam to avoid blocking important emails, while medical diagnosis might need to catch every potential case even if it means more false alarms. + +@tbl-ai-evolution-strengths encapsulates the evolutionary journey of AI approaches we have discussed so far, highlighting the key strengths and capabilities that emerged with each new paradigm. As we move from left to right across the table, we can observe several important trends. We will talk about shallow and deep learning next, but it is useful to understand the trade-offs between the approaches we have covered so far. + ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ +| Aspect | Symbolic AI | Expert Systems | Statistical Learning | Shallow / Deep Learning | ++:====================+:=========================+:=========================+:=========================+:==============================+ +| Key Strength | Logical reasoning | Domain expertise | Versatility | Pattern recognition | ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ +| Best Use Case | Well-defined, rule-based | Specific domain problems | Various structured data | Complex, unstructured data | +| | problems | | problems | problems | ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ +| Data Handling | Minimal data needed | Domain knowledge-based | Moderate data required | Large-scale data processing | ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ +| Adaptability | Fixed rules | Domain-specific | Adaptable to various | Highly adaptable to diverse | +| | | adaptability | domains | tasks | ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ +| Problem Complexity | Simple, logic-based | Complicated, domain- | Complex, structured | Highly complex, unstructured | +| | | specific | | | ++---------------------+--------------------------+--------------------------+--------------------------+-------------------------------+ + +: Evolution of AI - Key Positive Aspects {#tbl-ai-evolution-strengths .hover .striped} + +The table serves as a bridge between the early approaches we've discussed and the more recent developments in shallow and deep learning that we'll explore next. It sets the stage for understanding why certain approaches gained prominence in different eras and how each new paradigm built upon and addressed the limitations of its predecessors. Moreover, it illustrates how the strengths of earlier approaches continue to influence and enhance modern AI techniques, particularly in the era of foundation models. + +### Shallow Learning (2000s) + +The 2000s marked a fascinating period in machine learning history that we now call the "shallow learning" era. To understand why it's "shallow," imagine building a house: deep learning (which came later) is like having multiple construction crews working at different levels simultaneously, each crew learning from the work of crews below them. In contrast, shallow learning typically had just one or two levels of processing - like having just a foundation crew and a framing crew. + +During this time, several powerful algorithms dominated the machine learning landscape. Each brought unique strengths to different problems: Decision trees provided interpretable results by making choices much like a flowchart. K-nearest neighbors made predictions by finding similar examples in past data, like asking your most experienced neighbors for advice. Linear and logistic regression offered straightforward, interpretable models that worked well for many real-world problems. Support Vector Machines (SVMs) excelled at finding complex boundaries between categories using the "kernel trick" - imagine being able to untangle a bowl of spaghetti into straight lines by lifting it into a higher dimension. +These algorithms formed the foundation of practical machine learning because: +Consider a typical computer vision solution from 2005: + +::: {.callout-note} +### Example: Traditional Computer Vision Pipeline +``` +1. Manual Feature Extraction + - SIFT (Scale-Invariant Feature Transform) + - HOG (Histogram of Oriented Gradients) + - Gabor filters +2. Feature Selection/Engineering +3. "Shallow" Learning Model (e.g., SVM) +4. Post-processing +``` +::: + +What made this era distinct was its hybrid approach: human-engineered features combined with statistical learning. They had strong mathematical foundations (researchers could prove why they worked). They performed well even with limited data. They were computationally efficient. They produced reliable, reproducible results. + +Take the example of face detection, where the Viola-Jones algorithm (2001) achieved real-time performance using simple rectangular features and a cascade of classifiers. This algorithm powered digital camera face detection for nearly a decade. + +### Deep Learning (2012-Present) + +While Support Vector Machines excelled at finding complex boundaries between categories using mathematical transformations, deep learning took a radically different approach inspired by the human brain's architecture. Deep learning is built from layers of artificial neurons, where each layer learns to transform its input data into increasingly abstract representations. Imagine processing an image of a cat: the first layer might learn to detect simple edges and contrasts, the next layer combines these into basic shapes and textures, another layer might recognize whiskers and pointy ears, and the final layers assemble these features into the concept of "cat." Unlike shallow learning methods that required humans to carefully engineer features, deep learning networks can automatically discover useful features directly from raw data. This ability to learn hierarchical representations—from simple to complex, concrete to abstract—is what makes deep learning "deep," and it turned out to be a remarkably powerful approach for handling complex, real-world data like images, speech, and text. + +In 2012, a deep neural network called AlexNet, shown in @fig-alexnet, achieved a breakthrough in the ImageNet competition that would transform the field of machine learning. The challenge was formidable: correctly classify 1.2 million high-resolution images into 1,000 different categories. While previous approaches struggled with error rates above 25%, AlexNet achieved a 15.3% error rate, dramatically outperforming all existing methods. + +![Deep neural network architecture for Alexnet.](./images/png/alexnet_arch.png){#fig-alexnet} + +The success of AlexNet wasn't just a technical achievement---it was a watershed moment that demonstrated the practical viability of deep learning. It showed that with sufficient data, computational power, and architectural innovations, neural networks could outperform hand-engineered features and shallow learning methods that had dominated the field for decades. This single result triggered an explosion of research and applications in deep learning that continues to this day. + +From this foundation, deep learning entered an era of unprecedented scale. By the late 2010s, companies like Google, Facebook, and OpenAI were training neural networks thousands of times larger than **AlexNet**[^defn-alexnet]. These massive models, often called "foundation models," took deep learning to new heights. GPT-3, released in 2020, contained 175 billion **parameters**[^defn-parameters]---imagine a student that could read through all of Wikipedia multiple times and learn patterns from every article. These models showed remarkable abilities: writing human-like text, engaging in conversation, generating images from descriptions, and even writing computer code. The key insight was simple but powerful: as we made neural networks bigger and fed them more data, they became capable of solving increasingly complex tasks. However, this scale brought unprecedented systems challenges: how do you efficiently train models that require thousands of GPUs working in parallel? How do you store and serve models that are hundreds of gigabytes in size? How do you handle the massive datasets needed for training? + +[^defn-alexnet]: A breakthrough deep neural network from 2012 that won the [ImageNet competition](https://www.image-net.org/challenges/LSVRC/) by a large margin and helped spark the deep learning revolution. + +[^defn-parameters]: Similar to how the brain's neural connections grow stronger as you learn a new skill, having more parameters generally means that the model can learn more complex patterns. + +The deep learning revolution of 2012 didn't emerge from nowhere---it was built on neural network research dating back to the 1950s. The story begins with Frank Rosenblatt's Perceptron in 1957, which captured the imagination of researchers by showing how a simple artificial neuron could learn to classify patterns. While it could only handle linearly separable problems—a limitation dramatically highlighted by Minsky and Papert's 1969 book "Perceptrons"—it introduced the fundamental concept of trainable neural networks. The 1980s brought more important breakthroughs: Rumelhart, Hinton, and Williams introduced backpropagation in 1986, providing a systematic way to train multi-layer networks, while Yann LeCun demonstrated its practical application in recognizing handwritten digits using **convolutional neural networks (CNNs)**[^defn-cnn]. + +[^defn-cnn]: A type of neural network specially designed for processing images, inspired by how the human visual system works. The "convolutional" part refers to how it scans images in small chunks, similar to how our eyes focus on different parts of a scene. + +:::{#vid-tl .callout-important} + +# Convolutional Network Demo from 1989 + +{{< video https://www.youtube.com/watch?v=FwFduRA_L6Q&ab_channel=YannLeCun >}} + +::: + +Yet these networks largely languished through the 1990s and 2000s, not because the ideas were wrong, but because they were ahead of their time---the field lacked three important ingredients: sufficient data to train complex networks, enough computational power to process this data, and the technical innovations needed to train very deep networks effectively. + +The field had to wait for the convergence of big data, better computing hardware, and algorithmic breakthroughs before deep learning's potential could be unlocked. This long gestation period helps explain why the 2012 ImageNet moment was less a sudden revolution and more the culmination of decades of accumulated research finally finding its moment. As we'll explore in the following sections, this evolution has led to two significant developments in the field. First, it has given rise to define the field of machine learning systems engineering, a discipline that teaches how to bridge the gap between theoretical advancements and practical implementation. Second, it has necessitated a more comprehensive definition of machine learning systems, one that encompasses not just algorithms, but also data and computing infrastructure. Today's challenges of scale echo many of the same fundamental questions about computation, data, and learning methods that researchers have grappled with since the field's inception, but now within a more complex and interconnected framework. + +## The Rise of ML Systems Engineering + +The story we've traced--from the early days of the Perceptron through the deep learning revolution---has largely been one of algorithmic breakthroughs. Each era brought new mathematical insights and modeling approaches that pushed the boundaries of what AI could achieve. But something important changed over the past decade: the success of AI systems became increasingly dependent not just on algorithmic innovations, but on sophisticated engineering. + +This shift mirrors the evolution of computer science and engineering in the late 1960s and early 1970s. During that period, as computing systems grew more complex, a new discipline emerged: Computer Engineering. This field bridged the gap between Electrical Engineering's hardware expertise and Computer Science's focus on algorithms and software. Computer Engineering arose because the challenges of designing and building complex computing systems required an integrated approach that neither discipline could fully address on its own. + +Today, we're witnessing a similar transition in the field of AI. While Computer Science continues to push the boundaries of ML algorithms and Electrical Engineering advances specialized AI hardware, neither discipline fully addresses the engineering principles needed to deploy, optimize, and sustain ML systems at scale. This gap highlights the need for a new discipline: Machine Learning Systems Engineering. While there is no explicit definition of what this field is as such today, it can be broadly defined as such: + +> Machine Learning Systems Engineering is the discipline that focuses on the design, development, deployment, and maintenance of large-scale machine learning systems. It encompasses the entire lifecycle of ML applications, from data collection and preprocessing to model training, deployment, monitoring, and continuous improvement. MLSE integrates principles from software engineering, distributed systems, data engineering, and machine learning to create robust, scalable, and efficient AI systems that can operate reliably in real-world environments. + +Let's consider space exploration. While astronauts venture into new frontiers and explore the vast unknowns of the universe, their discoveries are only possible because of the complex engineering systems supporting them---the rockets that lift them into space, the life support systems that keep them alive, and the communication networks that keep them connected to Earth. Similarly, while AI researchers push the boundaries of what's possible with learning algorithms, their breakthroughs only become practical reality through careful systems engineering. Modern AI systems need robust infrastructure to collect and manage data, powerful computing systems to train models, and reliable deployment platforms to serve millions of users. + +This emergence of machine learning systems engineering as a important discipline reflects a broader reality: turning AI algorithms into real-world systems requires bridging the gap between theoretical possibilities and practical implementation. It's not enough to have a brilliant algorithm if you can't efficiently collect and process the data it needs, distribute its computation across hundreds of machines, serve it reliably to millions of users, or monitor its performance in production. + +Understanding this interplay between algorithms and engineering has become fundamental for modern AI practitioners. While researchers continue to push the boundaries of what's algorithmically possible, engineers are tackling the complex challenge of making these algorithms work reliably and efficiently in the real world. This brings us to a fundamental question: what exactly is a machine learning system, and what makes it different from traditional software systems? + +## Definition of a ML System + +There's no universally accepted, clear-cut textbook definition of a machine learning system. This ambiguity stems from the fact that different practitioners, researchers, and industries often refer to machine learning systems in varying contexts and with different scopes. Some might focus solely on the algorithmic aspects, while others might include the entire pipeline from data collection to model deployment. This loose usage of the term reflects the rapidly evolving and multidisciplinary nature of the field. + +Given this diversity of perspectives, it is important to establish a clear and comprehensive definition that encompasses all these aspects. In this textbook, we take a holistic approach to machine learning systems, considering not just the algorithms but also the entire ecosystem in which they operate. Therefore, we define a machine learning system as follows: + +> A machine learning system is an integrated computing system that consists of three essential elements: data, algorithms, and computing infrastructure, where data represents the input that controls the behavior of the algorithms that learn from that data, which in turn rely on underlying hardware and software infrastructure to execute the learning process (training) and/or the application of learned knowledge (inference or serving), and all together, these components enable the system to make predictions, generate content, or take actions based on learned patterns. + +The core of any machine learning system consists of three interrelated components, as illustrated in @fig-ai-triangle: Models/Algorithms, Data, and Computing Infrastructure. These components form a triangular dependency where each element fundamentally shapes the possibilities of the others. The model architecture dictates both the computational demands for training and inference, as well as the volume and structure of data required for effective learning. The data's scale and complexity influence what infrastructure is needed for storage and processing, while simultaneously determining which model architectures are feasible. The infrastructure capabilities establish practical limits on both model scale and data processing capacity, creating a framework within which the other components must operate. + +![Machine learning systems involve algorithms, data, and computation, all intertwined together.](images/png/triangle.png){#fig-ai-triangle} + +Each of these components serves a distinct but interconnected purpose: + +- **Algorithms:** Mathematical models and methods that learn patterns from data to make predictions or decisions + +- **Data:** Processes and infrastructure for collecting, storing, processing, managing, and serving data for both training and inference. + +- **Computing:** Hardware and software infrastructure that enables efficient training, serving, and operation of models at scale. + +The interdependency of these components means no single element can function in isolation. The most sophisticated algorithm cannot learn without data or computing resources to run on. The largest datasets are useless without algorithms to extract patterns or infrastructure to process them. And the most powerful computing infrastructure serves no purpose without algorithms to execute or data to process. + +To illustrate these relationships, we can draw an analogy to space exploration. Algorithm developers are like astronauts---exploring new frontiers and making discoveries. Data science teams function like mission control specialists—ensuring the constant flow of critical information and resources needed to keep the mission running. Computing infrastructure engineers are like rocket engineers—designing and building the systems that make the mission possible. Just as a space mission requires the seamless integration of astronauts, mission control, and rocket systems, a machine learning system demands the careful orchestration of algorithms, data, and computing infrastructure. + +## The ML Systems Lifecycle + +Traditional software systems follow a predictable lifecycle where developers write explicit instructions for computers to execute. These systems are built on decades of established software engineering practices. Version control systems maintain precise histories of code changes. Continuous integration and deployment pipelines automate testing and release processes. Static analysis tools measure code quality and identify potential issues. This infrastructure enables reliable development, testing, and deployment of software systems, following well-defined principles of software engineering. + +Machine learning systems represent a fundamental departure from this traditional paradigm. While traditional systems execute explicit programming logic, machine learning systems derive their behavior from patterns in data. This shift from code to data as the primary driver of system behavior introduces new complexities. + +As illustrated in @fig-ml_lifecycle_overview, the ML lifecycle consists of interconnected stages from data collection through model monitoring, with feedback loops for continuous improvement when performance degrades or models need enhancement. + +![The typical lifecycle of a machine learning system.](./images/png/ml_lifecycle_overview.png){#fig-ml_lifecycle_overview} + +Unlike source code, which changes only when developers modify it, data reflects the dynamic nature of the real world. Changes in data distributions can silently alter system behavior. Traditional software engineering tools, designed for deterministic code-based systems, prove insufficient for managing these data-dependent systems. For example, version control systems that excel at tracking discrete code changes struggle to manage large, evolving datasets. Testing frameworks designed for deterministic outputs must be adapted for probabilistic predictions. This data-dependent nature creates a more dynamic lifecycle, requiring continuous monitoring and adaptation to maintain system relevance as real-world data patterns evolve. + +Understanding the machine learning system lifecycle requires examining its distinct stages. Each stage presents unique requirements from both learning and infrastructure perspectives. This dual consideration---of learning needs and systems support---is wildly important for building effective machine learning systems. + +However, the various stages of the ML lifecycle in production are not isolated; they are, in fact, deeply interconnected. This interconnectedness can create either virtuous or vicious cycles. In a virtuous cycle, high-quality data enables effective learning, robust infrastructure supports efficient processing, and well-engineered systems facilitate the collection of even better data. However, in a vicious cycle, poor data quality undermines learning, inadequate infrastructure hampers processing, and system limitations prevent the improvement of data collection—each problem compounds the others. + +## The Spectrum of ML Systems + +The complexity of managing machine learning systems becomes even more apparent when we consider the broad spectrum across which ML is deployed today. ML systems exist at vastly different scales and in diverse environments, each presenting unique challenges and constraints. + +At one end of the spectrum, we have cloud-based ML systems running in massive data centers. These systems, like large language models or recommendation engines, process petabytes of data and serve millions of users simultaneously. They can leverage virtually unlimited computing resources but must manage enormous operational complexity and costs. + +At the other end, we find TinyML systems running on microcontrollers and embedded devices. These systems must perform ML tasks with severe constraints on memory, computing power, and energy consumption. Imagine a smart home device, such as Alexa or Google Assistant, that must recognize voice commands using less power than a LED bulb, or a sensor that must detect anomalies while running on a battery for months or even years. + +Between these extremes, we find a rich variety of ML systems adapted for different contexts. Edge ML systems bring computation closer to data sources, reducing latency and bandwidth requirements while managing local computing resources. Mobile ML systems must balance sophisticated capabilities with battery life and processor limitations on smartphones and tablets. Enterprise ML systems often operate within specific business constraints, focusing on particular tasks while integrating with existing infrastructure. Some organizations employ hybrid approaches, distributing ML capabilities across multiple tiers to balance various requirements. + +## ML System Implications on the ML Lifecycle + +The diversity of ML systems across the spectrum represents a complex interplay of requirements, constraints, and trade-offs. These decisions fundamentally impact every stage of the ML lifecycle we discussed earlier, from data collection to continuous operation. + +Performance requirements often drive initial architectural decisions. Latency-sensitive applications, like autonomous vehicles or real-time fraud detection, might require edge or embedded architectures despite their resource constraints. Conversely, applications requiring massive computational power for training, such as large language models, naturally gravitate toward centralized cloud architectures. However, raw performance is just one consideration in a complex decision space. + +Resource management varies dramatically across architectures. Cloud systems must optimize for cost efficiency at scale—balancing expensive GPU clusters, storage systems, and network bandwidth. Edge systems face fixed resource limits and must carefully manage local compute and storage. Mobile and embedded systems operate under the strictest constraints, where every byte of memory and milliwatt of power matters. These resource considerations directly influence both model design and system architecture. + +Operational complexity increases with system distribution. While centralized cloud architectures benefit from mature deployment tools and managed services, edge and hybrid systems must handle the complexity of distributed system management. This complexity manifests throughout the ML lifecycle—from data collection and version control to model deployment and monitoring. As we discussed in our examination of technical debt, this operational complexity can compound over time if not carefully managed. + +Data considerations often introduce competing pressures. Privacy requirements or data sovereignty regulations might push toward edge or embedded architectures, while the need for large-scale training data might favor cloud approaches. The velocity and volume of data also influence architectural choices—real-time sensor data might require edge processing to manage bandwidth, while batch analytics might be better suited to cloud processing. + +Evolution and maintenance requirements must be considered from the start. Cloud architectures offer flexibility for system evolution but can incur significant ongoing costs. Edge and embedded systems might be harder to update but could offer lower operational overhead. The continuous cycle of ML systems we discussed earlier becomes particularly challenging in distributed architectures, where updating models and maintaining system health requires careful orchestration across multiple tiers. + +These trade-offs are rarely simple binary choices. Modern ML systems often adopt hybrid approaches, carefully balancing these considerations based on specific use cases and constraints. The key is understanding how these decisions will impact the system throughout its lifecycle, from initial development through continuous operation and evolution. + +### Emerging Trends + +We are just at the beginning. As machine learning systems continue to evolve, several key trends are reshaping the landscape of ML system design and deployment. + +The rise of agentic systems marks a profound evolution in ML systems. Traditional ML systems were primarily reactive—they made predictions or classifications based on input data. In contrast, agentic systems can take actions, learn from their outcomes, and adapt their behavior accordingly. These systems, exemplified by autonomous agents that can plan, reason, and execute complex tasks, introduce new architectural challenges. They require sophisticated frameworks for decision-making, safety constraints, and real-time interaction with their environment. + +Architectural evolution is being driven by new hardware and deployment patterns. Specialized AI accelerators are emerging across the spectrum—from powerful data center chips to efficient edge processors to tiny neural processing units in mobile devices. This heterogeneous computing landscape is enabling new architectural possibilities, such as dynamic model distribution across tiers based on computing capabilities and current conditions. The traditional boundaries between cloud, edge, and embedded systems are becoming increasingly fluid. + +Resource efficiency is gaining prominence as the environmental and economic costs of large-scale ML become more apparent. This has sparked innovation in model compression, efficient training techniques, and energy-aware computing. Future systems will likely need to balance the drive for more powerful models against growing sustainability concerns. This emphasis on efficiency is particularly relevant given our earlier discussion of technical debt and operational costs. + +System intelligence is moving toward more autonomous operation. Future ML systems will likely incorporate more sophisticated self-monitoring, automated resource management, and adaptive deployment strategies. This evolution builds upon the continuous cycle we discussed earlier, but with increased automation in handling data distribution shifts, model updates, and system optimization. + +Integration challenges are becoming more complex as ML systems interact with broader technology ecosystems. The need to integrate with existing software systems, handle diverse data sources, and operate across organizational boundaries is driving new approaches to system design. This integration complexity adds new dimensions to the technical debt considerations we explored earlier. + +These trends suggest that future ML systems will need to be increasingly adaptable and efficient while managing growing complexity. Understanding these directions is important for building systems that can evolve with the field while avoiding the accumulation of technical debt we discussed earlier. + +## Real-world Applications and Impact + +The ability to build and operationalize ML systems across various scales and environments has led to transformative changes across numerous sectors. This section showcases a few examples where theoretical concepts and practical considerations we have discussed manifest in tangible, impactful applications and real-world impact. + +### Case Study: FarmBeats: Edge and Embedded ML for Agriculture + +FarmBeats, a project developed by Microsoft Research, shown in @fig-farmbeats-overview is a significant advancement in the application of machine learning to agriculture. This system aims to increase farm productivity and reduce costs by leveraging AI and IoT technologies. FarmBeats exemplifies how edge and embedded ML systems can be deployed in challenging, real-world environments to solve practical problems. By bringing ML capabilities directly to the farm, FarmBeats demonstrates the potential of distributed AI systems in transforming traditional industries. + +![Microsoft Farmbeats: AI, Edge & IoT for Agriculture.](./images/png/farmbeats.png){#fig-farmbeats-overview} + +**Data Aspects** + +The data ecosystem in FarmBeats is diverse and distributed. Sensors deployed across fields collect real-time data on soil moisture, temperature, and nutrient levels. Drones equipped with multispectral cameras capture high-resolution imagery of crops, providing insights into plant health and growth patterns. Weather stations contribute local climate data, while historical farming records offer context for long-term trends. The challenge lies not just in collecting this heterogeneous data, but in managing its flow from dispersed, often remote locations with limited connectivity. FarmBeats employs innovative data transmission techniques, such as using TV white spaces (unused broadcasting frequencies) to extend internet connectivity to far-flung sensors. This approach to data collection and transmission embodies the principles of edge computing we discussed earlier, where data processing begins at the source to reduce bandwidth requirements and enable real-time decision making. + +**Algorithm/Model Aspects** + +FarmBeats uses a variety of ML algorithms tailored to agricultural applications. For soil moisture prediction, it uses temporal neural networks that can capture the complex dynamics of water movement in soil. Computer vision algorithms process drone imagery to detect crop stress, pest infestations, and yield estimates. These models must be robust to noisy data and capable of operating with limited computational resources. Machine learning methods such as "transfer learning" allow models to learn on data-rich farms to be adapted for use in areas with limited historical data. The system also incorporates a mixture of methods that combine outputs from multiple algorithms to improve prediction accuracy and reliability. A key challenge FarmBeats addresses is model personalization---adapting general models to the specific conditions of individual farms, which may have unique soil compositions, microclimates, and farming practices. + +**Computing Infrastructure Aspects** + +FarmBeats exemplifies the edge computing paradigm we explored in our discussion of the ML system spectrum. At the lowest level, embedded ML models run directly on IoT devices and sensors, performing basic data filtering and anomaly detection. Edge devices, such as ruggedized field gateways, aggregate data from multiple sensors and run more complex models for local decision-making. These edge devices operate in challenging conditions, requiring robust hardware designs and efficient power management to function reliably in remote agricultural settings. The system employs a hierarchical architecture, with more computationally intensive tasks offloaded to on-premises servers or the cloud. This tiered approach allows FarmBeats to balance the need for real-time processing with the benefits of centralized data analysis and model training. The infrastructure also includes mechanisms for over-the-air model updates, ensuring that edge devices can receive improved models as more data becomes available and algorithms are refined. + +**Impact and Future Implications** + +FarmBeats shows how ML systems can be deployed in resource-constrained, real-world environments to drive significant improvements in traditional industries. By providing farmers with AI-driven insights, the system has shown potential to increase crop yields, reduce water usage, and optimize resource allocation. Looking forward, the FarmBeats approach could be extended to address global challenges in food security and sustainable agriculture. The success of this system also highlights the growing importance of edge and embedded ML in IoT applications, where bringing intelligence closer to the data source can lead to more responsive, efficient, and scalable solutions. As edge computing capabilities continue to advance, we can expect to see similar distributed ML architectures applied to other domains, from smart cities to environmental monitoring. + +### Case Study: AlphaFold: Large-Scale Scientific ML + +AlphaFold, developed by DeepMind, is a landmark achievement in the application of machine learning to complex scientific problems. This AI system is designed to predict the three-dimensional structure of proteins, as shown in @fig-alphafold-overview, from their amino acid sequences, a challenge known as the "protein folding problem" that has puzzled scientists for decades. AlphaFold's success demonstrates how large-scale ML systems can accelerate scientific discovery and potentially revolutionize fields like structural biology and drug design. This case study exemplifies the use of advanced ML techniques and massive computational resources to tackle problems at the frontiers of science. + +::: {.content-visible when-format="html"} +![Examples of protein targets within the free modeling category. Source: Google DeepMind](images/png/alphafold.gif){#fig-alphafold-overview} +::: + +::: {.content-visible when-format="pdf"} +![Examples of protein targets within the free modeling category. Source: Google DeepMind](images/png/alphafold.png){#fig-alphafold-overview} +::: + +**Data Aspects** + +The data underpinning AlphaFold's success is vast and multifaceted. The primary dataset is the Protein Data Bank (PDB), which contains the experimentally determined structures of over 180,000 proteins. This is complemented by databases of protein sequences, which number in the hundreds of millions. AlphaFold also utilizes evolutionary data in the form of multiple sequence alignments (MSAs), which provide insights into the conservation patterns of amino acids across related proteins. The challenge lies not just in the volume of data, but in its quality and representation. Experimental protein structures can contain errors or be incomplete, requiring sophisticated data cleaning and validation processes. Moreover, the representation of protein structures and sequences in a form amenable to machine learning is a significant challenge in itself. AlphaFold's data pipeline involves complex preprocessing steps to convert raw sequence and structural data into meaningful features that capture the physical and chemical properties relevant to protein folding. + +**Algorithm/Model Aspects** + +AlphaFold's algorithmic approach represents a tour de force in the application of deep learning to scientific problems. At its core, AlphaFold uses a novel neural network architecture that combines with techniques from computational biology. The model learns to predict inter-residue distances and torsion angles, which are then used to construct a full 3D protein structure. A key innovation is the use of "equivariant attention" layers that respect the symmetries inherent in protein structures. The learning process involves multiple stages, including initial "pretraining" on a large corpus of protein sequences, followed by fine-tuning on known structures. AlphaFold also incorporates domain knowledge in the form of physics-based constraints and scoring functions, creating a hybrid system that leverages both data-driven learning and scientific prior knowledge. The model's ability to generate accurate confidence estimates for its predictions is crucial, allowing researchers to assess the reliability of the predicted structures. + +**Computing Infrastructure Aspects** + +The computational demands of AlphaFold epitomize the challenges of large-scale scientific ML systems. Training the model requires massive parallel computing resources, leveraging clusters of GPUs or TPUs (Tensor Processing Units) in a distributed computing environment. DeepMind utilized Google's cloud infrastructure, with the final version of AlphaFold trained on 128 TPUv3 cores for several weeks. The inference process, while less computationally intensive than training, still requires significant resources, especially when predicting structures for large proteins or processing many proteins in parallel. To make AlphaFold more accessible to the scientific community, DeepMind has collaborated with the European Bioinformatics Institute to create a [public database](https://alphafold.ebi.ac.uk/) of predicted protein structures, which itself represents a substantial computing and data management challenge. This infrastructure allows researchers worldwide to access AlphaFold's predictions without needing to run the model themselves, demonstrating how centralized, high-performance computing resources can be leveraged to democratize access to advanced ML capabilities. + +**Impact and Future Implications** + +AlphaFold's impact on structural biology has been profound, with the potential to accelerate research in areas ranging from fundamental biology to drug discovery. By providing accurate structural predictions for proteins that have resisted experimental methods, AlphaFold opens new avenues for understanding disease mechanisms and designing targeted therapies. The success of AlphaFold also serves as a powerful demonstration of how ML can be applied to other complex scientific problems, potentially leading to breakthroughs in fields like materials science or climate modeling. However, it also raises important questions about the role of AI in scientific discovery and the changing nature of scientific inquiry in the age of large-scale ML systems. As we look to the future, the AlphaFold approach suggests a new paradigm for scientific ML, where massive computational resources are combined with domain-specific knowledge to push the boundaries of human understanding. + +### Case Study: Autonomous Vehicles: Spanning the ML Spectrum + +Waymo, a subsidiary of Alphabet Inc., stands at the forefront of autonomous vehicle technology, representing one of the most ambitious applications of machine learning systems to date. Evolving from the Google Self-Driving Car Project initiated in 2009, Waymo's approach to autonomous driving exemplifies how ML systems can span the entire spectrum from embedded systems to cloud infrastructure. This case study demonstrates the practical implementation of complex ML systems in a safety-critical, real-world environment, integrating real-time decision-making with long-term learning and adaptation. + +{{< video https://youtu.be/hA_-MkU0Nfw?si=6DIH7qwMbeMicnJ5 >}} + +**Data Aspects** + +The data ecosystem underpinning Waymo's technology is vast and dynamic. Each vehicle serves as a roving data center, its sensor suite—comprising LiDAR, radar, and high-resolution cameras—generating approximately one terabyte of data per hour of driving. This real-world data is complemented by an even more extensive simulated dataset, with Waymo's vehicles having traversed over 20 billion miles in simulation and more than 20 million miles on public roads. The challenge lies not just in the volume of data, but in its heterogeneity and the need for real-time processing. Waymo must handle both structured (e.g., GPS coordinates) and unstructured data (e.g., camera images) simultaneously. The data pipeline spans from edge processing on the vehicle itself to massive cloud-based storage and processing systems. Sophisticated data cleaning and validation processes are necessary, given the safety-critical nature of the application. Moreover, the representation of the vehicle's environment in a form amenable to machine learning presents significant challenges, requiring complex preprocessing to convert raw sensor data into meaningful features that capture the dynamics of traffic scenarios. + +**Algorithm/Model Aspects** + +Waymo's ML stack represents a sophisticated ensemble of algorithms tailored to the multifaceted challenge of autonomous driving. The perception system employs deep learning techniques, including convolutional neural networks, to process visual data for object detection and tracking. Prediction models, needed for anticipating the behavior of other road users, leverage recurrent neural networks to understand temporal sequences. Waymo has developed custom ML models like VectorNet for predicting vehicle trajectories. The planning and decision-making systems may incorporate reinforcement learning or imitation learning techniques to navigate complex traffic scenarios. A key innovation in Waymo's approach is the integration of these diverse models into a coherent system capable of real-time operation. The ML models must also be interpretable to some degree, as understanding the reasoning behind a vehicle's decisions is vital for safety and regulatory compliance. Waymo's learning process involves continuous refinement based on real-world driving experiences and extensive simulation, creating a feedback loop that constantly improves the system's performance. + +**Computing Infrastructure Aspects** + +The computing infrastructure supporting Waymo's autonomous vehicles epitomizes the challenges of deploying ML systems across the full spectrum from edge to cloud. Each vehicle is equipped with a custom-designed compute platform capable of processing sensor data and making decisions in real-time, often leveraging specialized hardware like GPUs or custom AI accelerators. This edge computing is complemented by extensive use of cloud infrastructure, leveraging the power of Google's data centers for training models, running large-scale simulations, and performing fleet-wide learning. The connectivity between these tiers is critical, with vehicles requiring reliable, high-bandwidth communication for real-time updates and data uploading. Waymo's infrastructure must be designed for robustness and fault tolerance, ensuring safe operation even in the face of hardware failures or network disruptions. The scale of Waymo's operation presents significant challenges in data management, model deployment, and system monitoring across a geographically distributed fleet of vehicles. + +**Impact and Future Implications** + +Waymo's impact extends beyond technological advancement, potentially revolutionizing transportation, urban planning, and numerous aspects of daily life. The launch of Waymo One, a commercial ride-hailing service using autonomous vehicles in Phoenix, Arizona, represents a significant milestone in the practical deployment of AI systems in safety-critical applications. Waymo's progress has broader implications for the development of robust, real-world AI systems, driving innovations in sensor technology, edge computing, and AI safety that have applications far beyond the automotive industry. However, it also raises important questions about liability, ethics, and the interaction between AI systems and human society. As Waymo continues to expand its operations and explore applications in trucking and last-mile delivery, it serves as an important test bed for advanced ML systems, driving progress in areas such as continual learning, robust perception, and human-AI interaction. The Waymo case study underscores both the tremendous potential of ML systems to transform industries and the complex challenges involved in deploying AI in the real world. + +## Challenges and Considerations + +Building and deploying machine learning systems presents unique challenges that go beyond traditional software development. These challenges help explain why creating effective ML systems is about more than just choosing the right algorithm or collecting enough data. Let's explore the key areas where ML practitioners face significant hurdles. + +### Data Challenges + +The foundation of any ML system is its data, and managing this data introduces several fundamental challenges. First, there's the basic question of data quality - real-world data is often messy and inconsistent. Imagine a healthcare application that needs to process patient records from different hospitals. Each hospital might record information differently, use different units of measurement, or have different standards for what data to collect. Some records might have missing information, while others might contain errors or inconsistencies that need to be cleaned up before the data can be useful. + +As ML systems grow, they often need to handle increasingly large amounts of data. A video streaming service like Netflix, for example, needs to process billions of viewer interactions to power its recommendation system. This scale introduces new challenges in how to store, process, and manage such large datasets efficiently. + +Another critical challenge is how data changes over time. This phenomenon, known as "data drift," occurs when the patterns in new data begin to differ from the patterns the system originally learned from. For example, many predictive models struggled during the COVID-19 pandemic because consumer behavior changed so dramatically that historical patterns became less relevant. ML systems need ways to detect when this happens and adapt accordingly. + +### Model Challenges + +Creating and maintaining the ML models themselves presents another set of challenges. Modern ML models, particularly in deep learning, can be extremely complex. Consider a language model like GPT-3, which has hundreds of billions of parameters (the individual settings the model learns during training). This complexity creates practical challenges: these models require enormous computing power to train and run, making it difficult to deploy them in situations with limited resources, like on mobile phones or IoT devices. + +Training these models effectively is itself a significant challenge. Unlike traditional programming where we write explicit instructions, ML models learn from examples. This learning process involves many choices: How should we structure the model? How long should we train it? How can we tell if it's learning the right things? Making these decisions often requires both technical expertise and considerable trial and error. + +A particularly important challenge is ensuring that models work well in real-world conditions. A model might perform excellently on its training data but fail when faced with slightly different situations in the real world. This gap between training performance and real-world performance is a central challenge in machine learning, especially for critical applications like autonomous vehicles or medical diagnosis systems. + +### System Challenges + +Getting ML systems to work reliably in the real world introduces its own set of challenges. Unlike traditional software that follows fixed rules, ML systems need to handle uncertainty and variability in their inputs and outputs. They also typically need both training systems (for learning from data) and serving systems (for making predictions), each with different requirements and constraints. + +Consider a company building a speech recognition system. They need infrastructure to collect and store audio data, systems to train models on this data, and then separate systems to actually process users' speech in real-time. Each part of this pipeline needs to work reliably and efficiently, and all the parts need to work together seamlessly. + +These systems also need constant monitoring and updating. How do we know if the system is working correctly? How do we update models without interrupting service? How do we handle errors or unexpected inputs? These operational challenges become particularly complex when ML systems are serving millions of users. + +### Ethical and Social Considerations + +As ML systems become more prevalent in our daily lives, their broader impacts on society become increasingly important to consider. One major concern is fairness - ML systems can sometimes learn to make decisions that discriminate against certain groups of people. This often happens unintentionally, as the systems pick up biases present in their training data. For example, a job application screening system might inadvertently learn to favor certain demographics if those groups were historically more likely to be hired. + +Another important consideration is transparency. Many modern ML models, particularly deep learning models, work as "black boxes" - while they can make predictions, it's often difficult to understand how they arrived at their decisions. This becomes particularly problematic when ML systems are making important decisions about people's lives, such as in healthcare or financial services. + +Privacy is also a major concern. ML systems often need large amounts of data to work effectively, but this data might contain sensitive personal information. How do we balance the need for data with the need to protect individual privacy? How do we ensure that models don't inadvertently memorize and reveal private information? + +These challenges aren't merely technical problems to be solved, but ongoing considerations that shape how we approach ML system design and deployment. Throughout this book, we'll explore these challenges in detail and examine strategies for addressing them effectively. + +## Future Directions + +As we look to the future of machine learning systems, several exciting trends are shaping the field. These developments promise to both solve existing challenges and open new possibilities for what ML systems can achieve. + +One of the most significant trends is the democratization of AI technology. Just as personal computers transformed computing from specialized mainframes to everyday tools, ML systems are becoming more accessible to developers and organizations of all sizes. Cloud providers now offer pre-trained models and automated ML platforms that reduce the expertise needed to deploy AI solutions. This democratization is enabling new applications across industries, from small businesses using AI for customer service to researchers applying ML to previously intractable problems. + +As concerns about computational costs and environmental impact grow, there's an increasing focus on making ML systems more efficient. Researchers are developing new techniques for training models with less data and computing power. Innovation in specialized hardware, from improved GPUs to custom AI chips, is making ML systems faster and more energy-efficient. These advances could make sophisticated AI capabilities available on more devices, from smartphones to IoT sensors. + +Perhaps the most transformative trend is the development of more autonomous ML systems that can adapt and improve themselves. These systems are beginning to handle their own maintenance tasks - detecting when they need retraining, automatically finding and correcting errors, and optimizing their own performance. This automation could dramatically reduce the operational overhead of running ML systems while improving their reliability. + +While these trends are promising, it's important to recognize the field's limitations. Creating truly artificial general intelligence remains a distant goal. Current ML systems excel at specific tasks but lack the flexibility and understanding that humans take for granted. Challenges around bias, transparency, and privacy continue to require careful consideration. As ML systems become more prevalent, addressing these limitations while leveraging new capabilities will be crucial. + +## Learning Path and Book Structure + +This book is designed to guide you from understanding the fundamentals of ML systems to effectively designing and implementing them. To address the complexities and challenges of Machine Learning Systems engineering, we've organized the content around five fundamental pillars that encompass the lifecycle of ML systems. These pillars provide a framework for understanding, developing, and maintaining robust ML systems. + +![Overview of the five fundamental system pillars of Machine Learning Systems engineering.](images/png/book_pillars.png){#fig-pillars} + +As illustrated in Figure @fig-pillars, the five pillars central to the framework are: + +- **Data**: Emphasizing data engineering and foundational principles critical to how AI operates in relation to data. +- **Training**: Exploring the methodologies for AI training, focusing on efficiency, optimization, and acceleration techniques to enhance model performance. +- **Deployment**: Encompassing benchmarks, on-device learning strategies, and machine learning operations to ensure effective model application. +- **Operations**: Highlighting the maintenance challenges unique to machine learning systems, which require specialized approaches distinct from traditional engineering systems. +- **Ethics & Governance**: Addressing concerns such as security, privacy, responsible AI practices, and the broader societal implications of AI technologies. + +Each pillar represents a critical phase in the lifecycle of ML systems and is composed of foundational elements that build upon each other. This structure ensures a comprehensive understanding of MLSE, from basic principles to advanced applications and ethical considerations. + +For more detailed information about the book's overview, contents, learning outcomes, target audience, prerequisites, and navigation guide, please refer to the [About the Book](../../about.qmd) section. There, you'll also find valuable details about our learning community and how to maximize your experience with this resource. \ No newline at end of file diff --git a/contents/ml_systems/images/jpg/cloud_ml_tpu.jpg b/contents/core/ml_systems/images/jpg/cloud_ml_tpu.jpg similarity index 100% rename from contents/ml_systems/images/jpg/cloud_ml_tpu.jpg rename to contents/core/ml_systems/images/jpg/cloud_ml_tpu.jpg diff --git a/contents/ml_systems/images/jpg/cloud_mobile_tiny_sizes.jpg b/contents/core/ml_systems/images/jpg/cloud_mobile_tiny_sizes.jpg similarity index 100% rename from contents/ml_systems/images/jpg/cloud_mobile_tiny_sizes.jpg rename to contents/core/ml_systems/images/jpg/cloud_mobile_tiny_sizes.jpg diff --git a/contents/ml_systems/images/jpg/edge_ml_iot.jpg b/contents/core/ml_systems/images/jpg/edge_ml_iot.jpg similarity index 100% rename from contents/ml_systems/images/jpg/edge_ml_iot.jpg rename to contents/core/ml_systems/images/jpg/edge_ml_iot.jpg diff --git a/contents/ml_systems/images/jpg/tiny_ml.jpg b/contents/core/ml_systems/images/jpg/tiny_ml.jpg similarity index 100% rename from contents/ml_systems/images/jpg/tiny_ml.jpg rename to contents/core/ml_systems/images/jpg/tiny_ml.jpg diff --git a/contents/ml_systems/images/png/cloud-edge-tiny.png b/contents/core/ml_systems/images/png/cloud-edge-tiny.png similarity index 100% rename from contents/ml_systems/images/png/cloud-edge-tiny.png rename to contents/core/ml_systems/images/png/cloud-edge-tiny.png diff --git a/contents/ml_systems/images/png/cloud_ml_tpu.png b/contents/core/ml_systems/images/png/cloud_ml_tpu.png similarity index 100% rename from contents/ml_systems/images/png/cloud_ml_tpu.png rename to contents/core/ml_systems/images/png/cloud_ml_tpu.png diff --git a/contents/ml_systems/images/png/cloudml.png b/contents/core/ml_systems/images/png/cloudml.png similarity index 100% rename from contents/ml_systems/images/png/cloudml.png rename to contents/core/ml_systems/images/png/cloudml.png diff --git a/contents/ml_systems/images/png/cover_ml_systems.png b/contents/core/ml_systems/images/png/cover_ml_systems.png similarity index 100% rename from contents/ml_systems/images/png/cover_ml_systems.png rename to contents/core/ml_systems/images/png/cover_ml_systems.png diff --git a/contents/ml_systems/images/png/cover_ml_systems_ai.png b/contents/core/ml_systems/images/png/cover_ml_systems_ai.png similarity index 100% rename from contents/ml_systems/images/png/cover_ml_systems_ai.png rename to contents/core/ml_systems/images/png/cover_ml_systems_ai.png diff --git a/contents/ml_systems/images/png/edgeml.png b/contents/core/ml_systems/images/png/edgeml.png similarity index 100% rename from contents/ml_systems/images/png/edgeml.png rename to contents/core/ml_systems/images/png/edgeml.png diff --git a/contents/ml_systems/images/png/microprocessor_vs_microcontroller.png b/contents/core/ml_systems/images/png/microprocessor_vs_microcontroller.png similarity index 100% rename from contents/ml_systems/images/png/microprocessor_vs_microcontroller.png rename to contents/core/ml_systems/images/png/microprocessor_vs_microcontroller.png diff --git a/contents/ml_systems/images/png/tinyml.png b/contents/core/ml_systems/images/png/tinyml.png similarity index 100% rename from contents/ml_systems/images/png/tinyml.png rename to contents/core/ml_systems/images/png/tinyml.png diff --git a/contents/ml_systems/images/png/venndiagram.png b/contents/core/ml_systems/images/png/venndiagram.png similarity index 100% rename from contents/ml_systems/images/png/venndiagram.png rename to contents/core/ml_systems/images/png/venndiagram.png diff --git a/contents/ml_systems/ml_systems.bib b/contents/core/ml_systems/ml_systems.bib similarity index 100% rename from contents/ml_systems/ml_systems.bib rename to contents/core/ml_systems/ml_systems.bib diff --git a/contents/ml_systems/ml_systems.qmd b/contents/core/ml_systems/ml_systems.qmd similarity index 89% rename from contents/ml_systems/ml_systems.qmd rename to contents/core/ml_systems/ml_systems.qmd index 9a0ac851..ff1e948f 100644 --- a/contents/ml_systems/ml_systems.qmd +++ b/contents/core/ml_systems/ml_systems.qmd @@ -5,14 +5,14 @@ bibliography: ml_systems.bib # ML Systems {#sec-ml_systems} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ml-systems-resource), [Videos](#sec-ml-systems-resource), [Exercises](#sec-ml-systems-resource), [Labs](#sec-ml-systems-resource) +Resources: [Slides](#sec-ml-systems-resource), [Videos](#sec-ml-systems-resource), [Exercises](#sec-ml-systems-resource) ::: ![_DALL·E 3 Prompt: Illustration in a rectangular format depicting the merger of embedded systems with Embedded AI. The left half of the image portrays traditional embedded systems, including microcontrollers and processors, detailed and precise. The right half showcases the world of artificial intelligence, with abstract representations of machine learning models, neurons, and data flow. The two halves are distinctly separated, emphasizing the individual significance of embedded tech and AI, but they come together in harmony at the center._](images/png/cover_ml_systems.png) Machine learning (ML) systems, built on the foundation of computing systems, hold the potential to transform our world. These systems, with their specialized roles and real-time computational capabilities, represent a critical junction where data and computation meet on a micro-scale. They are specifically tailored to optimize performance, energy usage, and spatial efficiency—key factors essential for the successful implementation of ML systems. -As this chapter progresses, we will explore ML systems' complex and fascinating world. We'll gain insights into their structural design and operational features and understand their key role in powering ML applications. Starting with the basics of microcontroller units, we will examine the interfaces and peripherals that improve their functionalities. This chapter is designed to be a comprehensive guide elucidating the nuanced aspects of ML systems. +As this chapter progresses, we will explore ML systems' complex and fascinating world. We'll gain insights into their structural design and operational features and understand their key role in powering ML applications. Starting with the basics of microcontroller units, we will examine the interfaces and peripherals that improve their functionalities. This chapter is designed to be a comprehensive guide that explains the nuanced aspects of different ML systems. ::: {.callout-tip} @@ -36,7 +36,7 @@ ML is rapidly evolving, with new paradigms reshaping how models are developed, t Modern machine learning systems span a spectrum of deployment options, each with its own set of characteristics and use cases. At one end, we have cloud-based ML, which leverages powerful centralized computing resources for complex, data-intensive tasks. Moving along the spectrum, we encounter edge ML, which brings computation closer to the data source for reduced latency and improved privacy. At the far end, we find TinyML, which enables machine learning on extremely low-power devices with severe memory and processing constraints. -This chapter explores the landscape of contemporary machine learning systems, covering the key approaches of Cloud ML, Edge ML, and TinyML (@fig-cloud-edge-tinyml-comparison). We'll examine the unique characteristics, advantages, and challenges of each approach, as well as the emerging trends and technologies that are shaping the future of machine learning deployment. +This chapter explores the landscape of contemporary machine learning systems, covering three key approaches: Cloud ML, Edge ML, and TinyML. @fig-cloud-edge-tinyml-comparison illustrates the spectrum of distributed intelligence across these approaches, providing a visual comparison of their characteristics. We will examine the unique characteristics, advantages, and challenges of each approach, as depicted in the figure. Additionally, we will discuss the emerging trends and technologies that are shaping the future of machine learning deployment, considering how they might influence the balance between these three paradigms. ![Cloud vs. Edge vs. TinyML: The Spectrum of Distributed Intelligence. Source: ABI Research -- TinyML.](images/png/cloud-edge-tiny.png){#fig-cloud-edge-tinyml-comparison} @@ -56,15 +56,15 @@ Each of these paradigms has its own strengths and is suited to different use cas The progression from Cloud to Edge to TinyML reflects a broader trend in computing towards more distributed, localized processing. This evolution is driven by the need for faster response times, improved privacy, reduced bandwidth usage, and the ability to operate in environments with limited or no connectivity. -@fig-vMLsizes illustrates the key differences between Cloud ML, Edge ML, and TinyML in terms of hardware, latency, connectivity, power requirements, and model complexity. As we move from Cloud to Edge to TinyML, we see a dramatic reduction in available resources, which presents significant challenges for deploying sophisticated machine learning models. - -This resource disparity becomes particularly apparent when attempting to deploy deep learning models on microcontrollers, the primary hardware platform for TinyML. These tiny devices have severely constrained memory and storage capacities, which are often insufficient for conventional deep learning models. We will learn to put these things into perspective in this chapter. +@fig-vMLsizes illustrates the key differences between Cloud ML, Edge ML, and TinyML in terms of hardware, latency, connectivity, power requirements, and model complexity. As we move from Cloud to Edge to TinyML, we see a dramatic reduction in available resources, which presents significant challenges for deploying sophisticated machine learning models. This resource disparity becomes particularly apparent when attempting to deploy deep learning models on microcontrollers, the primary hardware platform for TinyML. These tiny devices have severely constrained memory and storage capacities, which are often insufficient for conventional deep learning models. We will learn to put these things into perspective in this chapter. ![From cloud GPUs to microcontrollers: Navigating the memory and storage landscape across computing devices. Source: [@lin2023tiny]](./images/jpg/cloud_mobile_tiny_sizes.jpg){#fig-vMLsizes} ## Cloud ML -Cloud ML leverages powerful servers in the cloud for training and running large, complex ML models, and relies on internet connectivity. +Cloud ML leverages powerful servers in the cloud for training and running large, complex ML models and relies on internet connectivity. @fig-cloud-ml provides an overview of Cloud ML's capabilities which we will discuss in greater detail throughout this section. + +![Section overview for Cloud ML.](images/png/cloudml.png){#fig-cloud-ml} ### Characteristics @@ -74,7 +74,9 @@ Cloud Machine Learning (Cloud ML) is a subfield of machine learning that leverag **Centralized Infrastructure** -One of the key characteristics of Cloud ML is its centralized infrastructure. Cloud service providers offer a virtual platform that consists of high-capacity servers, expansive storage solutions, and robust networking architectures, all housed in data centers distributed across the globe (@fig-cloudml-example). This centralized setup allows for the pooling and efficient management of computational resources, making it easier to scale machine learning projects as needed. +One of the key characteristics of Cloud ML is its centralized infrastructure. @fig-cloudml-example illustrates this concept with an example from Google's Cloud TPU data center. Cloud service providers offer a virtual platform that consists of high-capacity servers, expansive storage solutions, and robust networking architectures, all housed in data centers distributed across the globe. As shown in the figure, these centralized facilities can be massive in scale, housing rows upon rows of specialized hardware. This centralized setup allows for the pooling and efficient management of computational resources, making it easier to scale machine learning projects as needed. + +![Cloud TPU data center at Google. Source: [Google.](https://blog.google/technology/ai/google-gemini-ai/#scalable-efficient)](images/png/cloud_ml_tpu.png){#fig-cloudml-example} **Scalable Data Processing and Model Training** @@ -94,8 +96,6 @@ By leveraging the pay-as-you-go pricing model offered by cloud service providers Cloud ML has revolutionized the way machine learning is approached, making it more accessible, scalable, and efficient. It has opened up new possibilities for organizations to harness the power of machine learning without the need for significant investments in hardware and infrastructure. -![Cloud TPU data center at Google. Source: [Google.](https://blog.google/technology/ai/google-gemini-ai/#scalable-efficient)](images/png/cloud_ml_tpu.png){#fig-cloudml-example} - ### Benefits Cloud ML offers several significant benefits that make it a powerful choice for machine learning projects: @@ -170,10 +170,7 @@ Cloud ML is deeply integrated into our online experiences, shaping the way we in **Security and Anomaly Detection** -Cloud ML plays a role in bolstering user security by powering anomaly detection systems. These systems continuously monitor user activities and system logs to identify unusual patterns or suspicious behavior. By analyzing vast amounts of data in real-time, Cloud ML algorithms can detect potential cyber threats, such as unauthorized access attempts, malware infections, or data breaches. The cloud's scalability and processing power enable these systems to handle the increasing complexity and volume of security data, providing a proactive approach to protecting users and systems from potential threats. @fig-cloud-ml provides an overview of this section. - -![Section summary for Cloud ML.](images/png/cloudml.png){#fig-cloud-ml} - +Cloud ML plays a role in bolstering user security by powering anomaly detection systems. These systems continuously monitor user activities and system logs to identify unusual patterns or suspicious behavior. By analyzing vast amounts of data in real-time, Cloud ML algorithms can detect potential cyber threats, such as unauthorized access attempts, malware infections, or data breaches. The cloud’s scalability and processing power enable these systems to handle the increasing complexity and volume of security data, providing a proactive approach to protecting users and systems from potential threats. ## Edge ML @@ -181,18 +178,20 @@ Cloud ML plays a role in bolstering user security by powering anomaly detection **Definition of Edge ML** -Edge Machine Learning (Edge ML) runs machine learning algorithms directly on endpoint devices or closer to where the data is generated rather than relying on centralized cloud servers. This approach brings computation closer to the data source, reducing the need to send large volumes of data over networks, often resulting in lower latency and improved data privacy. +Edge Machine Learning (Edge ML) runs machine learning algorithms directly on endpoint devices or closer to where the data is generated rather than relying on centralized cloud servers. This approach brings computation closer to the data source, reducing the need to send large volumes of data over networks, often resulting in lower latency and improved data privacy. @fig-edge-ml provides an overview of this section. + +![Section overview for Edge ML.](images/png/edgeml.png){#fig-edge-ml} **Decentralized Data Processing** -In Edge ML, data processing happens in a decentralized fashion. Instead of sending data to remote servers, the data is processed locally on devices like smartphones, tablets, or Internet of Things (IoT) devices (@fig-edgeml-example). This local processing allows devices to make quick decisions based on the data they collect without relying heavily on a central server's resources. This decentralization is particularly important in real-time applications where even a slight delay can have significant consequences. +In Edge ML, data processing happens in a decentralized fashion, as illustrated in @fig-edgeml-example. Instead of sending data to remote servers, the data is processed locally on devices like smartphones, tablets, or Internet of Things (IoT) devices. The figure showcases various examples of these edge devices, including wearables, industrial sensors, and smart home appliances. This local processing allows devices to make quick decisions based on the data they collect without relying heavily on a central server's resources. + +![Edge ML Examples. Source: Edge Impulse.](images/jpg/edge_ml_iot.jpg){#fig-edgeml-example} **Local Data Storage and Computation** Local data storage and computation are key features of Edge ML. This setup ensures that data can be stored and analyzed directly on the devices, thereby maintaining the privacy of the data and reducing the need for constant internet connectivity. Moreover, this often leads to more efficient computation, as data doesn't have to travel long distances, and computations are performed with a more nuanced understanding of the local context, which can sometimes result in more insightful analyses. -![Edge ML Examples. Source: Edge Impulse.](images/jpg/edge_ml_iot.jpg){#fig-edgeml-example} - ### Benefits **Reduced Latency** @@ -237,9 +236,7 @@ Edge ML plays a crucial role in efficiently managing various systems in smart ho The Industrial IoT leverages Edge ML to monitor and control complex industrial processes. Here, machine learning models can analyze data from numerous sensors in real-time, enabling predictive maintenance, optimizing operations, and enhancing safety measures. This revolution in industrial automation and efficiency is transforming manufacturing and production across various sectors. -The applicability of Edge ML is vast and not limited to these examples. Various other sectors, including healthcare, agriculture, and urban planning, are exploring and integrating Edge ML to develop innovative solutions responsive to real-world needs and challenges, heralding a new era of smart, interconnected systems. @fig-edge-ml provides an overview of this section. - -![Section summary for Edge ML.](images/png/edgeml.png){#fig-edge-ml} +The applicability of Edge ML is vast and not limited to these examples. Various other sectors, including healthcare, agriculture, and urban planning, are exploring and integrating Edge ML to develop innovative solutions responsive to real-world needs and challenges, heralding a new era of smart, interconnected systems. ## Tiny ML @@ -247,7 +244,9 @@ The applicability of Edge ML is vast and not limited to these examples. Various **Definition of TinyML** -TinyML sits at the crossroads of embedded systems and machine learning, representing a burgeoning field that brings smart algorithms directly to tiny microcontrollers and sensors. These microcontrollers operate under severe resource constraints, particularly regarding memory, storage, and computational power (see a TinyML kit example in @fig-tinyml-example). +TinyML sits at the crossroads of embedded systems and machine learning, representing a burgeoning field that brings smart algorithms directly to tiny microcontrollers and sensors. These microcontrollers operate under severe resource constraints, particularly regarding memory, storage, and computational power. @fig-tiny-ml encapsulates the key aspects of TinyML discussed in this section. + +![Section overview for Tiny ML.](images/png/tinyml.png){#fig-tiny-ml} **On-Device Machine Learning** @@ -255,7 +254,7 @@ In TinyML, the focus is on on-device machine learning. This means that machine l **Low Power and Resource-Constrained Environments** -TinyML excels in low-power and resource-constrained settings. These environments require highly optimized solutions that function within the available resources. TinyML meets this need through specialized algorithms and models designed to deliver decent performance while consuming minimal energy, thus ensuring extended operational periods, even in battery-powered devices. +TinyML excels in low-power and resource-constrained settings. These environments require highly optimized solutions that function within the available resources. @fig-tinyml-example showcases an example TinyML device kit, illustrating the compact nature of these systems. These devices can typically fit in the palm of your hand or, in some cases, are even as small as a fingernail. TinyML meets the need for efficiency through specialized algorithms and models designed to deliver decent performance while consuming minimal energy, thus ensuring extended operational periods, even in battery-powered devices like those shown. ![Examples of TinyML device kits. Source: [Widening Access to Applied Machine Learning with TinyML.](https://arxiv.org/pdf/2106.04008.pdf)](images/jpg/tiny_ml.jpg){#fig-tinyml-example} @@ -315,16 +314,16 @@ TinyML can be employed to create anomaly detection models that identify unusual In environmental monitoring, TinyML enables real-time data analysis from various field-deployed sensors. These could range from city air quality monitoring to wildlife tracking in protected areas. Through TinyML, data can be processed locally, allowing for quick responses to changing conditions and providing a nuanced understanding of environmental patterns, crucial for informed decision-making. -In summary, TinyML serves as a trailblazer in the evolution of machine learning, fostering innovation across various fields by bringing intelligence directly to the edge. Its potential to transform our interaction with technology and the world is immense, promising a future where devices are connected, intelligent, and capable of making real-time decisions and responses. @fig-tiny-ml provides an overview of this section. - -![Section summary for Tiny ML.](images/png/tinyml.png){#fig-tiny-ml} +In summary, TinyML serves as a trailblazer in the evolution of machine learning, fostering innovation across various fields by bringing intelligence directly to the edge. Its potential to transform our interaction with technology and the world is immense, promising a future where devices are connected, intelligent, and capable of making real-time decisions and responses. ## Comparison -Up to this point, we've explored each of the different ML variants individually. Now, let's bring them all together for a comprehensive view. @tbl-big_vs_tiny offers a comparative analysis of Cloud ML, Edge ML, and TinyML based on various features and aspects. Additionally, @fig-venn-diagram draws a contrast using a venn diagram. This comparison provides a clear perspective on the unique advantages and distinguishing factors, aiding in making informed decisions based on the specific needs and constraints of a given application or project. +Let's bring together the different ML variants we've explored individually for a comprehensive view. @fig-venn-diagram illustrates the relationships and overlaps between Cloud ML, Edge ML, and TinyML using a Venn diagram. This visual representation effectively highlights the unique characteristics of each approach while also showing areas of commonality. Each ML paradigm has its own distinct features, but there are also intersections where these approaches share certain attributes or capabilities. This diagram helps us understand how these variants relate to each other in the broader landscape of machine learning implementations. ![ML Venn diagram. Source: [arXiv](https://arxiv.org/html/2403.19076v1)](images/png/venndiagram.png){#fig-venn-diagram} +For a more detailed comparison of these ML variants, we can refer to @tbl-big_vs_tiny. This table offers a comprehensive analysis of Cloud ML, Edge ML, and TinyML based on various features and aspects. By examining these different characteristics side by side, we gain a clearer perspective on the unique advantages and distinguishing factors of each approach. This detailed comparison, combined with the visual overview provided by the Venn diagram, aids in making informed decisions based on the specific needs and constraints of a given application or project. + +--------------------------+---------------------------------------------------------+---------------------------------------------------------+----------------------------------------------------------+ | Aspect | Cloud ML | Edge ML | TinyML | +:=========================+:========================================================+:========================================================+:=========================================================+ @@ -407,12 +406,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * _Coming soon._ ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: diff --git a/contents/ondevice_learning/images/jpg/pruning.jpeg b/contents/core/ondevice_learning/images/jpg/pruning.jpeg similarity index 100% rename from contents/ondevice_learning/images/jpg/pruning.jpeg rename to contents/core/ondevice_learning/images/jpg/pruning.jpeg diff --git a/contents/ondevice_learning/images/png/cover_ondevice_learning.png b/contents/core/ondevice_learning/images/png/cover_ondevice_learning.png similarity index 100% rename from contents/ondevice_learning/images/png/cover_ondevice_learning.png rename to contents/core/ondevice_learning/images/png/cover_ondevice_learning.png diff --git a/contents/ondevice_learning/images/png/federatedvsoil.png b/contents/core/ondevice_learning/images/png/federatedvsoil.png similarity index 100% rename from contents/ondevice_learning/images/png/federatedvsoil.png rename to contents/core/ondevice_learning/images/png/federatedvsoil.png diff --git a/contents/ondevice_learning/images/png/ondevice_fed_averaging.png b/contents/core/ondevice_learning/images/png/ondevice_fed_averaging.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_fed_averaging.png rename to contents/core/ondevice_learning/images/png/ondevice_fed_averaging.png diff --git a/contents/ondevice_learning/images/png/ondevice_gboard_approach.png b/contents/core/ondevice_learning/images/png/ondevice_gboard_approach.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_gboard_approach.png rename to contents/core/ondevice_learning/images/png/ondevice_gboard_approach.png diff --git a/contents/ondevice_learning/images/png/ondevice_gboard_example.png b/contents/core/ondevice_learning/images/png/ondevice_gboard_example.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_gboard_example.png rename to contents/core/ondevice_learning/images/png/ondevice_gboard_example.png diff --git a/contents/ondevice_learning/images/png/ondevice_intro.png b/contents/core/ondevice_learning/images/png/ondevice_intro.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_intro.png rename to contents/core/ondevice_learning/images/png/ondevice_intro.png diff --git a/contents/ondevice_learning/images/png/ondevice_medperf.png b/contents/core/ondevice_learning/images/png/ondevice_medperf.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_medperf.png rename to contents/core/ondevice_learning/images/png/ondevice_medperf.png diff --git a/contents/ondevice_learning/images/png/ondevice_pretraining.png b/contents/core/ondevice_learning/images/png/ondevice_pretraining.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_pretraining.png rename to contents/core/ondevice_learning/images/png/ondevice_pretraining.png diff --git a/contents/ondevice_learning/images/png/ondevice_quantization_matrix.png b/contents/core/ondevice_learning/images/png/ondevice_quantization_matrix.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_quantization_matrix.png rename to contents/core/ondevice_learning/images/png/ondevice_quantization_matrix.png diff --git a/contents/ondevice_learning/images/png/ondevice_split_model.png b/contents/core/ondevice_learning/images/png/ondevice_split_model.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_split_model.png rename to contents/core/ondevice_learning/images/png/ondevice_split_model.png diff --git a/contents/ondevice_learning/images/png/ondevice_training_flow.png b/contents/core/ondevice_learning/images/png/ondevice_training_flow.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_training_flow.png rename to contents/core/ondevice_learning/images/png/ondevice_training_flow.png diff --git a/contents/ondevice_learning/images/png/ondevice_transfer_learning_apps.png b/contents/core/ondevice_learning/images/png/ondevice_transfer_learning_apps.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_transfer_learning_apps.png rename to contents/core/ondevice_learning/images/png/ondevice_transfer_learning_apps.png diff --git a/contents/ondevice_learning/images/png/ondevice_transfer_tinytl.png b/contents/core/ondevice_learning/images/png/ondevice_transfer_tinytl.png similarity index 100% rename from contents/ondevice_learning/images/png/ondevice_transfer_tinytl.png rename to contents/core/ondevice_learning/images/png/ondevice_transfer_tinytl.png diff --git a/contents/ondevice_learning/images/png/transfer_learning.png b/contents/core/ondevice_learning/images/png/transfer_learning.png similarity index 100% rename from contents/ondevice_learning/images/png/transfer_learning.png rename to contents/core/ondevice_learning/images/png/transfer_learning.png diff --git a/contents/core/ondevice_learning/ondevice_learning.bib b/contents/core/ondevice_learning/ondevice_learning.bib new file mode 100644 index 00000000..4b765ea3 --- /dev/null +++ b/contents/core/ondevice_learning/ondevice_learning.bib @@ -0,0 +1,388 @@ +%comment{This file was created with betterbib v5.0.11.} + +@inproceedings{abadi2016deep, + doi = {10.1145/2976749.2978318}, + source = {Crossref}, + author = {Abadi, Martin and Chu, Andy and Goodfellow, Ian and McMahan, H. Brendan and Mironov, Ilya and Talwar, Kunal and Zhang, Li}, + year = {2016}, + month = oct, + url = {https://doi.org/10.1145/2976749.2978318}, + booktitle = {Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security}, + publisher = {ACM}, + title = {Deep Learning with Differential Privacy}, + address = {New York, NY, USA}, + date-added = {2023-11-22 18:06:03 -0500}, + date-modified = {2023-11-22 18:08:42 -0500}, + keywords = {deep learning, differential privacy}, + pages = {308--318}, + series = {CCS '16}, +} + +@inproceedings{mcmahan2017communication, + author = {McMahan, Brendan and Moore, Eider and Ramage, Daniel and Hampson, Seth and y Arcas, Blaise Ag\"uera}, + title = {Communication-Efficient Learning of Deep Networks from Decentralized Data.}, + journal = {AISTATS}, + pages = {1273--1282}, + year = {2017}, + url = {http://proceedings.mlr.press/v54/mcmahan17a.html}, + source = {DBLP}, + booktitle = {Artificial intelligence and statistics}, + organization = {PMLR}, +} + +@inproceedings{cai2020tinytl, + author = {Cai, Han and Gan, Chuang and Zhu, Ligeng and 0003, Song Han}, + title = {TinyTL: Reduce Memory, Not Parameters for Efficient On-Device Learning.}, + journal = {NeurIPS}, + year = {2020}, + url = {https://proceedings.neurips.cc/paper/2020/hash/81f7acabd411274fcf65ce2070ed568a-Abstract.html}, + source = {DBLP}, + editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/CaiGZ020.bib}, + booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, + timestamp = {Tue, 19 Jan 2021 00:00:00 +0100}, +} + +@article{chen2016training, + url = {http://arxiv.org/abs/1604.06174v2}, + year = {2016}, + month = apr, + title = {Training Deep Nets with Sublinear Memory Cost}, + author = {Chen, Tianqi and Xu, Bing and Zhang, Chiyuan and Guestrin, Carlos}, + primaryclass = {cs.LG}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/1604.06174}, +} + +@inproceedings{chen2018tvm, + author = {Chen, Tianqi and Moreau, Thierry and Jiang, Ziheng and Zheng, Lianmin and Yan, Eddie and Shen, Haichen and Cowan, Meghan and Wang, Leyuan and Hu, Yuwei and Ceze, Luis and others}, + booktitle = {13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)}, + pages = {578--594}, + title = {TVM: An automated End-to-End optimizing compiler for deep learning}, + year = {2018}, +} + +@article{chen2023learning, + number = {1}, + doi = {10.1186/s13636-023-00299-2}, + source = {Crossref}, + volume = {2023}, + author = {Chen, Zhiyong and Xu, Shugong}, + year = {2023}, + month = sep, + url = {https://doi.org/10.1186/s13636-023-00299-2}, + issn = {1687-4722}, + journal = {EURASIP Journal on Audio, Speech, and Music Processing}, + publisher = {Springer Science and Business Media LLC}, + title = {Learning domain-heterogeneous speaker recognition systems with personalized continual federated learning}, + pages = {33}, +} + +@article{david2021tensorflow, + author = {David, Robert and Duke, Jared and Jain, Advait and Janapa Reddi, Vijay and Jeffries, Nat and Li, Jian and Kreeger, Nick and Nappier, Ian and Natraj, Meghna and Wang, Tiezhen and others}, + journal = {Proceedings of Machine Learning and Systems}, + pages = {800--811}, + title = {Tensorflow lite micro: Embedded machine learning for tinyml systems}, + volume = {3}, + year = {2021}, +} + +@article{desai2016five, + author = {Desai, Tanvi and Ritchie, Felix and Welpton, Richard and others}, + journal = {Economics Working Paper Series}, + pages = {28}, + title = {Five Safes: Designing data access for research}, + volume = {1601}, + year = {2016}, +} + +@article{dhar2021survey, + number = {3}, + doi = {10.1145/3450494}, + pages = {1--49}, + source = {Crossref}, + volume = {2}, + author = {Dhar, Sauptik and Guo, Junyao and Liu, Jiayi (Jason) and Tripathi, Samarth and Kurup, Unmesh and Shah, Mohak}, + subtitle = {An Algorithms and Learning Theory Perspective}, + year = {2021}, + month = jul, + url = {https://doi.org/10.1145/3450494}, + issn = {2691-1914,2577-6207}, + journal = {ACM Transactions on Internet of Things}, + publisher = {Association for Computing Machinery (ACM)}, + title = {A Survey of On-Device Machine Learning}, +} + +@article{dwork2014algorithmic, + number = {3-4}, + doi = {10.1561/0400000042}, + pages = {211--407}, + source = {Crossref}, + volume = {9}, + author = {Dwork, Cynthia and Roth, Aaron}, + year = {2013}, + url = {https://doi.org/10.1561/0400000042}, + issn = {1551-305X,1551-3068}, + journal = {Foundations and Trends® in Theoretical Computer Science}, + publisher = {Now Publishers}, + title = {The Algorithmic Foundations of Differential Privacy}, +} + +@article{esteva2017dermatologist, + number = {7639}, + doi = {10.1038/nature21056}, + pages = {115--118}, + source = {Crossref}, + volume = {542}, + author = {Esteva, Andre and Kuprel, Brett and Novoa, Roberto A. and Ko, Justin and Swetter, Susan M. and Blau, Helen M. and Thrun, Sebastian}, + year = {2017}, + month = jan, + url = {https://doi.org/10.1038/nature21056}, + issn = {0028-0836,1476-4687}, + journal = {Nature}, + publisher = {Springer Science and Business Media LLC}, + title = {Dermatologist-level classification of skin cancer with deep neural networks}, +} + +@inproceedings{gruslys2016memory, + author = {Gruslys, Audrunas and Munos, R\'emi and Danihelka, Ivo and Lanctot, Marc and Graves, Alex}, + editor = {Lee, Daniel D. and Sugiyama, Masashi and von Luxburg, Ulrike and Guyon, Isabelle and Garnett, Roman}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/GruslysMDLG16.bib}, + booktitle = {Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016, December 5-10, 2016, Barcelona, Spain}, + pages = {4125--4133}, + timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, + title = {Memory-Efficient Backpropagation Through Time}, + url = {https://proceedings.neurips.cc/paper/2016/hash/a501bebf79d570651ff601788ea9d16d-Abstract.html}, + year = {2016}, +} + +@inproceedings{hong2023publishing, + doi = {10.1109/satml54575.2023.00026}, + pages = {271--290}, + source = {Crossref}, + volume = {abs 1603 5279}, + author = {Hong, Sanghyun and Carlini, Nicholas and Kurakin, Alexey}, + year = {2023}, + month = feb, + url = {https://doi.org/10.1109/satml54575.2023.00026}, + booktitle = {2023 IEEE Conference on Secure and Trustworthy Machine Learning (SaTML)}, + publisher = {IEEE}, + title = {Publishing Efficient On-device Models Increases Adversarial Vulnerability}, + organization = {IEEE}, +} + +@inproceedings{kairouz2015secure, + author = {Kairouz, Peter and Oh, Sewoong and Viswanath, Pramod}, + title = {Secure Multi-party Differential Privacy.}, + journal = {NIPS}, + pages = {2008--2016}, + year = {2015}, + url = {https://proceedings.neurips.cc/paper/2015/hash/a01610228fe998f515a72dd730294d87-Abstract.html}, + source = {DBLP}, + editor = {Cortes, Corinna and Lawrence, Neil D. and Lee, Daniel D. and Sugiyama, Masashi and Garnett, Roman}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/KairouzOV15.bib}, + booktitle = {Advances in Neural Information Processing Systems 28: Annual Conference on Neural Information Processing Systems 2015, December 7-12, 2015, Montreal, Quebec, Canada}, + timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, +} + +@article{karargyris2023federated, + number = {7}, + doi = {10.1038/s42256-023-00652-2}, + pages = {799--810}, + source = {Crossref}, + volume = {5}, + author = {Karargyris, Alexandros and Umeton, Renato and Sheller, Micah J. and Aristizabal, Alejandro and George, Johnu and Wuest, Anna and Pati, Sarthak and Kassem, Hasan and Zenk, Maximilian and Baid, Ujjwal and Narayana Moorthy, Prakash and Chowdhury, Alexander and Guo, Junyi and Nalawade, Sahil and Rosenthal, Jacob and Kanter, David and Xenochristou, Maria and Beutel, Daniel J. and Chung, Verena and Bergquist, Timothy and Eddy, James and Abid, Abubakar and Tunstall, Lewis and Sanseviero, Omar and Dimitriadis, Dimitrios and Qian, Yiming and Xu, Xinxing and Liu, Yong and Goh, Rick Siow Mong and Bala, Srini and Bittorf, Victor and Puchala, Sreekar Reddy and Ricciuti, Biagio and Samineni, Soujanya and Sengupta, Eshna and Chaudhari, Akshay and Coleman, Cody and Desinghu, Bala and Diamos, Gregory and Dutta, Debo and Feddema, Diane and Fursin, Grigori and Huang, Xinyuan and Kashyap, Satyananda and Lane, Nicholas and Mallick, Indranil and and and and Mascagni, Pietro and Mehta, Virendra and Moraes, Cassiano Ferro and Natarajan, Vivek and Nikolov, Nikola and Padoy, Nicolas and Pekhimenko, Gennady and Reddi, Vijay Janapa and Reina, G. Anthony and Ribalta, Pablo and Singh, Abhishek and Thiagarajan, Jayaraman J. and Albrecht, Jacob and Wolf, Thomas and Miller, Geralyn and Fu, Huazhu and Shah, Prashant and Xu, Daguang and Yadav, Poonam and Talby, David and Awad, Mark M. and Howard, Jeremy P. and Rosenthal, Michael and Marchionni, Luigi and Loda, Massimo and Johnson, Jason M. and Bakas, Spyridon and Mattson, Peter}, + year = {2023}, + month = jul, + url = {https://doi.org/10.1038/s42256-023-00652-2}, + issn = {2522-5839}, + journal = {Nature Machine Intelligence}, + publisher = {Springer Science and Business Media LLC}, + title = {Federated benchmarking of medical artificial intelligence with MedPerf}, +} + +@article{kwon2023tinytrain, + url = {http://arxiv.org/abs/2307.09988v2}, + year = {2023}, + month = jul, + title = {TinyTrain: Resource-Aware Task-Adaptive Sparse Training of DNNs at the Data-Scarce Edge}, + author = {Kwon, Young D. and Li, Rui and Venieris, Stylianos I. and Chauhan, Jagmohan and Lane, Nicholas D. and Mascolo, Cecilia}, + primaryclass = {cs.LG}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/2307.09988}, +} + +@inproceedings{li2016lightrnn, + author = {Li, Xiang and Qin, Tao and Yang, Jian and Liu, Tie-Yan}, + editor = {Lee, Daniel D. and Sugiyama, Masashi and von Luxburg, Ulrike and Guyon, Isabelle and Garnett, Roman}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/LiQYHL16.bib}, + booktitle = {Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016, December 5-10, 2016, Barcelona, Spain}, + pages = {4385--4393}, + timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, + title = {LightRNN: Memory and Computation-Efficient Recurrent Neural Networks}, + url = {https://proceedings.neurips.cc/paper/2016/hash/c3e4035af2a1cde9f21e1ae1951ac80b-Abstract.html}, + year = {2016}, +} + +@inproceedings{lin2020mcunet, + author = {Lin, Ji and Chen, Wei-Ming and Lin, Yujun and Cohn, John and Gan, Chuang and Han, Song}, + editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + biburl = {https://dblp.org/rec/conf/nips/LinCLCG020.bib}, + booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, + timestamp = {Thu, 11 Feb 2021 00:00:00 +0100}, + title = {MCUNet: Tiny Deep Learning on IoT Devices}, + url = {https://proceedings.neurips.cc/paper/2020/hash/86c51678350f656dcc7f490a43946ee5-Abstract.html}, + year = {2020}, +} + +@article{lin2022device, + author = {Lin, Ji and Zhu, Ligeng and Chen, Wei-Ming and Wang, Wei-Chen and Gan, Chuang and Han, Song}, + journal = {Adv. Neur. In.}, + pages = {22941--22954}, + title = {On-device training under 256kb memory}, + volume = {35}, + year = {2022}, +} + +@article{moshawrab2023reviewing, + number = {10}, + doi = {10.3390/electronics12102287}, + pages = {2287}, + source = {Crossref}, + volume = {12}, + author = {Moshawrab, Mohammad and Adda, Mehdi and Bouzouane, Abdenour and Ibrahim, Hussein and Raad, Ali}, + year = {2023}, + month = may, + url = {https://doi.org/10.3390/electronics12102287}, + issn = {2079-9292}, + journal = {Electronics}, + publisher = {MDPI AG}, + title = {Reviewing Federated Learning Aggregation Algorithms; Strategies, Contributions, Limitations and Future Perspectives}, +} + +@inproceedings{nguyen2023re, + doi = {10.1109/cvpr52729.2023.01572}, + pages = {16384--16393}, + source = {Crossref}, + author = {Nguyen, Ngoc-Bao and Chandrasegaran, Keshigeyan and Abdollahzadeh, Milad and Cheung, Ngai-Man}, + year = {2023}, + month = jun, + url = {https://doi.org/10.1109/cvpr52729.2023.01572}, + booktitle = {2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, + publisher = {IEEE}, + title = {Re-Thinking Model Inversion Attacks Against Deep Neural Networks}, +} + +@article{pan2009survey, + number = {10}, + doi = {10.1109/tkde.2009.191}, + pages = {1345--1359}, + source = {Crossref}, + volume = {22}, + author = {Pan, Sinno Jialin and Yang, Qiang}, + year = {2010}, + month = oct, + url = {https://doi.org/10.1109/tkde.2009.191}, + issn = {1041-4347}, + journal = {IEEE Transactions on Knowledge and Data Engineering}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {A Survey on Transfer Learning}, +} + +@inproceedings{rouhani2017tinydl, + doi = {10.1109/iscas.2017.8050343}, + pages = {1--4}, + source = {Crossref}, + author = {Darvish Rouhani, Bita and Mirhoseini, Azalia and Koushanfar, Farinaz}, + year = {2017}, + month = may, + url = {https://doi.org/10.1109/iscas.2017.8050343}, + booktitle = {2017 IEEE International Symposium on Circuits and Systems (ISCAS)}, + publisher = {IEEE}, + title = {TinyDL: Just-in-time deep learning solution for constrained embedded systems}, + bdsk-url-1 = {https://doi.org/10.1109/ISCAS.2017.8050343}, +} + +@inproceedings{shi2022data, + doi = {10.1145/3517207.3526980}, + pages = {72--78}, + source = {Crossref}, + author = {Shi, Hongrui and Radu, Valentin}, + year = {2022}, + month = apr, + url = {https://doi.org/10.1145/3517207.3526980}, + booktitle = {Proceedings of the 2nd European Workshop on Machine Learning and Systems}, + publisher = {ACM}, + title = {Data selection for efficient model update in federated learning}, +} + +@article{wu2022sustainable, + author = {Wu, Carole-Jean and Raghavendra, Ramya and Gupta, Udit and Acun, Bilge and Ardalani, Newsha and Maeng, Kiwan and Chang, Gloria and Aga, Fiona and Huang, Jinshi and Bai, Charles and others}, + journal = {Proceedings of Machine Learning and Systems}, + pages = {795--813}, + title = {Sustainable ai: Environmental implications, challenges and opportunities}, + volume = {4}, + year = {2022}, +} + +@article{xu2023federated, + url = {http://arxiv.org/abs/2305.18465v2}, + year = {2023}, + month = may, + title = {Federated Learning of Gboard Language Models with Differential Privacy}, + author = {Xu, Zheng and Zhang, Yanxiang and Andrew, Galen and Choquette-Choo, Christopher A. and Kairouz, Peter and McMahan, H. Brendan and Rosenstock, Jesse and Zhang, Yuanbo}, + primaryclass = {cs.LG}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/2305.18465}, +} + +@inproceedings{yang2023online, + doi = {10.1109/icassp49357.2023.10097124}, + pages = {1--5}, + source = {Crossref}, + author = {Yang, Tien-Ju and Xiao, Yonghui and Motta, Giovanni and Beaufays, Fran\c{c}oise and Mathews, Rajiv and Chen, Mingqing}, + year = {2023}, + month = jun, + url = {https://doi.org/10.1109/icassp49357.2023.10097124}, + booktitle = {ICASSP 2023 - 2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, + publisher = {IEEE}, + title = {Online Model Compression for Federated Learning with Large Models}, + organization = {IEEE}, +} + +@article{zhao2018federated, + url = {http://arxiv.org/abs/1806.00582v2}, + year = {2018}, + month = jun, + title = {Federated Learning with Non-IID Data}, + author = {Zhao, Yue and Li, Meng and Lai, Liangzhen and Suda, Naveen and Civin, Damon and Chandra, Vikas}, + primaryclass = {cs.LG}, + archiveprefix = {arXiv}, + journal = {ArXiv preprint}, + volume = {abs/1806.00582}, +} + +@article{zhuang2021comprehensive, + number = {1}, + doi = {10.1109/jproc.2020.3004555}, + pages = {43--76}, + source = {Crossref}, + volume = {109}, + author = {Zhuang, Fuzhen and Qi, Zhiyuan and Duan, Keyu and Xi, Dongbo and Zhu, Yongchun and Zhu, Hengshu and Xiong, Hui and He, Qing}, + year = {2021}, + month = jan, + url = {https://doi.org/10.1109/jproc.2020.3004555}, + issn = {0018-9219,1558-2256}, + journal = {Proceedings of the IEEE}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + title = {A Comprehensive Survey on Transfer Learning}, + keywords = {Transfer learning;Semisupervised learning;Data models;Covariance matrices;Machine learning;Adaptation models;Domain adaptation;interpretation;machine learning;transfer learning}, +} \ No newline at end of file diff --git a/contents/ondevice_learning/ondevice_learning.qmd b/contents/core/ondevice_learning/ondevice_learning.qmd similarity index 84% rename from contents/ondevice_learning/ondevice_learning.qmd rename to contents/core/ondevice_learning/ondevice_learning.qmd index 71ebd194..3ca9ae4b 100644 --- a/contents/ondevice_learning/ondevice_learning.qmd +++ b/contents/core/ondevice_learning/ondevice_learning.qmd @@ -5,12 +5,12 @@ bibliography: ondevice_learning.bib # On-Device Learning {#sec-ondevice_learning} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-on-device-learning-resource), [Videos](#sec-on-device-learning-resource), [Exercises](#sec-on-device-learning-resource), [Labs](#sec-on-device-learning-resource) +Resources: [Slides](#sec-on-device-learning-resource), [Videos](#sec-on-device-learning-resource), [Exercises](#sec-on-device-learning-resource) ::: ![_DALL·E 3 Prompt: Drawing of a smartphone with its internal components exposed, revealing diverse miniature engineers of different genders and skin tones actively working on the ML model. The engineers, including men, women, and non-binary individuals, are tuning parameters, repairing connections, and enhancing the network on the fly. Data flows into the ML model, being processed in real-time, and generating output inferences._](images/png/cover_ondevice_learning.png) -On-device Learning represents a significant innovation for embedded and edge IoT devices, enabling models to train and update directly on small local devices. This contrasts with traditional methods, where models are trained on expansive cloud computing resources before deployment. With On-Device Learning, devices like smart speakers, wearables, and industrial sensors can refine models in real-time based on local data without needing to transmit data externally. For example, a voice-enabled smart speaker could learn and adapt to its owner's speech patterns and vocabulary right on the device. However, there is no such thing as a free lunch; therefore, in this chapter, we will discuss both the benefits and the limitations of on-device learning. +On-device Learning represents a significant innovation for embedded and edge IoT devices, enabling models to train and update directly on small local devices. This contrasts with traditional methods, where models are trained on expansive cloud computing resources before deployment. With on-device learning, devices like smart speakers, wearables, and industrial sensors can refine models in real-time based on local data without needing to transmit data externally. For example, a voice-enabled smart speaker could learn and adapt to its owner's speech patterns and vocabulary right on the device. However, there is no such thing as a free lunch; therefore, in this chapter, we will discuss both the benefits and the limitations of on-device learning. ::: {.callout-tip} @@ -30,11 +30,13 @@ On-device Learning represents a significant innovation for embedded and edge IoT ## Introduction -On-device Learning refers to training ML models directly on the device where they are deployed, as opposed to traditional methods where models are trained on powerful servers and then deployed to devices. This method is particularly relevant to TinyML, where ML systems are integrated into tiny, resource-constrained devices. +On-device learning refers to training ML models directly on the device where they are deployed, as opposed to traditional methods where models are trained on powerful servers and then deployed to devices. This method is particularly relevant to TinyML, where ML systems are integrated into tiny, resource-constrained devices. -An example of On-Device Learning can be seen in a smart thermostat that adapts to user behavior over time. Initially, the thermostat may have a generic model that understands basic usage patterns. However, as it is exposed to more data, such as the times the user is home or away, preferred temperatures, and external weather conditions, the thermostat can refine its model directly on the device to provide a personalized experience. This is all done without sending data back to a central server for processing. +An example of on-device learning can be seen in a smart thermostat that adapts to user behavior over time. Initially, the thermostat may have a generic model that understands basic usage patterns. However, as it is exposed to more data, such as the times the user is home or away, preferred temperatures, and external weather conditions, the thermostat can refine its model directly on the device to provide a personalized experience. This is all done without sending data back to a central server for processing. -Another example is in predictive text on smartphones. As users type, the phone learns from the user's language patterns and suggests words or phrases that are likely to be used next. This learning happens directly on the device, and the model updates in real-time as more data is collected. A widely used real-world example of on-device learning is Gboard. On an Android phone, Gboard learns from typing and dictation patterns to enhance the experience for all users. On-device learning is also called federated learning. @fig-federated-cycle shows the cycle of federated learning on mobile devices: A. the device learns from user patterns; B. local model updates are communicated to the cloud; C. the cloud server updates the global model and sends the new model to all the devices. +Another example is in predictive text on smartphones. As users type, the phone learns from the user's language patterns and suggests words or phrases that are likely to be used next. This learning happens directly on the device, and the model updates in real-time as more data is collected. A widely used real-world example of on-device learning is [Gboard](https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin). On an Android phone, Gboard [learns from typing and dictation patterns](https://research.google/blog/federated-learning-collaborative-machine-learning-without-centralized-training-data/) to enhance the experience for all users. + +In some cases, on-device learning can be coupled with a federated learning setup, where each device tunes its model locally using only the data stored on that device. This approach allows the model to learn from each device’s unique data without transmitting any of it to a central server. As shown in @fig-federated-cycle, federated learning preserves privacy by keeping all personal data on the device, ensuring that the training process remains entirely on-device, with only summarized model updates shared across devices. ![Federated learning cycle. Source: [Google Research.](https://ai.googleblog.com/2017/04/federated-learning-collaborative.html)](images/png/ondevice_intro.png){#fig-federated-cycle} @@ -42,7 +44,7 @@ Another example is in predictive text on smartphones. As users type, the phone l On-device learning provides several advantages over traditional cloud-based ML. By keeping data and models on the device, it eliminates the need for costly data transmission and addresses privacy concerns. This allows for more personalized, responsive experiences, as the model can adapt in real-time to user behavior. -However, On-Device Learning also comes with tradeoffs. The limited computing resources on consumer devices can make it challenging to run complex models locally. Datasets are also more restricted since they consist only of user-generated data from a single device. Additionally, updating models requires pushing out new versions rather than seamless cloud updates. +However, on-device learning also comes with drawbacks. The limited computing resources on consumer devices can make it challenging to run complex models locally. Datasets are also more restricted since they consist only of user-generated data from a single device. Additionally, updating models on each device can be more challenging, as it often requires deploying new versions to each device individually, rather than seamlessly updating a single model in the cloud. On-device learning opens up new capabilities by enabling offline AI while maintaining user privacy. However, it requires carefully managing model and data complexity within the constraints of consumer devices. Finding the right balance between localization and cloud offloading is key to optimizing on-device experiences. @@ -56,7 +58,7 @@ Server breaches are far from rare, with millions of records compromised annually Regulations like the Health Insurance Portability and Accountability Act ([HIPAA](https://www.cdc.gov/phlp/publications/topic/hipaa.html)) and the General Data Protection Regulation ([GDPR](https://gdpr.eu/tag/gdpr/)) mandate stringent data privacy requirements that on-device learning adeptly addresses. By ensuring data remains localized and is not transferred to other systems, on-device learning facilitates [compliance with these regulations](https://www.researchgate.net/publication/321515854_The_EU_General_Data_Protection_Regulation_GDPR_A_Practical_Guide). -On-device learning is not just beneficial for individual users; it has significant implications for organizations and sectors dealing with highly sensitive data. For instance, within the military, on-device learning empowers frontline systems to adapt models and function independently of connections to central servers that could potentially be compromised. Critical and sensitive information is staunchly protected by localizing data processing and learning. However, this comes with the tradeoff that individual devices take on more value and may incentivize theft or destruction as they become the sole carriers of specialized AI models. Care must be taken to secure devices themselves when transitioning to on-device learning. +On-device learning is not just beneficial for individual users; it has significant implications for organizations and sectors dealing with highly sensitive data. For instance, within the military, on-device learning empowers frontline systems to adapt models and function independently of connections to central servers that could potentially be compromised. Critical and sensitive information is staunchly protected by localizing data processing and learning. However, a drawback is that individual devices take on more value and may incentivize theft or destruction as they become the sole carriers of specialized AI models. Care must be taken to secure devices themselves when transitioning to on-device learning. It is also important to preserve the privacy, security, and regulatory compliance of personal and sensitive data. Instead of in the cloud, training and operating models locally substantially augment privacy measures, ensuring that user data is safeguarded from potential threats. @@ -77,13 +79,17 @@ Major privacy regulations impose restrictions on cross-border data movement that One major advantage of on-device learning is the significant reduction in bandwidth usage and associated cloud infrastructure costs. By keeping data localized for model training rather than transmitting raw data to the cloud, on-device learning can result in substantial bandwidth savings. For instance, a network of cameras analyzing video footage can achieve significant reductions in data transfer by training models on-device rather than streaming all video footage to the cloud for processing. -This reduction in data transmission saves bandwidth and translates to lower costs for servers, networking, and data storage in the cloud. Large organizations, which might spend millions on cloud infrastructure to train models on-device data, can experience dramatic cost reductions through on-device learning. In the era of Generative AI, where [costs have been escalating significantly](https://epochai.org/blog/trends-in-the-dollar-training-cost-of-machine-learning-systems), finding ways to keep expenses down has become increasingly important. +This reduction in data transmission saves bandwidth and translates to lower costs for servers, networking, and data storage in the cloud. Large organizations, which might spend millions on cloud infrastructure to train models, can experience dramatic cost reductions through on-device learning. In the era of Generative AI, where [costs have been escalating significantly](https://epochai.org/blog/trends-in-the-dollar-training-cost-of-machine-learning-systems), finding ways to keep expenses down has become increasingly important. Furthermore, the energy and environmental costs of running large server farms are also diminished. Data centers consume vast amounts of energy, contributing to greenhouse gas emissions. By reducing the need for extensive cloud-based infrastructure, on-device learning plays a part in mitigating the environmental impact of data processing [@wu2022sustainable]. Specifically for endpoint applications, on-device learning minimizes the number of network API calls needed to run inference through a cloud provider. The cumulative costs associated with bandwidth and API calls can quickly escalate for applications with millions of users. In contrast, performing training and inferences locally is considerably more efficient and cost-effective. Under state-of-the-art optimizations, on-device learning has been shown to reduce training memory requirements, drastically improve memory efficiency, and reduce up to 20% in per-iteration latency [@dhar2021survey]. -Another key benefit of on-device learning is the potential for IoT devices to continuously adapt their ML model to new data for continuous, lifelong learning. On-device models can quickly become outdated as user behavior, data patterns, and preferences change. Continuous learning enables the model to efficiently adapt to new data and improvements and maintain high model performance over time. +#### Lifelong Learning + +One of the key benefits of on-device learning is its ability to support lifelong learning, allowing models to continuously adapt to new data and evolving user behavior directly on the device. In dynamic environments, data patterns can change over time—a phenomenon known as data drift—which can degrade model accuracy and relevance if the model remains static. For example, user preferences, seasonal trends, or even external conditions (such as network traffic patterns or weather) can evolve, requiring models to adjust in order to maintain optimal performance. + +On-device learning enables models to address this by adapting incrementally as new data becomes available. This continuous adaptation process allows models to remain relevant and effective, reducing the need for frequent cloud updates. Local adaptations reduce the need to transmit large datasets back to the cloud for retraining, saving bandwidth and ensuring data privacy. ### Limitations @@ -111,7 +117,7 @@ In the cloud, models are trained on massive, diverse datasets like ImageNet or C On-device learning instead relies on smaller, decentralized data silos unique to each device. A smartphone camera roll may contain only thousands of photos of users' interests and environments. -This decentralized data leads to a need for IID (independent and identically distributed) data. For instance, two friends may take many photos of the same places and objects, meaning their data distributions are highly correlated rather than independent. +In machine learning, effective model training often assumes that data is independent and identically distributed (IID). This means that each data point is generated independently (without influencing other points) and follows the same statistical distribution as the rest of the data. When data is IID, models trained on it are more likely to generalize well to new, similar data. However, in on-device learning, this IID condition is rarely met, as data is highly specific to individual users and contexts. For example, two friends may take similar photos of the same places, creating correlated data that doesn’t represent a broader population or the variety needed for generalization. Reasons data may be non-IID in on-device settings: @@ -127,15 +133,9 @@ The limited data and optimizations required for on-device learning can negativel * Noisy user-generated data reduces quality. Sensor noise or improper data labeling by non-experts may degrade training. * Optimizations like pruning and quantization trade off accuracy for efficiency. An 8-bit quantized model runs faster but less accurately than a 32-bit model. -So while cloud models achieve high accuracy with massive datasets and no constraints, on-device models can struggle to generalize. Some studies show that on-device training matches cloud accuracy on select tasks. However, performance on real-world workloads requires further study [@lin2022device]. - -For instance, a cloud model can accurately detect pneumonia in chest X-rays from thousands of hospitals. However, an on-device model trained only on a small local patient population may fail to generalize. - -Unreliable accuracy limits the real-world applicability of on-device learning for mission-critical uses like disease diagnosis or self-driving vehicles. - -On-device training is also slower than the cloud due to limited resources. Even if each iteration is faster, the overall training process takes longer. +So while cloud models achieve high accuracy with massive datasets and no constraints, on-device models can struggle to generalize. Some studies show that on-device training matches cloud accuracy on select tasks. However, performance on real-world workloads requires further study [@lin2022device]. For instance, a cloud model can accurately detect pneumonia in chest X-rays from thousands of hospitals. However, an on-device model trained only on a small local patient population may fail to generalize. This limits the real-world applicability of on-device learning for mission-critical uses like disease diagnosis or self-driving vehicles. -For example, a real-time robotics application may require model updates within milliseconds. On-device training on small embedded hardware may take seconds or minutes per update - too slow for real-time use. +On-device training is also slower than the cloud due to limited resources. Even if each iteration is faster, the overall training process takes longer. For example, a real-time robotics application may require model updates within milliseconds. On-device training on small embedded hardware may take seconds or minutes per update - too slow for real-time use. Accuracy, generalization, and speed challenges pose hurdles to adopting on-device learning for real-world production systems, especially when reliability and low latency are critical. @@ -167,11 +167,9 @@ With some refinements, these classical ML algorithms can be adapted to specific #### Pruning -Pruning is a technique for reducing the size and complexity of an ML model to improve its efficiency and generalization performance. This is beneficial for training models on edge devices, where we want to minimize resource usage while maintaining competitive accuracy. +As discussed in @sec-pruning, pruning is a key technique for reducing the size and complexity of ML models. For on-device learning, pruning is particularly valuable, as it minimizes resource consumption while retaining competitive accuracy. By removing less informative components of a model, pruning allows ML models to run more efficiently on resource-limited devices. -The primary goal of pruning is to remove parts of the model that do not contribute significantly to its predictive power while retaining the most informative aspects. In the context of decision trees, pruning involves removing some branches (subtrees) from the tree, leading to a smaller and simpler tree. In the context of DNN, pruning is used to reduce the number of neurons (units) or connections in the network, as shown in @fig-ondevice-pruning. - -![Network pruning.](images/jpg/pruning.jpeg){#fig-ondevice-pruning} +In the context of on-device learning, pruning is applied to adapt complex deep learning models to the limited memory and processing power of edge devices. For example, pruning can reduce the number of neurons or connections in a DNN, resulting in a model that consumes less memory and requires fewer computations. This approach simplifies the neural network structure, resulting in a more compact and efficient model. #### Reducing Complexity of Deep Learning Models @@ -191,7 +189,7 @@ Quantization is a common method for reducing the memory footprint of DNN trainin A specific algorithmic technique is Quantization-Aware Scaling (QAS), which improves the performance of neural networks on low-precision hardware, such as edge devices, mobile devices, or TinyML systems, by adjusting the scale factors during the quantization process. -As we discussed in the Model Optimizations chapter, quantization is the process of mapping a continuous range of values to a discrete set of values. In the context of neural networks, quantization often involves reducing the precision of the weights and activations from 32-bit floating point to lower-precision formats such as 8-bit integers. This reduction in precision can significantly reduce the computational cost and memory footprint of the model, making it suitable for deployment on low-precision hardware. @fig-float-int-quantization is an example of float-to-integer quantization. +As we discussed in the [Model Optimizations](../optimizations/optimizations.qmd) chapter, quantization is the process of mapping a continuous range of values to a discrete set of values. In the context of neural networks, this often involves reducing the precision of weights and activations from 32-bit floating point to lower-precision formats such as 8-bit integers. This reduction in precision can significantly decrease the model's computational cost and memory footprint, making it suitable for deployment on low-precision hardware. @fig-float-int-quantization illustrates this concept, showing an example of float-to-integer quantization where high-precision floating-point values are mapped to a more compact integer representation. This visual representation helps to clarify how quantization can maintain the essential structure of the data while reducing its complexity and storage requirements. ![Float to integer quantization. Source: [Nvidia.](https://developer-blogs.nvidia.com/wp-content/uploads/2021/07/qat-training-precision.png)](images/png/ondevice_quantization_matrix.png){#fig-float-int-quantization} @@ -209,7 +207,7 @@ QAS is used to overcome the difficulties of optimizing models on tiny devices wi Although QAS enables the optimization of a quantized model, it uses a large amount of memory, which is unrealistic for on-device training. So, spare updates are used to reduce the memory footprint of full backward computation. Instead of pruning weights for inference, sparse update prunes the gradient during backward propagation to update the model sparsely. In other words, sparse update skips computing gradients of less important layers and sub-tensors. -However, determining the optimal sparse update scheme given a constraining memory budget can be challenging due to the large search space. For example, the MCUNet model has 43 convolutional layers and a search space of approximately 1030. One technique to address this issue is contribution analysis. Contribution analysis measures the accuracy improvement from biases (updating the last few biases compared to only updating the classifier) and weights (updating the weight of one extra layer compared to only having a bias update). By trying to maximize these improvements, contribution analysis automatically derives an optimal sparse update scheme for enabling on-device training. +However, determining the optimal sparse update scheme given a constraining memory budget can be challenging due to the large search space. For example, the MCUNet model has 43 convolutional layers and a search space of approximately $10^{30}$. One technique to address this issue is contribution analysis. Contribution analysis measures the accuracy improvement from biases (updating the last few biases compared to only updating the classifier) and weights (updating the weight of one extra layer compared to only having a bias update). By trying to maximize these improvements, contribution analysis automatically derives an optimal sparse update scheme for enabling on-device training. #### Layer-Wise Training @@ -231,9 +229,9 @@ Other more common methods of data compression focus on reducing the dimensionali ## Transfer Learning -Transfer learning is an ML technique in which a model developed for a particular task is reused as the starting point for a model on a second task. In the context of on-device AI, transfer learning allows us to leverage pre-trained models that have already learned useful representations from large datasets and finetune them for specific tasks using smaller datasets directly on the device. This can significantly reduce the computational resources and time required for training models from scratch. +Transfer learning is a technique in which a model developed for a particular task is reused as the starting point for a model on a second task. Transfer learning allows us to leverage pre-trained models that have already learned useful representations from large datasets and fine-tune them for specific tasks using smaller datasets directly on the device. This can significantly reduce the computational resources and time required for training models from scratch. -@fig-transfer-learning-apps includes some intuitive examples of transfer learning from the real world. For instance, if you can ride a bicycle, you know how to balance yourself on two-wheel vehicles. Then, it would be easier for you to learn how to ride a motorcycle than it would be for someone who cannot ride a bicycle. +It can be understood through intuitive real-world examples, as illustrated in @fig-transfer-learning-apps. The figure shows scenarios where skills from one domain can be applied to accelerate learning in a related field. A prime example is the relationship between riding a bicycle and a motorcycle. If you can ride a bicycle, you would have already mastered the skill of balancing on a two-wheeled vehicle. The foundational knowledge about this skill makes it significantly easier for you to learn how to ride a motorcycle compared to someone without any cycling experience. The figure depicts this and other similar scenarios, demonstrating how transfer learning leverages existing knowledge to expedite the acquisition of new, related skills. ![Transferring knowledge between tasks. Source: @zhuang2021comprehensive.](images/png/ondevice_transfer_learning_apps.png){#fig-transfer-learning-apps} @@ -247,7 +245,7 @@ Transfer learning is important in making on-device AI practical by allowing us t Transfer learning has revolutionized the way models are developed and deployed, both in the cloud and at the edge. Transfer learning is being used in the real world. One such example is the use of transfer learning to develop AI models that can detect and diagnose diseases from medical images, such as X-rays, MRI scans, and CT scans. For example, researchers at Stanford University developed a transfer learning model that can detect cancer in skin images with an accuracy of 97% [@esteva2017dermatologist]. This model was pre-trained on 1.28 million images to classify a broad range of objects and then specialized for cancer detection by training on a dermatologist-curated dataset of skin images. -Implementation in production scenarios can be broadly categorized into two stages: pre-deployment and post-deployment. +In production settings, implementing transfer learning typically involves two key stages: pre-deployment and post-deployment. Pre-deployment focuses on preparing the model for its specialized task before release, while post-deployment enables the model to adapt further based on individual user data, enhancing personalization and accuracy over time. ### Pre-Deployment Specialization @@ -258,7 +256,7 @@ This pre-trained model serves as a solid foundation and contains a wealth of kno Here's how it works in practice: * **Start with a Pre-Trained Model:** Begin by selecting a model that has already been trained on a comprehensive dataset, usually related to a general task. This model serves as the foundation for the task at hand. -* **Finetuning:** The pre-trained model is then finetuned on a smaller, more specialized dataset specific to the desired task. This step allows the model to adapt and specialize its knowledge to the specific requirements of the application. +* **Fine-tuning:** The pre-trained model is then finetuned on a smaller, more specialized dataset specific to the desired task. This step allows the model to adapt and specialize its knowledge to the specific requirements of the application. * **Validation:** After finetuning, the model is validated to ensure it meets the performance criteria for the specialized task. * **Deployment:** Once validated, the specialized model is then deployed into the production environment. @@ -273,9 +271,9 @@ Consider a real-world application where a parent wishes to identify their child Here's how it works: 1. **Data Collection:** The embedded system gathers images that include the child, ideally with the parent's input to ensure accuracy and relevance. This can be done directly on the device, maintaining the user's data privacy. -2. **Model Finetuning:** The pre-existing face recognition model, which has been trained on a large and diverse dataset, is then finetuned using the newly collected images of the child. This process adapts the model to recognize the child's specific facial features, distinguishing them from other children in the images. +2. **On-Device Fine-tuning:** The pre-existing face recognition model, which has been trained on a large and diverse dataset, is then finetuned using the newly collected images of the child. This process adapts the model to recognize the child's specific facial features, distinguishing them from other children in the images. 3. **Validation:** The refined model is then validated to ensure it accurately recognizes the child in various images. This can involve the parent verifying the model's performance and providing feedback for further improvements. -4. **Deployment:** Once validated, the adapted model is deployed on the device, enabling the parent to easily identify their child in images without having to sift through them manually. +4. **Localized Use:** Once adapted, the model can instantly locate the child in photos, providing a customized experience without needing cloud resources or data transfer. This on-the-fly customization enhances the model's efficacy for the individual user, ensuring that they benefit from ML personalization. This is, in part, how iPhotos or Google Photos works when they ask us to recognize a face, and then, based on that information, they index all the photos by that face. Because the learning and adaptation occur on the device itself, there are no risks to personal privacy. The parent's images are not uploaded to a cloud server or shared with third parties, protecting the family's privacy while still reaping the benefits of a personalized ML model. This approach represents a significant step forward in the quest to provide users with tailored ML solutions that respect and uphold their privacy. @@ -283,13 +281,13 @@ This on-the-fly customization enhances the model's efficacy for the individual u Transfer learning has become an important technique in ML and artificial intelligence, and it is particularly valuable for several reasons. -1. **Data Scarcity:** In many real-world scenarios, acquiring a sufficiently large labeled dataset to train an ML model from scratch is challenging. Transfer learning mitigates this issue by allowing the use of pre-trained models that have already learned valuable features from a vast dataset. +1. **Data Scarcity:** In many real-world applications, gathering a large, labeled dataset to train an ML model from scratch is difficult, costly, and time-consuming. Transfer learning addresses this challenge by allowing the use of pre-trained models that have already learned valuable features from vast labeled datasets, thereby reducing the need for extensive annotated data in the new task. 2. **Computational Expense:** Training a model from scratch requires significant computational resources and time, especially for complex models like deep neural networks. By using transfer learning, we can leverage the computation that has already been done during the training of the source model, thereby saving both time and computational power. -3. **Limited Annotated Data:** For some specific tasks, there might be ample raw data available, but the process of labeling that data for supervised learning can be costly and time-consuming. Transfer learning enables us to use pre-trained models that have been trained on a related task with labeled data, hence requiring less annotated data for the new task. + There are advantages to reusing the features: -1. **Hierarchical Feature Learning:** Deep learning models, particularly Convolutional Neural Networks (CNNs), can learn hierarchical features. Lower layers typically learn generic features like edges and shapes, while higher layers learn more complex and task-specific features. Transfer learning allows us to reuse the generic features learned by a model and finetune the higher layers for our specific task. +1. **Hierarchical Feature Learning:** Deep learning models, particularly CNNs, can learn hierarchical features. Lower layers typically learn generic features like edges and shapes, while higher layers learn more complex and task-specific features. Transfer learning allows us to reuse the generic features learned by a model and finetune the higher layers for our specific task. 2. **Boosting Performance:** Transfer learning has been proven to boost the performance of models on tasks with limited data. The knowledge gained from the source task can provide a valuable starting point and lead to faster convergence and improved accuracy on the target task. :::{#exr-tlb .callout-caution collapse="true"} @@ -382,11 +380,11 @@ When engaging in transfer learning, there are several factors that must be consi #### Domain Similarity -Domain similarity refers to how closely related the source and target domains are. The more similar the domains, the more likely the transfer learning will be successful. Transferring knowledge from a model trained on images of outdoor scenes (source domain) to a new task that involves recognizing objects in indoor scenes (target domain) might be more successful than transferring knowledge from outdoor scenes to a task involving text analysis, as the domains (images vs. text) are quite different. +Domain similarity refers to the degree of resemblance between the types of data used in the source and target applications. The more similar the domains, the more likely the transfer learning will be successful. For instance, transferring knowledge from a model trained on outdoor images (source domain) to a new application involving indoor images (target domain) is more feasible than transferring knowledge from outdoor images to a text-based application. Since images and text are fundamentally different types of data, the domains are dissimilar, making transfer learning more challenging. #### Task Similarity -Task similarity refers to how closely related the source and target tasks are. Similar tasks are likely to benefit more from transfer learning. A model trained to recognize different breeds of dogs (source task) can be more easily adapted to recognize different breeds of cats (target task) than it can be adapted to perform a completely different task like language translation. +Task similarity, on the other hand, refers to how similar the objectives or functions of the source and target tasks are. If the tasks are similar, transfer learning is more likely to be effective. For instance, a model trained to classify different breeds of dogs (source task) can be more easily adapted to classify different breeds of cats (target task) than it could be adapted to a less related task, such as identifying satellite imagery. Since both tasks involve the visual classification of animals, task similarity supports effective transfer, while moving to an unrelated task could make transfer learning less effective. #### Data Quality and Quantity @@ -398,7 +396,7 @@ Feature space overlap refers to how well the features learned by the source mode #### Model Complexity -The complexity of the source model can also impact the success of transfer learning. Sometimes, a simpler model might transfer better than a complex one, as it is less likely to overfit the source task. For example, a simple convolutional neural network (CNN) model trained on image data (source task) may transfer more successfully to a new image classification task (target task) than a complex CNN with many layers, as the simpler model is less likely to overfit the source task. +The complexity of the source model can also impact the success of transfer learning. Sometimes, a simpler model might transfer better than a complex one, as it is less likely to overfit the source task. For example, a simple CNN model trained on image data (source task) may transfer more successfully to a new image classification task (target task) than a complex CNN with many layers, as the simpler model is less likely to overfit the source task. By considering these factors, ML practitioners can make informed decisions about when and how to use transfer learning, ultimately leading to more successful model performance on the target task. The success of transfer learning hinges on the degree of similarity between the source and target domains. Overfitting is risky, especially when finetuning occurs on a limited dataset. On the computational front, certain pre-trained models, owing to their size, might not comfortably fit into the memory constraints of some devices or may run prohibitively slowly. Over time, as data evolves, there is potential for model drift, indicating the need for periodic re-training or ongoing adaptation. @@ -414,13 +412,12 @@ Learn more about transfer learning in @vid-tl below. ## Federated Machine Learning {#sec-fl} -Federated Learning Overview +### Federated Learning Overview -The modern internet is full of large networks of connected devices. Whether it's cell phones, thermostats, smart speakers, or other IOT products, countless edge devices are a goldmine for hyper-personalized, rich data. However, with that rich data comes an assortment of problems with information transfer and privacy. Constructing a training dataset in the cloud from these devices would involve high volumes of bandwidth, cost-efficient data transfer, and violation of users' privacy. +The modern internet is full of large networks of connected devices. Whether it's cell phones, thermostats, smart speakers, or other IoT products, countless edge devices are a goldmine for hyper-personalized, rich data. However, with that rich data comes an assortment of problems with information transfer and privacy. Constructing a training dataset in the cloud from these devices would involve high volumes of bandwidth, cost-efficient data transfer, and violation of users' privacy. -Federated learning offers a solution to these problems: train models partially on the edge devices and only communicate model updates to the cloud. In 2016, a team from Google designed architecture for federated learning that attempts to address these problems. +Federated learning offers a solution to these problems: train models partially on the edge devices and only communicate model updates to the cloud. In 2016, a team from Google designed architecture for federated learning that attempts to address these problems. In their initial paper, @mcmahan2017communication outline a principle federated learning algorithm called FederatedAveraging, shown in @fig-federated-avg-algo. Specifically, FederatedAveraging performs stochastic gradient descent (SGD) over several different edge devices. In this process, each device calculates a gradient $g_k = \nabla F_k(w_t)$ which is then applied to update the server-side weights as (with $\eta$ as learning rate across $k$ clients): -In their initial paper, Google outlines a principle federated learning algorithm called FederatedAveraging, which is shown in @fig-federated-avg-algo. Specifically, FederatedAveraging performs stochastic gradient descent (SGD) over several different edge devices. In this process, each device calculates a gradient $g_k = \nabla F_k(w_t)$ which is then applied to update the server-side weights as (with $\eta$ as learning rate across $k$ clients): $$ w_{t+1} \rightarrow w_t - \eta \sum_{k=1}^{K} \frac{n_k}{n}g_k $$ @@ -444,7 +441,6 @@ With this proposed structure, there are a few key vectors for further optimizing ![Federated learning is revolutionizing on-device learning.](images/png/federatedvsoil.png){#fig-federated-learning} - ### Communication Efficiency One of the key bottlenecks in federated learning is communication. Every time a client trains the model, they must communicate their updates back to the server. Similarly, once the server has averaged all the updates, it must send them back to the client. This incurs huge bandwidth and resource costs on large networks of millions of devices. As the field of federated learning advances, a few optimizations have been developed to minimize this communication. To address the footprint of the model, researchers have developed model compression techniques. In the client-server protocol, federated learning can also minimize communication through the selective sharing of updates on clients. Finally, efficient aggregation techniques can also streamline the communication process. @@ -459,15 +455,19 @@ In 2022, another team at Google proposed that each client communicates via a com There are many methods for selectively sharing updates. The general principle is that reducing the portion of the model that the clients are training on the edge reduces the memory necessary for training and the size of communication to the server. In basic federated learning, the client trains the entire model. This means that when a client sends an update to the server, it has gradients for every weight in the network. -However, we cannot just reduce communication by sending pieces of those gradients from each client to the server because the gradients are part of an entire update required to improve the model. Instead, you need to architecturally design the model such that each client trains only a small portion of the broader model, reducing the total communication while still gaining the benefit of training on client data. A paper [@shi2022data] from the University of Sheffield applies this concept to a CNN by splitting the global model into two parts: an upper and a lower part, as shown in @chen2023learning. +However, we cannot just reduce communication by sending pieces of those gradients from each client to the server because the gradients are part of an entire update required to improve the model. Instead, you need to architecturally design the model such that each client trains only a small portion of the broader model, reducing the total communication while still gaining the benefit of training on client data. @shi2022data apply this concept to a CNN by splitting the global model into two parts: an upper and a lower part, as shown in @chen2023learning. -![Split model architecture for selective sharing. Source: Shi et al., ([2022](https://doi.org/10.1145/3517207.3526980)).](images/png/ondevice_split_model.png){#fig-split-model} +![Federated learning with split model training. The model is divided into a lower part, trained locally on each client, and an upper part, refined on the server. Clients perform local updates, generating activation maps from their data, which are sent to the server instead of raw data to ensure privacy. The server uses these activation maps to update the upper part, then combines both parts and redistributes the updated model to clients. This setup minimizes communication, preserves privacy, and adapts the model to diverse client data. Source: Shi et al., ([2022](https://doi.org/10.1145/3517207.3526980)).](images/png/ondevice_split_model.png){#fig-split-model} - The lower part is designed to focus on generic features in the dataset, while the upper part, trained on those generic features, is designed to be more sensitive to the activation maps. This means that the lower part of the model is trained through standard federated averaging across all of the clients. Meanwhile, the upper part of the model is trained entirely on the server side from the activation maps generated by the clients. This approach drastically reduces communication for the model while still making the network robust to various types of input found in the data on the client devices. +The lower part of the model, responsible for extracting generic features, is trained directly on each client device. Using federated averaging, this lower part learns shared foundational features across all clients, allowing it to generalize well across varied data. Meanwhile, the upper part of the model, which captures more specific and complex patterns, is trained on the server. Rather than sending raw data to the server, each client generates activation maps—a compressed representation of its local data’s most relevant features—and sends these to the server. The server uses these activation maps to refine the upper part of the model, allowing it to become more sensitive to the diverse data distributions found across clients without compromising user privacy. + +This approach significantly reduces the communication load, as only summarized activation maps are transmitted instead of full datasets. By focusing on shared training for the lower part and specialized tuning for the upper part, the system achieves a balance: it minimizes data transfer, preserves privacy, and makes the model robust to varied input types encountered on client devices. ### Optimized Aggregation -In addition to reducing the communication overhead, optimizing the aggregation function can improve model training speed and accuracy in certain federated learning use cases. While the standard for aggregation is just averaging, various other approaches can improve model efficiency, accuracy, and security. One alternative is clipped averaging, which clips the model updates within a specific range. Another strategy to preserve security is differential privacy average aggregation. This approach integrates differential privacy into the aggregation step to protect client identities. Each client adds a layer of random noise to their updates before communicating to the server. The server then updates itself with the noisy updates, meaning that the amount of noise needs to be tuned carefully to balance privacy and accuracy. +In addition to reducing the communication overhead, optimizing the aggregation function can improve model training speed and accuracy in certain federated learning use cases. While the standard for aggregation is just averaging, various other approaches can improve model efficiency, accuracy, and security. + +One alternative is clipped averaging, which clips the model updates within a specific range. Another strategy to preserve security is differential privacy average aggregation. This approach integrates differential privacy into the aggregation step to protect client identities. Each client adds a layer of random noise to their updates before communicating to the server. The server then updates itself with the noisy updates, meaning that the amount of noise needs to be tuned carefully to balance privacy and accuracy. In addition to security-enhancing aggregation methods, there are several modifications to the aggregation methods that can improve training speed and performance by adding client metadata along with the weight updates. Momentum aggregation is a technique that helps address the convergence problem. In federated learning, client data can be extremely heterogeneous depending on the different environments in which the devices are used. That means that many models with heterogeneous data may need help to converge. Each client stores a momentum term locally, which tracks the pace of change over several updates. With clients communicating this momentum, the server can factor in the rate of change of each update when changing the global model to accelerate convergence. Similarly, weighted aggregation can factor in the client performance or other parameters like device type or network connection strength to adjust the weight with which the server should incorporate the model updates. Further descriptions of specific aggregation algorithms are provided by @moshawrab2023reviewing. @@ -489,7 +489,7 @@ Considering all of the factors influencing the efficacy of federated learning, l When selecting clients, there are three main components to consider: data heterogeneity, resource allocation, and communication cost. We can select clients on the previously proposed metrics in the non-IID section to address data heterogeneity. In federated learning, all devices may have different amounts of computing, resulting in some being more inefficient at training than others. When selecting a subset of clients for training, one must consider a balance of data heterogeneity and available resources. In an ideal scenario, you can always select the subset of clients with the greatest resources. However, this may skew your dataset, so a balance must be struck. Communication differences add another layer; you want to avoid being bottlenecked by waiting for devices with poor connections to transmit all their updates. Therefore, you must also consider choosing a subset of diverse yet well-connected devices. -### An Example of Deployed Federated Learning: G board +### Gboard Example A primary example of a deployed federated learning system is Google's Keyboard, Gboard, for Android devices. In implementing federated learning for the keyboard, Google focused on employing differential privacy techniques to protect the user's data and identity. Gboard leverages language models for several key features, such as Next Word Prediction (NWP), Smart Compose (SC), and On-The-Fly rescoring (OTF) [@xu2023federated], as shown in @fig-gboard-features. @@ -521,9 +521,13 @@ Want to train an image-savvy AI without sending your photos to the cloud? Federa ::: -### Benchmarking for Federated Learning: MedPerf +### Benchmarking Federated Learning: MedPerf -One of the richest examples of data on the edge is medical devices. These devices store some of the most personal data on users but offer huge advances in personalized treatment and better accuracy in medical AI. Given these two factors, medical devices are the perfect use case for federated learning. [MedPerf](https://doi.org/10.1038/s42256-023-00652-2) is an open-source platform used to benchmark models using federated evaluation [@karargyris2023federated]. Instead of just training models via federated learning, MedPerf takes the model to edge devices to test it against personalized data while preserving privacy. In this way, a benchmark committee can evaluate various models in the real world on edge devices while still preserving patient anonymity. +Medical devices represent one of the richest examples of data on the edge. These devices store some of the most personal user data while simultaneously offering significant advances in personalized treatment and improved accuracy in medical AI. This combination of sensitive data and potential for innovation makes medical devices an ideal use case for federated learning. + +A key development in this field is MedPerf, an open-source platform designed for benchmarking models using federated evaluation [@karargyris2023federated]. MedPerf goes beyond traditional federated learning by bringing the model to edge devices for testing against personalized data while maintaining privacy. This approach allows a benchmark committee to evaluate various models in real-world scenarios on edge devices without compromising patient anonymity. + +The MedPerf platform, detailed in a recent study (https://doi.org/10.1038/s42256-023-00652-2), demonstrates how federated techniques can be applied not just to model training, but also to model evaluation and benchmarking. This advancement is particularly crucial in the medical field, where the balance between leveraging large datasets for improved AI performance and protecting individual privacy is of utmost importance. ## Security Concerns @@ -545,7 +549,7 @@ Several data poisoning attack techniques exist: * **Label Flipping:** It involves applying incorrect labels to samples. For instance, in image classification, cat photos may be labeled as dogs to confuse the model. Flipping even [10% of labels](https://proceedings.mlr.press/v139/schwarzschild21a.html) can have significant consequences on the model. * **Data Insertion:** It introduces fake or distorted inputs into the training set. This could include pixelated images, noisy audio, or garbled text. -* **Logic Corruption:** This alters the underlying [patterns] () in data to mislead the model. In sentiment analysis, highly negative reviews may be marked positive through this technique. For this reason, recent surveys have shown that many companies are more [afraid of data poisoning](https://proceedings.mlr.press/v139/schwarzschild21a.html) than other adversarial ML concerns. +* **Logic Corruption:** This alters the underlying [patterns]() in data to mislead the model. In sentiment analysis, highly negative reviews may be marked positive through this technique. For this reason, recent surveys have shown that many companies are more [afraid of data poisoning](https://proceedings.mlr.press/v139/schwarzschild21a.html) than other adversarial ML concerns. What makes data poisoning alarming is how it exploits the discrepancy between curated datasets and live training data. Consider a cat photo dataset collected from the internet. In the weeks later, when this data trains a model on-device, new cat photos on the web differ significantly. @@ -687,7 +691,7 @@ Tiny Transfer Learning (TinyTL) enables memory-efficient on-device training thro To reduce this memory overhead, TinyTL freezes the majority of the weights so they do not need to be updated during training. This eliminates the need to store intermediate activations for frozen parts of the network. TinyTL only finetunes the bias terms, which are much smaller than the weights. An overview of TinyTL workflow is shown in @fig-tinytl-workflow. -![TinyTL workflow. Source: @cai2020tinytl.)](images/png/ondevice_transfer_tinytl.png){#fig-tinytl-workflow} +![TinyTL workflow. In (a), conventional transfer learning fine-tunes both weights and biases, requiring large memory (shown in blue) for activation maps during back-propagation. In (b), TinyTL reduces memory needs by fixing weights and fine-tuning only the biases, enabling transfer learning on smaller devices. Finally, in (c), TinyTL adds a "lite" residual learning component to compensate for fixed weights, using efficient group convolutions and avoiding memory-heavy bottlenecks, achieving high efficiency with minimal memory. Source: @cai2020tinytl.)](images/png/ondevice_transfer_tinytl.png){#fig-tinytl-workflow} Freezing weights apply to fully connected layers as well as convolutional and normalization layers. However, only adapting the biases limits the model's ability to learn and adapt to new data. @@ -699,10 +703,10 @@ By freezing most weights, TinyTL significantly reduces memory usage during on-de TinyTrain significantly reduces the time required for on-device training by selectively updating only certain parts of the model. It does this using a technique called task-adaptive sparse updating, as shown in @fig-tiny-train. -Based on the user data, memory, and computing available on the device, TinyTrain dynamically chooses which neural network layers to update during training. This layer selection is optimized to reduce computation and memory usage while maintaining high accuracy. - ![TinyTrain workflow. Source: @kwon2023tinytrain.](images/png/ondevice_pretraining.png){#fig-tiny-train} +Based on the user data, memory, and computing available on the device, TinyTrain dynamically chooses which neural network layers to update during training. This layer selection is optimized to reduce computation and memory usage while maintaining high accuracy. + More specifically, TinyTrain first does offline pretraining of the model. During pretraining, it not only trains the model on the task data but also meta-trains the model. Meta-training means training the model on metadata about the training process itself. This meta-learning improves the model's ability to adapt accurately even when limited data is available for the target task. Then, during the online adaptation stage, when the model is being customized on the device, TinyTrain performs task-adaptive sparse updates. Using the criteria around the device's capabilities, it selects only certain layers to update through backpropagation. The layers are chosen to balance accuracy, memory usage, and computation time. @@ -805,12 +809,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-fli ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we also offer a series of hands-on labs that allow students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: diff --git a/contents/ops/images/png/cicd_pipelines.png b/contents/core/ops/images/png/cicd_pipelines.png similarity index 100% rename from contents/ops/images/png/cicd_pipelines.png rename to contents/core/ops/images/png/cicd_pipelines.png diff --git a/contents/ops/images/png/clinaiops.png b/contents/core/ops/images/png/clinaiops.png similarity index 100% rename from contents/ops/images/png/clinaiops.png rename to contents/core/ops/images/png/clinaiops.png diff --git a/contents/ops/images/png/clinaiops_loops.png b/contents/core/ops/images/png/clinaiops_loops.png similarity index 100% rename from contents/ops/images/png/clinaiops_loops.png rename to contents/core/ops/images/png/clinaiops_loops.png diff --git a/contents/ops/images/png/cover_ml_ops.png b/contents/core/ops/images/png/cover_ml_ops.png similarity index 100% rename from contents/ops/images/png/cover_ml_ops.png rename to contents/core/ops/images/png/cover_ml_ops.png diff --git a/contents/ops/images/png/data_cascades.png b/contents/core/ops/images/png/data_cascades.png similarity index 100% rename from contents/ops/images/png/data_cascades.png rename to contents/core/ops/images/png/data_cascades.png diff --git a/contents/ops/images/png/edge_impulse_dashboard.png b/contents/core/ops/images/png/edge_impulse_dashboard.png similarity index 100% rename from contents/ops/images/png/edge_impulse_dashboard.png rename to contents/core/ops/images/png/edge_impulse_dashboard.png diff --git a/contents/core/ops/images/png/hidden_debt.png b/contents/core/ops/images/png/hidden_debt.png new file mode 100644 index 00000000..d171877b Binary files /dev/null and b/contents/core/ops/images/png/hidden_debt.png differ diff --git a/contents/ops/images/png/impulse.png b/contents/core/ops/images/png/impulse.png similarity index 100% rename from contents/ops/images/png/impulse.png rename to contents/core/ops/images/png/impulse.png diff --git a/contents/ops/images/png/mlops_flow.png b/contents/core/ops/images/png/mlops_flow.png similarity index 100% rename from contents/ops/images/png/mlops_flow.png rename to contents/core/ops/images/png/mlops_flow.png diff --git a/contents/ops/images/png/mlops_overview_layers.png b/contents/core/ops/images/png/mlops_overview_layers.png similarity index 100% rename from contents/ops/images/png/mlops_overview_layers.png rename to contents/core/ops/images/png/mlops_overview_layers.png diff --git a/contents/ops/images/png/transfer_learning.png b/contents/core/ops/images/png/transfer_learning.png similarity index 100% rename from contents/ops/images/png/transfer_learning.png rename to contents/core/ops/images/png/transfer_learning.png diff --git a/contents/ops/ops.bib b/contents/core/ops/ops.bib similarity index 100% rename from contents/ops/ops.bib rename to contents/core/ops/ops.bib diff --git a/contents/ops/ops.qmd b/contents/core/ops/ops.qmd similarity index 98% rename from contents/ops/ops.qmd rename to contents/core/ops/ops.qmd index 46da88e6..1018d76a 100644 --- a/contents/ops/ops.qmd +++ b/contents/core/ops/ops.qmd @@ -5,7 +5,7 @@ bibliography: ops.bib # ML Operations {#sec-mlops} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-embedded-aiops-resource), [Videos](#sec-embedded-aiops-resource), [Exercises](#sec-embedded-aiops-resource), [Labs](#sec-embedded-aiops-resource) +Resources: [Slides](#sec-embedded-aiops-resource), [Videos](#sec-embedded-aiops-resource), [Exercises](#sec-embedded-aiops-resource) ::: ![_DALL·E 3 Prompt: Create a detailed, wide rectangular illustration of an AI workflow. The image should showcase the process across six stages, with a flow from left to right: 1. Data collection, with diverse individuals of different genders and descents using a variety of devices like laptops, smartphones, and sensors to gather data. 2. Data processing, displaying a data center with active servers and databases with glowing lights. 3. Model training, represented by a computer screen with code, neural network diagrams, and progress indicators. 4. Model evaluation, featuring people examining data analytics on large monitors. 5. Deployment, where the AI is integrated into robotics, mobile apps, and industrial equipment. 6. Monitoring, showing professionals tracking AI performance metrics on dashboards to check for accuracy and concept drift over time. Each stage should be distinctly marked and the style should be clean, sleek, and modern with a dynamic and informative color scheme._](images/png/cover_ml_ops.png) @@ -113,10 +113,12 @@ Learn more about ML Lifecycles through a case study featuring speech recognition In this chapter, we will provide an overview of the core components of MLOps, an emerging set of practices that enables robust delivery and lifecycle management of ML models in production. While some MLOps elements like automation and monitoring were covered in previous chapters, we will integrate them into a framework and expand on additional capabilities like governance. Additionally, we will describe and link to popular tools used within each component, such as [LabelStudio](https://labelstud.io/) for data labeling. By the end, we hope that you will understand the end-to-end MLOps methodology that takes models from ideation to sustainable value creation within organizations. -@fig-ops-layers shows the MLOps system stack. The MLOps lifecycle starts from data management and CI/CD pipelines for model development. Developed models go through model training and evaluation. Once trained to convergence, model deployment brings models up to production and ready to serve. After deployment, model serving reacts to workload changes and meets service level agreements cost-effectively when serving millions of end users or AI applications. Infrastructure management ensures the necessary resources are available and optimized throughout the lifecycle. Continuous monitoring, governance, and communication and collaboration are the remaining pieces of MLOps to ensure seamless development and operations of ML models. +@fig-ops-layers illustrates the comprehensive MLOps system stack. It shows the various layers involved in machine learning operations. At the top of the stack are ML Models/Applications, such as BERT, followed by ML Frameworks/Platforms like PyTorch. The core MLOps layer, labeled as Model Orchestration, encompasses several key components: Data Management, CI/CD, Model Training, Model Evaluation, Deployment, and Model Serving. Underpinning the MLOps layer is the Infrastructure layer, represented by technologies such as Kubernetes. This layer manages aspects such as Job Scheduling, Resource Management, Capacity Management, and Monitoring, among others. Holding it all together is the Hardware layer, which provides the necessary computational resources for ML operations. ![The MLOps stack, including ML Models, Frameworks, Model Orchestration, Infrastructure, and Hardware, illustrates the end-to-end workflow of MLOps.](images/png/mlops_overview_layers.png){#fig-ops-layers} +This layered approach in @fig-ops-layers demonstrates how MLOps integrates various technologies and processes to facilitate the development, deployment, and management of machine learning models in a production environment. The figure effectively illustrates the interdependencies between different components and how they come together to form a comprehensive MLOps ecosystem. + ### Data Management {#sec-ops-data-mgmt} Robust data management and data engineering actively empower successful [MLOps](https://cloud.google.com/solutions/machine-learning/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning) implementations. Teams properly ingest, store, and prepare raw data from sensors, databases, apps, and other systems for model training and deployment. @@ -492,7 +494,7 @@ Skilled project managers enable MLOps teams to work synergistically to rapidly d ## Embedded System Challenges -We will briefly review the challenges with embedded systems so that it sets the context for the specific challenges that emerge with embedded MLOps, which we will discuss in the following section. +Building on our discussion of [On-device Learning](../ondevice_learning/ondevice_learning.qmd) in the previous chapter, we now turn our attention to the broader context of embedded systems in MLOps. The unique constraints and requirements of embedded environments significantly impact the implementation of machine learning models and operations. To set the stage for the specific challenges that emerge with embedded MLOps, it is important to first review the general challenges associated with embedded systems. This overview will provide a foundation for understanding how these constraints intersect with and shape the practices of MLOps in resource-limited, edge computing scenarios. ### Limited Compute Resources @@ -762,9 +764,9 @@ Despite the proliferation of new MLOps tools in response to the increase in dema * Seamless deployment onto edge devices through compilation, SDKs, and benchmarks * Collaboration features for teams and integration with other platforms -With Edge Impulse, developers with limited data science expertise can develop specialized ML models that run efficiently within small computing environments. It provides a comprehensive solution for creating embedded intelligence and advancing machine learning. @fig-edge-impulse further illustrates this concept. +Edge Impulse offers a comprehensive solution for creating embedded intelligence and advancing machine learning, particularly for developers with limited data science expertise. This platform enables the development of specialized ML models that run efficiently within small computing environments. As illustrated in @fig-edge-impulse, Edge Impulse facilitates the journey from data collection to model deployment, highlighting its user-friendly interface and tools that simplify the creation of embedded ML solutions, thus making it accessible to a broader range of developers and applications. -![The inner workings of edge impulse. Source: [Edge Impulse](https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse/)](images/png/impulse.png){#fig-edge-impulse} +![Edge impulse overview. Source: [Edge Impulse](https://www.edgeimpulse.com/blog/getting-started-with-edge-impulse/)](images/png/impulse.png){#fig-edge-impulse} ##### User Interface @@ -1021,13 +1023,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-ei ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we also offer a series of hands-on labs that allow students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - diff --git a/contents/optimizations/images/jpg/modeloptimization_3float_types.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_3float_types.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_3float_types.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_3float_types.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_channel_layer_pruning.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_channel_layer_pruning.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_channel_layer_pruning.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_channel_layer_pruning.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_color_mappings.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_color_mappings.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_color_mappings.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_color_mappings.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_iterative_pruning.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_iterative_pruning.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_iterative_pruning.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_iterative_pruning.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_oneshot_pruning.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_oneshot_pruning.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_oneshot_pruning.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_oneshot_pruning.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_onnx.jpg b/contents/core/optimizations/images/jpg/modeloptimization_onnx.jpg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_onnx.jpg rename to contents/core/optimizations/images/jpg/modeloptimization_onnx.jpg diff --git a/contents/optimizations/images/jpg/modeloptimization_sprase_matrix.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_sprase_matrix.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_sprase_matrix.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_sprase_matrix.jpeg diff --git a/contents/optimizations/images/jpg/modeloptimization_winning_ticket.jpeg b/contents/core/optimizations/images/jpg/modeloptimization_winning_ticket.jpeg similarity index 100% rename from contents/optimizations/images/jpg/modeloptimization_winning_ticket.jpeg rename to contents/core/optimizations/images/jpg/modeloptimization_winning_ticket.jpeg diff --git a/contents/optimizations/images/pdf/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.pdf b/contents/core/optimizations/images/pdf/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.pdf similarity index 100% rename from contents/optimizations/images/pdf/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.pdf rename to contents/core/optimizations/images/pdf/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.pdf diff --git a/contents/optimizations/images/png/cover_model_optimizations.png b/contents/core/optimizations/images/png/cover_model_optimizations.png similarity index 100% rename from contents/optimizations/images/png/cover_model_optimizations.png rename to contents/core/optimizations/images/png/cover_model_optimizations.png diff --git a/contents/optimizations/images/png/efficientnumerics_100x.png b/contents/core/optimizations/images/png/efficientnumerics_100x.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_100x.png rename to contents/core/optimizations/images/png/efficientnumerics_100x.png diff --git a/contents/optimizations/images/png/efficientnumerics_PTQ.png b/contents/core/optimizations/images/png/efficientnumerics_PTQ.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_PTQ.png rename to contents/core/optimizations/images/png/efficientnumerics_PTQ.png diff --git a/contents/optimizations/images/png/efficientnumerics_PTQQAT.png b/contents/core/optimizations/images/png/efficientnumerics_PTQQAT.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_PTQQAT.png rename to contents/core/optimizations/images/png/efficientnumerics_PTQQAT.png diff --git a/contents/optimizations/images/png/efficientnumerics_PTQQATsummary.png b/contents/core/optimizations/images/png/efficientnumerics_PTQQATsummary.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_PTQQATsummary.png rename to contents/core/optimizations/images/png/efficientnumerics_PTQQATsummary.png diff --git a/contents/optimizations/images/png/efficientnumerics_QAT.png b/contents/core/optimizations/images/png/efficientnumerics_QAT.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_QAT.png rename to contents/core/optimizations/images/png/efficientnumerics_QAT.png diff --git a/contents/optimizations/images/png/efficientnumerics_alexnet.png b/contents/core/optimizations/images/png/efficientnumerics_alexnet.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_alexnet.png rename to contents/core/optimizations/images/png/efficientnumerics_alexnet.png diff --git a/contents/optimizations/images/png/efficientnumerics_benefitsofprecision.png b/contents/core/optimizations/images/png/efficientnumerics_benefitsofprecision.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_benefitsofprecision.png rename to contents/core/optimizations/images/png/efficientnumerics_benefitsofprecision.png diff --git a/contents/optimizations/images/png/efficientnumerics_binary.png b/contents/core/optimizations/images/png/efficientnumerics_binary.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_binary.png rename to contents/core/optimizations/images/png/efficientnumerics_binary.png diff --git a/contents/optimizations/images/png/efficientnumerics_calibrationcopy.png b/contents/core/optimizations/images/png/efficientnumerics_calibrationcopy.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_calibrationcopy.png rename to contents/core/optimizations/images/png/efficientnumerics_calibrationcopy.png diff --git a/contents/optimizations/images/png/efficientnumerics_edgequant.png b/contents/core/optimizations/images/png/efficientnumerics_edgequant.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_edgequant.png rename to contents/core/optimizations/images/png/efficientnumerics_edgequant.png diff --git a/contents/optimizations/images/png/efficientnumerics_granularity.png b/contents/core/optimizations/images/png/efficientnumerics_granularity.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_granularity.png rename to contents/core/optimizations/images/png/efficientnumerics_granularity.png diff --git a/contents/optimizations/images/png/efficientnumerics_horowitz.png b/contents/core/optimizations/images/png/efficientnumerics_horowitz.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_horowitz.png rename to contents/core/optimizations/images/png/efficientnumerics_horowitz.png diff --git a/contents/optimizations/images/png/efficientnumerics_int8vsfloat.png b/contents/core/optimizations/images/png/efficientnumerics_int8vsfloat.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_int8vsfloat.png rename to contents/core/optimizations/images/png/efficientnumerics_int8vsfloat.png diff --git a/contents/optimizations/images/png/efficientnumerics_lecturenote.png b/contents/core/optimizations/images/png/efficientnumerics_lecturenote.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_lecturenote.png rename to contents/core/optimizations/images/png/efficientnumerics_lecturenote.png diff --git a/contents/optimizations/images/png/efficientnumerics_modelsizes.png b/contents/core/optimizations/images/png/efficientnumerics_modelsizes.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_modelsizes.png rename to contents/core/optimizations/images/png/efficientnumerics_modelsizes.png diff --git a/contents/optimizations/images/png/efficientnumerics_nonuniform.png b/contents/core/optimizations/images/png/efficientnumerics_nonuniform.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_nonuniform.png rename to contents/core/optimizations/images/png/efficientnumerics_nonuniform.png diff --git a/contents/optimizations/images/png/efficientnumerics_qp1.png b/contents/core/optimizations/images/png/efficientnumerics_qp1.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_qp1.png rename to contents/core/optimizations/images/png/efficientnumerics_qp1.png diff --git a/contents/optimizations/images/png/efficientnumerics_qp2.png b/contents/core/optimizations/images/png/efficientnumerics_qp2.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_qp2.png rename to contents/core/optimizations/images/png/efficientnumerics_qp2.png diff --git a/contents/optimizations/images/png/efficientnumerics_quantizedsine.png b/contents/core/optimizations/images/png/efficientnumerics_quantizedsine.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_quantizedsine.png rename to contents/core/optimizations/images/png/efficientnumerics_quantizedsine.png diff --git a/contents/optimizations/images/png/efficientnumerics_reducedmodelsize.png b/contents/core/optimizations/images/png/efficientnumerics_reducedmodelsize.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_reducedmodelsize.png rename to contents/core/optimizations/images/png/efficientnumerics_reducedmodelsize.png diff --git a/contents/optimizations/images/png/efficientnumerics_sinewave.png b/contents/core/optimizations/images/png/efficientnumerics_sinewave.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_sinewave.png rename to contents/core/optimizations/images/png/efficientnumerics_sinewave.png diff --git a/contents/optimizations/images/png/efficientnumerics_symmetry.png b/contents/core/optimizations/images/png/efficientnumerics_symmetry.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_symmetry.png rename to contents/core/optimizations/images/png/efficientnumerics_symmetry.png diff --git a/contents/optimizations/images/png/efficientnumerics_uniformnonuniform.png b/contents/core/optimizations/images/png/efficientnumerics_uniformnonuniform.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_uniformnonuniform.png rename to contents/core/optimizations/images/png/efficientnumerics_uniformnonuniform.png diff --git a/contents/optimizations/images/png/efficientnumerics_weightsactivations.png b/contents/core/optimizations/images/png/efficientnumerics_weightsactivations.png similarity index 100% rename from contents/optimizations/images/png/efficientnumerics_weightsactivations.png rename to contents/core/optimizations/images/png/efficientnumerics_weightsactivations.png diff --git a/contents/optimizations/images/png/model_optimization_HW-NAS.png b/contents/core/optimizations/images/png/model_optimization_HW-NAS.png similarity index 100% rename from contents/optimizations/images/png/model_optimization_HW-NAS.png rename to contents/core/optimizations/images/png/model_optimization_HW-NAS.png diff --git a/contents/optimizations/images/png/modeloptimization_CiM.png b/contents/core/optimizations/images/png/modeloptimization_CiM.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_CiM.png rename to contents/core/optimizations/images/png/modeloptimization_CiM.png diff --git a/contents/optimizations/images/png/modeloptimization_HW-NAS.png b/contents/core/optimizations/images/png/modeloptimization_HW-NAS.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_HW-NAS.png rename to contents/core/optimizations/images/png/modeloptimization_HW-NAS.png diff --git a/contents/optimizations/images/png/modeloptimization_SplitNets.png b/contents/core/optimizations/images/png/modeloptimization_SplitNets.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_SplitNets.png rename to contents/core/optimizations/images/png/modeloptimization_SplitNets.png diff --git a/contents/optimizations/images/png/modeloptimization_TinyNAS.png b/contents/core/optimizations/images/png/modeloptimization_TinyNAS.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_TinyNAS.png rename to contents/core/optimizations/images/png/modeloptimization_TinyNAS.png diff --git a/contents/optimizations/images/png/modeloptimization_depthwise_separable_convolution.png b/contents/core/optimizations/images/png/modeloptimization_depthwise_separable_convolution.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_depthwise_separable_convolution.png rename to contents/core/optimizations/images/png/modeloptimization_depthwise_separable_convolution.png diff --git a/contents/optimizations/images/png/modeloptimization_graph_optimization.png b/contents/core/optimizations/images/png/modeloptimization_graph_optimization.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_graph_optimization.png rename to contents/core/optimizations/images/png/modeloptimization_graph_optimization.png diff --git a/contents/optimizations/images/png/modeloptimization_hls4ml.png b/contents/core/optimizations/images/png/modeloptimization_hls4ml.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_hls4ml.png rename to contents/core/optimizations/images/png/modeloptimization_hls4ml.png diff --git a/contents/optimizations/images/png/modeloptimization_knowledge_distillation.png b/contents/core/optimizations/images/png/modeloptimization_knowledge_distillation.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_knowledge_distillation.png rename to contents/core/optimizations/images/png/modeloptimization_knowledge_distillation.png diff --git a/contents/optimizations/images/png/modeloptimization_lottery_ticket_hypothesis.png b/contents/core/optimizations/images/png/modeloptimization_lottery_ticket_hypothesis.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_lottery_ticket_hypothesis.png rename to contents/core/optimizations/images/png/modeloptimization_lottery_ticket_hypothesis.png diff --git a/contents/optimizations/images/png/modeloptimization_low_rank_matrix_factorization.png b/contents/core/optimizations/images/png/modeloptimization_low_rank_matrix_factorization.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_low_rank_matrix_factorization.png rename to contents/core/optimizations/images/png/modeloptimization_low_rank_matrix_factorization.png diff --git a/contents/optimizations/images/png/modeloptimization_preprocessor.png b/contents/core/optimizations/images/png/modeloptimization_preprocessor.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_preprocessor.png rename to contents/core/optimizations/images/png/modeloptimization_preprocessor.png diff --git a/contents/optimizations/images/png/modeloptimization_pruning_comparison.png b/contents/core/optimizations/images/png/modeloptimization_pruning_comparison.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_pruning_comparison.png rename to contents/core/optimizations/images/png/modeloptimization_pruning_comparison.png diff --git a/contents/optimizations/images/png/modeloptimization_quant_hist.png b/contents/core/optimizations/images/png/modeloptimization_quant_hist.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_quant_hist.png rename to contents/core/optimizations/images/png/modeloptimization_quant_hist.png diff --git a/contents/optimizations/images/png/modeloptimization_sparsity.png b/contents/core/optimizations/images/png/modeloptimization_sparsity.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_sparsity.png rename to contents/core/optimizations/images/png/modeloptimization_sparsity.png diff --git a/contents/optimizations/images/png/modeloptimization_structure.png b/contents/core/optimizations/images/png/modeloptimization_structure.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_structure.png rename to contents/core/optimizations/images/png/modeloptimization_structure.png diff --git a/contents/optimizations/images/png/modeloptimization_tensor_decomposition.png b/contents/core/optimizations/images/png/modeloptimization_tensor_decomposition.png similarity index 100% rename from contents/optimizations/images/png/modeloptimization_tensor_decomposition.png rename to contents/core/optimizations/images/png/modeloptimization_tensor_decomposition.png diff --git a/contents/optimizations/images/png/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.png b/contents/core/optimizations/images/png/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.png similarity index 100% rename from contents/optimizations/images/png/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.png rename to contents/core/optimizations/images/png/shows-an-example-of-how-a-graph-could-be-optimized-by-the-mapping-toolchain-In-the.png diff --git a/contents/optimizations/images/png/source_opt.png b/contents/core/optimizations/images/png/source_opt.png similarity index 100% rename from contents/optimizations/images/png/source_opt.png rename to contents/core/optimizations/images/png/source_opt.png diff --git a/contents/optimizations/optimizations.bib b/contents/core/optimizations/optimizations.bib similarity index 100% rename from contents/optimizations/optimizations.bib rename to contents/core/optimizations/optimizations.bib diff --git a/contents/optimizations/optimizations.qmd b/contents/core/optimizations/optimizations.qmd similarity index 92% rename from contents/optimizations/optimizations.qmd rename to contents/core/optimizations/optimizations.qmd index 285ab5c5..e8b8d619 100644 --- a/contents/optimizations/optimizations.qmd +++ b/contents/core/optimizations/optimizations.qmd @@ -5,7 +5,7 @@ bibliography: optimizations.bib # Model Optimizations {#sec-model_optimizations} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-model-optimizations-resource), [Videos](#sec-model-optimizations-resource), [Exercises](#sec-model-optimizations-resource), [Labs](#sec-model-optimizations-resource) +Resources: [Slides](#sec-model-optimizations-resource), [Videos](#sec-model-optimizations-resource), [Exercises](#sec-model-optimizations-resource) ::: ![_DALL·E 3 Prompt: Illustration of a neural network model represented as a busy construction site, with a diverse group of construction workers, both male and female, of various ethnicities, labeled as 'pruning', 'quantization', and 'sparsity'. They are working together to make the neural network more efficient and smaller, while maintaining high accuracy. The 'pruning' worker, a Hispanic female, is cutting unnecessary connections from the middle of the network. The 'quantization' worker, a Caucasian male, is adjusting or tweaking the weights all over the place. The 'sparsity' worker, an African female, is removing unnecessary nodes to shrink the model. Construction trucks and cranes are in the background, assisting the workers in their tasks. The neural network is visually transforming from a complex and large structure to a more streamlined and smaller one._](images/png/cover_model_optimizations.png) @@ -33,13 +33,17 @@ When machine learning models are deployed on systems, especially on resource-con ## Introduction -We have structured this chapter in three tiers. First, in @sec-model_ops_representation we examine the significance and methodologies of reducing the parameter complexity of models without compromising their inference capabilities. Techniques such as pruning and knowledge distillation are discussed, offering insights into how models can be compressed and simplified while maintaining, or even enhancing, their performance. +The optimization of machine learning models for practical deployment is a critical aspect of AI systems. This chapter focuses on exploring model optimization techniques as they relate to the development of ML systems, ranging from high-level model architecture considerations to low-level hardware adaptations. @fig-3-sections Illustrates the three layers of the optimization stack we cover. -Going one level lower, in @sec-model_ops_numerics, we study the role of numerical precision in model computations and how altering it impacts model size, speed, and accuracy. We will examine the various numerical formats and how reduced-precision arithmetic can be leveraged to optimize models for embedded deployment. +![Three layers to be covered.](images/png/modeloptimization_structure.png){#fig-3-sections width=50%} -Finally, as we go lower and closer to the hardware, in @sec-model_ops_hw, we will navigate through the landscape of hardware-software co-design, exploring how models can be optimized by tailoring them to the specific characteristics and capabilities of the target hardware. We will discuss how models can be adapted to exploit the available hardware resources effectively. +At the highest level, we examine methodologies for reducing the complexity of model parameters without compromising inferential capabilities. Techniques such as pruning and knowledge distillation offer powerful approaches to compress and refine models while maintaining or even improving their performance, not only in terms of model quality but also in actual system runtime performance. These methods are crucial for creating efficient models that can be deployed in resource-constrained environments. -![Three layers to be covered.](images/png/modeloptimization_structure.png){#fig-3-sections width=50%} +Furthermore, we explore the role of numerical precision in model computations. Understanding how different levels of numerical precision impact model size, speed, and accuracy is essential for optimizing performance. We investigate various numerical formats and the application of reduced-precision arithmetic, particularly relevant for embedded system deployments where computational resources are often limited. + +At the lowest level, we navigate the intricate landscape of hardware-software co-design. This exploration reveals how models can be tailored to leverage the specific characteristics and capabilities of target hardware platforms. By aligning model design with hardware architecture, we can significantly enhance performance and efficiency. + +This collective approach focuses on helping us develop and deploy efficient, powerful, and hardware-aware machine learning models. From simplifying model architectures to fine-tuning numerical precision and adapting to specific hardware, this chapter covers the full spectrum of optimization strategies. By the conclusion of this chapter, readers will have gained a thorough understanding of various optimization techniques and their practical applications in real-world scenarios. This knowledge is important for creating machine learning models that not only perform well but are also optimized for the constraints and opportunities presented by modern computing environments. ## Efficient Model Representation {#sec-model_ops_representation} @@ -98,7 +102,7 @@ There are several techniques for assigning these importance scores: The idea is to measure, either directly or indirectly, the contribution of each component to the model's output. Structures with minimal influence according to the defined criteria are pruned first. This enables selective, optimized pruning that maximally compresses models while preserving predictive capacity. In general, it is important to evaluate the impact of removing particular structures on the model's output, with recent works such as [@rachwan2022winning] and [@lubana2020gradient] investigating combinations of techniques like magnitude-based pruning and gradient-based pruning. -##### 3. Selecting a pruning strategy +##### 3. Selecting a Pruning Strategy Now that you understand some techniques for determining the importance of structures within a neural network, the next step is to decide how to apply these insights. This involves selecting an appropriate pruning strategy, which dictates how and when the identified structures are removed and how the model is fine-tuned to maintain its performance. Two main structured pruning strategies exist: iterative pruning and one-shot pruning. @@ -112,8 +116,7 @@ Consider a situation where we wish to prune the 6 least effective channels (base The choice between these strategies involves weighing factors like model size, target sparsity level, available compute and acceptable accuracy losses. One-shot pruning can rapidly compress models, but iterative pruning may enable better accuracy retention for a target level of pruning. In practice, the strategy is tailored based on use case constraints. The overarching aim is to generate an optimal strategy that removes redundancy, achieves efficiency gains through pruning, and finely tunes the model to stabilize accuracy at an acceptable level for deployment. -Now consider the same network we had in the iterative pruning example. Whereas in the iterative process we pruned 2 channels at a time, in the one-shot pruning we would prune the 6 channels at once (@fig-oneshot-pruning). Removing 27% of the network's channel simultaneously alters the structure significantly, causing the accuracy to drop from 0.995 to 0.914. Given the major changes, the network is not able to properly adapt during fine-tuning, and the accuracy went up to 0.943, a 5% degradation from the accuracy of the unpruned network. While the final structures in both iterative pruning and oneshot pruning processes are identical, the former is able to maintain high performance while the latter suffers significant degradations. - +Now consider the same network we had in the iterative pruning example. Whereas in the iterative process we pruned 2 channels at a time, in the one-shot pruning we would prune the 6 channels at once, as shown in @fig-oneshot-pruning. Removing 27% of the network's channel simultaneously alters the structure significantly, causing the accuracy to drop from 0.995 to 0.914. Given the major changes, the network is not able to properly adapt during fine-tuning, and the accuracy went up to 0.943, a 5% degradation from the accuracy of the unpruned network. While the final structures in both iterative pruning and oneshot pruning processes are identical, the former is able to maintain high performance while the latter suffers significant degradations. ![One-shot pruning.](images/jpg/modeloptimization_oneshot_pruning.jpeg){#fig-oneshot-pruning} @@ -271,12 +274,12 @@ Furthermore, in scenarios where data evolves or grows over time, developing LRMF #### Tensor Decomposition -You have learned in @sec-tensor-data-structures that tensors are flexible structures, commonly used by ML Frameworks, that can represent data in higher dimensions. Similar to low-rank matrix factorization, more complex models may store weights in higher dimensions, such as tensors. Tensor decomposition is the higher-dimensional analogue of matrix factorization, where a model tensor is decomposed into lower rank components (see @fig-tensor-decomposition). These lower-rank components are easier to compute on and store but may suffer from the same issues mentioned above, such as information loss and the need for nuanced hyperparameter tuning. Mathematically, given a tensor $\mathcal{A}$, tensor decomposition seeks to represent $\mathcal{A}$ as a combination of simpler tensors, facilitating a compressed representation that approximates the original data while minimizing the loss of information. - -The work of Tamara G. Kolda and Brett W. Bader, ["Tensor Decompositions and Applications"](https://epubs.siam.org/doi/abs/10.1137/07070111X) (2009), stands out as a seminal paper in the field of tensor decompositions. The authors provide a comprehensive overview of various tensor decomposition methods, exploring their mathematical underpinnings, algorithms, and a wide array of applications, ranging from signal processing to data mining. Of course, the reason we are discussing it is because it has huge potential for system performance improvements, particularly in the space of TinyML, where throughput and memory footprint savings are crucial to feasibility of deployments. +You have learned in @sec-tensor-data-structures that tensors are flexible structures, commonly used by ML Frameworks, that can represent data in higher dimensions. Similar to low-rank matrix factorization, more complex models may store weights in higher dimensions, such as tensors. Tensor decomposition is the higher-dimensional analogue of matrix factorization, where a model tensor is decomposed into lower-rank components (see @fig-tensor-decomposition). These lower-rank components are easier to compute on and store but may suffer from the same issues mentioned above, such as information loss and the need for nuanced hyperparameter tuning. Mathematically, given a tensor $\mathcal{A}$, tensor decomposition seeks to represent $\mathcal{A}$ as a combination of simpler tensors, facilitating a compressed representation that approximates the original data while minimizing the loss of information. ![Tensor decomposition. Source: @xinyu.](images/png/modeloptimization_tensor_decomposition.png){#fig-tensor-decomposition} +The work of Tamara G. Kolda and Brett W. Bader, ["Tensor Decompositions and Applications"](https://epubs.siam.org/doi/abs/10.1137/07070111X) (2009), stands out as a seminal paper in the field of tensor decompositions. The authors provide a comprehensive overview of various tensor decomposition methods, exploring their mathematical underpinnings, algorithms, and a wide array of applications, ranging from signal processing to data mining. Of course, the reason we are discussing it is because it has huge potential for system performance improvements, particularly in the space of TinyML, where throughput and memory footprint savings are crucial to feasibility of deployments. + :::{#exr-mc .callout-caution collapse="true"} ### Scalable Model Compression with TensorFlow @@ -325,7 +328,7 @@ TinyNAS and MorphNet represent a few of the many significant advancements in the ### Edge-Aware Model Design -Imagine you're building a tiny robot that can identify different flowers. It needs to be smart, but also small and energy-efficient! In the "Edge-Aware Model Design" world, we learned about techniques like depthwise separable convolutions and architectures like SqueezeNet, MobileNet, and EfficientNet – all designed to pack intelligence into compact models. Now, let's see these ideas in action with some xColabs: +Imagine you're building a tiny robot that can identify different flowers. It needs to be smart, but also small and energy-efficient! In the "Edge-Aware Model Design" world, we learned about techniques like depthwise separable convolutions and architectures like SqueezeNet, MobileNet, and EfficientNet---all designed to pack intelligence into compact models. Now, let's see these ideas in action with some xColabs: **SqueezeNet in Action:** Maybe you'd like a Colab showing how to train a SqueezeNet model on a flower image dataset. This would demonstrate its small size and how it learns to recognize patterns despite its efficiency. @@ -566,7 +569,6 @@ Symmetric clipping ranges are the most widely adopted in practice as they have t Asymmetric quantization maps real values to an asymmetrical clipping range that isn't necessarily centered around 0, as shown in @fig-quantization-symmetry on the right. It involves choosing a range [$\alpha$, $\beta$] where $\alpha \neq -\beta$. For example, selecting a range based on the minimum and maximum real values, or where $\alpha = r_{min}$ and $\beta = r_{max}$, creates an asymmetric range. Typically, asymmetric quantization produces tighter clipping ranges compared to symmetric quantization, which is important when target weights and activations are imbalanced, e.g., the activation after the ReLU always has non-negative values. Despite producing tighter clipping ranges, asymmetric quantization is less preferred to symmetric quantization as it doesn't always zero out the real value zero. - ![Quantization (a)symmetry. Source: @gholami2021survey.](images/png/efficientnumerics_symmetry.png){#fig-quantization-symmetry} #### Granularity @@ -594,17 +596,49 @@ Between the two, calculating the range dynamically usually is very costly, so mo ### Techniques -The two prevailing techniques for quantizing models are Post Training Quantization and Quantization-Aware Training. +When optimizing machine learning models for deployment, various quantization techniques are used to balance model efficiency, accuracy, and adaptability. Each method---post-training quantization, quantization-aware training, and dynamic quantization--offers unique advantages and trade-offs, impacting factors such as implementation complexity, computational overhead, and performance optimization. + +@tbl-quantization_methods provides an overview of these quantization methods, highlighting their respective strengths, limitations, and trade-offs. We will delve deeper into each of these methods because they are widely deployed and used across all ML systems of wildly different scales. + ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Aspect | Post Training Quantization | Quantization-Aware Training | Dynamic Quantization | ++:=============================+:=============================+:=============================+:=============================+ +| **Pros** | | | | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Simplicity | ✓ | ✗ | ✗ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Accuracy Preservation | ✗ | ✓ | ✓ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Adaptability | ✗ | ✗ | ✓ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Optimized Performance | ✗ | ✓ | Potentially | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| **Cons** | | | | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Accuracy Degradation | ✓ | ✗ | Potentially | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Computational Overhead | ✗ | ✓ | ✓ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Implementation Complexity | ✗ | ✓ | ✓ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| **Tradeoffs** | | | | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Speed vs. Accuracy | ✓ | ✗ | ✗ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Accuracy vs. Cost | ✗ | ✓ | ✗ | ++------------------------------+------------------------------+------------------------------+------------------------------+ +| Adaptability vs. Overhead | ✗ | ✗ | ✓ | ++------------------------------+------------------------------+------------------------------+------------------------------+ + +: Comparison of post-training quantization, quantization-aware training, and dynamic quantization. {#tbl-quantization_methods .striped .hover} **Post Training Quantization:** Post-training quantization (PTQ) is a quantization technique where the model is quantized after it has been trained. The model is trained in floating point and then weights and activations are quantized as a post-processing step. This is the simplest approach and does not require access to the training data. Unlike Quantization-Aware Training (QAT), PTQ sets weight and activation quantization parameters directly, making it low-overhead and suitable for limited or unlabeled data situations. However, not readjusting the weights after quantizing, especially in low-precision quantization can lead to very different behavior and thus lower accuracy. To tackle this, techniques like bias correction, equalizing weight ranges, and adaptive rounding methods have been developed. PTQ can also be applied in zero-shot scenarios, where no training or testing data are available. This method has been made even more efficient to benefit compute- and memory- intensive large language models. Recently, SmoothQuant, a training-free, accuracy-preserving, and general-purpose PTQ solution which enables 8-bit weight, 8-bit activation quantization for LLMs, has been developed, demonstrating up to 1.56x speedup and 2x memory reduction for LLMs with negligible loss in accuracy [[@xiao2022smoothquant]](https://arxiv.org/abs/2211.10438). - In PTQ, a pretrained model undergoes a calibration process, as shown in @fig-PTQ-diagram. Calibration involves using a separate dataset known as calibration data, a specific subset of the training data reserved for quantization to help find the appropriate clipping ranges and scaling factors. ![Post-Training Quantization and calibration. Source: @gholami2021survey.](images/png/efficientnumerics_PTQ.png){#fig-PTQ-diagram} -**Quantization-Aware Training:** Quantization-aware training (QAT) is a fine-tuning of the PTQ model. The model is trained aware of quantization, allowing it to adjust for quantization effects. This produces better accuracy with quantized inference. Quantizing a trained neural network model with methods such as PTQ introduces perturbations that can deviate the model from its original convergence point. For instance, Krishnamoorthi showed that even with per-channel quantization, networks like MobileNet do not reach baseline accuracy with int8 Post Training Quantization (PTQ) and require Quantization-Aware Training (QAT) [[@krishnamoorthi2018quantizing]](https://arxiv.org/abs/1806.08342).To address this, QAT retrains the model with quantized parameters, employing forward and backward passes in floating point but quantizing parameters after each gradient update. Handling the non-differentiable quantization operator is crucial; a widely used method is the Straight Through Estimator (STE), approximating the rounding operation as an identity function. While other methods and variations exist, STE remains the most commonly used due to its practical effectiveness. -In QAT, a pretrained model is quantized and then finetuned using training data to adjust parameters and recover accuracy degradation, as shown in @fig-QAT-diagram. The calibration process is often conducted in parallel with the finetuning process for QAT. +**Quantization-Aware Training:** Quantization-aware training (QAT) is a fine-tuning of the PTQ model. The model is trained aware of quantization, allowing it to adjust for quantization effects. This produces better accuracy with quantized inference. Quantizing a trained neural network model with methods such as PTQ introduces perturbations that can deviate the model from its original convergence point. For instance, Krishnamoorthi showed that even with per-channel quantization, networks like MobileNet do not reach baseline accuracy with int8 PTQ and require QAT [[@krishnamoorthi2018quantizing]](https://arxiv.org/abs/1806.08342).To address this, QAT retrains the model with quantized parameters, employing forward and backward passes in floating point but quantizing parameters after each gradient update. Handling the non-differentiable quantization operator is crucial; a widely used method is the Straight Through Estimator (STE), approximating the rounding operation as an identity function. While other methods and variations exist, STE remains the most commonly used due to its practical effectiveness. In QAT, a pretrained model is quantized and then finetuned using training data to adjust parameters and recover accuracy degradation, as shown in @fig-QAT-diagram. The calibration process is often conducted in parallel with the finetuning process for QAT. ![Quantization-Aware Training. Source: @gholami2021survey.](images/png/efficientnumerics_QAT.png){#fig-QAT-diagram} @@ -616,21 +650,6 @@ Quantization-Aware Training serves as a natural extension of Post-Training Quant ![Relative accuracies of PTQ and QAT. Source: @wu2020integer.](images/png/efficientnumerics_PTQQATsummary.png){#fig-quantization-methods-summary} -| **Aspect** | **Post Training Quantization** | **Quantization-Aware Training** | **Dynamic Quantization** | -|:------------------------------|:------------------------------|:------------------------------|:------------------------------| -| **Pros** | | | | -| Simplicity | ✓ | ✗ | ✗ | -| Accuracy Preservation | ✗ | ✓ | ✓ | -| Adaptability | ✗ | ✗ | ✓ | -| Optimized Performance | ✗ | ✓ | Potentially | -| **Cons** | | | | -| Accuracy Degradation| ✓ | ✗ | Potentially | -| Computational Overhead | ✗ | ✓ | ✓ | -| Implementation Complexity | ✗ | ✓ | ✓ | -| **Tradeoffs** | | | | -| Speed vs. Accuracy |✓ | ✗ | ✗ | -| Accuracy vs. Cost | ✗ | ✓ | ✗ | -| Adaptability vs. Overhead | ✗ | ✗ | ✓ | ### Weights vs. Activations @@ -688,7 +707,6 @@ Efficient hardware implementation transcends the selection of suitable component Focusing only on the accuracy when performing Neural Architecture Search leads to models that are exponentially complex and require increasing memory and compute. This has lead to hardware constraints limiting the exploitation of the deep learning models at their full potential. Manually designing the architecture of the model is even harder when considering the hardware variety and limitations. This has lead to the creation of Hardware-aware Neural Architecture Search that incorporate the hardware contractions into their search and optimize the search space for a specific hardware and accuracy. HW-NAS can be categorized based how it optimizes for hardware. We will briefly explore these categories and leave links to related papers for the interested reader. - #### Single Target, Fixed Platform Configuration The goal here is to find the best architecture in terms of accuracy and hardware efficiency for one fixed target hardware. For a specific hardware, the Arduino Nicla Vision for example, this category of HW-NAS will look for the architecture that optimizes accuracy, latency, energy consumption, etc. @@ -783,10 +801,11 @@ In a contrasting approach, hardware can be custom-designed around software requi ![Delegating data processing to an FPGA. Source: @kwon2021hardwaresoftware.](images/png/modeloptimization_preprocessor.png){#fig-fpga-preprocessing} - #### SplitNets -SplitNets were introduced in the context of Head-Mounted systems. They distribute the Deep Neural Networks (DNNs) workload among camera sensors and an aggregator. This is particularly compelling the in context of TinyML. The SplitNet framework is a split-aware NAS to find the optimal neural network architecture to achieve good accuracy, split the model among the sensors and the aggregator, and minimize the communication between the sensors and the aggregator. @fig-splitnet-performance demonstrates how SplitNets (in red) achieves higher accuracy for lower latency (running on ImageNet) than different approaches, such as running the DNN on-sensor (All-on-sensor; in green) or on mobile (All-on-aggregator; in blue). Minimal communication is important in TinyML where memory is highly constrained, this way the sensors conduct some of the processing on their chips and then they send only the necessary information to the aggregator. When testing on ImageNet, SplitNets were able to reduce the latency by one order of magnitude on head-mounted devices. This can be helpful when the sensor has its own chip. [@dong2022splitnets] +SplitNets were introduced in the context of Head-Mounted systems. They distribute the Deep Neural Networks (DNNs) workload among camera sensors and an aggregator. This is particularly compelling the in context of TinyML. The SplitNet framework is a split-aware NAS to find the optimal neural network architecture to achieve good accuracy, split the model among the sensors and the aggregator, and minimize the communication between the sensors and the aggregator. + +@fig-splitnet-performance demonstrates how SplitNets (in red) achieves higher accuracy for lower latency (running on ImageNet) than different approaches, such as running the DNN on-sensor (All-on-sensor; in green) or on mobile (All-on-aggregator; in blue). Minimal communication is important in TinyML where memory is highly constrained, this way the sensors conduct some of the processing on their chips and then they send only the necessary information to the aggregator. When testing on ImageNet, SplitNets were able to reduce the latency by one order of magnitude on head-mounted devices. This can be helpful when the sensor has its own chip. [@dong2022splitnets] ![SplitNets vs other approaches. Source: @dong2022splitnets.](images/png/modeloptimization_SplitNets.png){#fig-splitnet-performance} @@ -804,9 +823,9 @@ Without the extensive software innovation across frameworks, optimization tools Major machine learning frameworks like TensorFlow, PyTorch, and MXNet provide libraries and APIs to allow common model optimization techniques to be applied without requiring custom implementations. For example, TensorFlow offers the TensorFlow Model Optimization Toolkit which contains modules like: -* [quantization](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/quantization/keras/quantize_model) - Applies quantization-aware training to convert floating point models to lower precision like int8 with minimal accuracy loss. Handles weight and activation quantization. -* [sparsity](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/sparsity/keras) - Provides pruning APIs to induce sparsity and remove unnecessary connections in models like neural networks. Can prune weights, layers, etc. -* [clustering](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/clustering) - Supports model compression by clustering weights into groups for higher compression rates. +* **[Quantization](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/quantization/keras/quantize_model)**: Applies quantization-aware training to convert floating point models to lower precision like int8 with minimal accuracy loss. Handles weight and activation quantization. +* **[Sparsity](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/sparsity/keras)**: Provides pruning APIs to induce sparsity and remove unnecessary connections in models like neural networks. Can prune weights, layers, etc. +* **[Clustering](https://www.tensorflow.org/model_optimization/api_docs/python/tfmot/clustering)**: Supports model compression by clustering weights into groups for higher compression rates. These APIs allow users to enable optimization techniques like quantization and pruning without directly modifying model code. Parameters like target sparsity rates, quantization bit-widths etc. can be configured. Similarly, PyTorch provides torch.quantization for converting models to lower precision representations. TorchTensor and TorchModule form the base classes for quantization support. It also offers torch.nn.utils.prune for built-in pruning of models. MXNet offers gluon.contrib layers that add quantization capabilities like fixed point rounding and stochastic rounding of weights/activations during training. This allows quantization to be readily included in gluon models. @@ -816,9 +835,9 @@ The core benefit of built-in optimizations is that users can apply them without Automated optimization tools provided by frameworks can analyze models and automatically apply optimizations like quantization, pruning, and operator fusion to make the process easier and accessible without excessive manual tuning. In effect, this builds on top of the previous section. For example, TensorFlow provides the TensorFlow Model Optimization Toolkit which contains modules like: -* [QuantizationAwareTraining](https://www.tensorflow.org/model_optimization/guide/quantization/training) - Automatically quantizes weights and activations in a model to lower precision like UINT8 or INT8 with minimal accuracy loss. It inserts fake quantization nodes during training so that the model can learn to be quantization-friendly. -* [Pruning](https://www.tensorflow.org/model_optimization/guide/pruning/pruning_with_keras) - Automatically removes unnecessary connections in a model based on analysis of weight importance. Can prune entire filters in convolutional layers or attention heads in transformers. Handles iterative re-training to recover any accuracy loss. -* [GraphOptimizer](https://www.tensorflow.org/guide/graph_optimization) - Applies graph optimizations like operator fusion to consolidate operations and reduce execution latency, especially for inference. In @fig-graph-optimizer, you can see the original (Source Graph) on the left, and how its operations are transformed (consolidated) on the right. Notice how Block1 in Source Graph has 3 separate steps (Convolution, BiasAdd, and Activation), which are then consolidated together in Block1 on Optimized Graph. +* **[QuantizationAwareTraining](https://www.tensorflow.org/model_optimization/guide/quantization/training)**: Automatically quantizes weights and activations in a model to lower precision like UINT8 or INT8 with minimal accuracy loss. It inserts fake quantization nodes during training so that the model can learn to be quantization-friendly. +* **[Pruning](https://www.tensorflow.org/model_optimization/guide/pruning/pruning_with_keras)**: Automatically removes unnecessary connections in a model based on analysis of weight importance. Can prune entire filters in convolutional layers or attention heads in transformers. Handles iterative re-training to recover any accuracy loss. +* **[GraphOptimizer](https://www.tensorflow.org/guide/graph_optimization)**: Applies graph optimizations like operator fusion to consolidate operations and reduce execution latency, especially for inference. In @fig-graph-optimizer, you can see the original (Source Graph) on the left, and how its operations are transformed (consolidated) on the right. Notice how Block1 in Source Graph has 3 separate steps (Convolution, BiasAdd, and Activation), which are then consolidated together in Block1 on Optimized Graph. ![GraphOptimizer. Source: @annette2020.](./images/png/source_opt.png){#fig-graph-optimizer} @@ -954,12 +973,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-md ::: - -:::{.callout-warning collapse="false"} -#### Labs - -In addition to exercises, we also offer a series of hands-on labs that allow students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* *Coming soon.* -::: - diff --git a/contents/privacy_security/images/png/image14.png b/contents/core/privacy_security/images/png/Data_poisoning.png similarity index 100% rename from contents/privacy_security/images/png/image14.png rename to contents/core/privacy_security/images/png/Data_poisoning.png diff --git a/contents/privacy_security/images/png/image3.png b/contents/core/privacy_security/images/png/Fault-injection_demonstrated_with_assembly_code.png similarity index 100% rename from contents/privacy_security/images/png/image3.png rename to contents/core/privacy_security/images/png/Fault-injection_demonstrated_with_assembly_code.png diff --git a/contents/privacy_security/images/png/image7.png b/contents/core/privacy_security/images/png/Federated_Learning_lifecycle.png similarity index 100% rename from contents/privacy_security/images/png/image7.png rename to contents/core/privacy_security/images/png/Federated_Learning_lifecycle.png diff --git a/contents/privacy_security/images/png/image9.png b/contents/core/privacy_security/images/png/Flowchart_of_GANs.png similarity index 100% rename from contents/privacy_security/images/png/image9.png rename to contents/core/privacy_security/images/png/Flowchart_of_GANs.png diff --git a/contents/privacy_security/images/png/image6.png b/contents/core/privacy_security/images/png/Grandma_role_play_to_bypass_safety_restrictions.png similarity index 100% rename from contents/privacy_security/images/png/image6.png rename to contents/core/privacy_security/images/png/Grandma_role_play_to_bypass_safety_restrictions.png diff --git a/contents/privacy_security/images/png/image13.png b/contents/core/privacy_security/images/png/Llama_unlearning_Harry_Potter.png similarity index 100% rename from contents/privacy_security/images/png/image13.png rename to contents/core/privacy_security/images/png/Llama_unlearning_Harry_Potter.png diff --git a/contents/privacy_security/images/png/image2.png b/contents/core/privacy_security/images/png/PUF_basics.png similarity index 100% rename from contents/privacy_security/images/png/image2.png rename to contents/core/privacy_security/images/png/PUF_basics.png diff --git a/contents/privacy_security/images/png/image16.png b/contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_(partially)_wrong_password.png similarity index 100% rename from contents/privacy_security/images/png/image16.png rename to contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_(partially)_wrong_password.png diff --git a/contents/privacy_security/images/png/image5.png b/contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_correct_password.png similarity index 100% rename from contents/privacy_security/images/png/image5.png rename to contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_correct_password.png diff --git a/contents/privacy_security/images/png/image15.png b/contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_wrong_password.png similarity index 100% rename from contents/privacy_security/images/png/image15.png rename to contents/core/privacy_security/images/png/Power_analysis_of_an_encryption_device_with_a_wrong_password.png diff --git a/contents/privacy_security/images/png/image8.png b/contents/core/privacy_security/images/png/Privacy-accuracy_tradeoff.png similarity index 100% rename from contents/privacy_security/images/png/image8.png rename to contents/core/privacy_security/images/png/Privacy-accuracy_tradeoff.png diff --git a/contents/privacy_security/images/png/image10.png b/contents/core/privacy_security/images/png/Reverse_psychology_to_bypass_safety_restrictions.png similarity index 100% rename from contents/privacy_security/images/png/image10.png rename to contents/core/privacy_security/images/png/Reverse_psychology_to_bypass_safety_restrictions.png diff --git a/contents/privacy_security/images/png/image4.png b/contents/core/privacy_security/images/png/Secure_Boot_flow.png similarity index 100% rename from contents/privacy_security/images/png/image4.png rename to contents/core/privacy_security/images/png/Secure_Boot_flow.png diff --git a/contents/privacy_security/images/png/image1.png b/contents/core/privacy_security/images/png/System-on-chip_secure_enclave.png similarity index 100% rename from contents/privacy_security/images/png/image1.png rename to contents/core/privacy_security/images/png/System-on-chip_secure_enclave.png diff --git a/contents/privacy_security/images/png/cover_security_privacy.png b/contents/core/privacy_security/images/png/cover_security_privacy.png similarity index 100% rename from contents/privacy_security/images/png/cover_security_privacy.png rename to contents/core/privacy_security/images/png/cover_security_privacy.png diff --git a/contents/privacy_security/images/png/image11.png b/contents/core/privacy_security/images/png/image11.png similarity index 100% rename from contents/privacy_security/images/png/image11.png rename to contents/core/privacy_security/images/png/image11.png diff --git a/contents/privacy_security/images/png/image12.png b/contents/core/privacy_security/images/png/image12.png similarity index 100% rename from contents/privacy_security/images/png/image12.png rename to contents/core/privacy_security/images/png/image12.png diff --git a/contents/privacy_security/images/png/machineunlearning.png b/contents/core/privacy_security/images/png/machineunlearning.png similarity index 100% rename from contents/privacy_security/images/png/machineunlearning.png rename to contents/core/privacy_security/images/png/machineunlearning.png diff --git a/contents/privacy_security/images/png/stuxnet.png b/contents/core/privacy_security/images/png/stuxnet.png similarity index 100% rename from contents/privacy_security/images/png/stuxnet.png rename to contents/core/privacy_security/images/png/stuxnet.png diff --git a/contents/privacy_security/privacy_security.bib b/contents/core/privacy_security/privacy_security.bib similarity index 100% rename from contents/privacy_security/privacy_security.bib rename to contents/core/privacy_security/privacy_security.bib diff --git a/contents/privacy_security/privacy_security.qmd b/contents/core/privacy_security/privacy_security.qmd similarity index 91% rename from contents/privacy_security/privacy_security.qmd rename to contents/core/privacy_security/privacy_security.qmd index 764e2765..8a14f2f5 100644 --- a/contents/privacy_security/privacy_security.qmd +++ b/contents/core/privacy_security/privacy_security.qmd @@ -5,7 +5,7 @@ bibliography: privacy_security.bib # Security & Privacy {#sec-security_privacy} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-security-and-privacy-resource), [Videos](#sec-security-and-privacy-resource), [Exercises](#sec-security-and-privacy-resource), [Labs](#sec-security-and-privacy-resource) +Resources: [Slides](#sec-security-and-privacy-resource), [Videos](#sec-security-and-privacy-resource), [Exercises](#sec-security-and-privacy-resource) ::: ![_DALL·E 3 Prompt: An illustration on privacy and security in machine learning systems. The image shows a digital landscape with a network of interconnected nodes and data streams, symbolizing machine learning algorithms. In the foreground, there's a large lock superimposed over the network, representing privacy and security. The lock is semi-transparent, allowing the underlying network to be partially visible. The background features binary code and digital encryption symbols, emphasizing the theme of cybersecurity. The color scheme is a mix of blues, greens, and grays, suggesting a high-tech, digital environment._](images/png/cover_security_privacy.png) @@ -236,7 +236,7 @@ On the other hand, this tool can be used maliciously and affect legitimate gener @fig-poisoning demonstrates the effects of different levels of data poisoning (50 samples, 100 samples, and 300 samples of poisoned images) on generating images in various categories. Notice how the images start deforming and deviating from the desired category. For example, after 300 poison samples, a car prompt generates a cow. -![Data poisoning. Source: @shan2023prompt.](images/png/image14.png){#fig-poisoning} +![Data poisoning. Source: @shan2023prompt.](images/png/Data_poisoning.png){#fig-poisoning} ### Adversarial Attacks @@ -338,9 +338,9 @@ Various physical tampering techniques can be used for fault injection. Low volta For ML systems, consequences include impaired model accuracy, denial of service, extraction of private training data or model parameters, and reverse engineering of model architectures. Attackers could use fault injection to force misclassifications, disrupt autonomous systems, or steal intellectual property. -For example, in [@breier2018deeplaser], the authors successfully injected a fault attack into a deep neural network deployed on a microcontroller. They used a laser to heat specific transistors, forcing them to switch states. In one instance, they used this method to attack a ReLU activation function, resulting in the function always outputting a value of 0, regardless of the input. In the assembly code in @fig-injection, the attack caused the executing program always to skip the `jmp end` instruction on line 6. This means that `HiddenLayerOutput[i]` is always set to 0, overwriting any values written to it on lines 4 and 5. As a result, the targeted neurons are rendered inactive, resulting in misclassifications. +For example, @breier2018deeplaser successfully injected a fault attack into a deep neural network deployed on a microcontroller. They used a laser to heat specific transistors, forcing them to switch states. In one instance, they used this method to attack a ReLU activation function, resulting in the function always outputting a value of 0, regardless of the input. In the assembly code shown in @fig-injection, the attack caused the executing program always to skip the `jmp end` instruction on line 6. This means that `HiddenLayerOutput[i]` is always set to 0, overwriting any values written to it on lines 4 and 5. As a result, the targeted neurons are rendered inactive, resulting in misclassifications. -![Fault-injection demonstrated with assembly code. Source: @breier2018deeplaser.](images/png/image3.png){#fig-injection} +![Fault-injection demonstrated with assembly code. Source: @breier2018deeplaser.](images/png/Fault-injection_demonstrated_with_assembly_code.png){#fig-injection} An attacker's strategy could be to infer information about the activation functions using side-channel attacks (discussed next). Then, the attacker could attempt to target multiple activation function computations by randomly injecting faults into the layers as close to the output layer as possible, increasing the likelihood and impact of the attack. @@ -368,15 +368,15 @@ Below, a simplified visualization illustrates how analyzing the encryption devic First, the power analysis of the device's operations after entering a correct password is shown in the first picture in @fig-encryption. The dense blue graph outputs the encryption device's voltage measurement. What is significant here is the comparison between the different analysis charts rather than the specific details of what is happening in each scenario. -![Power analysis of an encryption device with a correct password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/image5.png){#fig-encryption} +![Power analysis of an encryption device with a correct password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/Power_analysis_of_an_encryption_device_with_a_correct_password.png){#fig-encryption} When an incorrect password is entered, the power analysis chart is shown in @fig-encryption2. The first three bytes of the password are correct. As a result, the voltage patterns are very similar or identical between the two charts, up to and including the fourth byte. After the device processes the fourth byte, a mismatch between the secret key and the attempted input is determined. A change in the pattern at the transition point between the fourth and fifth bytes is noticed: the voltage increases (the current decreases) because the device has stopped processing the rest of the input. -![Power analysis of an encryption device with a (partially) wrong password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/image16.png){#fig-encryption2} +![Power analysis of an encryption device with a (partially) wrong password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/Power_analysis_of_an_encryption_device_with_a_(partially)_wrong_password.png){#fig-encryption2} @fig-encryption3 describes another chart of a completely wrong password. After the device finishes processing the first byte, it determines that it is incorrect and stops further processing - the voltage goes up and the current down. -![Power analysis of an encryption device with a wrong password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/image15.png){#fig-encryption3} +![Power analysis of an encryption device with a wrong password. Source: [Colin O'Flynn.](https://www.youtube.com/watch?v=2iDLfuEBcs8)](images/png/Power_analysis_of_an_encryption_device_with_a_wrong_password.png){#fig-encryption3} The example above demonstrates how information about the encryption process and the secret key can be inferred by analyzing different inputs and attempting to 'eavesdrop' on the device's operations on each input byte. For a more detailed explanation, watch @vid-powerattack below. @@ -464,7 +464,7 @@ As ML moves into more critical systems, verifying hardware integrity from design #### About TEE -A Trusted Execution Environment (TEE) is a secure area within a main processor that provides a high level of security for the execution of code and protection of data. TEEs operate by isolating the execution of sensitive tasks from the rest of the device's operations, thereby creating an environment resistant to attacks from software and hardware vectors. +A Trusted Execution Environment (TEE) is a secure area within a host processor that ensures the safe execution of code and the protection of sensitive data. By isolating critical tasks from the operating system, TEEs resist software and hardware attacks, providing a secure environment for handling sensitive computations. #### Benefits @@ -472,6 +472,8 @@ TEEs are particularly valuable in scenarios where sensitive data must be process For instance, a TEE can protect ML model parameters from being extracted by malicious software on the same device. This protection is vital for privacy and maintaining the integrity of the ML system, ensuring that the models perform as expected and do not provide skewed outputs due to manipulated parameters. [Apple's Secure Enclave](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web), found in iPhones and iPads, is a form of TEE that provides an isolated environment to protect sensitive user data and cryptographic operations. +Trusted Execution Environments (TEEs) are crucial for industries that demand high levels of security, including telecommunications, finance, healthcare, and automotive. TEEs protect the integrity of 5G networks in telecommunications and support critical applications. In finance, they secure mobile payments and authentication processes. Healthcare relies on TEEs to safeguard sensitive patient data, while the automotive industry depends on them for the safety and reliability of autonomous systems. Across all sectors, TEEs ensure the confidentiality and integrity of data and operations. + In ML systems, TEEs can: * Securely perform model training and inference, ensuring the computation results remain confidential. @@ -482,21 +484,25 @@ In ML systems, TEEs can: * Enable secure updates to ML models, ensuring that updates come from a trusted source and have not been tampered with in transit. +* Strengthen network security by safeguarding data transmission between distributed ML components through encryption and secure in-TEE processing. + The importance of TEEs in ML hardware security stems from their ability to protect against external and internal threats, including the following: * **Malicious Software:** TEEs can prevent high-privilege malware from accessing sensitive areas of the ML system. * **Physical Tampering:** By integrating with hardware security measures, TEEs can protect against physical tampering that attempts to bypass software security. -* **Side-channel Attacks:** Although not impenetrable, TEEs can mitigate certain side-channel attacks by controlling access to sensitive operations and data patterns. +* **Side-channel Attacks:** Although not impenetrable, TEEs can mitigate specific side-channel attacks by controlling access to sensitive operations and data patterns. + +* **Network Threats:** TEEs enhance network security by safeguarding data transmission between distributed ML components through encryption and secure in-TEE processing. This effectively prevents man-in-the-middle attacks and ensures data is transmitted through trusted channels. #### Mechanics The fundamentals of TEEs contain four main parts: -* **Isolated Execution:** Code within a TEE runs in a separate environment from the device's main operating system. This isolation protects the code from unauthorized access by other applications. +* **Isolated Execution:** Code within a TEE runs in a separate environment from the host device's host operating system. This isolation protects the code from unauthorized access by other applications. -* **Secure Storage:** TEEs can securely store cryptographic keys, authentication tokens, and sensitive data, preventing access by regular applications running outside the TEE. +* **Secure Storage:** TEEs can securely store cryptographic keys, authentication tokens, and sensitive data, preventing regular applications from accessing them outside the TEE. * **Integrity Protection:** TEEs can verify the integrity of code and data, ensuring that they have not been altered before execution or during storage. @@ -504,31 +510,31 @@ The fundamentals of TEEs contain four main parts: Here are some examples of TEEs that provide hardware-based security for sensitive applications: -* **[ARMTrustZone](https://www.arm.com/technologies/trustzone-for-cortex-m):**This technology creates secure and normal world execution environments isolated using hardware controls and implemented in many mobile chipsets. +* **[ARMTrustZone](https://www.arm.com/technologies/trustzone-for-cortex-m):** This technology creates secure and normal world execution environments isolated using hardware controls and implemented in many mobile chipsets. -* **[IntelSGX](https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.html):**Intel's Software Guard Extensions provide an enclave for code execution that protects against certain software attacks, specifically O.S. layer attacks. They are used to safeguard workloads in the cloud. +* **[IntelSGX](https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.html):** Intel's Software Guard Extensions provide an enclave for code execution that protects against various software-based threats, specifically targeting O.S. layer vulnerabilities. They are used to safeguard workloads in the cloud. -* **[Qualcomm Secure Execution Environment](https://www.qualcomm.com/products/features/mobile-security-solutions):**A Hardware sandbox on Qualcomm chipsets for mobile payment and authentication apps. +* **[Qualcomm Secure Execution Environment](https://www.qualcomm.com/products/features/mobile-security-solutions):** A Hardware sandbox on Qualcomm chipsets for mobile payment and authentication apps. -* **[Apple SecureEnclave](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web):**TEE for biometric data and key management on iPhones and iPads.Facilitates mobile payments. +* **[Apple SecureEnclave](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web):** A TEE for biometric data and cryptographic key management on iPhones and iPads, facilitating secure mobile payments. -@fig-enclave is a diagram demonstrating a secure enclave isolated from the main processor to provide an extra layer of security. The secure enclave has a boot ROM to establish a hardware root of trust, an AES engine for efficient and secure cryptographic operations, and protected memory. It also has a mechanism to store information securely on attached storage separate from the NAND flash storage used by the application processor and operating system. This design keeps sensitive user data secure even when the Application Processor kernel becomes compromised. +@fig-enclave is a diagram demonstrating a secure enclave isolated from the host processor to provide an extra layer of security. The secure enclave has a boot ROM to establish a hardware root of trust, an AES engine for efficient and secure cryptographic operations, and protected memory. It also has a mechanism to store information securely on attached storage separate from the NAND flash storage used by the application processor and operating system. This design keeps sensitive user data secure even when the Application Processor kernel becomes compromised. -![System-on-chip secure enclave. Source: [Apple.](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web)](images/png/image1.png){#fig-enclave} +![System-on-chip secure enclave. Source: [Apple.](https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web)](images/png/System-on-chip_secure_enclave.png){#fig-enclave} #### Tradeoffs -If TEEs are so good, why don't all systems have TEE enabled by default? The decision to implement a TEE is not taken lightly. There are several reasons why a TEE might only be present in some systems by default. Here are some tradeoffs and challenges associated with TEEs: +While Trusted Execution Environments offer significant security benefits, their implementation involves trade-offs. Several factors influence whether a system includes a TEE: **Cost:** Implementing TEEs involves additional costs. There are direct costs for the hardware and indirect costs associated with developing and maintaining secure software for TEEs. These costs may only be justifiable for some devices, especially low-margin products. **Complexity:** TEEs add complexity to system design and development. Integrating a TEE with existing systems requires a substantial redesign of the hardware and software stack, which can be a barrier, especially for legacy systems. -**Performance Overhead:** While TEEs offer enhanced security, they can introduce performance overhead. For example, the additional steps in verifying and encrypting data can slow down system performance, which may be critical in time-sensitive applications. +**Performance Overhead:** TEEs may introduce performance overhead due to the additional steps involved in encryption and data verification, which could slow down time-sensitive applications. **Development Challenges:** Developing for TEEs requires specialized knowledge and often must adhere to strict development protocols. This can extend development time and complicate the debugging and testing processes. -**Scalability and Flexibility:** TEEs, due to their secure nature, may impose limitations on scalability and flexibility. Upgrading secure components or scaling the system for more users or data can be more challenging when everything must pass through a secure, enclosed environment. +**Scalability and Flexibility:** TEEs, due to their protected nature, may impose limitations on scalability and flexibility. Upgrading protected components or scaling the system for more users or data can be more challenging when everything must pass through a secure, enclosed environment. **Energy Consumption:** The increased processing required for encryption, decryption, and integrity checks can lead to higher energy consumption, a significant concern for battery-powered devices. @@ -542,47 +548,46 @@ If TEEs are so good, why don't all systems have TEE enabled by default? The deci #### About -A secure boot is a security standard that ensures a device boots using only software trusted by the original equipment manufacturer (OEM). When the device starts up, the firmware checks the signature of each piece of boot software, including the bootloader, kernel, and base operating system, to ensure it's not tampered with. If the signatures are valid, the device continues to boot. If not, the boot process stops to prevent potential security threats from executing. +A Secure Boot is a fundamental security standard that ensures a device only boots using software trusted by the Original Equipment Manufacturer (OEM). During startup, the firmware checks the digital signature of each boot software component, including the bootloader, kernel, and base operating system. This process verifies that the software has not been altered or tampered with. If any signature fails verification, the boot process is halted to prevent unauthorized code execution that could compromise the system’s security integrity. #### Benefits -The integrity of an ML system is critical from the moment it is powered on. A compromised boot process could undermine the system by allowing malicious software to load before the operating system and ML applications start. This could lead to manipulated ML operations, stolen data, or the device being repurposed for malicious activities such as botnets or crypto-mining. +The integrity of an embedded machine learning (ML) system is paramount from the moment it is powered on. Any compromise in the boot process can lead to the execution of malicious software before the operating system and ML applications begin, resulting in manipulated ML operations, unauthorized data access, or repurposing the device for malicious activities such as botnets or crypto-mining. -Secure Boot helps protect embedded ML hardware in several ways: +Secure Boot offers vital protections for embedded ML hardware through the following critical mechanisms: * **Protecting ML Data:** Ensuring that the data used by ML models, which may include private or sensitive information, is not exposed to tampering or theft during the boot process. -* **Guarding Model Integrity:** Maintaining the ML models' integrity is important, as tampering with them could lead to incorrect or malicious outcomes. +* **Guarding Model Integrity:** Maintaining the integrity of the ML models is crucial, as tampering with them could lead to incorrect or malicious outcomes. * **Secure Model Updates:** Enabling secure updates to ML models and algorithms, ensuring that updates are authenticated and have not been altered. #### Mechanics -TEEs benefit from Secure Boot in multiple ways. @fig-secure-boot illustrates a flow diagram of a trusted embedded system. For instance, during initial validation, Secure Boot ensures that the code running inside the TEE is the correct and untampered version approved by the device manufacturer. It can ensure resilience against tampering by verifying the digital signatures of the firmware and other critical components; Secure Boot prevents unauthorized modifications that could undermine the TEE's security properties. Secure Boot establishes a foundation of trust upon which the TEE can securely operate, enabling secure operations such as cryptographic key management, secure processing, and sensitive data handling. +Secure Boot works with TEEs to further enhance system security. @fig-secure-boot illustrates a flow diagram of a trusted embedded system. In the initial validation phase, Secure Boot verifies that the code running within the TEE is the correct, untampered version authorized by the device manufacturer. By checking digital signatures of the firmware and other critical system components, Secure Boot prevents unauthorized modifications that could compromise the TEE’s security capabilities. This establishes a foundation of trust upon which the TEE can securely execute sensitive operations such as cryptographic key management and secure data processing. By enforcing these layers of security, Secure Boot enables resilient and secure device operations in even the most resource-constrained environments. -![Secure Boot flow. Source: @Rashmi2018Secure.](images/png/image4.png){#fig-secure-boot} +![Secure Boot flow. Source: @Rashmi2018Secure.](images/png/Secure_Boot_flow.png){#fig-secure-boot} #### Case Study: Apple's Face ID -Let's take a real-world example. Apple's Face ID technology uses advanced machine learning algorithms to enable [facial recognition](https://support.apple.com/en-us/102381) on iPhones and iPads. It relies on a sophisticated framework of sensors and software to accurately map the geometry of a user's face. For Face ID to function securely and protect user biometric data, the device's operations must be trustworthy from the moment it is powered on, which is where Secure Boot plays a crucial role. Here's how Secure Boot works in conjunction with Face ID: +A real-world example of Secure Boot's application can be observed in Apple's Face ID technology, which uses advanced machine learning algorithms to enable [facial recognition](https://support.apple.com/en-us/102381) on iPhones and iPads. Face ID relies on a sophisticated integration of sensors and software to precisely map the geometry of a user's face. For Face ID to operate securely and protect users' biometric data, the device's operations must be trustworthy from initialization. This is where Secure Boot plays a pivotal role. The following outlines how Secure Boot functions in conjunction with Face ID: -**Initial Verification:** When an iPhone is powered on, the Secure Boot process begins in the Secure Enclave, a coprocessor providing an extra security layer. The Secure Enclave is responsible for processing fingerprint data for Touch ID and facial recognition data for Face ID. The boot process verifies that Apple has signed the Secure Enclave's firmware and has not been tampered with. This step ensures that the firmware used to process biometric data is authentic and safe. +**Initial Verification:** Upon booting up an iPhone, the Secure Boot process commences within the Secure Enclave, a specialized coprocessor designed to add an extra layer of security. The Secure Enclave handles biometric data, such as fingerprints for Touch ID and facial recognition data for Face ID. During the boot process, the system rigorously verifies that Apple has digitally signed the Secure Enclave's firmware, guaranteeing its authenticity. This verification step ensures that the firmware used to process biometric data remains secure and uncompromised. -**Continuous Security Checks:** After the initial power-on self-test and verification by Secure Boot, the Secure Enclave communicates with the device's main processor to continue the secure boot chain. It verifies the digital signatures of the iOS kernel and other critical boot components before allowing the boot process to proceed. This chained trust model prevents unauthorized modifications to the bootloader and operating system, which could compromise the device's security. +**Continuous Security Checks:** Following the system's initialization and validation by Secure Boot, the Secure Enclave communicates with the device's central processor to maintain a secure boot chain. During this process, the digital signatures of the iOS kernel and other critical boot components are meticulously verified to ensure their integrity before proceeding. This "chain of trust" model effectively prevents unauthorized modifications to the bootloader and operating system, safeguarding the device's overall security. -**Face Data Processing:** Once the device has completed its secure boot sequence, the Secure Enclave can interact safely with the ML algorithms that power Face ID. Facial recognition involves projecting and analyzing over 30,000 invisible dots to create a depth map of the user's face and an infrared image. This data is then converted into a mathematical representation and compared with the registered face data securely stored in the Secure Enclave. +**Face Data Processing:** Once the secure boot sequence is completed, the Secure Enclave interacts securely with the machine learning algorithms that power Face ID. Facial recognition involves projecting and analyzing over 30,000 invisible points to create a depth map of the user's face and an infrared image. This data is converted into a mathematical representation and is securely compared with the registered face data stored in the Secure Enclave. -**Secure Enclave and Data Protection:** The Secure Enclave is designed to protect sensitive data and handle the cryptographic operations that secure it. It ensures that even if the operating system kernel is compromised, the facial data cannot be accessed by unauthorized apps or attackers. Face ID data never leaves the device and is not backed up to iCloud or anywhere else. +**Secure Enclave and Data Protection:** The Secure Enclave is precisely engineered to protect sensitive data and manage cryptographic operations that safeguard this data. Even in the event of a compromised operating system kernel, the facial data processed through Face ID remains inaccessible to unauthorized applications or external attackers. Importantly, Face ID data is never transmitted off the device and is not stored on iCloud or other external servers. -**Firmware Updates:** Apple frequently releases firmware updates to address security vulnerabilities and improve the functionality of its systems. Secure Boot ensures that each firmware update is authenticated and that only updates signed by Apple are installed on the device, preserving the integrity and security of the Face ID system. +**Firmware Updates:** Apple frequently releases updates to address security vulnerabilities and enhance system functionality. Secure Boot ensures that all firmware updates are authenticated, allowing only those signed by Apple to be installed. This process helps preserve the integrity and security of the Face ID system over time. -By using Secure Boot with dedicated hardware like the Secure Enclave, Apple can provide strong security assurances for sensitive operations like facial recognition. +By integrating Secure Boot with dedicated hardware such as the Secure Enclave, Apple delivers robust security guarantees for critical operations like facial recognition. #### Challenges -Implementing Secure Boot poses several challenges that must be addressed to realize its full benefits. - -**Key Management Complexity:** Generating, storing, distributing, rotating, and revoking cryptographic keys provably securely is extremely challenging yet vital for maintaining the chain of trust. Any compromise of keys cripples protections. Large enterprises managing multitudes of device keys face particular scale challenges. +Despite its benefits, implementing Secure Boot presents several challenges, particularly in complex and large-scale deployments: +**Key Management Complexity:** Generating, storing, distributing, rotating, and revoking cryptographic keys provably securely is particularly challenging yet vital for maintaining the chain of trust. Any compromise of keys cripples protections. Large enterprises managing multitudes of device keys face particular scale challenges. **Performance Overhead:** Checking cryptographic signatures during Boot can add 50-100ms or more per component verified. This delay may be prohibitive for time-sensitive or resource-constrained applications. However, performance impacts can be reduced through parallelization and hardware acceleration. @@ -664,7 +669,7 @@ The working principle behind PUFs, shown in @fig-pfu, involves generating a "cha @fig-pfu illustrates an overview of the PUF basics: a) PUF can be thought of as a unique fingerprint for each piece of hardware; b) an Optical PUF is a special plastic token that is illuminated, creating a unique speckle pattern that is then recorded; c) in an APUF (Arbiter PUF), challenge bits select different paths, and a judge decides which one is faster, giving a response of '1' or '0'; d) in an SRAM PUF, the response is determined by the mismatch in the threshold voltage of transistors, where certain conditions lead to a preferred response of '1'. Each of these methods uses specific characteristics of the hardware to create a unique identifier. -![PUF basics. Source: @Gao2020Physical.](images/png/image2.png){#fig-pfu} +![PUF basics. Source: @Gao2020Physical.](images/png/PUF_basics.png){#fig-pfu} #### Challenges @@ -768,11 +773,11 @@ Privacy and security concerns have also risen with the public use of generative While ChatGPT has instituted protections to prevent people from accessing private and ethically questionable information, several individuals have successfully bypassed these protections through prompt injection and other security attacks. As demonstrated in @fig-role-play, users can bypass ChatGPT protections to mimic the tone of a "deceased grandmother" to learn how to bypass a web application firewall [@Gupta2023ChatGPT]. -![Grandma role play to bypass safety restrictions. Source: @Gupta2023ChatGPT.](images/png/image6.png){#fig-role-play} +![Grandma role play to bypass safety restrictions. Source: @Gupta2023ChatGPT.](images/png/Grandma_role_play_to_bypass_safety_restrictions.png){#fig-role-play} Further, users have also successfully used reverse psychology to manipulate ChatGPT and access information initially prohibited by the model. In @fig-role-play2, a user is initially prevented from learning about piracy websites through ChatGPT but can bypass these restrictions using reverse psychology. -![Reverse psychology to bypass safety restrictions. Source: @Gupta2023ChatGPT.](images/png/image10.png){#fig-role-play2} +![Reverse psychology to bypass safety restrictions. Source: @Gupta2023ChatGPT.](images/png/Reverse_psychology_to_bypass_safety_restrictions.png){#fig-role-play2} The ease at which security attacks can manipulate ChatGPT is concerning, given the private information it was trained upon without consent. Further research on data privacy in LLMs and generative AI should focus on preventing the model from being so naive to prompt injection attacks. @@ -806,7 +811,7 @@ While the Laplace distribution is common, other distributions like Gaussian can To illustrate the tradeoff of Privacy and accuracy in ($\epsilon$, $\delta$)-differential Privacy, the following graphs in @fig-tradeoffs show the results on accuracy for different noise levels on the MNIST dataset, a large dataset of handwritten digits [@abadi2016deep]. The delta value (black line; right y-axis) denotes the level of privacy relaxation (a high value means Privacy is less stringent). As Privacy becomes more relaxed, the accuracy of the model increases. -![Privacy-accuracy tradeoff. Source: @abadi2016deep.](images/png/image8.png){#fig-tradeoffs} +![Privacy-accuracy tradeoff. Source: @abadi2016deep.](images/png/Privacy-accuracy_tradeoff.png){#fig-tradeoffs} The key points to remember about differential Privacy are the following: @@ -866,7 +871,7 @@ Federated Learning (FL) is a type of machine learning in which a model is built FL trains machine learning models across decentralized networks of devices or systems while keeping all training data localized. @fig-fl-lifecycle illustrates this process: each participating device leverages its local data to calculate model updates, which are then aggregated to build an improved global model. However, the raw training data is never directly shared, transferred, or compiled. This privacy-preserving approach allows for the joint development of ML models without centralizing the potentially sensitive training data in one place. -![Federated Learning lifecycle. Source: @jin2020towards.](images/png/image7.png){#fig-fl-lifecycle} +![Federated Learning lifecycle. Source: @jin2020towards.](images/png/Federated_Learning_lifecycle.png){#fig-fl-lifecycle} One of the most common model aggregation algorithms is Federated Averaging (FedAvg), where the global model is created by averaging all of the parameters from local parameters. While FedAvg works well with independent and identically distributed data (IID), alternate algorithms like Federated Proximal (FedProx) are crucial in real-world applications where data is often non-IID. FedProx is designed for the FL process when there is significant heterogeneity in the client updates due to diverse data distributions across devices, computational capabilities, or varied amounts of data. @@ -928,7 +933,7 @@ Machine unlearning is a fairly new process that describes how the influence of a Some researchers have demonstrated a real-life example of machine unlearning approaches applied to SOTA machine learning models through training an LLM, LLaMA2-7b, to unlearn any references to Harry Potter [@eldan2023whos]. Though this model took 184K GPU hours to pre-train, it only took 1 GPU hour of fine-tuning to erase the model's ability to generate or recall Harry Potter-related content without noticeably compromising the accuracy of generating content unrelated to Harry Potter. @fig-hp-prompts demonstrates how the model output changes before (Llama-7b-chat-hf column) and after (Finetuned Llama-b column) unlearning has occurred. -![Llama unlearning Harry Potter. Source: @eldan2023whos.](images/png/image13.png){#fig-hp-prompts} +![Llama unlearning Harry Potter. Source: @eldan2023whos.](images/png/Llama_unlearning_Harry_Potter.png){#fig-hp-prompts} #### Other Uses @@ -988,7 +993,7 @@ For many real-time and embedded applications, fully homomorphic encryption remai ### Homomorphic Encryption -Ready to unlock the power of encrypted computation? Homomorphic encryption is like a magic trick for your data! In this Colab, we'll learn how to do calculations on secret numbers without ever revealing them. Imagine training a model on data you can't even see – that's the power of this mind-bending technology. +The power of encrypted computation is unlocked through homomorphic encryption – a transformative approach in which calculations are performed directly on encrypted data, ensuring privacy is preserved throughout the process. This Colab explores the principles of computing on encrypted numbers without exposing the underlying data. Imagine a scenario where a machine learning model is trained on data that cannot be directly accessed – such is the strength of homomorphic encryption. [![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/drive/1GjKT5Lgh9Madjsyr9UiyeogUgVpTEBMp?usp=sharing) @@ -998,9 +1003,9 @@ Ready to unlock the power of encrypted computation? Homomorphic encryption is li #### Core Idea -The overarching goal of Multi-Party Communication (MPC) is to enable different parties to jointly compute a function over their inputs while keeping those inputs private. For example, two organizations may want to collaborate on training a machine learning model by combining their respective data sets. Still, they cannot directly reveal that data due to Privacy or confidentiality constraints. MPC provides protocols and techniques that allow them to achieve the benefits of pooled data for model accuracy without compromising the privacy of each organization's sensitive data. +Multi-Party Communication (MPC) enables multiple parties to jointly compute a function over their inputs while ensuring that each party’s inputs remain confidential. For instance, two organizations can collaborate on training a machine learning model by combining datasets without revealing sensitive information to each other. MPC protocols are essential where privacy and confidentiality regulations restrict direct data sharing, such as in healthcare or financial sectors. -At a high level, MPC works by carefully splitting the computation into parts that each party can execute independently using their private input. The results are then combined to reveal only the final output of the function and nothing about the intermediate values. Cryptographic techniques are used to guarantee that the partial results remain private provably. +MPC divides computation into parts that each participant executes independently using their private data. These results are then combined to reveal only the final output, preserving the privacy of intermediate values. Cryptographic techniques are used to guarantee that the partial results remain private provably. Let's take a simple example of an MPC protocol. One of the most basic MPC protocols is the secure addition of two numbers. Each party splits its input into random shares that are secretly distributed. They exchange the shares and locally compute the sum of the shares, which reconstructs the final sum without revealing the individual inputs. For example, if Alice has input x and Bob has input y: @@ -1014,7 +1019,7 @@ Let's take a simple example of an MPC protocol. One of the most basic MPC protoc 5. $s_1 + s_2 = x + y$ is the final sum, without revealing $x$ or $y$. -Alice's and Bob's individual inputs ($x$ and $y$) remain private, and each party only reveals one number associated with their original inputs. The random outputs ensure that no information about the original numbers disclosed. +Alice's and Bob's individual inputs ($x$ and $y$) remain private, and each party only reveals one number associated with their original inputs. The random outputs ensure that no information about the original numbers is disclosed. **Secure Comparison:** Another basic operation is a secure comparison of two numbers, determining which is greater than the other. This can be done using techniques like Yao's Garbled Circuits, where the comparison circuit is encrypted to allow joint evaluation of the inputs without leaking them. @@ -1044,7 +1049,7 @@ While MPC protocols provide strong privacy guarantees, they come at a high compu * Oblivious transfer and garbled circuits add masking and encryption to hide data access patterns and execution flows. -* MPC systems require extensive communication and interaction between parties to compute on shares/ciphertexts jointly. +* MPC systems require extensive communication and interaction between parties to jointly compute on shares/ciphertexts. As a result, MPC protocols can slow down computations by 3-4 orders of magnitude compared to plain implementations. This becomes prohibitively expensive for large datasets and models. Therefore, training machine learning models on encrypted data using MPC remains infeasible today for realistic dataset sizes due to the overhead. Clever optimizations and approximations are needed to make MPC practical. @@ -1054,15 +1059,15 @@ Ongoing MPC research closes this efficiency gap through cryptographic advances, #### Core Idea -Synthetic data generation has emerged as an important privacy-preserving machine learning approach that allows models to be developed and tested without exposing real user data. The key idea is to train generative models on real-world datasets and then sample from these models to synthesize artificial data that statistically match the original data distribution but does not contain actual user information. For example, a GAN could be trained on a dataset of sensitive medical records to learn the underlying patterns and then used to sample synthetic patient data. +Synthetic data generation has emerged as an important privacy-preserving machine learning approach that allows models to be developed and tested without exposing real user data. The key idea is to train generative models on real-world datasets and then sample from these models to synthesize artificial data that statistically matches the original data distribution but does not contain actual user information. For example, a GAN could be trained on a dataset of sensitive medical records to learn the underlying patterns and then used to sample synthetic patient data. -The primary challenge of synthesizing data is to ensure adversaries are unable to re-identify the original dataset. A simple approach to achieving synthetic data is adding noise to the original dataset, which still risks privacy leakage. When noise is added to data in the context of differential privacy, sophisticated mechanisms based on the data's sensitivity are used to calibrate the amount and distribution of noise. Through these mathematically rigorous frameworks, differential Privacy generally guarantees Privacy at some level, which is the primary goal of this privacy-preserving technique. Beyond preserving privacy, synthetic data combats multiple data availability issues such as imbalanced datasets, scarce datasets, and anomaly detection. +The primary challenge of synthesizing data is to ensure adversaries cannot re-identify the original dataset. A simple approach to achieving synthetic data is adding noise to the original dataset, which still risks privacy leakage. When noise is added to data in the context of differential privacy, sophisticated mechanisms based on the data's sensitivity are used to calibrate the amount and distribution of noise. Through these mathematically rigorous frameworks, differential Privacy generally guarantees Privacy at some level, which is the primary goal of this privacy-preserving technique. Beyond preserving privacy, synthetic data combats multiple data availability issues such as imbalanced datasets, scarce datasets, and anomaly detection. Researchers can freely share this synthetic data and collaborate on modeling without revealing private medical information. Well-constructed synthetic data protects Privacy while providing utility for developing accurate models. Key techniques to prevent reconstructing the original data include adding differential privacy noise during training, enforcing plausibility constraints, and using multiple diverse generative models. Here are some common approaches for generating synthetic data: * **Generative Adversarial Networks (GANs):** GANs are an AI algorithm used in unsupervised learning where two neural networks compete against each other in a game. @fig-gans is an overview of the GAN system. The generator network (big red box) is responsible for producing the synthetic data, and the discriminator network (yellow box) evaluates the authenticity of the data by distinguishing between fake data created by the generator network and the real data. The generator and discriminator networks learn and update their parameters based on the results. The discriminator acts as a metric on how similar the fake and real data are to one another. It is highly effective at generating realistic data and is a popular approach for generating synthetic data. -![Flowchart of GANs. Source: @rosa2021.](images/png/image9.png){#fig-gans} +![Flowchart of GANs. Source: @rosa2021.](images/png/Flowchart_of_GANs.png){#fig-gans} * **Variational Autoencoders (VAEs):** VAEs are neural networks capable of learning complex probability distributions and balancing data generation quality and computational efficiency. They encode data into a latent space where they learn the distribution to decode the data back. @@ -1090,7 +1095,7 @@ While synthetic data tries to remove any evidence of the original dataset, priva A core challenge with synthetic data is the potential gap between synthetic and real-world data distributions. Despite advancements in generative modeling techniques, synthetic data may only partially capture real data's complexity, diversity, and nuanced patterns. This can limit the utility of synthetic data for robustly training machine learning models. Rigorously evaluating synthetic data quality through adversary methods and comparing model performance to real data benchmarks helps assess and improve fidelity. However, inherently, synthetic data remains an approximation. -Another critical concern is the privacy risks of synthetic data. Generative models may leak identifiable information about individuals in the training data, which could enable reconstruction of private information. Emerging adversarial attacks demonstrate the challenges in preventing identity leakage from synthetic data generation pipelines. Techniques like differential Privacy can help safeguard Privacy but come with tradeoffs in data utility. There is an inherent tension between producing useful synthetic data and fully protecting sensitive training data, which must be balanced. +Another critical concern is the privacy risks of synthetic data. Generative models may leak identifiable information about individuals in the training data, which could enable the reconstruction of private information. Emerging adversarial attacks demonstrate the challenges in preventing identity leakage from synthetic data generation pipelines. Techniques like differential privacy can help safeguard privacy, but they come with tradeoffs in data utility. There is an inherent tension between producing valid synthetic data and fully protecting sensitive training data, which must be balanced. Additional pitfalls of synthetic data include amplified biases, mislabeling, the computational overhead of training generative models, storage costs, and failure to account for out-of-distribution novel data. While these are secondary to the core synthetic-real gap and privacy risks, they remain important considerations when evaluating the suitability of synthetic data for particular machine-learning tasks. As with any technique, the advantages of synthetic data come with inherent tradeoffs and limitations that require thoughtful mitigation strategies. @@ -1170,13 +1175,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-he ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - diff --git a/contents/responsible_ai/images/png/adversarial_robustness.png b/contents/core/responsible_ai/images/png/adversarial_robustness.png similarity index 100% rename from contents/responsible_ai/images/png/adversarial_robustness.png rename to contents/core/responsible_ai/images/png/adversarial_robustness.png diff --git a/contents/responsible_ai/images/png/cover_responsible_ai.png b/contents/core/responsible_ai/images/png/cover_responsible_ai.png similarity index 100% rename from contents/responsible_ai/images/png/cover_responsible_ai.png rename to contents/core/responsible_ai/images/png/cover_responsible_ai.png diff --git a/contents/responsible_ai/images/png/diffusion_memorization.png b/contents/core/responsible_ai/images/png/diffusion_memorization.png similarity index 100% rename from contents/responsible_ai/images/png/diffusion_memorization.png rename to contents/core/responsible_ai/images/png/diffusion_memorization.png diff --git a/contents/responsible_ai/images/png/fairness_cartoon.png b/contents/core/responsible_ai/images/png/fairness_cartoon.png similarity index 100% rename from contents/responsible_ai/images/png/fairness_cartoon.png rename to contents/core/responsible_ai/images/png/fairness_cartoon.png diff --git a/contents/responsible_ai/images/png/human_centered_ai.ai b/contents/core/responsible_ai/images/png/human_centered_ai.ai similarity index 100% rename from contents/responsible_ai/images/png/human_centered_ai.ai rename to contents/core/responsible_ai/images/png/human_centered_ai.ai diff --git a/contents/responsible_ai/images/png/human_centered_ai.png b/contents/core/responsible_ai/images/png/human_centered_ai.png similarity index 100% rename from contents/responsible_ai/images/png/human_centered_ai.png rename to contents/core/responsible_ai/images/png/human_centered_ai.png diff --git a/contents/responsible_ai/images/png/human_compatible_ai.png b/contents/core/responsible_ai/images/png/human_compatible_ai.png similarity index 100% rename from contents/responsible_ai/images/png/human_compatible_ai.png rename to contents/core/responsible_ai/images/png/human_compatible_ai.png diff --git a/contents/responsible_ai/responsible_ai.bib b/contents/core/responsible_ai/responsible_ai.bib similarity index 100% rename from contents/responsible_ai/responsible_ai.bib rename to contents/core/responsible_ai/responsible_ai.bib diff --git a/contents/responsible_ai/responsible_ai.qmd b/contents/core/responsible_ai/responsible_ai.qmd similarity index 98% rename from contents/responsible_ai/responsible_ai.qmd rename to contents/core/responsible_ai/responsible_ai.qmd index 333e83c1..fefa3930 100644 --- a/contents/responsible_ai/responsible_ai.qmd +++ b/contents/core/responsible_ai/responsible_ai.qmd @@ -5,7 +5,7 @@ bibliography: responsible_ai.bib # Responsible AI {#sec-responsible_ai} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-responsible-ai-resource), [Videos](#sec-responsible-ai-resource), [Exercises](#sec-responsible-ai-resource), [Labs](#sec-responsible-ai-resource) +Resources: [Slides](#sec-responsible-ai-resource), [Videos](#sec-responsible-ai-resource), [Exercises](#sec-responsible-ai-resource) ::: ![_DALL·E 3 Prompt: Illustration of responsible AI in a futuristic setting with the universe in the backdrop: A human hand or hands nurturing a seedling that grows into an AI tree, symbolizing a neural network. The tree has digital branches and leaves, resembling a neural network, to represent the interconnected nature of AI. The background depicts a future universe where humans and animals with general intelligence collaborate harmoniously. The scene captures the initial nurturing of the AI as a seedling, emphasizing the ethical development of AI technology in harmony with humanity and the universe._](images/png/cover_responsible_ai.png) @@ -338,7 +338,7 @@ To ensure that models keep up to date with such changes in the real world, devel ### Organizational and Cultural Structures -While innovation and regulation are often seen as having competing interests, many countries have found it necessary to provide oversight as AI systems expand into more sectors. As illustrated in @fig-human-centered-ai, this oversight has become crucial as these systems continue permeating various industries and impacting people's lives (see [Human-Centered AI, Chapter 8 "Government Interventions and Regulations"](https://academic-oup-com.ezp-prod1.hul.harvard.edu/book/41126/chapter/350465542). +While innovation and regulation are often seen as having competing interests, many countries have found it necessary to provide oversight as AI systems expand into more sectors. As shown in in @fig-human-centered-ai, this oversight has become crucial as these systems continue permeating various industries and impacting people's lives (see [Human-Centered AI, Chapter 8 "Government Interventions and Regulations"](https://academic-oup-com.ezp-prod1.hul.harvard.edu/book/41126/chapter/350465542). ![How various groups impact human-centered AI. Source: @schneiderman2020.](images/png/human_centered_ai.png){#fig-human-centered-ai} @@ -500,14 +500,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * _Coming soon._ ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - - diff --git a/contents/robust_ai/images/jpg/google_sdc_jeff_dean_anomaly.jpg b/contents/core/robust_ai/images/jpg/google_sdc_jeff_dean_anomaly.jpg similarity index 100% rename from contents/robust_ai/images/jpg/google_sdc_jeff_dean_anomaly.jpg rename to contents/core/robust_ai/images/jpg/google_sdc_jeff_dean_anomaly.jpg diff --git a/contents/robust_ai/images/jpg/mavfi.jpg b/contents/core/robust_ai/images/jpg/mavfi.jpg similarity index 100% rename from contents/robust_ai/images/jpg/mavfi.jpg rename to contents/core/robust_ai/images/jpg/mavfi.jpg diff --git a/contents/robust_ai/images/jpg/sdc-google-jeff-dean.jpeg b/contents/core/robust_ai/images/jpg/sdc-google-jeff-dean.jpeg similarity index 100% rename from contents/robust_ai/images/jpg/sdc-google-jeff-dean.jpeg rename to contents/core/robust_ai/images/jpg/sdc-google-jeff-dean.jpeg diff --git a/contents/robust_ai/images/jpg/sdc_controller_google.jpg b/contents/core/robust_ai/images/jpg/sdc_controller_google.jpg similarity index 100% rename from contents/robust_ai/images/jpg/sdc_controller_google.jpg rename to contents/core/robust_ai/images/jpg/sdc_controller_google.jpg diff --git a/contents/robust_ai/images/jpg/tesla_example.jpg b/contents/core/robust_ai/images/jpg/tesla_example.jpg similarity index 100% rename from contents/robust_ai/images/jpg/tesla_example.jpg rename to contents/core/robust_ai/images/jpg/tesla_example.jpg diff --git a/contents/robust_ai/images/png/CI_CD_procedure.png b/contents/core/robust_ai/images/png/CI_CD_procedure.png similarity index 100% rename from contents/robust_ai/images/png/CI_CD_procedure.png rename to contents/core/robust_ai/images/png/CI_CD_procedure.png diff --git a/contents/robust_ai/images/png/Reed-Solomon.png b/contents/core/robust_ai/images/png/Reed-Solomon.png similarity index 100% rename from contents/robust_ai/images/png/Reed-Solomon.png rename to contents/core/robust_ai/images/png/Reed-Solomon.png diff --git a/contents/robust_ai/images/png/ad.png b/contents/core/robust_ai/images/png/ad.png similarity index 100% rename from contents/robust_ai/images/png/ad.png rename to contents/core/robust_ai/images/png/ad.png diff --git a/contents/robust_ai/images/png/adversarial_attack_detection.png b/contents/core/robust_ai/images/png/adversarial_attack_detection.png similarity index 100% rename from contents/robust_ai/images/png/adversarial_attack_detection.png rename to contents/core/robust_ai/images/png/adversarial_attack_detection.png diff --git a/contents/robust_ai/images/png/adversarial_attack_injection.png b/contents/core/robust_ai/images/png/adversarial_attack_injection.png similarity index 100% rename from contents/robust_ai/images/png/adversarial_attack_injection.png rename to contents/core/robust_ai/images/png/adversarial_attack_injection.png diff --git a/contents/robust_ai/images/png/adversarial_googlenet.png b/contents/core/robust_ai/images/png/adversarial_googlenet.png similarity index 100% rename from contents/robust_ai/images/png/adversarial_googlenet.png rename to contents/core/robust_ai/images/png/adversarial_googlenet.png diff --git a/contents/robust_ai/images/png/autoencoder.png b/contents/core/robust_ai/images/png/autoencoder.png similarity index 100% rename from contents/robust_ai/images/png/autoencoder.png rename to contents/core/robust_ai/images/png/autoencoder.png diff --git a/contents/robust_ai/images/png/cover_robust_ai.png b/contents/core/robust_ai/images/png/cover_robust_ai.png similarity index 100% rename from contents/robust_ai/images/png/cover_robust_ai.png rename to contents/core/robust_ai/images/png/cover_robust_ai.png diff --git a/contents/robust_ai/images/png/data_augmentation.png b/contents/core/robust_ai/images/png/data_augmentation.png similarity index 100% rename from contents/robust_ai/images/png/data_augmentation.png rename to contents/core/robust_ai/images/png/data_augmentation.png diff --git a/contents/robust_ai/images/png/dirty_label_example.png b/contents/core/robust_ai/images/png/dirty_label_example.png similarity index 100% rename from contents/robust_ai/images/png/dirty_label_example.png rename to contents/core/robust_ai/images/png/dirty_label_example.png diff --git a/contents/robust_ai/images/png/distribution_shift.png b/contents/core/robust_ai/images/png/distribution_shift.png similarity index 100% rename from contents/robust_ai/images/png/distribution_shift.png rename to contents/core/robust_ai/images/png/distribution_shift.png diff --git a/contents/robust_ai/images/png/distribution_shift_example.png b/contents/core/robust_ai/images/png/distribution_shift_example.png similarity index 100% rename from contents/robust_ai/images/png/distribution_shift_example.png rename to contents/core/robust_ai/images/png/distribution_shift_example.png diff --git a/contents/robust_ai/images/png/drift_over_time.png b/contents/core/robust_ai/images/png/drift_over_time.png similarity index 100% rename from contents/robust_ai/images/png/drift_over_time.png rename to contents/core/robust_ai/images/png/drift_over_time.png diff --git a/contents/robust_ai/images/png/error_masking.png b/contents/core/robust_ai/images/png/error_masking.png similarity index 100% rename from contents/robust_ai/images/png/error_masking.png rename to contents/core/robust_ai/images/png/error_masking.png diff --git a/contents/robust_ai/images/png/gpu_out_of_memory.png b/contents/core/robust_ai/images/png/gpu_out_of_memory.png similarity index 100% rename from contents/robust_ai/images/png/gpu_out_of_memory.png rename to contents/core/robust_ai/images/png/gpu_out_of_memory.png diff --git a/contents/robust_ai/images/png/gradient_attack.png b/contents/core/robust_ai/images/png/gradient_attack.png similarity index 100% rename from contents/robust_ai/images/png/gradient_attack.png rename to contents/core/robust_ai/images/png/gradient_attack.png diff --git a/contents/robust_ai/images/png/graffiti.png b/contents/core/robust_ai/images/png/graffiti.png similarity index 100% rename from contents/robust_ai/images/png/graffiti.png rename to contents/core/robust_ai/images/png/graffiti.png diff --git a/contents/robust_ai/images/png/hardware_errors.png b/contents/core/robust_ai/images/png/hardware_errors.png similarity index 100% rename from contents/robust_ai/images/png/hardware_errors.png rename to contents/core/robust_ai/images/png/hardware_errors.png diff --git a/contents/robust_ai/images/png/hardware_errors_Bolchini.png b/contents/core/robust_ai/images/png/hardware_errors_Bolchini.png similarity index 100% rename from contents/robust_ai/images/png/hardware_errors_Bolchini.png rename to contents/core/robust_ai/images/png/hardware_errors_Bolchini.png diff --git a/contents/robust_ai/images/png/heartbeat.png b/contents/core/robust_ai/images/png/heartbeat.png similarity index 100% rename from contents/robust_ai/images/png/heartbeat.png rename to contents/core/robust_ai/images/png/heartbeat.png diff --git a/contents/robust_ai/images/png/image14.png b/contents/core/robust_ai/images/png/image14.png similarity index 100% rename from contents/robust_ai/images/png/image14.png rename to contents/core/robust_ai/images/png/image14.png diff --git a/contents/robust_ai/images/png/image15.png b/contents/core/robust_ai/images/png/image15.png similarity index 100% rename from contents/robust_ai/images/png/image15.png rename to contents/core/robust_ai/images/png/image15.png diff --git a/contents/robust_ai/images/png/image22.png b/contents/core/robust_ai/images/png/image22.png similarity index 100% rename from contents/robust_ai/images/png/image22.png rename to contents/core/robust_ai/images/png/image22.png diff --git a/contents/robust_ai/images/png/image34.png b/contents/core/robust_ai/images/png/image34.png similarity index 100% rename from contents/robust_ai/images/png/image34.png rename to contents/core/robust_ai/images/png/image34.png diff --git a/contents/robust_ai/images/png/intermittent_fault.png b/contents/core/robust_ai/images/png/intermittent_fault.png similarity index 100% rename from contents/robust_ai/images/png/intermittent_fault.png rename to contents/core/robust_ai/images/png/intermittent_fault.png diff --git a/contents/robust_ai/images/png/intermittent_fault_dram.png b/contents/core/robust_ai/images/png/intermittent_fault_dram.png similarity index 100% rename from contents/robust_ai/images/png/intermittent_fault_dram.png rename to contents/core/robust_ai/images/png/intermittent_fault_dram.png diff --git a/contents/robust_ai/images/png/nasa_example.png b/contents/core/robust_ai/images/png/nasa_example.png similarity index 100% rename from contents/robust_ai/images/png/nasa_example.png rename to contents/core/robust_ai/images/png/nasa_example.png diff --git a/contents/robust_ai/images/png/parity.png b/contents/core/robust_ai/images/png/parity.png similarity index 100% rename from contents/robust_ai/images/png/parity.png rename to contents/core/robust_ai/images/png/parity.png diff --git a/contents/robust_ai/images/png/permanent_fault.png b/contents/core/robust_ai/images/png/permanent_fault.png similarity index 100% rename from contents/robust_ai/images/png/permanent_fault.png rename to contents/core/robust_ai/images/png/permanent_fault.png diff --git a/contents/robust_ai/images/png/phantom_objects.png b/contents/core/robust_ai/images/png/phantom_objects.png similarity index 100% rename from contents/robust_ai/images/png/phantom_objects.png rename to contents/core/robust_ai/images/png/phantom_objects.png diff --git a/contents/robust_ai/images/png/poisoning_attack_example.png b/contents/core/robust_ai/images/png/poisoning_attack_example.png similarity index 100% rename from contents/robust_ai/images/png/poisoning_attack_example.png rename to contents/core/robust_ai/images/png/poisoning_attack_example.png diff --git a/contents/robust_ai/images/png/poisoning_example.png b/contents/core/robust_ai/images/png/poisoning_example.png similarity index 100% rename from contents/robust_ai/images/png/poisoning_example.png rename to contents/core/robust_ai/images/png/poisoning_example.png diff --git a/contents/robust_ai/images/png/regression_testing.png b/contents/core/robust_ai/images/png/regression_testing.png similarity index 100% rename from contents/robust_ai/images/png/regression_testing.png rename to contents/core/robust_ai/images/png/regression_testing.png diff --git a/contents/robust_ai/images/png/sdc_example.png b/contents/core/robust_ai/images/png/sdc_example.png similarity index 100% rename from contents/robust_ai/images/png/sdc_example.png rename to contents/core/robust_ai/images/png/sdc_example.png diff --git a/contents/robust_ai/images/png/stuck_fault.png b/contents/core/robust_ai/images/png/stuck_fault.png similarity index 100% rename from contents/robust_ai/images/png/stuck_fault.png rename to contents/core/robust_ai/images/png/stuck_fault.png diff --git a/contents/robust_ai/images/png/temporal_evoltion.png b/contents/core/robust_ai/images/png/temporal_evoltion.png similarity index 100% rename from contents/robust_ai/images/png/temporal_evoltion.png rename to contents/core/robust_ai/images/png/temporal_evoltion.png diff --git a/contents/robust_ai/images/png/tesla_dmr.png b/contents/core/robust_ai/images/png/tesla_dmr.png similarity index 100% rename from contents/robust_ai/images/png/tesla_dmr.png rename to contents/core/robust_ai/images/png/tesla_dmr.png diff --git a/contents/robust_ai/images/png/transfer_learning.png b/contents/core/robust_ai/images/png/transfer_learning.png similarity index 100% rename from contents/robust_ai/images/png/transfer_learning.png rename to contents/core/robust_ai/images/png/transfer_learning.png diff --git a/contents/robust_ai/images/png/transient_fault.png b/contents/core/robust_ai/images/png/transient_fault.png similarity index 100% rename from contents/robust_ai/images/png/transient_fault.png rename to contents/core/robust_ai/images/png/transient_fault.png diff --git a/contents/robust_ai/images/png/watchdog.png b/contents/core/robust_ai/images/png/watchdog.png similarity index 100% rename from contents/robust_ai/images/png/watchdog.png rename to contents/core/robust_ai/images/png/watchdog.png diff --git a/contents/robust_ai/robust_ai.bib b/contents/core/robust_ai/robust_ai.bib similarity index 100% rename from contents/robust_ai/robust_ai.bib rename to contents/core/robust_ai/robust_ai.bib diff --git a/contents/robust_ai/robust_ai.qmd b/contents/core/robust_ai/robust_ai.qmd similarity index 99% rename from contents/robust_ai/robust_ai.qmd rename to contents/core/robust_ai/robust_ai.qmd index a414342e..d3e5c1ed 100644 --- a/contents/robust_ai/robust_ai.qmd +++ b/contents/core/robust_ai/robust_ai.qmd @@ -5,7 +5,7 @@ bibliography: robust_ai.bib # Robust AI {#sec-robust_ai} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-robust-ai-resource), [Videos](#sec-robust-ai-resource), [Exercises](#sec-robust-ai-resource), [Labs](#sec-robust-ai-resource) +Resources: [Slides](#sec-robust-ai-resource), [Videos](#sec-robust-ai-resource), [Exercises](#sec-robust-ai-resource) ::: ![_DALL·E 3 Prompt: Create an image featuring an advanced AI system symbolized by an intricate, glowing neural network, deeply nested within a series of progressively larger and more fortified shields. Each shield layer represents a layer of defense, showcasing the system's robustness against external threats and internal errors. The neural network, at the heart of this fortress of shields, radiates with connections that signify the AI's capacity for learning and adaptation. This visual metaphor emphasizes not only the technological sophistication of the AI but also its resilience and security, set against the backdrop of a state-of-the-art, secure server room filled with the latest in technological advancements. The image aims to convey the concept of ultimate protection and resilience in the field of artificial intelligence._](./images/png/cover_robust_ai.png) @@ -230,10 +230,10 @@ Intermittent faults can arise from several causes, both internal and external, t Manufacturing defects or process variations can also introduce intermittent faults, where marginal or borderline components may exhibit sporadic failures under specific conditions, as shown in [@fig-intermittent-fault-dram](#kix.7lswkjecl7ra). -Environmental factors, such as temperature fluctuations, humidity, or vibrations, can trigger intermittent faults by altering the electrical characteristics of the components. Loose or degraded connections, such as those in connectors or printed circuit boards, can cause intermittent faults. - ![Residue induced intermittent fault in a DRAM chip. Source: [Hynix Semiconductor](https://ieeexplore.ieee.org/document/4925824)](./images/png/intermittent_fault_dram.png){#fig-intermittent-fault-dram} +Environmental factors, such as temperature fluctuations, humidity, or vibrations, can trigger intermittent faults by altering the electrical characteristics of the components. Loose or degraded connections, such as those in connectors or printed circuit boards, can cause intermittent faults. + #### Mechanisms of Intermittent Faults Intermittent faults can manifest through various mechanisms, depending on the underlying cause and the affected component. One mechanism is the intermittent open or short circuit, where a signal path or connection becomes temporarily disrupted or shorted, causing erratic behavior. Another mechanism is the intermittent delay fault [@zhang2018thundervolt], where the timing of signals or propagation delays becomes inconsistent, leading to synchronization issues or incorrect computations. Intermittent faults can manifest as transient bit flips or soft errors in memory cells or registers, causing data corruption or incorrect program execution. @@ -398,12 +398,12 @@ The landscape of machine learning models is complex and broad, especially given #### Mechanisms of Adversarial Attacks -![Gradient-Based Attacks. Source: [Ivezic](https://defence.ai/ai-security/gradient-based-attacks/)](./images/png/gradient_attack.png){#fig-gradient-attack} - **Gradient-based Attacks** One prominent category of adversarial attacks is gradient-based attacks. These attacks leverage the gradients of the ML model's loss function to craft adversarial examples. The [Fast Gradient Sign Method](https://www.tensorflow.org/tutorials/generative/adversarial_fgsm) (FGSM) is a well-known technique in this category. FGSM perturbs the input data by adding small noise in the gradient direction, aiming to maximize the model's prediction error. FGSM can quickly generate adversarial examples, as shown in [@fig-gradient-attack], by taking a single step in the gradient direction. +![Gradient-Based Attacks. Source: [Ivezic](https://defence.ai/ai-security/gradient-based-attacks/)](./images/png/gradient_attack.png){#fig-gradient-attack} + Another variant, the Projected Gradient Descent (PGD) attack, extends FGSM by iteratively applying the gradient update step, allowing for more refined and powerful adversarial examples. The Jacobian-based Saliency Map Attack (JSMA) is another gradient-based approach that identifies the most influential input features and perturbs them to create adversarial examples. **Optimization-based Attacks** @@ -453,12 +453,12 @@ As adversarial machine learning evolves, researchers explore new attack mechanis Adversarial attacks on machine learning systems have emerged as a significant concern in recent years, highlighting the potential vulnerabilities and risks associated with the widespread adoption of ML technologies. These attacks involve carefully crafted perturbations to input data that can deceive or mislead ML models, leading to incorrect predictions or misclassifications, as shown in [@fig-adversarial-googlenet]. The impact of adversarial attacks on ML systems is far-reaching and can have serious consequences in various domains. +![Adversarial example generation applied to GoogLeNet (Szegedy et al., 2014a) on ImageNet. Source: [Goodfellow](https://arxiv.org/abs/1412.6572)](./images/png/adversarial_googlenet.png){#fig-adversarial-googlenet} + One striking example of the impact of adversarial attacks was demonstrated by researchers in 2017. They experimented with small black and white stickers on stop signs [@eykholt2018robust]. To the human eye, these stickers did not obscure the sign or prevent its interpretability. However, when images of the sticker-modified stop signs were fed into standard traffic sign classification ML models, a shocking result emerged. The models misclassified the stop signs as speed limit signs over 85% of the time. This demonstration shed light on the alarming potential of simple adversarial stickers to trick ML systems into misreading critical road signs. The implications of such attacks in the real world are significant, particularly in the context of autonomous vehicles. If deployed on actual roads, these adversarial stickers could cause self-driving cars to misinterpret stop signs as speed limits, leading to dangerous situations, as shown in [@fig-graffiti]. Researchers warned that this could result in rolling stops or unintended acceleration into intersections, endangering public safety. -![Adversarial example generation applied to GoogLeNet (Szegedy et al., 2014a) on ImageNet. Source: [Goodfellow](https://arxiv.org/abs/1412.6572)](./images/png/adversarial_googlenet.png){#fig-adversarial-googlenet} - ![Graffiti on a stop sign tricked a self-driving car into thinking it was a 45 mph speed limit sign. Source: [Eykholt](https://arxiv.org/abs/1707.08945)](./images/png/graffiti.png){#fig-graffiti} The case study of the adversarial stickers on stop signs provides a concrete illustration of how adversarial examples exploit how ML models recognize patterns. By subtly manipulating the input data in ways that are invisible to humans, attackers can induce incorrect predictions and create serious risks, especially in safety-critical applications like autonomous vehicles. The attack's simplicity highlights the vulnerability of ML models to even minor changes in the input, emphasizing the need for robust defenses against such threats. @@ -537,10 +537,10 @@ Data poisoning attacks can be carried out through various mechanisms, exploiting Each of these mechanisms presents unique challenges and requires different mitigation strategies. For example, detecting label manipulation may involve analyzing the distribution of labels and identifying anomalies [@zhou2018learning], while preventing feature manipulation may require secure data preprocessing and anomaly detection techniques [@carta2020local]. Defending against insider threats may involve strict access control policies and monitoring of data access patterns. Moreover, the effectiveness of data poisoning attacks often depends on the attacker's knowledge of the ML system, including the model architecture, training algorithms, and data distribution. Attackers may use adversarial machine learning or data synthesis techniques to craft samples that are more likely to bypass detection and achieve their malicious objectives. -![Garbage In -- Garbage Out. Source: [Information Matters](https://informationmatters.net/data-poisoning-ai/)](./images/png/distribution_shift_example.png){#fig-distribution-shift-example} - **Modifying training data labels:** One of the most straightforward mechanisms of data poisoning is modifying the training data labels. In this approach, the attacker selectively changes the labels of a subset of the training samples to mislead the model's learning process as shown in [@fig-distribution-shift-example]. For example, in a binary classification task, the attacker might flip the labels of some positive samples to negative, or vice versa. By introducing such label noise, the attacker degrades the model's performance or cause it to make incorrect predictions for specific target instances. +![Garbage In -- Garbage Out. Source: [Information Matters](https://informationmatters.net/data-poisoning-ai/)](./images/png/distribution_shift_example.png){#fig-distribution-shift-example} + **Altering feature values in training data:** Another mechanism of data poisoning involves altering the feature values of the training samples without modifying the labels. The attacker carefully crafts the feature values to introduce specific biases or vulnerabilities into the model. For instance, in an image classification task, the attacker might add imperceptible perturbations to a subset of images, causing the model to learn a particular pattern or association. This type of poisoning can create backdoors or trojans in the trained model, which specific input patterns can trigger. **Injecting carefully crafted malicious samples:** In this mechanism, the attacker creates malicious samples designed to poison the model. These samples are crafted to have a specific impact on the model's behavior while blending in with the legitimate training data. The attacker might use techniques such as adversarial perturbations or data synthesis to generate poisoned samples that are difficult to detect. The attacker manipulates the model's decision boundaries by injecting these malicious samples into the training data or introducing targeted misclassifications. @@ -549,10 +549,10 @@ Each of these mechanisms presents unique challenges and requires different mitig **Manipulating data at the source (e.g., sensor data):** In some cases, attackers can manipulate the data at its source, such as sensor data or input devices. By tampering with the sensors or manipulating the environment in which data is collected, attackers can introduce poisoned samples or bias the data distribution. For instance, in a self-driving car scenario, an attacker might manipulate the sensors or the environment to feed misleading information into the training data, compromising the model's ability to make safe and reliable decisions. -![Data Poisoning Attack. Source: [Sikandar](https://www.researchgate.net/publication/366883200_A_Detailed_Survey_on_Federated_Learning_Attacks_and_Defenses)](./images/png/poisoning_attack_example.png){#fig-poisoning-attack-example} - **Poisoning data in online learning scenarios:** Data poisoning attacks can also target ML systems that employ online learning, where the model is continuously updated with new data in real time. In such scenarios, an attacker can gradually inject poisoned samples over time, slowly manipulating the model's behavior. Online learning systems are particularly vulnerable to data poisoning because they adapt to new data without extensive validation, making it easier for attackers to introduce malicious samples, as shown in [@fig-poisoning-attack-example]. +![Data Poisoning Attack. Source: [Sikandar](https://www.researchgate.net/publication/366883200_A_Detailed_Survey_on_Federated_Learning_Attacks_and_Defenses)](./images/png/poisoning_attack_example.png){#fig-poisoning-attack-example} + **Collaborating with insiders to manipulate data:** Sometimes, data poisoning attacks can involve collaboration with insiders with access to the training data. Malicious insiders, such as employees or data providers, can manipulate the data before it is used to train the model. Insider threats are particularly challenging to detect and prevent, as the attackers have legitimate access to the data and can carefully craft the poisoning strategy to evade detection. These are the key mechanisms of data poisoning in ML systems. Attackers often employ these mechanisms to make their attacks more effective and harder to detect. The risk of data poisoning attacks grows as ML systems become increasingly complex and rely on larger datasets from diverse sources. Defending against data poisoning requires a multifaceted approach. ML practitioners and system designers must be aware of the various mechanisms of data poisoning and adopt a comprehensive approach to data security and model resilience. This includes secure data collection, robust data validation, and continuous model performance monitoring. Implementing secure data collection and preprocessing practices is crucial to prevent data poisoning at the source. Data validation and anomaly detection techniques can also help identify and mitigate potential poisoning attempts. Monitoring model performance for signs of data poisoning is also essential to detect and respond to attacks promptly. @@ -577,10 +577,10 @@ Addressing the impact of data poisoning requires a proactive approach to data se ##### Case Study -![Samples of dirty-label poison data regarding mismatched text/image pairs. Source: [Shan](https://arxiv.org/pdf/2310.13828)](./images/png/dirty_label_example.png){#fig-dirty-label-example} - Interestingly enough, data poisoning attacks are not always malicious [@shan2023prompt]. Nightshade, a tool developed by a team led by Professor Ben Zhao at the University of Chicago, utilizes data poisoning to help artists protect their art against scraping and copyright violations by generative AI models. Artists can use the tool to make subtle modifications to their images before uploading them online, as shown in [@fig-dirty-label-example]. +![Samples of dirty-label poison data regarding mismatched text/image pairs. Source: [Shan](https://arxiv.org/pdf/2310.13828)](./images/png/dirty_label_example.png){#fig-dirty-label-example} + While these changes are indiscernible to the human eye, they can significantly disrupt the performance of generative AI models when incorporated into the training data. Generative models can be manipulated to generate hallucinations and weird images. For example, with only 300 poisoned images, the University of Chicago researchers could trick the latest Stable Diffusion model into generating images of dogs that look like cats or images of cows when prompted for cars. As the number of poisoned images on the internet increases, the performance of the models that use scraped data will deteriorate exponentially. First, the poisoned data is hard to detect and requires manual elimination. Second, the "poison" spreads quickly to other labels because generative models rely on connections between words and concepts as they generate images. So a poisoned image of a "car" could spread into generated images associated with words like "truck\," "train\," " bus\," etc. @@ -618,14 +618,14 @@ The key characteristics of distribution shift include: **Unrepresentative training data:** The training data may only partially capture the variability and diversity of the real-world data encountered during deployment. Unrepresentative training data can lead to biased or skewed models that perform poorly on real-world data. Suppose the training data needs to capture the variability and diversity of the real-world data adequately. In that case, the model may learn patterns specific to the training set but needs to generalize better to new, unseen data. This can result in poor performance, biased predictions, and limited model applicability. For instance, if a facial recognition model is trained primarily on images of individuals from a specific demographic group, it may struggle to accurately recognize faces from other demographic groups when deployed in a real-world setting. Ensuring that the training data is representative and diverse is crucial for building models that can generalize well to real-world scenarios. -![Concept drift refers to a change in data patterns and relationships over time. Source: [Evidently AI](https://www.evidentlyai.com/ml-in-production/concept-drift)](./images/png/drift_over_time.png){#fig-drift-over-time} - Distribution shift can manifest in various forms, such as: **Covariate shift:** The distribution of the input features (covariates) changes while the conditional distribution of the target variable given the input remains the same. Covariate shift matters because it can impact the model's ability to make accurate predictions when the input features (covariates) differ between the training and test data. Even if the relationship between the input features and the target variable remains the same, a change in the distribution of the input features can affect the model's performance. For example, consider a model trained to predict housing prices based on features like square footage, number of bedrooms, and location. Suppose the distribution of these features in the test data significantly differs from the training data (e.g., the test data contains houses with much larger square footage). In that case, the model's predictions may become less accurate. Addressing covariate shifts is important to ensure the model's robustness and reliability when applied to new data. **Concept drift:** The relationship between the input features and the target variable changes over time, altering the underlying concept the model is trying to learn, as shown in [@fig-drift-over-time]. Concept drift is important because it indicates changes in the fundamental relationship between the input features and the target variable over time. When the underlying concept that the model is trying to learn shifts, its performance can deteriorate if not adapted to the new concept. For instance, in a customer churn prediction model, the factors influencing customer churn may evolve due to market conditions, competitor offerings, or customer preferences. If the model is not updated to capture these changes, its predictions may become less accurate and irrelevant. Detecting and adapting to concept drift is crucial to maintaining the model's effectiveness and alignment with evolving real-world concepts. +![Concept drift refers to a change in data patterns and relationships over time. Source: [Evidently AI](https://www.evidentlyai.com/ml-in-production/concept-drift)](./images/png/drift_over_time.png){#fig-drift-over-time} + **Domain generalization:** The model must generalize to unseen domains or distributions not present during training. Domain generalization is important because it enables ML models to be applied to new, unseen domains without requiring extensive retraining or adaptation. In real-world scenarios, training data that covers all possible domains or distributions that the model may encounter is often infeasible. Domain generalization techniques aim to learn domain-invariant features or models that can generalize well to new domains. For example, consider a model trained to classify images of animals. If the model can learn features invariant to different backgrounds, lighting conditions, or poses, it can generalize well to classify animals in new, unseen environments. Domain generalization is crucial for building models that can be deployed in diverse and evolving real-world settings. The presence of a distribution shift can significantly impact the performance and reliability of ML models, as the models may need help generalizing well to the new data distribution. Detecting and adapting to distribution shifts is crucial to ensure ML systems' robustness and practical utility in real-world scenarios. @@ -714,18 +714,18 @@ Practitioners can develop more robust and resilient ML systems by leveraging the Recall that data poisoning is an attack that targets the integrity of the training data used to build ML models. By manipulating or corrupting the training data, attackers can influence the model's behavior and cause it to make incorrect predictions or perform unintended actions. Detecting and mitigating data poisoning attacks is crucial to ensure the trustworthiness and reliability of ML systems, as shown in [@fig-adversarial-attack-injection]. -##### Anomaly Detection Techniques for Identifying Poisoned Data - ![Malicious data injection. Source: [Li](https://www.mdpi.com/2227-7390/12/2/247)](./images/png/adversarial_attack_injection.png){#fig-adversarial-attack-injection} +##### Anomaly Detection Techniques for Identifying Poisoned Data + Statistical outlier detection methods identify data points that deviate significantly from most data. These methods assume that poisoned data instances are likely to be statistical outliers. Techniques such as the [Z-score method](https://ubalt.pressbooks.pub/mathstatsguides/chapter/z-score-basics/), [Tukey's method](https://www.itl.nist.gov/div898/handbook/prc/section4/prc471.htm), or the [Mahalanobis distance](https://www.statisticshowto.com/mahalanobis-distance/) can be used to measure the deviation of each data point from the central tendency of the dataset. Data points that exceed a predefined threshold are flagged as potential outliers and considered suspicious for data poisoning. Clustering-based methods group similar data points together based on their features or attributes. The assumption is that poisoned data instances may form distinct clusters or lie far away from the normal data clusters. By applying clustering algorithms like [K-means](https://www.oreilly.com/library/view/data-algorithms/9781491906170/ch12.html), [DBSCAN](https://www.oreilly.com/library/view/machine-learning-algorithms/9781789347999/50efb27d-abbe-4855-ad81-a5357050161f.xhtml), or [hierarchical clustering](https://www.oreilly.com/library/view/cluster-analysis-5th/9780470978443/chapter04.html), anomalous clusters or data points that do not belong to any cluster can be identified. These anomalous instances are then treated as potentially poisoned data. -![Autoencoder. Source: [Dertat](https://towardsdatascience.com/applied-deep-learning-part-3-autoencoders-1c083af4d798)](./images/png/autoencoder.png){#fig-autoencoder} - Autoencoders are neural networks trained to reconstruct the input data from a compressed representation, as shown in [@fig-autoencoder]. They can be used for anomaly detection by learning the normal patterns in the data and identifying instances that deviate from them. During training, the autoencoder is trained on clean, unpoisoned data. At inference time, the reconstruction error for each data point is computed. Data points with high reconstruction errors are considered abnormal and potentially poisoned, as they do not conform to the learned normal patterns. +![Autoencoder. Source: [Dertat](https://towardsdatascience.com/applied-deep-learning-part-3-autoencoders-1c083af4d798)](./images/png/autoencoder.png){#fig-autoencoder} + ##### Data Sanitization and Preprocessing Techniques Data poisoning can be avoided by cleaning data, which involves identifying and removing or correcting noisy, incomplete, or inconsistent data points. Techniques such as data deduplication, missing value imputation, and outlier removal can be applied to improve the quality of the training data. By eliminating or filtering out suspicious or anomalous data points, the impact of poisoned instances can be reduced. @@ -770,10 +770,10 @@ In addition, domain classifiers are trained to distinguish between different dom ##### Mitigation Techniques for Distribution Shifts -![Transfer learning. Source: [Bhavsar](https://medium.com/modern-nlp/transfer-learning-in-nlp-f5035cc3f62f)](./images/png/transfer_learning.png){#fig-transfer-learning} - Transfer learning leverages knowledge gained from one domain to improve performance in another, as shown in [@fig-transfer-learning]. By using pre-trained models or transferring learned features from a source domain to a target domain, transfer learning can help mitigate the impact of distribution shifts. The pre-trained model can be fine-tuned on a small amount of labeled data from the target domain, allowing it to adapt to the new distribution. Transfer learning is particularly effective when the source and target domains share similar characteristics or when labeled data in the target domain is scarce. +![Transfer learning. Source: [Bhavsar](https://medium.com/modern-nlp/transfer-learning-in-nlp-f5035cc3f62f)](./images/png/transfer_learning.png){#fig-transfer-learning} + Continual learning, also known as lifelong learning, enables ML models to learn continuously from new data distributions while retaining knowledge from previous distributions. Techniques such as elastic weight consolidation (EWC) [@kirkpatrick2017overcoming] or gradient episodic memory (GEM) [@lopez2017gradient] allow models to adapt to evolving data distributions over time. These techniques aim to balance the plasticity of the model (ability to learn from new data) with the stability of the model (retaining previously learned knowledge). By incrementally updating the model with new data and mitigating catastrophic forgetting, continual learning helps models stay robust to distribution shifts. Data augmentation techniques, such as those we have seen previously, involve applying transformations or perturbations to the existing training data to increase its diversity and improve the model's robustness to distribution shifts. By introducing variations in the data, such as rotations, translations, scaling, or adding noise, data augmentation helps the model learn invariant features and generalize better to unseen distributions. Data augmentation can be performed during training and inference to improve the model's ability to handle distribution shifts. @@ -868,7 +868,7 @@ Adopting a proactive and systematic approach to fault detection and mitigation c ### Fault Tolerance -Get ready to become an AI fault-fighting superhero! Software glitches can derail machine learning systems, but in this Colab, you'll learn how to make them resilient. We'll simulate software faults to see how AI can break, then explore techniques to save your ML model's progress, like checkpoints in a game. You'll see how to train your AI to bounce back after a crash, ensuring it stays on track. This is crucial for building reliable, trustworthy AI, especially in critical applications. So gear up because this Colab directly connects with the Robust AI chapter – you'll move from theory to hands-on troubleshooting and build AI systems that can handle the unexpected! +Get ready to become an AI fault-fighting superhero! Software glitches can derail machine learning systems, but in this Colab, you'll learn how to make them resilient. We'll simulate software faults to see how AI can break, then explore techniques to save your ML model's progress, like checkpoints in a game. You'll see how to train your AI to bounce back after a crash, ensuring it stays on track. This is crucial for building reliable, trustworthy AI, especially in critical applications. So gear up because this Colab directly connects with the Robust AI chapter---you'll move from theory to hands-on troubleshooting and build AI systems that can handle the unexpected! [![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/guide/migrate/fault_tolerance.ipynb#scrollTo=77z2OchJTk0l) ::: @@ -919,8 +919,6 @@ Two of the most common hardware-based fault injection methods are FPGA-based fau **Radiation or Beam Testing:** Radiation or beam testing [@velazco2010combining] involves exposing the hardware running an ML model to high-energy particles, such as protons or neutrons as illustrated in [@fig-beam-testing](#5a77jp776dxi). These particles can cause bitflips or other types of faults in the hardware, mimicking the effects of real-world radiation-induced faults. Beam testing is widely regarded as a highly accurate method for measuring the error rate induced by particle strikes on a running application. It provides a realistic representation of the faults in real-world environments, particularly in applications exposed to high radiation levels, such as space systems or particle physics experiments. However, unlike FPGA-based fault injection, beam testing could be more precise in targeting specific bits or components within the hardware, as it might be difficult to aim the beam of particles to a particular bit in the hardware. Despite being quite expensive from a research standpoint, beam testing is a well-regarded industry practice for reliability. -![](./images/png/image15.png) - ![Radiation test setup for semiconductor components [@lee2022design] Source: [JD Instrument](https://jdinstruments.net/tester-capabilities-radiation-test/)](./images/png/image14.png){#fig-beam-testing} #### Limitations @@ -957,17 +955,17 @@ Software-based fault injection tools also have some limitations compared to hard **Fidelity:** Software-based tools may provide a different level of Fidelity than hardware-based methods in terms of representing real-world fault conditions. The accuracy of the results obtained from software-based fault injection experiments may depend on how closely the software model approximates the actual hardware behavior. -![Comparison of techniques at layers of abstraction. Source: [MAVFI](https://ieeexplore.ieee.org/abstract/document/10315202)](./images/jpg/mavfi.jpg){#fig-mavfi} - ##### Types of Fault Injection Tools Software-based fault injection tools can be categorized based on their target frameworks or use cases. Here, we will discuss some of the most popular tools in each category: Ares [@reagen2018ares], a fault injection tool initially developed for the Keras framework in 2018, emerged as one of the first tools to study the impact of hardware faults on deep neural networks (DNNs) in the context of the rising popularity of ML frameworks in the mid-to-late 2010s. The tool was validated against a DNN accelerator implemented in silicon, demonstrating its effectiveness in modeling hardware faults. Ares provides a comprehensive study on the impact of hardware faults in both weights and activation values, characterizing the effects of single-bit flips and bit-error rates (BER) on hardware structures. Later, the Ares framework was extended to support the PyTorch ecosystem, enabling researchers to investigate hardware faults in a more modern setting and further extending its utility in the field. +PyTorchFI [@mahmoud2020pytorchfi], a fault injection tool specifically designed for the PyTorch framework, was developed in 2020 in collaboration with Nvidia Research. It enables the injection of faults into the weights, activations, and gradients of PyTorch models, supporting a wide range of fault models. By leveraging the GPU acceleration capabilities of PyTorch, PyTorchFI provides a fast and efficient implementation for conducting fault injection experiments on large-scale ML systems, as shown in [@fig-phantom-objects](#txkz61sj1mj4). + ![Hardware bitflips in ML workloads can cause phantom objects and misclassifications, which can erroneously be used downstream by larger systems, such as in autonomous driving. Shown above is a correct and faulty version of the same image using the PyTorchFI injection framework.](./images/png/phantom_objects.png){#fig-phantom-objects} -PyTorchFI [@mahmoud2020pytorchfi], a fault injection tool specifically designed for the PyTorch framework, was developed in 2020 in collaboration with Nvidia Research. It enables the injection of faults into the weights, activations, and gradients of PyTorch models, supporting a wide range of fault models. By leveraging the GPU acceleration capabilities of PyTorch, PyTorchFI provides a fast and efficient implementation for conducting fault injection experiments on large-scale ML systems, as shown in [@fig-phantom-objects](#txkz61sj1mj4). The tool's speed and ease of use have led to widespread adoption in the community, resulting in multiple developer-led projects, such as PyTorchALFI by Intel xColabs, which focuses on safety in automotive environments. Follow-up PyTorch-centric tools for fault injection include Dr. DNA by Meta [@ma2024dr] (which further facilitates the Pythonic programming model for ease of use), and the GoldenEye framework [@mahmoud2022dsn], which incorporates novel numerical datatypes (such as AdaptivFloat [@tambe2020algorithm] and [BlockFloat](https://en.wikipedia.org/wiki/Bfloat16_floating-point_format) in the context of hardware bit flips. +The tool's speed and ease of use have led to widespread adoption in the community, resulting in multiple developer-led projects, such as PyTorchALFI by Intel xColabs, which focuses on safety in automotive environments. Follow-up PyTorch-centric tools for fault injection include Dr. DNA by Meta [@ma2024dr] (which further facilitates the Pythonic programming model for ease of use), and the GoldenEye framework [@mahmoud2022dsn], which incorporates novel numerical datatypes (such as AdaptivFloat [@tambe2020algorithm] and [BlockFloat](https://en.wikipedia.org/wiki/Bfloat16_floating-point_format) in the context of hardware bit flips. TensorFI [@chen2020tensorfi], or the TensorFlow Fault Injector, is a fault injection tool developed specifically for the TensorFlow framework. Analogous to Ares and PyTorchFI, TensorFI is considered the state-of-the-art tool for ML robustness studies in the TensorFlow ecosystem. It allows researchers to inject faults into the computational graph of TensorFlow models and study their impact on the model's performance, supporting a wide range of fault models. One of the key benefits of TensorFI is its ability to evaluate the resilience of various ML models, not just DNNs. Further advancements, such as BinFi [@chen2019sc], provide a mechanism to speed up error injection experiments by focusing on the "important" bits in the system, accelerating the process of ML robustness analysis and prioritizing the critical components of a model. @@ -1077,13 +1075,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-ft ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: - diff --git a/contents/sustainable_ai/images/png/azure_dashboard.png b/contents/core/sustainable_ai/images/png/azure_dashboard.png similarity index 100% rename from contents/sustainable_ai/images/png/azure_dashboard.png rename to contents/core/sustainable_ai/images/png/azure_dashboard.png diff --git a/contents/sustainable_ai/images/png/carbon_benchmarks.png b/contents/core/sustainable_ai/images/png/carbon_benchmarks.png similarity index 100% rename from contents/sustainable_ai/images/png/carbon_benchmarks.png rename to contents/core/sustainable_ai/images/png/carbon_benchmarks.png diff --git a/contents/sustainable_ai/images/png/cover_sustainable_ai.png b/contents/core/sustainable_ai/images/png/cover_sustainable_ai.png similarity index 100% rename from contents/sustainable_ai/images/png/cover_sustainable_ai.png rename to contents/core/sustainable_ai/images/png/cover_sustainable_ai.png diff --git a/contents/sustainable_ai/images/png/energy_datacenter.png b/contents/core/sustainable_ai/images/png/energy_datacenter.png similarity index 100% rename from contents/sustainable_ai/images/png/energy_datacenter.png rename to contents/core/sustainable_ai/images/png/energy_datacenter.png diff --git a/contents/sustainable_ai/images/png/ethicalai.png b/contents/core/sustainable_ai/images/png/ethicalai.png similarity index 100% rename from contents/sustainable_ai/images/png/ethicalai.png rename to contents/core/sustainable_ai/images/png/ethicalai.png diff --git a/contents/sustainable_ai/images/png/europe_energy_grid.png b/contents/core/sustainable_ai/images/png/europe_energy_grid.png similarity index 100% rename from contents/sustainable_ai/images/png/europe_energy_grid.png rename to contents/core/sustainable_ai/images/png/europe_energy_grid.png diff --git a/contents/sustainable_ai/images/png/mckinsey_analysis.png b/contents/core/sustainable_ai/images/png/mckinsey_analysis.png similarity index 100% rename from contents/sustainable_ai/images/png/mckinsey_analysis.png rename to contents/core/sustainable_ai/images/png/mckinsey_analysis.png diff --git a/contents/sustainable_ai/images/png/model_carbonfootprint.png b/contents/core/sustainable_ai/images/png/model_carbonfootprint.png similarity index 100% rename from contents/sustainable_ai/images/png/model_carbonfootprint.png rename to contents/core/sustainable_ai/images/png/model_carbonfootprint.png diff --git a/contents/sustainable_ai/images/png/model_scaling.png b/contents/core/sustainable_ai/images/png/model_scaling.png similarity index 100% rename from contents/sustainable_ai/images/png/model_scaling.png rename to contents/core/sustainable_ai/images/png/model_scaling.png diff --git a/contents/sustainable_ai/images/png/statista_chip_growth.png b/contents/core/sustainable_ai/images/png/statista_chip_growth.png similarity index 100% rename from contents/sustainable_ai/images/png/statista_chip_growth.png rename to contents/core/sustainable_ai/images/png/statista_chip_growth.png diff --git a/contents/sustainable_ai/sustainable_ai.bib b/contents/core/sustainable_ai/sustainable_ai.bib similarity index 100% rename from contents/sustainable_ai/sustainable_ai.bib rename to contents/core/sustainable_ai/sustainable_ai.bib diff --git a/contents/sustainable_ai/sustainable_ai.qmd b/contents/core/sustainable_ai/sustainable_ai.qmd similarity index 98% rename from contents/sustainable_ai/sustainable_ai.qmd rename to contents/core/sustainable_ai/sustainable_ai.qmd index 5a721446..4f766c1c 100644 --- a/contents/sustainable_ai/sustainable_ai.qmd +++ b/contents/core/sustainable_ai/sustainable_ai.qmd @@ -5,7 +5,7 @@ bibliography: sustainable_ai.bib # Sustainable AI {#sec-sustainable_ai} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-sustainable-ai-resource), [Videos](#sec-sustainable-ai-resource), [Exercises](#sec-sustainable-ai-resource), [Labs](#sec-sustainable-ai-resource) +Resources: [Slides](#sec-sustainable-ai-resource), [Videos](#sec-sustainable-ai-resource), [Exercises](#sec-sustainable-ai-resource) ::: ![_DALL·E 3 Prompt: 3D illustration on a light background of a sustainable AI network interconnected with a myriad of eco-friendly energy sources. The AI actively manages and optimizes its energy from sources like solar arrays, wind turbines, and hydro dams, emphasizing power efficiency and performance. Deep neural networks spread throughout, receiving energy from these sustainable resources._](images/png/cover_sustainable_ai.png) @@ -99,7 +99,9 @@ What drives such immense requirements? During training, models like GPT-3 learn Developing and training AI models requires immense data, computing power, and energy. However, the deployment and operation of those models also incur significant recurrent resource costs over time. AI systems are now integrated across various industries and applications and are entering the daily lives of an increasing demographic. Their cumulative operational energy and infrastructure impacts could eclipse the upfront model training. -This concept is reflected in the demand for training and inference hardware in data centers and on the edge. Inference refers to using a trained model to make predictions or decisions on real-world data. According to a [recent McKinsey analysis](https://www.mckinsey.com/~/media/McKinsey/Industries/Semiconductors/Our%20Insights/Artificial%20intelligence%20hardware%20New%20opportunities%20for%20semiconductor%20companies/Artificial-intelligence-hardware.ashx), the need for advanced systems to train ever-larger models is rapidly growing. However, inference computations already make up a dominant and increasing portion of total AI workloads, as shown in @fig-mckinsey. Running real-time inference with trained models--whether for image classification, speech recognition, or predictive analytics--invariably demands computing hardware like servers and chips. However, even a model handling thousands of facial recognition requests or natural language queries daily is dwarfed by massive platforms like Meta. Where inference on millions of photos and videos shared on social media, the infrastructure energy requirements continue to scale! +This concept is reflected in the demand for training and inference hardware in data centers and on the edge. Inference refers to using a trained model to make predictions or decisions on real-world data. According to a [recent McKinsey analysis](https://www.mckinsey.com/~/media/McKinsey/Industries/Semiconductors/Our%20Insights/Artificial%20intelligence%20hardware%20New%20opportunities%20for%20semiconductor%20companies/Artificial-intelligence-hardware.ashx), the need for advanced systems to train ever-larger models is rapidly growing. + +However, inference computations already make up a dominant and increasing portion of total AI workloads, as shown in @fig-mckinsey. Running real-time inference with trained models--whether for image classification, speech recognition, or predictive analytics--invariably demands computing hardware like servers and chips. However, even a model handling thousands of facial recognition requests or natural language queries daily is dwarfed by massive platforms like Meta. Where inference on millions of photos and videos shared on social media, the infrastructure energy requirements continue to scale! ![Market size for inference and training hardware. Source: [McKinsey.](https://www.mckinsey.com/~/media/McKinsey/Industries/Semiconductors/Our%20Insights/Artificial%20intelligence%20hardware%20New%20opportunities%20for%20semiconductor%20companies/Artificial-intelligence-hardware.ashx)](images/png/mckinsey_analysis.png){#fig-mckinsey} @@ -429,7 +431,7 @@ Access to the right frameworks and tools is essential to effectively implementin Several software libraries and development environments are specifically tailored for Green AI. These tools often include features for optimizing AI models to reduce their computational load and, consequently, their energy consumption. For example, libraries in PyTorch and TensorFlow that support model pruning, quantization, and efficient neural network architectures enable developers to build AI systems that require less processing power and energy. Additionally, open-source communities like the [Green Software Foundation](https://github.com/Green-Software-Foundation) are creating a centralized carbon intensity metric and building software for carbon-aware computing. -Energy monitoring tools are crucial for Green AI, as they allow developers to measure and analyze the energy consumption of their AI systems. By providing detailed insights into where and how energy is being used, these tools enable developers to make informed decisions about optimizing their models for better energy efficiency. This can involve adjustments in algorithm design, hardware selection, cloud computing software selection, or operational parameters. @fig-azuredashboard is a screenshot of an energy consumption dashboard provided by Microsoft's cloud services platform. +Energy monitoring tools are crucial for Green AI, as they allow developers to measure and analyze the energy consumption of their AI systems. @fig-azuredashboard is a screenshot of an energy consumption dashboard provided by Microsoft's cloud services platform. By providing detailed insights into where and how energy is being used, these tools enable developers to make informed decisions about optimizing their models for better energy efficiency. This can involve adjustments in algorithm design, hardware selection, cloud computing software selection, or operational parameters. ![Microsoft Azure energy consumption dashboard. Source: [Will Buchanan.](https://techcommunity.microsoft.com/t5/green-tech-blog/charting-the-path-towards-sustainable-ai-with-azure-machine/ba-p/2866923)](images/png/azure_dashboard.png){#fig-azuredashboard} @@ -703,12 +705,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * @exr-mle ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer hands-on labs that allow students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: diff --git a/contents/training/images/jpeg/activation-functions3.jpg b/contents/core/training/images/jpeg/activation-functions3.jpg similarity index 100% rename from contents/training/images/jpeg/activation-functions3.jpg rename to contents/core/training/images/jpeg/activation-functions3.jpg diff --git a/contents/training/images/png/ai_training.png b/contents/core/training/images/png/ai_training.png similarity index 100% rename from contents/training/images/png/ai_training.png rename to contents/core/training/images/png/ai_training.png diff --git a/contents/training/images/png/aitrainingfit.png b/contents/core/training/images/png/aitrainingfit.png similarity index 100% rename from contents/training/images/png/aitrainingfit.png rename to contents/core/training/images/png/aitrainingfit.png diff --git a/contents/training/images/png/aitrainingnn.png b/contents/core/training/images/png/aitrainingnn.png similarity index 100% rename from contents/training/images/png/aitrainingnn.png rename to contents/core/training/images/png/aitrainingnn.png diff --git a/contents/training/images/png/aitrainingpara.png b/contents/core/training/images/png/aitrainingpara.png similarity index 100% rename from contents/training/images/png/aitrainingpara.png rename to contents/core/training/images/png/aitrainingpara.png diff --git a/contents/training/images/png/aitrainingroof.png b/contents/core/training/images/png/aitrainingroof.png similarity index 100% rename from contents/training/images/png/aitrainingroof.png rename to contents/core/training/images/png/aitrainingroof.png diff --git a/contents/training/images/png/aitrainingsgd.png b/contents/core/training/images/png/aitrainingsgd.png similarity index 100% rename from contents/training/images/png/aitrainingsgd.png rename to contents/core/training/images/png/aitrainingsgd.png diff --git a/contents/training/images/png/fits.png b/contents/core/training/images/png/fits.png similarity index 100% rename from contents/training/images/png/fits.png rename to contents/core/training/images/png/fits.png diff --git a/contents/training/images/png/graph.png b/contents/core/training/images/png/graph.png similarity index 100% rename from contents/training/images/png/graph.png rename to contents/core/training/images/png/graph.png diff --git a/contents/training/training.bib b/contents/core/training/training.bib similarity index 100% rename from contents/training/training.bib rename to contents/core/training/training.bib diff --git a/contents/training/training.qmd b/contents/core/training/training.qmd similarity index 98% rename from contents/training/training.qmd rename to contents/core/training/training.qmd index 95c93fe7..80ba9dbe 100644 --- a/contents/training/training.qmd +++ b/contents/core/training/training.qmd @@ -5,7 +5,7 @@ bibliography: training.bib # AI Training {#sec-ai_training} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ai-training-resource), [Videos](#sec-ai-frameworks-resource), [Exercises](#sec-ai-training-resource), [Labs](#sec-ai-training-resource) +Resources: [Slides](#sec-ai-training-resource), [Videos](#sec-ai-frameworks-resource), [Exercises](#sec-ai-training-resource) ::: ![_DALL·E 3 Prompt: An illustration for AI training, depicting a neural network with neurons that are being repaired and firing. The scene includes a vast network of neurons, each glowing and firing to represent activity and learning. Among these neurons, small figures resembling engineers and scientists are actively working, repairing and tweaking the neurons. These miniature workers symbolize the process of training the network, adjusting weights and biases to achieve convergence. The entire scene is a visual metaphor for the intricate and collaborative effort involved in AI training, with the workers representing the continuous optimization and learning within a neural network. The background is a complex array of interconnected neurons, creating a sense of depth and complexity._](images/png/ai_training.png) @@ -72,10 +72,12 @@ How is this process defined mathematically? Formally, neural networks are mathem ### Neural Network Notation -Diving into the details, the core of a neural network can be viewed as a sequence of alternating linear and nonlinear operations, as show in @fig-neural-net-diagram: +The core of a neural network can be viewed as a sequence of alternating linear and nonlinear operations, as shown in @fig-neural-net-diagram. ![Neural network diagram. Source: astroML.](images/png/aitrainingnn.png){#fig-neural-net-diagram} +Neural networks are structured with layers of neurons connected by weights (representing linear operations) and activation functions (representing nonlinear operations). By examining the figure, we see how information flows through the network, starting from the input layer, passing through one or more hidden layers, and finally reaching the output layer. Each connection between neurons represents a weight, while each neuron typically applies a nonlinear activation function to its inputs. + The neural network operates by taking an input vector $x_i$ and passing it through a series of layers, each of which performs linear and non-linear operations. The output of the network at each layer $A_j$ can be represented as: $$ @@ -1040,9 +1042,9 @@ The batch size used during neural network training and inference significantly i Specifically, let's look at the arithmetic intensity of matrix multiplication during neural network training. This measures the ratio between computational operations and memory transfers. The matrix multiply of two matrices of size $N \times M$ and $M \times B$ requires $N \times M \times B$ multiply-accumulate operations, but only transfers of $N \times M + M \times B$ matrix elements. -As we increase the batch size $B$, the number of arithmetic operations grows faster than the memory transfers. For example, with a batch size of 1, we need $N \times M$ operations and $N + M$ transfers, giving an arithmetic intensity ratio of around $\frac{N \times M}{N+M}$. But with a large batch size of 128, the intensity ratio becomes $\frac{128 \times N \times M}{N \times M + M \times 128} \approx 128$. Using a larger batch size shifts the overall computation from memory-bounded to more compute-bounded. AI training uses large batch sizes and is generally limited by peak arithmetic computational performance, i.e., Application 3 in @fig-roofline. +As we increase the batch size $B$, the number of arithmetic operations grows faster than the memory transfers. For example, with a batch size of 1, we need $N \times M$ operations and $N + M$ transfers, giving an arithmetic intensity ratio of around $\frac{N \times M}{N+M}$. But with a large batch size of 128, the intensity ratio becomes $\frac{128 \times N \times M}{N \times M + M \times 128} \approx 128$. -Therefore, batched matrix multiplication is far more computationally intensive than memory access bound. This has implications for hardware design and software optimizations, which we will cover next. The key insight is that we can significantly alter the computational profile and bottlenecks posed by neural network training and inference by tuning the batch size. +Using a larger batch size shifts the overall computation from memory-bounded to more compute-bounded. AI training uses large batch sizes and is generally limited by peak arithmetic computational performance, i.e., Application 3 in @fig-roofline. Therefore, batched matrix multiplication is far more computationally intensive than memory access bound. This has implications for hardware design and software optimizations, which we will cover next. The key insight is that we can significantly alter the computational profile and bottlenecks posed by neural network training and inference by tuning the batch size. ![AI training roofline model.](images/png/aitrainingroof.png){#fig-roofline} diff --git a/contents/workflow/images/png/ML_life_cycle.png b/contents/core/workflow/images/png/ML_life_cycle.png similarity index 100% rename from contents/workflow/images/png/ML_life_cycle.png rename to contents/core/workflow/images/png/ML_life_cycle.png diff --git a/contents/workflow/images/png/comparingdlandml.png b/contents/core/workflow/images/png/comparingdlandml.png similarity index 100% rename from contents/workflow/images/png/comparingdlandml.png rename to contents/core/workflow/images/png/comparingdlandml.png diff --git a/contents/workflow/images/png/cover_ai_workflow.png b/contents/core/workflow/images/png/cover_ai_workflow.png similarity index 100% rename from contents/workflow/images/png/cover_ai_workflow.png rename to contents/core/workflow/images/png/cover_ai_workflow.png diff --git a/contents/workflow/images/png/embeddedai.png b/contents/core/workflow/images/png/embeddedai.png similarity index 100% rename from contents/workflow/images/png/embeddedai.png rename to contents/core/workflow/images/png/embeddedai.png diff --git a/contents/workflow/workflow.bib b/contents/core/workflow/workflow.bib similarity index 100% rename from contents/workflow/workflow.bib rename to contents/core/workflow/workflow.bib diff --git a/contents/workflow/workflow.qmd b/contents/core/workflow/workflow.qmd similarity index 84% rename from contents/workflow/workflow.qmd rename to contents/core/workflow/workflow.qmd index fab73039..25fd6cd2 100644 --- a/contents/workflow/workflow.qmd +++ b/contents/core/workflow/workflow.qmd @@ -5,15 +5,15 @@ bibliography: workflow.bib # AI Workflow {#sec-ai_workflow} ::: {.content-visible when-format="html"} -Resources: [Slides](#sec-ai-workflow-resource), [Videos](#sec-ai-workflow-resource), [Exercises](#sec-ai-workflow-resource), [Labs](#sec-ai-workflow-resource) +Resources: [Slides](#sec-ai-workflow-resource), [Videos](#sec-ai-workflow-resource), [Exercises](#sec-ai-workflow-resource) ::: ![_DALL·E 3 Prompt: Create a rectangular illustration of a stylized flowchart representing the AI workflow/pipeline. From left to right, depict the stages as follows: 'Data Collection' with a database icon, 'Data Preprocessing' with a filter icon, 'Model Design' with a brain icon, 'Training' with a weight icon, 'Evaluation' with a checkmark, and 'Deployment' with a rocket. Connect each stage with arrows to guide the viewer horizontally through the AI processes, emphasizing these steps' sequential and interconnected nature._](images/png/cover_ai_workflow.png) -In this chapter, we'll explore the machine learning (ML) workflow, setting the stage for subsequent chapters that go deeper into the specifics. To ensure we see the bigger picture, this chapter offers a high-level overview of the steps involved in the ML workflow. - The ML workflow is a structured approach that guides professionals and researchers through developing, deploying, and maintaining ML models. This workflow is generally divided into several crucial stages, each contributing to the effective development of intelligent systems. +In this chapter, we will explore the machine learning workflow, setting the stage for subsequent chapters that go deeper into the specifics. This chapter focuses only presenting a high-level overview of the steps involved in the ML workflow. + ::: {.callout-tip} ## Learning Objectives @@ -36,7 +36,7 @@ The ML workflow is a structured approach that guides professionals and researche ![Multi-step design methodology for the development of a machine learning model. Commonly referred to as the machine learning lifecycle](images/png/ML_life_cycle.png){#fig-ml-life-cycle} -Developing a successful machine learning model requires a systematic workflow. This end-to-end process enables you to build, deploy, and maintain models effectively. As shown in @fig-ml-life-cycle, It typically involves the following key steps: +@fig-ml-life-cycle illustrates the systematic workflow required for developing a successful machine learning model. This end-to-end process, commonly referred to as the machine learning lifecycle, enables you to build, deploy, and maintain models effectively. It typically involves the following key steps: 1. **Problem Definition** - Start by clearly articulating the specific problem you want to solve. This focuses on your efforts during data collection and model building. 2. **Data Collection and Preparation:** Gather relevant, high-quality training data that captures all aspects of the problem. Clean and preprocess the data to prepare it for modeling. @@ -94,7 +94,7 @@ The deployment phase often requires specialized hardware and infrastructure, as As models make decisions that can impact individuals and society, ethical and legal aspects of machine learning are becoming increasingly important. Ethicists and legal advisors are needed to ensure compliance with ethical standards and legal regulations. -@tbl-mlops_roles shows a rundown of the typical roles involved. While the lines between these roles can sometimes blur, the table below provides a general overview. +Understanding the various roles involved in an ML project is crucial for its successful completion. @tbl-mlops_roles provides a general overview of these typical roles, although it's important to note that the lines between them can sometimes blur. Let's examine this breakdown: +----------------------------------------+----------------------------------------------------------------------------------------------------+ | Role | Responsibilities | @@ -128,13 +128,15 @@ As models make decisions that can impact individuals and society, ethical and le : Roles and responsibilities of people involved in MLOps. {#tbl-mlops_roles .striped .hover} -Understanding these roles is crucial for completing an ML project. As we proceed through the upcoming chapters, we'll explore each role's essence and expertise, fostering a comprehensive understanding of the complexities involved in embedded AI projects. This holistic view facilitates seamless collaboration and nurtures an environment ripe for innovation and breakthroughs. +As we proceed through the upcoming chapters, we will explore each role's essence and expertise and foster a deeper understanding of the complexities involved in AI projects. This holistic view facilitates seamless collaboration and nurtures an environment ripe for innovation and breakthroughs. ## Conclusion -This chapter has laid the foundation for understanding the machine learning workflow, a structured approach crucial for the development, deployment, and maintenance of ML models. By exploring the distinct stages of the ML lifecycle, we have gained insights into the unique challenges faced by traditional ML and embedded AI workflows, particularly in terms of resource optimization, real-time processing, data management, and hardware-software integration. These distinctions underscore the importance of tailoring workflows to meet the specific demands of the application environment. +This chapter has laid the foundation for understanding the machine learning workflow, a structured approach crucial for the development, deployment, and maintenance of ML models. We explored the unique challenges faced in ML workflows, where resource optimization, real-time processing, data management, and hardware-software integration are paramount. These distinctions underscore the importance of tailoring workflows to meet the specific demands of the application environment. + +Moreover, we emphasized the significance of multidisciplinary collaboration in ML projects. By examining the diverse roles involved, from data scientists to software engineers, we gained an overview of the teamwork necessary to navigate the experimental and resource-intensive nature of ML development. This understanding is crucial for fostering effective communication and collaboration across different domains of expertise. -The chapter emphasized the significance of multidisciplinary collaboration in ML projects. Understanding the diverse roles provides a comprehensive view of the teamwork necessary to navigate the experimental and resource-intensive nature of ML development. As we move forward to more detailed discussions in the subsequent chapters, this high-level overview equips us with a holistic perspective on the ML workflow and the various roles involved. +As we move forward to more detailed discussions in subsequent chapters, this high-level overview equips us with a holistic perspective on the ML workflow and the various roles involved. This foundation will prove important as we dive into specific aspects of machine learning, which will allow us to contextualize advanced concepts within the broader framework of ML development and deployment. ## Resources {#sec-ai-workflow-resource} @@ -167,12 +169,3 @@ To reinforce the concepts covered in this chapter, we have curated a set of exer * _Coming soon._ ::: - -:::{.callout-warning collapse="false"} - -#### Labs - -In addition to exercises, we offer a series of hands-on labs allowing students to gain practical experience with embedded AI technologies. These labs provide step-by-step guidance, enabling students to develop their skills in a structured and supportive environment. We are excited to announce that new labs will be available soon, further enriching the learning experience. - -* _Coming soon._ -::: diff --git a/contents/foreword.qmd b/contents/foreword.qmd deleted file mode 100644 index e69de29b..00000000 diff --git a/contents/front.qmd b/contents/front.qmd deleted file mode 100644 index b3930974..00000000 --- a/contents/front.qmd +++ /dev/null @@ -1,2 +0,0 @@ -# FRONT MATTER - diff --git a/contents/introduction/introduction.qmd b/contents/introduction/introduction.qmd deleted file mode 100644 index 7bbcfab7..00000000 --- a/contents/introduction/introduction.qmd +++ /dev/null @@ -1,122 +0,0 @@ ---- -bibliography: introduction.bib ---- - -# Introduction {#sec-introduction} - -![_DALL·E 3 Prompt: A detailed, rectangular, flat 2D illustration depicting a roadmap of a book's chapters on machine learning systems, set on a crisp, clean white background. The image features a winding road traveling through various symbolic landmarks. Each landmark represents a chapter topic: Introduction, ML Systems, Deep Learning, AI Workflow, Data Engineering, AI Frameworks, AI Training, Efficient AI, Model Optimizations, AI Acceleration, Benchmarking AI, On-Device Learning, Embedded AIOps, Security & Privacy, Responsible AI, Sustainable AI, AI for Good, Robust AI, Generative AI. The style is clean, modern, and flat, suitable for a technical book, with each landmark clearly labeled with its chapter title._](images/png/cover_introduction.png) - -## Overview - -In the early 1990s, [Mark Weiser](https://en.wikipedia.org/wiki/Mark_Weiser), a pioneering computer scientist, introduced the world to a revolutionary concept that would forever change how we interact with technology. This was succintly captured in the paper he wrote on "The Computer for the 21st Century" (@fig-ubiqutous). He envisioned a future where computing would be seamlessly integrated into our environments, becoming an invisible, integral part of daily life. This vision, which he termed "ubiquitous computing," promised a world where technology would serve us without demanding our constant attention or interaction. Fast forward to today, and we find ourselves on the cusp of realizing Weiser's vision, thanks to the advent and proliferation of machine learning systems. - -![Ubiqutous computing.](images/png/21st_computer.png){#fig-ubiqutous width=50%} - -In the vision of ubiquitous computing [@weiser1991computer], the integration of processors into everyday objects is just one aspect of a larger paradigm shift. The true essence of this vision lies in creating an intelligent environment that can anticipate our needs and act on our behalf, enhancing our experiences without requiring explicit commands. To achieve this level of pervasive intelligence, it is crucial to develop and deploy machine learning systems that span the entire ecosystem, from the cloud to the edge and even to the tiniest IoT devices. - -By distributing machine learning capabilities across the "computing continuum," from cloud to edge to embedded systems that surround us, we can harness the strengths of each layer while mitigating their limitations. The cloud, with its vast computational resources and storage capacity, is ideal for training complex models on large datasets and performing resource-intensive tasks. Edge devices, such as gateways and smartphones, can process data locally, enabling faster response times, improved privacy, and reduced bandwidth requirements. Finally, the tiniest IoT devices, equipped with machine learning capabilities, can make quick decisions based on sensor data, enabling highly responsive and efficient systems. - -This distributed intelligence is particularly crucial for applications that require real-time processing, such as autonomous vehicles, industrial automation, and smart healthcare. By processing data at the most appropriate layer of the computing continuum, we can ensure that decisions are made quickly and accurately, without relying on constant communication with a central server. - -The migration of machine learning intelligence across the ecosystem also enables more personalized and context-aware experiences. By learning from user behavior and preferences at the edge, devices can adapt to individual needs without compromising privacy. This localized intelligence can then be aggregated and refined in the cloud, creating a feedback loop that continuously improves the overall system. - -However, deploying machine learning systems across the computing continuum presents several challenges. Ensuring the interoperability and seamless integration of these systems requires standardized protocols and interfaces. Security and privacy concerns must also be addressed, as the distribution of intelligence across multiple layers increases the attack surface and the potential for data breaches. - -Furthermore, the varying computational capabilities and energy constraints of devices at different layers of the computing continuum necessitate the development of efficient and adaptable machine learning models. Techniques such as model compression, federated learning, and transfer learning can help address these challenges, enabling the deployment of intelligence across a wide range of devices. - -As we move towards the realization of Weiser's vision of ubiquitous computing, the development and deployment of machine learning systems across the entire ecosystem will be critical. By leveraging the strengths of each layer of the computing continuum, we can create an intelligent environment that seamlessly integrates with our daily lives, anticipating our needs and enhancing our experiences in ways that were once unimaginable. As we continue to push the boundaries of what's possible with distributed machine learning, we inch closer to a future where technology becomes an invisible but integral part of our world. @fig-applications-of-ml illustrates some common applications of AI around us. - -![Common applications of Machine Learning. Source: [EDUCBA](https://www.educba.com/applications-of-machine-learning/)](images/png/mlapplications.png){#fig-applications-of-ml} - -## What's Inside the Book - -In this book, we will explore the technical foundations of ubiquitous machine learning systems, the challenges of building and deploying these systems across the computing continuum, and the vast array of applications they enable. A unique aspect of this book is its function as a conduit to seminal scholarly works and academic research papers, aimed at enriching the reader's understanding and encouraging deeper exploration of the subject. This approach seeks to bridge the gap between pedagogical materials and cutting-edge research trends, offering a comprehensive guide that is in step with the evolving field of applied machine learning. - -To improve the learning experience, we have included a variety of supplementary materials. Throughout the book, you will find slides that summarize key concepts, videos that provide in-depth explanations and demonstrations, exercises that reinforce your understanding, and labs that offer hands-on experience with the tools and techniques discussed. These additional resources are designed to cater to different learning styles and help you gain a deeper, more practical understanding of the subject matter. - -We begin with the fundamentals, introducing key concepts in systems and machine learning, and providing a deep learning primer. We then guide you through the AI workflow, from data engineering to selecting the right AI frameworks. The training section covers efficient AI training techniques, model optimizations, and AI acceleration using specialized hardware. Deployment is addressed next, with chapters on benchmarking AI, distributed learning, and ML operations. Advanced topics like security, privacy, responsible AI, sustainable AI, robust AI, and generative AI are then explored in depth. The book concludes by highlighting the positive impact of AI and its potential for good. @fig-ml-lifecycle outlines the lifecycle of a machine learning project. - -![Machine Learning project life cycle. Source:[Medium](https://ihsanulpro.medium.com/complete-machine-learning-project-flowchart-explained-0f55e52b9381)](images/png/mlprojectlifecycle.png){#fig-ml-lifecycle} - -## How to Navigate This Book - -To get the most out of this book, we recommend a structured learning approach that leverages the various resources provided. Each chapter includes slides, videos, exercises, and labs to cater to different learning styles and reinforce your understanding. Additionally, an AI tutor bot (SocratiQ AI) is readily available to guide you through the content and provide personalized assistance. - -1. **Fundamentals (Chapters 1-3):** Start by building a strong foundation with the initial chapters, which provide an introduction to AI and cover core topics like AI systems and deep learning. - -2. **Workflow (Chapters 4-6):** With that foundation, move on to the chapters focused on practical aspects of the AI model building process like workflows, data engineering, and frameworks. - -3. **Training (Chapters 7-10):** These chapters offer insights into effectively training AI models, including techniques for efficiency, optimizations, and acceleration. - -4. **Deployment (Chapters 11-13):** Learn about deploying AI on devices and monitoring the operationalization through methods like benchmarking, on-device learning, and MLOps. - -5. **Advanced Topics (Chapters 14-18):** Critically examine topics like security, privacy, ethics, sustainability, robustness, and generative AI. - -6. **Social Impact (Chapter 19):** Explore the positive applications and potential of AI for societal good. - -7. **Conclusion (Chapter 20):** Reflect on the key takeaways and future directions in AI systems. - -While the book is designed for progressive learning, we encourage an interconnected learning approach that allows you to navigate chapters based on your interests and needs. Throughout the book, you'll find case studies and hands-on exercises that help you relate theory to real-world applications. We also recommend participating in forums and groups to engage in [discussions](https://github.com/harvard-edge/cs249r_book/discussions), debate concepts, and share insights with fellow learners. Regularly revisiting chapters can help reinforce your learning and offer new perspectives on the concepts covered. By adopting this structured yet flexible approach and actively engaging with the content and the community, you'll embark on a fulfilling and enriching learning experience that maximizes your understanding. - -## Chapter Breakdown - -Here's a closer look at what each chapter covers. We have structured the book into six main sections: Fundamentals, Workflow, Training, Deployment, Advanced Topics, and Impact. These sections closely reflect the major components of a typical machine learning pipeline, from understanding the basic concepts to deploying and maintaining AI systems in real-world applications. By organizing the content in this manner, we aim to provide a logical progression that mirrors the actual process of developing and implementing AI systems. - -### Fundamentals - -In the Fundamentals section, we lay the groundwork for understanding AI. This is far from being a thorough deep dive into the algorithms, but we aim to introduce key concepts, provide an overview of machine learning systems, and dive into the principles and algorithms of deep learning that power AI applications in their associated systems. This section equips you with the essential knowledge needed to grasp the subsequent chapters. - -1. **[Introduction:](../introduction/introduction.qmd)** This chapter sets the stage, providing an overview of AI and laying the groundwork for the chapters that follow. -2. **[ML Systems:](../ml_systems/ml_systems.qmd)** We introduce the basics of machine learning systems, the platforms where AI algorithms are widely applied. -3. **[Deep Learning Primer:](../dl_primer/dl_primer.qmd)** This chapter offers a brief introduction to the algorithms and principles that underpin AI applications in ML systems. - -### Workflow - -The Workflow section guides you through the practical aspects of building AI models. We break down the AI workflow, discuss data engineering best practices, and review popular AI frameworks. By the end of this section, you'll have a clear understanding of the steps involved in developing proficient AI applications and the tools available to streamline the process. - -4. **[AI Workflow:](../workflow/workflow.qmd)** This chapter breaks down the machine learning workflow, offering insights into the steps leading to proficient AI applications. -5. **[Data Engineering:](../data_engineering/data_engineering.qmd)** We focus on the importance of data in AI systems, discussing how to effectively manage and organize data. -6. **[AI Frameworks:](../frameworks/frameworks.qmd)** This chapter reviews different frameworks for developing machine learning models, guiding you in choosing the most suitable one for your projects. - -### Training - -In the Training section, we explore techniques for training efficient and reliable AI models. We cover strategies for achieving efficiency, model optimizations, and the role of specialized hardware in AI acceleration. This section empowers you with the knowledge to develop high-performing models that can be seamlessly integrated into AI systems. - -7. **[AI Training:](../training/training.qmd)** This chapter explores model training, exploring techniques for developing efficient and reliable models. -8. **[Efficient AI:](../efficient_ai/efficient_ai.qmd)** Here, we discuss strategies for achieving efficiency in AI applications, from computational resource optimization to performance enhancement. -9. **[Model Optimizations:](../optimizations/optimizations.qmd)** We explore various avenues for optimizing AI models for seamless integration into AI systems. -10. **[AI Acceleration:](../hw_acceleration/hw_acceleration.qmd)** We discuss the role of specialized hardware in enhancing the performance of AI systems. - -### Deployment - -The Deployment section focuses on the challenges and solutions for deploying AI models. We discuss benchmarking methods to evaluate AI system performance, techniques for on-device learning to improve efficiency and privacy, and the processes involved in ML operations. This section equips you with the skills to effectively deploy and maintain AI functionalities in AI systems. - -11. **[Benchmarking AI:](../benchmarking/benchmarking.qmd)** This chapter focuses on how to evaluate AI systems through systematic benchmarking methods. -12. **[On-Device Learning:](../ondevice_learning/ondevice_learning.qmd)** We explore techniques for localized learning, which enhances both efficiency and privacy. -13. **[ML Operations:](../ops/ops.qmd)** This chapter looks at the processes involved in the seamless integration, monitoring, and maintenance of AI functionalities. - -### Advanced Topics - -In the Advanced Topics section, We will study the critical issues surrounding AI. We address privacy and security concerns, explore the ethical principles of responsible AI, discuss strategies for sustainable AI development, examine techniques for building robust AI models, and introduce the exciting field of generative AI. This section broadens your understanding of the complex landscape of AI and prepares you to navigate its challenges. - -14. **[Security & Privacy:](../privacy_security/privacy_security.qmd)** As AI becomes more ubiquitous, this chapter addresses the crucial aspects of privacy and security in AI systems. -15. **[Responsible AI:](../responsible_ai/responsible_ai.qmd)** We discuss the ethical principles guiding the responsible use of AI, focusing on fairness, accountability, and transparency. -16. **[Sustainable AI:](../sustainable_ai/sustainable_ai.qmd)** This chapter explores practices and strategies for sustainable AI, ensuring long-term viability and reduced environmental impact. -17. **[Robust AI:](../robust_ai/robust_ai.qmd)** We discuss techniques for developing reliable and robust AI models that can perform consistently across various conditions. -18. **[Generative AI:](../generative_ai/generative_ai.qmd)** This chapter explores the algorithms and techniques behind generative AI, opening avenues for innovation and creativity. - -### Social Impact - -The Impact section highlights the transformative potential of AI in various domains. We showcase real-world applications of TinyML in healthcare, agriculture, conservation, and other areas where AI is making a positive difference. This section inspires you to leverage the power of AI for societal good and to contribute to the development of impactful solutions. - -19. **[AI for Good:](../ai_for_good/ai_for_good.qmd)** We highlight positive applications of TinyML in areas like healthcare, agriculture, and conservation. - -### Closing - -In the Closing section, we reflect on the key learnings from the book and look ahead to the future of AI. We synthesize the concepts covered, discuss emerging trends, and provide guidance on continuing your learning journey in this rapidly evolving field. This section leaves you with a comprehensive understanding of AI and the excitement to apply your knowledge in innovative ways. - -20. **[Conclusion:](../conclusion/conclusion.qmd)** The book concludes with a reflection on the key learnings and future directions in the field of AI. - -## Contribute Back - -Learning in the fast-paced world of AI is a collaborative journey. We set out to nurture a vibrant community of learners, innovators, and contributors. As you explore the concepts and engage with the exercises, we encourage you to share your insights and experiences. Whether it's a novel approach, an interesting application, or a thought-provoking question, your contributions can enrich the learning ecosystem. Engage in discussions, offer and seek guidance, and collaborate on projects to foster a culture of mutual growth and learning. By sharing knowledge, you play an important role in fostering a globally connected, informed, and empowered community. diff --git a/contents/labs/arduino/nicla_vision/kws/kws.qmd b/contents/labs/arduino/nicla_vision/kws/kws.qmd index 08fee3e4..f6a03dd9 100644 --- a/contents/labs/arduino/nicla_vision/kws/kws.qmd +++ b/contents/labs/arduino/nicla_vision/kws/kws.qmd @@ -267,7 +267,7 @@ void setup() Create two functions, `turn_off_leds()` function , to turn off all RGB LEDs ``` cpp -** +/* * @brief turn_off_leds function - turn-off all RGB LEDs */ void turn_off_leds(){ @@ -280,7 +280,7 @@ void turn_off_leds(){ Another `turn_on_led()` function is used to turn on the RGB LEDs according to the most probable result of the classifier. ``` cpp -/** +/* * @brief turn_on_leds function used to turn on the RGB LEDs * @param[in] pred_index * no: [0] ==> Red ON diff --git a/contents/labs/labs.qmd b/contents/labs/labs.qmd index 10fc8474..1cd77bdf 100644 --- a/contents/labs/labs.qmd +++ b/contents/labs/labs.qmd @@ -1,74 +1,3 @@ -# Overview {.unnumbered} - -Welcome to the hands-on labs section where you'll explore deploying ML models onto real embedded devices, which will offer a practical introduction to ML systems. Unlike traditional approaches with large-scale models, these labs focus on interacting directly with both hardware and software. They help us show case various sensor modalities across different application use cases. This approach provides valuable insights into the challenges and opportunities of deploying AI on real physical systems. - -## Learning Objectives - -By completing these labs, we hope learners will: - -:::{.callout-tip} - -* Gain proficiency in setting up and deploying ML models on supported devices, enabling you to tackle real-world ML deployment scenarios with confidence. - -* Understand the steps involved in adapting and experimenting with ML models for different applications, allowing you to optimize performance and efficiency. - -* Learn troubleshooting techniques specific to embedded ML deployments equipping you with the skills to overcome common pitfalls and challenges. - -* Acquire practical experience in deploying TinyML models on embedded devices bridging the gap between theory and practice. - -* Explore various sensor modalities and their applications expanding your understanding of how ML can be leveraged in diverse domains. - -* Foster an understanding of the real-world implications and challenges associated with ML system deployments preparing you for future projects. - -::: - -## Target Audience - -These labs are designed for: - -* **Beginners** in the field of machine learning who have a keen interest in exploring the intersection of ML and embedded systems. - -* **Developers and engineers** looking to apply ML models to real-world applications using low-power, resource-constrained devices. - -* **Enthusiasts and researchers** who want to gain practical experience in deploying AI on edge devices and understand the unique challenges involved. - -## Supported Devices - -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Exercise | [Nicla Vision](https://store.arduino.cc/products/nicla-vision) | [XIAO ESP32S3](https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/) | [Raspberry Pi](https://www.raspberrypi.com/) | -+:===========================+:===============================================================+:===========================================================================+:=============================================+ -| Installation & Setup | | | | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Keyword Spotting (KWS) | | | | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Image Classification | | | Coming soon. | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Object Detection | | | Coming soon. | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Motion Detection | | | | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ -| Small Language Models (SLM)| | | Coming soon. | -+----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ - -## Lab Structure - -Each lab follows a structured approach: - -1. **Introduction**: Explore the application and its significance in real-world scenarios. - -2. **Setup**: Step-by-step instructions to configure the hardware and software environment. - -3. **Deployment**: Guidance on training and deploying the pre-trained ML models on supported devices. - -4. **Exercises**: Hands-on tasks to modify and experiment with model parameters. - -5. **Discussion**: Analysis of results, potential improvements, and practical insights. - -## Troubleshooting and Support - -If you encounter any issues during the labs, consult the troubleshooting comments or check the FAQs within each lab. For further assistance, feel free to reach out to our support team or engage with the community forums. - -## Credits - -Special credit and thanks to [Prof. Marcelo Rovai](https://github.com/Mjrovai) for his valuable contributions to the development and continuous refinement of these labs. +# LABS +This page is intentionally left blank. diff --git a/contents/labs/overview.qmd b/contents/labs/overview.qmd new file mode 100644 index 00000000..970e1ebd --- /dev/null +++ b/contents/labs/overview.qmd @@ -0,0 +1,84 @@ +# Overview {.unnumbered} + +Welcome to the hands-on labs section where you'll explore deploying ML models onto real embedded devices, which will offer a practical introduction to ML systems. Unlike traditional approaches with large-scale models, these labs focus on interacting directly with both hardware and software. They help us show case various sensor modalities across different application use cases. This approach provides valuable insights into the challenges and opportunities of deploying AI on real physical systems. + +## Learning Objectives + +By completing these labs, we hope learners will: + +:::{.callout-tip} + +* Gain proficiency in setting up and deploying ML models on supported devices, enabling you to tackle real-world ML deployment scenarios with confidence. + +* Understand the steps involved in adapting and experimenting with ML models for different applications, allowing you to optimize performance and efficiency. + +* Learn troubleshooting techniques specific to embedded ML deployments equipping you with the skills to overcome common pitfalls and challenges. + +* Acquire practical experience in deploying TinyML models on embedded devices bridging the gap between theory and practice. + +* Explore various sensor modalities and their applications expanding your understanding of how ML can be leveraged in diverse domains. + +* Foster an understanding of the real-world implications and challenges associated with ML system deployments preparing you for future projects. + +::: + +## Target Audience + +These labs are designed for: + +* **Beginners** in the field of machine learning who have a keen interest in exploring the intersection of ML and embedded systems. + +* **Developers and engineers** looking to apply ML models to real-world applications using low-power, resource-constrained devices. + +* **Enthusiasts and researchers** who want to gain practical experience in deploying AI on edge devices and understand the unique challenges involved. + +## Supported Devices + +We have included laboratory materials for three key devices that represent different hardware profiles and capabilities. + +* Nicla Vision: Optimized for vision-based applications like image classification and object detection, ideal for compact, low-power use cases. +* XIAO ESP32S3: A versatile, compact board suitable for keyword spotting and motion detection tasks. +* Raspberry Pi: A flexible platform for more computationally intensive tasks, including small language models and various classification and detection applications. + ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Exercise | [Nicla Vision](https://store.arduino.cc/products/nicla-vision) | [XIAO ESP32S3](https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/) | [Raspberry Pi](https://www.raspberrypi.com/) | ++:===========================+:===============================================================+:===========================================================================+:=============================================+ +| Installation & Setup | ✓ | ✓ | ✓ | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Keyword Spotting (KWS) | ✓ | ✓ | | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Image Classification | ✓ | ✓ | ✓ | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Object Detection | ✓ | ✓ | ✓ | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Motion Detection | ✓ | ✓ | | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ +| Small Language Models (SLM)| | | ✓ | ++----------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------+ + +## Lab Structure + +Each lab follows a structured approach: + +1. **Introduction**: Explore the application and its significance in real-world scenarios. + +2. **Setup**: Step-by-step instructions to configure the hardware and software environment. + +3. **Deployment**: Guidance on training and deploying the pre-trained ML models on supported devices. + +4. **Exercises**: Hands-on tasks to modify and experiment with model parameters. + +5. **Discussion**: Analysis of results, potential improvements, and practical insights. + +## Recommended Lab Sequence + +If you're new to embedded ML, we suggest starting with setup and keyword spotting before moving on to image classification and object detection. Raspberry Pi users can explore more advanced tasks, like small language models, after familiarizing themselves with the basics. + +## Troubleshooting and Support + +If you encounter any issues during the labs, consult the troubleshooting comments or check the FAQs within each lab. For further assistance, feel free to reach out to our support team or engage with the community forums. + +## Credits + +Special credit and thanks to [Prof. Marcelo Rovai](https://github.com/Mjrovai) for his valuable contributions to the development and continuous refinement of these labs. + diff --git a/contents/labs/raspi/image_classification/image_classification.qmd b/contents/labs/raspi/image_classification/image_classification.qmd index 81fc56fa..472934db 100644 --- a/contents/labs/raspi/image_classification/image_classification.qmd +++ b/contents/labs/raspi/image_classification/image_classification.qmd @@ -131,11 +131,10 @@ tflite_11_05_08/mobilenet_v2_1.0_224_quant.tgz tar xzf mobilenet_v2_1.0_224_quant.tgz ``` -Get its labels: +Get its [labels](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/IMG_CLASS/models/labels.txt): ```bash -wget https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/ -lite/java/demo/app/src/main/assets/labels_mobilenet_quant_v1_224.txt -O labels.txt +wget https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/IMG_CLASS/models/labels.txt ``` In the end, you should have the models in its directory: @@ -292,7 +291,7 @@ So, let's reshape the image, add the batch dimension, and see the result: ```python img = img.resize((input_details[0]['shape'][1], input_details[0]['shape'][2])) -input_data = np.expand_dims(img, axis=0 +input_data = np.expand_dims(img, axis=0) input_data.shape ``` @@ -422,30 +421,30 @@ def image_classification(img_path, model_path, labels, top_k_results=5): # Get input and output tensors input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() - + # Preprocess img = img.resize((input_details[0]['shape'][1], input_details[0]['shape'][2])) input_data = np.expand_dims(img, axis=0) - + # Inference on Raspi-Zero interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() # Obtain results and map them to the classes predictions = interpreter.get_tensor(output_details[0]['index'])[0] - + # Get indices of the top k results top_k_indices = np.argsort(predictions)[::-1][:top_k_results] - + # Get quantization parameters scale, zero_point = output_details[0]['quantization'] - + # Dequantize the output and apply softmax dequantized_output = (predictions.astype(np.float32) - zero_point) * scale exp_output = np.exp(dequantized_output - np.max(dequantized_output)) probabilities = exp_output / np.sum(exp_output) - + print("\n\t[PREDICTION] [Prob]\n") for i in range(top_k_results): print("\t{:20}: {}%".format( @@ -483,7 +482,7 @@ On the notebook [Cifar 10 - Image Classification on a Raspi with TFLite](https:/ ```bash source ~/tflite/bin/activate - ``` +``` 2. Now, let's create a .pth file in your virtual environment to add the system site-packages path: @@ -578,6 +577,7 @@ Once we have defined our Machine Learning project goal, the next and most crucia 2. Let's create a new Python script combining image capture with a web server. We'll call it `get_img_data.py`:

+ ```python from flask import Flask, Response, render_template_string, request, redirect, url_for from picamera2 import Picamera2 @@ -766,7 +766,7 @@ if __name__ == '__main__': ```bash python3 get_img_data.py - ``` +``` 4. Access the web interface: @@ -1147,11 +1147,11 @@ def image_classification(img_path, model_path, labels, top_k_results=3, # Load the TFLite model interpreter = tflite.Interpreter(model_path=model_path) interpreter.allocate_tensors() - + # Get input and output tensors input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() - + # Preprocess img = img.resize((input_details[0]['shape'][1], input_details[0]['shape'][2])) @@ -1167,20 +1167,20 @@ def image_classification(img_path, model_path, labels, top_k_results=3, input_data = np.expand_dims(img_array, axis=0) else: # float32 input_data = np.expand_dims(np.array(img, dtype=np.float32), axis=0) / 255.0 - + # Inference on Raspi-Zero start_time = time.time() interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() end_time = time.time() inference_time = (end_time - start_time) * 1000 # Convert to milliseconds - + # Obtain results predictions = interpreter.get_tensor(output_details[0]['index'])[0] - + # Get indices of the top k results top_k_indices = np.argsort(predictions)[::-1][:top_k_results] - + # Handle output based on type output_dtype = output_details[0]['dtype'] if output_dtype in [np.int8, np.uint8]: @@ -1194,7 +1194,7 @@ def image_classification(img_path, model_path, labels, top_k_results=3, probabilities = exp_preds / np.sum(exp_preds) else: probabilities = predictions - + print("\n\t[PREDICTION] [Prob]\n") for i in range(top_k_results): print("\t{:20}: {:.1f}%".format( diff --git a/contents/labs/raspi/llm/images/jpeg/cover.jpg b/contents/labs/raspi/llm/images/jpeg/cover.jpg new file mode 100644 index 00000000..93a7a596 Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/cover.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/halo.jpg b/contents/labs/raspi/llm/images/jpeg/halo.jpg new file mode 100644 index 00000000..a0f5a513 Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/halo.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/image _test_2.jpg b/contents/labs/raspi/llm/images/jpeg/image _test_2.jpg new file mode 100644 index 00000000..54fcdce2 Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/image _test_2.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/image_test_1.jpg b/contents/labs/raspi/llm/images/jpeg/image_test_1.jpg new file mode 100644 index 00000000..c5c036f6 Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/image_test_1.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/image_test_3.jpg b/contents/labs/raspi/llm/images/jpeg/image_test_3.jpg new file mode 100644 index 00000000..7df9f81e Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/image_test_3.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/llama3_2.jpg b/contents/labs/raspi/llm/images/jpeg/llama3_2.jpg new file mode 100644 index 00000000..91ce40cc Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/llama3_2.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/paris.jpg b/contents/labs/raspi/llm/images/jpeg/paris.jpg new file mode 100644 index 00000000..a87b7f7d Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/paris.jpg differ diff --git a/contents/labs/raspi/llm/images/jpeg/slm-example.jpg b/contents/labs/raspi/llm/images/jpeg/slm-example.jpg new file mode 100644 index 00000000..bc9239db Binary files /dev/null and b/contents/labs/raspi/llm/images/jpeg/slm-example.jpg differ diff --git a/contents/labs/raspi/llm/images/png/app-machu-picchu.png b/contents/labs/raspi/llm/images/png/app-machu-picchu.png new file mode 100644 index 00000000..a389034c Binary files /dev/null and b/contents/labs/raspi/llm/images/png/app-machu-picchu.png differ diff --git a/contents/labs/raspi/llm/images/png/bench.png b/contents/labs/raspi/llm/images/png/bench.png new file mode 100644 index 00000000..2765db96 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/bench.png differ diff --git a/contents/labs/raspi/llm/images/png/block-2.png b/contents/labs/raspi/llm/images/png/block-2.png new file mode 100644 index 00000000..a21b3323 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/block-2.png differ diff --git a/contents/labs/raspi/llm/images/png/block-fc-proj.png b/contents/labs/raspi/llm/images/png/block-fc-proj.png new file mode 100644 index 00000000..0775efbf Binary files /dev/null and b/contents/labs/raspi/llm/images/png/block-fc-proj.png differ diff --git a/contents/labs/raspi/llm/images/png/calc_real.png b/contents/labs/raspi/llm/images/png/calc_real.png new file mode 100644 index 00000000..1df9257a Binary files /dev/null and b/contents/labs/raspi/llm/images/png/calc_real.png differ diff --git a/contents/labs/raspi/llm/images/png/cooler.png b/contents/labs/raspi/llm/images/png/cooler.png new file mode 100644 index 00000000..22dcef7b Binary files /dev/null and b/contents/labs/raspi/llm/images/png/cooler.png differ diff --git a/contents/labs/raspi/llm/images/png/embed_models.png b/contents/labs/raspi/llm/images/png/embed_models.png new file mode 100644 index 00000000..2b61cc03 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/embed_models.png differ diff --git a/contents/labs/raspi/llm/images/png/gemma.png b/contents/labs/raspi/llm/images/png/gemma.png new file mode 100644 index 00000000..ee265439 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/gemma.png differ diff --git a/contents/labs/raspi/llm/images/png/gemma_2.png b/contents/labs/raspi/llm/images/png/gemma_2.png new file mode 100644 index 00000000..d4d39a05 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/gemma_2.png differ diff --git a/contents/labs/raspi/llm/images/png/htop.png b/contents/labs/raspi/llm/images/png/htop.png new file mode 100644 index 00000000..597fb8b2 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/htop.png differ diff --git a/contents/labs/raspi/llm/images/png/image_test-path.png b/contents/labs/raspi/llm/images/png/image_test-path.png new file mode 100644 index 00000000..e7411cee Binary files /dev/null and b/contents/labs/raspi/llm/images/png/image_test-path.png differ diff --git a/contents/labs/raspi/llm/images/png/install-ollama-rpi5.png b/contents/labs/raspi/llm/images/png/install-ollama-rpi5.png new file mode 100644 index 00000000..a02f0e30 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/install-ollama-rpi5.png differ diff --git a/contents/labs/raspi/llm/images/png/install-ollama.png b/contents/labs/raspi/llm/images/png/install-ollama.png new file mode 100644 index 00000000..f4bf16f2 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/install-ollama.png differ diff --git a/contents/labs/raspi/llm/images/png/jupyter.png b/contents/labs/raspi/llm/images/png/jupyter.png new file mode 100644 index 00000000..4e7afebe Binary files /dev/null and b/contents/labs/raspi/llm/images/png/jupyter.png differ diff --git a/contents/labs/raspi/llm/images/png/llama3_2_1b_performance.png b/contents/labs/raspi/llm/images/png/llama3_2_1b_performance.png new file mode 100644 index 00000000..b217bb99 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/llama3_2_1b_performance.png differ diff --git a/contents/labs/raspi/llm/images/png/llama3_2_3b_performance.png b/contents/labs/raspi/llm/images/png/llama3_2_3b_performance.png new file mode 100644 index 00000000..c75457b8 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/llama3_2_3b_performance.png differ diff --git a/contents/labs/raspi/llm/images/png/llms-slm.png b/contents/labs/raspi/llm/images/png/llms-slm.png new file mode 100644 index 00000000..8ce179c0 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/llms-slm.png differ diff --git a/contents/labs/raspi/llm/images/png/menu.png b/contents/labs/raspi/llm/images/png/menu.png new file mode 100644 index 00000000..b9d98bb8 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/menu.png differ diff --git a/contents/labs/raspi/llm/images/png/paris-2.png b/contents/labs/raspi/llm/images/png/paris-2.png new file mode 100644 index 00000000..e840b520 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/paris-2.png differ diff --git a/contents/labs/raspi/llm/images/png/paris-app.png b/contents/labs/raspi/llm/images/png/paris-app.png new file mode 100644 index 00000000..f153f474 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/paris-app.png differ diff --git a/contents/labs/raspi/llm/images/png/paris-infer-1.png b/contents/labs/raspi/llm/images/png/paris-infer-1.png new file mode 100644 index 00000000..09ee5945 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/paris-infer-1.png differ diff --git a/contents/labs/raspi/llm/images/png/paris-lat-lon.png b/contents/labs/raspi/llm/images/png/paris-lat-lon.png new file mode 100644 index 00000000..0dcdd1eb Binary files /dev/null and b/contents/labs/raspi/llm/images/png/paris-lat-lon.png differ diff --git a/contents/labs/raspi/llm/images/png/rag-1.png b/contents/labs/raspi/llm/images/png/rag-1.png new file mode 100644 index 00000000..c76c96b8 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/rag-1.png differ diff --git a/contents/labs/raspi/llm/images/png/rag-2-2.png b/contents/labs/raspi/llm/images/png/rag-2-2.png new file mode 100644 index 00000000..658366d1 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/rag-2-2.png differ diff --git a/contents/labs/raspi/llm/images/png/resourses-temp.png b/contents/labs/raspi/llm/images/png/resourses-temp.png new file mode 100644 index 00000000..cd0ad4a8 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/resourses-temp.png differ diff --git a/contents/labs/raspi/llm/images/png/run-gemma.png b/contents/labs/raspi/llm/images/png/run-gemma.png new file mode 100644 index 00000000..a9afc4af Binary files /dev/null and b/contents/labs/raspi/llm/images/png/run-gemma.png differ diff --git a/contents/labs/raspi/llm/images/png/script-fc.png b/contents/labs/raspi/llm/images/png/script-fc.png new file mode 100644 index 00000000..00c2dc42 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/script-fc.png differ diff --git a/contents/labs/raspi/llm/images/png/small_and_multimodal.png b/contents/labs/raspi/llm/images/png/small_and_multimodal.png new file mode 100644 index 00000000..e1917392 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/small_and_multimodal.png differ diff --git a/contents/labs/raspi/llm/images/png/temp_comp.png b/contents/labs/raspi/llm/images/png/temp_comp.png new file mode 100644 index 00000000..258beb9c Binary files /dev/null and b/contents/labs/raspi/llm/images/png/temp_comp.png differ diff --git a/contents/labs/raspi/llm/images/png/verbose.png b/contents/labs/raspi/llm/images/png/verbose.png new file mode 100644 index 00000000..e2d20de8 Binary files /dev/null and b/contents/labs/raspi/llm/images/png/verbose.png differ diff --git a/contents/labs/raspi/llm/llm.qmd b/contents/labs/raspi/llm/llm.qmd index dc1f7fd4..90098990 100644 --- a/contents/labs/raspi/llm/llm.qmd +++ b/contents/labs/raspi/llm/llm.qmd @@ -1,6 +1,1324 @@ # Small Language Models (SLM) {.unnumbered} +![*DALL·E prompt - A 1950s-style cartoon illustration showing a Raspberry Pi running a small language model at the edge. The Raspberry Pi is stylized in a retro-futuristic way with rounded edges and chrome accents, connected to playful cartoonish sensors and devices. Speech bubbles are floating around, representing language processing, and the background has a whimsical landscape of interconnected devices with wires and small gadgets, all drawn in a vintage cartoon style. The color palette uses soft pastel colors and bold outlines typical of 1950s cartoons, giving a fun and nostalgic vibe to the scene.*](images/jpeg/cover.jpg) +## Introduction -## *Coming soon.* +In the fast-growing area of artificial intelligence, edge computing presents an opportunity to decentralize capabilities traditionally reserved for powerful, centralized servers. This lab explores the practical integration of small versions of traditional large language models (LLMs) into a Raspberry Pi 5, transforming this edge device into an AI hub capable of real-time, on-site data processing. +As large language models grow in size and complexity, Small Language Models (SLMs) offer a compelling alternative for edge devices, striking a balance between performance and resource efficiency. By running these models directly on Raspberry Pi, we can create responsive, privacy-preserving applications that operate even in environments with limited or no internet connectivity. + +This lab will guide you through setting up, optimizing, and leveraging SLMs on Raspberry Pi. We will explore the installation and utilization of [Ollama](https://ollama.com/). This open-source framework allows us to run LLMs locally on our machines (our desktops or edge devices such as the Raspberry Pis or NVidia Jetsons). Ollama is designed to be efficient, scalable, and easy to use, making it a good option for deploying AI models such as Microsoft Phi, Google Gemma, Meta Llama, and LLaVa (Multimodal). We will integrate some of those models into projects using Python's ecosystem, exploring their potential in real-world scenarios (or at least point in this direction). + +![](images/jpeg/slm-example.jpg) + +## Setup + +We could use any Raspi model in the previous labs, but here, the choice must be the Raspberry Pi 5 (Raspi-5). It is a robust platform that substantially upgrades the last version 4, equipped with the Broadcom BCM2712, a 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU featuring Cryptographic Extension and enhanced caching capabilities. It boasts a VideoCore VII GPU, dual 4Kp60 HDMI® outputs with HDR, and a 4Kp60 HEVC decoder. Memory options include 4GB and 8GB of high-speed LPDDR4X SDRAM, with 8GB being our choice to run SLMs. It also features expandable storage via a microSD card slot and a PCIe 2.0 interface for fast peripherals such as M.2 SSDs (Solid State Drives). + +> For real SSL applications, SSDs are a better option than SD cards. + +By the way, as [Alasdair Allan](https://www.hackster.io/aallan) discussed, inferencing directly on the Raspberry Pi 5 CPU—with no GPU acceleration—is now on par with the performance of the Coral TPU. + +![](images/png/bench.png) + +For more info, please see the complete article: [Benchmarking TensorFlow and TensorFlow Lite on Raspberry Pi 5](https://www.hackster.io/news/benchmarking-tensorflow-and-tensorflow-lite-on-raspberry-pi-5-b9156d58a6a2?mc_cid=0cab3d08f4&mc_eid=e96256ccba). + +### Raspberry Pi Active Cooler + +We suggest installing an Active Cooler, a dedicated clip-on cooling solution for Raspberry Pi 5 (Raspi-5), for this lab. It combines an aluminum heatsink with a temperature-controlled blower fan to keep the Raspi-5 operating comfortably under heavy loads, such as running SLMs. + +![](images/png/cooler.png) + +The Active Cooler has pre-applied thermal pads for heat transfer and is mounted directly to the Raspberry Pi 5 board using spring-loaded push pins. The Raspberry Pi firmware actively manages it: at 60°C, the blower’s fan will be turned on; at 67.5°C, the fan speed will be increased; and finally, at 75°C, the fan increases to full speed. The blower’s fan will spin down automatically when the temperature drops below these limits. + +![](images/png/temp_comp.png) + +> To prevent overheating, all Raspberry Pi boards begin to throttle the processor when the temperature reaches 80°Cand throttle even further when it reaches the maximum temperature of 85°C (more detail [here](https://www.raspberrypi.com/news/heating-and-cooling-raspberry-pi-5/)). + +## Generative AI (GenAI) + +Generative AI is an artificial intelligence system capable of creating new, original content across various mediums such as **text, images, audio, and video**. These systems learn patterns from existing data and use that knowledge to generate novel outputs that didn't previously exist. **Large Language Models (LLMs)**, **Small Language Models (SLMs)**, and **multimodal models** can all be considered types of GenAI when used for generative tasks. + +GenAI provides the conceptual framework for AI-driven content creation, with LLMs serving as powerful general-purpose text generators. SLMs adapt this technology for edge computing, while multimodal models extend GenAI capabilities across different data types. Together, they represent a spectrum of generative AI technologies, each with its strengths and applications, collectively driving AI-powered content creation and understanding. + +### Large Language Models (LLMs) + +Large Language Models (LLMs) are advanced artificial intelligence systems that understand, process, and generate human-like text. These models are characterized by their massive scale in terms of the amount of data they are trained on and the number of parameters they contain. Critical aspects of LLMs include: + +1. **Size**: LLMs typically contain billions of parameters. For example, GPT-3 has 175 billion parameters, while some newer models exceed a trillion parameters. + +2. **Training Data**: They are trained on vast amounts of text data, often including books, websites, and other diverse sources, amounting to hundreds of gigabytes or even terabytes of text. + +3. **Architecture**: Most LLMs use [transformer-based architectures](https://en.wikipedia.org/wiki/Transformer_(deep_learning_architecture)), which allow them to process and generate text by paying attention to different parts of the input simultaneously. + +4. **Capabilities**: LLMs can perform a wide range of language tasks without specific fine-tuning, including: + - Text generation + - Translation + - Summarization + - Question answering + - Code generation + - Logical reasoning + +5. **Few-shot Learning**: They can often understand and perform new tasks with minimal examples or instructions. + +6. **Resource-Intensive**: Due to their size, LLMs typically require significant computational resources to run, often needing powerful GPUs or TPUs. + +7. **Continual Development**: The field of LLMs is rapidly evolving, with new models and techniques constantly emerging. + +8. **Ethical Considerations**: The use of LLMs raises important questions about bias, misinformation, and the environmental impact of training such large models. + +9. **Applications**: LLMs are used in various fields, including content creation, customer service, research assistance, and software development. + +10. **Limitations**: Despite their power, LLMs can produce incorrect or biased information and lack true understanding or reasoning capabilities. + +We must note that we use large models beyond text, calling them *multi-modal models*. These models integrate and process information from multiple types of input simultaneously. They are designed to understand and generate content across various forms of data, such as text, images, audio, and video. + +Certainly. Let's define open and closed models in the context of AI and language models: + +### Closed vs Open Models: + +**Closed models**, also called proprietary models, are AI models whose internal workings, code, and training data are not publicly disclosed. Examples: GPT-4 (by OpenAI), Claude (by Anthropic), Gemini (by Google). + +**Open models**, also known as open-source models, are AI models whose underlying code, architecture, and often training data are publicly available and accessible. Examples: Gemma (by Google), LLaMA (by Meta) and Phi (by Microsoft). + +Open models are particularly relevant for running models on edge devices like Raspberry Pi as they can be more easily adapted, optimized, and deployed in resource-constrained environments. Still, it is crucial to verify their Licenses. Open models come with various open-source licenses that may affect their use in commercial applications, while closed models have clear, albeit restrictive, terms of service. + +![Adapted from https://arxiv.org/pdf/2304.13712](images/png/llms-slm.png) + +### Small Language Models (SLMs) + +In the context of edge computing on devices like Raspberry Pi, full-scale LLMs are typically too large and resource-intensive to run directly. This limitation has driven the development of smaller, more efficient models, such as the Small Language Models (SLMs). + +SLMs are compact versions of LLMs designed to run efficiently on resource-constrained devices such as smartphones, IoT devices, and single-board computers like the Raspberry Pi. These models are significantly smaller in size and computational requirements than their larger counterparts while still retaining impressive language understanding and generation capabilities. + +Key characteristics of SLMs include: + +1. **Reduced parameter count**: Typically ranging from a few hundred million to a few billion parameters, compared to two-digit billions in larger models. + +2. **Lower memory footprint**: Requiring, at most, a few gigabytes of memory rather than tens or hundreds of gigabytes. + +3. **Faster inference time**: Can generate responses in milliseconds to seconds on edge devices. + +4. **Energy efficiency**: Consuming less power, making them suitable for battery-powered devices. + +5. **Privacy-preserving**: Enabling on-device processing without sending data to cloud servers. + +6. **Offline functionality**: Operating without an internet connection. + +SLMs achieve their compact size through various techniques such as knowledge distillation, model pruning, and quantization. While they may not match the broad capabilities of larger models, SLMs excel in specific tasks and domains, making them ideal for targeted applications on edge devices. + +> We will generally consider SLMs, language models with less than 5 billion parameters quantized to 4 bits. + +Examples of SLMs include compressed versions of models like Meta Llama, Microsoft PHI, and Google Gemma. These models enable a wide range of natural language processing tasks directly on edge devices, from text classification and sentiment analysis to question answering and limited text generation. + +For more information on SLMs, the paper, [LLM Pruning and Distillation in Practice: The Minitron Approach](https://arxiv.org/pdf/2408.11796), provides an approach applying pruning and distillation to obtain SLMs from LLMs. And, [SMALL LANGUAGE MODELS: SURVEY, MEASUREMENTS, AND INSIGHTS](https://arxiv.org/pdf/2409.15790), presents a comprehensive survey and analysis of Small Language Models (SLMs), which are language models with 100 million to 5 billion parameters designed for resource-constrained devices. + +## Ollama + +![ollama logo](https://ollama.com/public/ollama.png) + +[Ollama](https://ollama.com/) is an open-source framework that allows us to run language models (LMs), large or small, locally on our machines. Here are some critical points about Ollama: + +1. **Local Model Execution**: Ollama enables running LMs on personal computers or edge devices such as the Raspi-5, eliminating the need for cloud-based API calls. + +2. **Ease of Use**: It provides a simple command-line interface for downloading, running, and managing different language models. + +3. **Model Variety**: Ollama supports various LLMs, including Phi, Gemma, Llama, Mistral, and other open-source models. + +4. **Customization**: Users can create and share custom models tailored to specific needs or domains. + +5. **Lightweight**: Designed to be efficient and run on consumer-grade hardware. + +6. **API Integration**: Offers an API that allows integration with other applications and services. + +7. **Privacy-Focused**: By running models locally, it addresses privacy concerns associated with sending data to external servers. + +8. **Cross-Platform**: Available for macOS, Windows, and Linux systems (our case, here). + +9. **Active Development**: Regularly updated with new features and model support. + +10. **Community-Driven**: Benefits from community contributions and model sharing. + +To learn more about what Ollama is and how it works under the hood, you should see this short video from [Matt Williams](https://www.youtube.com/@technovangelist), one of the founders of Ollama: + +{{< video https://www.youtube.com/embed/90ozfdsQOKo >}} + +> Matt has an entirely free course about Ollama that we recommend: {{< video https://youtu.be/9KEUFe4KQAI?si=D_-q3CMbHiT-twuy >}} + +### Installing Ollama + +Let's set up and activate a Virtual Environment for working with Ollama: + +```bash +python3 -m venv ~/ollama +source ~/ollama/bin/activate +``` + +And run the command to install Ollama: + +```bash +curl -fsSL https://ollama.com/install.sh | sh +``` + +As a result, an API will run in the background on `127.0.0.1:11434`. From now on, we can run Ollama via the terminal. For starting, let's verify the Ollama version, which will also tell us that it is correctly installed: + +```bash +ollama -v +``` + + + +![](images/png/install-ollama-rpi5.png) + + + +On the [Ollama Library page](https://ollama.com/library), we can find the models Ollama supports. For example, by filtering by `Most popular`, we can see Meta Llama, Google Gemma, Microsoft Phi, LLaVa, etc. + +### Meta Llama 3.2 1B/3B + +![](images/png/small_and_multimodal.png) + +Let's install and run our first small language model, [Llama 3.2](https://ai.meta.com/blog/llama-3-2-connect-2024-vision-edge-mobile-devices/) 1B (and 3B). The Meta Llama 3.2 series comprises a set of multilingual generative language models available in 1 billion and 3 billion parameter sizes. These models are designed to process text input and generate text output. The instruction-tuned variants within this collection are specifically optimized for multilingual conversational applications, including tasks involving information retrieval and summarization with an agentic approach. When compared to many existing open-source and proprietary chat models, the Llama 3.2 instruction-tuned models demonstrate superior performance on widely-used industry benchmarks. + +The 1B and 3B models were pruned from the Llama 8B, and then logits from the 8B and 70B models were used as token-level targets (token-level distillation). Knowledge distillation was used to recover performance (they were trained with 9 trillion tokens). The 1B model has 1,24B, quantized to integer (Q8_0), and the 3B, 3.12B parameters, with a Q4_0 quantization, which ends with a size of 1.3 GB and 2GB, respectively. Its context window is 131,072 tokens. + +![](images/jpeg/llama3_2.jpg) + +**Install and run the** **Model** + +```bash +ollama run llama3.2:1b +``` + +Running the model with the command before, we should have the Ollama prompt available for us to input a question and start chatting with the LLM model; for example, + +`>>> What is the capital of France?` + +Almost immediately, we get the correct answer: + +`The capital of France is Paris.` + +Using the option `--verbose` when calling the model will generate several statistics about its performance (The model will be polling only the first time we run the command). + +![](images/png/llama3_2_1b_performance.png) + +Each metric gives insights into how the model processes inputs and generates outputs. Here’s a breakdown of what each metric means: + +- **Total Duration (2.620170326s)**: This is the complete time taken from the start of the command to the completion of the response. It encompasses loading the model, processing the input prompt, and generating the response. +- **Load Duration (39.947908ms)**: This duration indicates the time to load the model or necessary components into memory. If this value is minimal, it can suggest that the model was preloaded or that only a minimal setup was required. +- **Prompt Eval Count (32 tokens)**: The number of tokens in the input prompt. In NLP, tokens are typically words or subwords, so this count includes all the tokens that the model evaluated to understand and respond to the query. +- **Prompt Eval Duration (1.644773s)**: This measures the model's time to evaluate or process the input prompt. It accounts for the bulk of the total duration, implying that understanding the query and preparing a response is the most time-consuming part of the process. +- **Prompt Eval Rate (19.46 tokens/s)**: This rate indicates how quickly the model processes tokens from the input prompt. It reflects the model’s speed in terms of natural language comprehension. +- **Eval Count (8 token(s))**: This is the number of tokens in the model’s response, which in this case was, “The capital of France is Paris.” +- **Eval Duration (889.941ms)**: This is the time taken to generate the output based on the evaluated input. It’s much shorter than the prompt evaluation, suggesting that generating the response is less complex or computationally intensive than understanding the prompt. +- **Eval Rate (8.99 tokens/s)**: Similar to the prompt eval rate, this indicates the speed at which the model generates output tokens. It's a crucial metric for understanding the model's efficiency in output generation. + +This detailed breakdown can help understand the computational demands and performance characteristics of running SLMs like Llama on edge devices like the Raspberry Pi 5. It shows that while prompt evaluation is more time-consuming, the actual generation of responses is relatively quicker. This analysis is crucial for optimizing performance and diagnosing potential bottlenecks in real-time applications. + +Loading and running the 3B model, we can see the difference in performance for the same prompt; + +![](images/png/llama3_2_3b_performance.png) + +The eval rate is lower, 5.3 tokens/s versus 9 tokens/s with the smaller model. + +When question about + +`>>> What is the distance between Paris and Santiago, Chile?` + +The 1B model answered `9,841 kilometers (6,093 miles)`, which is inaccurate, and the 3B model answered `7,300 miles (11,700 km)`, which is close to the correct (11,642 km). + +Let's ask for the Paris's coordinates: + +`>>> what is the latitude and longitude of Paris?` + +```bash +The latitude and longitude of Paris are 48.8567° N (48°55' +42" N) and 2.3510° E (2°22' 8" E), respectively. +``` + +![](images/png/paris-lat-lon.png) + +Both 1B and 3B models gave correct answers. + +### Google Gemma 2 2B + +Let's install [Gemma 2](https://ollama.com/library/gemma2:2b), a high-performing and efficient model available in three sizes: 2B, 9B, and 27B. We will install [**Gemma 2 2B**](https://huggingface.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f), a lightweight model trained with 2 trillion tokens that produces outsized results by learning from larger models through distillation. The model has 2.6 billion parameters and a Q4_0 quantization, which ends with a size of 1.6 GB. Its context window is 8,192 tokens. + +![](images/png/gemma_2.png) + + + +**Install and run the** **Model** + +```bash +ollama run gemma2:2b --verbose +``` + +Running the model with the command before, we should have the Ollama prompt available for us to input a question and start chatting with the LLM model; for example, + +`>>> What is the capital of France?` + +Almost immediately, we get the correct answer: + +`The capital of France is **Paris**. 🗼` + +And it' statistics. + +![](images/png/gemma.png) + +We can see that Gemma 2:2B has around the same performance as Lama 3.2:3B, but having less parameters. + +**Other examples:** + +```bash +>>> What is the distance between Paris and Santiago, Chile? + +The distance between Paris, France and Santiago, Chile is +approximately **7,000 miles (11,267 kilometers)**. + +Keep in mind that this is a straight-line distance, and actual +travel distance can vary depending on the chosen routes and any +stops along the way. ✈️` +``` + +Also, a good response but less accurate than Llama3.2:3B. + +```bash +>>> what is the latitude and longitude of Paris? + +You got it! Here are the latitudes and longitudes of Paris, +France: + +* **Latitude:** 48.8566° N (north) +* **Longitude:** 2.3522° E (east) + +Let me know if you'd like to explore more about Paris or its +location! 🗼🇫🇷 +``` + +A good and accurate answer (a little more verbose than the Llama answers). + +### Microsoft Phi3.5 3.8B + +Let's pull a bigger (but still tiny) model, the [PHI3.5,](https://ollama.com/library/phi3.5) a 3.8B lightweight state-of-the-art open model by Microsoft. The model belongs to the Phi-3 model family and supports `128K token` context length and the languages: Arabic, Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Hebrew, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Thai, Turkish and Ukrainian. + +The model size, in terms of bytes, will depend on the specific quantization format used. The size can go from 2-bit quantization (`q2_k`) of 1.4GB (higher performance/lower quality) to 16-bit quantization (fp-16) of 7.6GB (lower performance/higher quality). + +Let's run the 4-bit quantization (`Q4_0`), which will need 2.2GB of RAM, with an intermediary trade-off regarding output quality and performance. + +```bash +ollama run phi3.5:3.8b --verbose +``` + +> You can use `run` or `pull` to download the model. What happens is that Ollama keeps note of the pulled models, and once the PHI3 does not exist, before running it, Ollama pulls it. + +Let's enter with the same prompt used before: + +```bash +>>> What is the capital of France? + +The capital of France is Paris. It' extradites significant +historical, cultural, and political importance to the country as +well as being a major European city known for its art, fashion, +gastronomy, and culture. Its influence extends beyond national +borders, with millions of tourists visiting each year from around +the globe. The Seine River flows through Paris before it reaches +the broader English Channel at Le Havre. Moreover, France is one +of Europe's leading economies with its capital playing a key role + +... +``` + +The answer was very "verbose", let's specify a better prompt: + +![](images/png/paris-2.png) + +In this case, the answer was still longer than we expected, with an eval rate of 2.25 tokens/s, more than double that of Gemma and Llama. + +> Choosing the most appropriate prompt is one of the most important skills to be used with LLMs, no matter its size. + +When we asked the same questions about distance and Latitude/Longitude, we did not get a good answer for a distance of `13,507 kilometers (8,429 miles)`, but it was OK for coordinates. Again, it could have been less verbose (more than 200 tokens for each answer). + +We can use any model as an assistant since their speed is relatively decent, but on September 24 (2023), the Llama2:3B is a better choice. You should try other models, depending on your needs. [🤗 Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) can give you an idea about the best models in size, benchmark, license, etc. + +> The best model to use is the one fit for your specific necessity. Also, take into consideration that this field evolves with new models everyday. + +### Multimodal Models + +Multimodal models are artificial intelligence (AI) systems that can process and understand information from multiple sources, such as images, text, audio, and video. In our context, multimodal LLMs can process various inputs, including text, images, and audio, as prompts and convert those prompts into various outputs, not just the source type. + +We will work here with [LLaVA-Phi-3](https://ollama.com/library/llava-phi3:3.8b), a fine-tuned LLaVA model from Phi 3 Mini 4k. It has strong performance benchmarks that are on par with the original [LLaVA](https://llava-vl.github.io/) (Large Language and Vision Assistant) model. + +The LLaVA-Phi-3 is an end-to-end trained large multimodal model designed to understand and generate content based on visual inputs (images) and textual instructions. It combines the capabilities of a visual encoder and a language model to process and respond to multimodal inputs. + +Let's install the model: + +```bash +ollama run llava-phi3:3.8b --verbose +``` + +Let's start with a text input: + +```bash +>>> You are a helpful AI assistant. What is the capital of France? + +As an AI language model, I can tell you that the capital of France +is Paris. It's not only the largest city in the country but also +serves as its political and administrative center. Paris is known +for its iconic landmarks such as the Eiffel Tower, Notre-Dame +Cathedral, and the Louvre Museum. The city has a rich history, +beautiful architecture, and is widely considered to be one of the +most romantic cities in the world. +``` + +The response took around 30s, with an eval rate of 3.93 tokens/s! Not bad! + +But let us know to enter with an image as input. For that, let's create a directory for working: + +```bash +cd Documents/ +mkdir OLLAMA +cd OLLAMA +``` + +Let's download a 640x320 image from the internet, for example (Wikipedia: [Paris, France)](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg/640px-La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_ao%C3%BBt_2014_%282%29.jpg): + +![](images/jpeg/paris.jpg) + +Using FileZilla, for example, let's upload the image to the OLLAMA folder at the Raspi-5 and name it `image_test_1.jpg`. We should have the whole image path (we can use `pwd` to get it). + +`/home/mjrovai/Documents/OLLAMA/image_test_1.jpg` + +If you use a desktop, you can copy the image path by clicking the image with the mouse's right button. + +![](images/png/image_test-path.png) + +Let's enter with this prompt: + +```bash +>>> Describe the image /home/mjrovai/Documents/OLLAMA/image_test_1.jpg +``` + +The result was great, but the overall latency was significant; almost 4 minutes to perform the inference. + +![](images/png/paris-infer-1.png) + +### Inspecting local resources + +Using htop, we can monitor the resources running on our device. + +```bash +htop +``` + +During the time that the model is running, we can inspect the resources: + +![](images/png/htop.png) + +All four CPUs run at almost 100% of their capacity, and the memory used with the model loaded is `3.24GB`. Exiting Ollama, the memory goes down to around `377MB` (with no desktop). + +It is also essential to monitor the temperature. When running the Raspberry with a desktop, you can have the temperature shown on the taskbar: + +![](images/png/resourses-temp.png) + +If you are "headless", the temperature can be monitored with the command: + +```bash +vcgencmd measure_temp +``` + +If you are doing nothing, the temperature is around `50°C` for CPUs running at 1%. During inference, with the CPUs at 100%, the temperature can rise to almost `70°C`. This is OK and means the active cooler is working, keeping the temperature below 80°C / 85°C (its limit). + +## Ollama Python Library + +So far, we have explored SLMs' chat capability using the command line on a terminal. However, we want to integrate those models into our projects, so Python seems to be the right path. The good news is that Ollama has such a library. + +The [Ollama Python library](https://github.com/ollama/ollama-python) simplifies interaction with advanced LLM models, enabling more sophisticated responses and capabilities, besides providing the easiest way to integrate Python 3.8+ projects with [Ollama.](https://github.com/ollama/ollama) + +For a better understanding of how to create apps using Ollama with Python, we can follow [Matt Williams's videos](https://www.youtube.com/@technovangelist), as the one below: + +{{< video https://www.youtube.com/embed/_4K20tOsXK8 >}} + +**Installation:** + +In the terminal, run the command: + +```bash +pip install ollama +``` + +We will need a text editor or an IDE to create a Python script. If you run the Raspberry OS on a desktop, several options, such as Thonny and Geany, have already been installed by default (accessed by `[Menu][Programming]`). You can download other IDEs, such as Visual Studio Code, from `[Menu][Recommended Software]`. When the window pops up, go to `[Programming]`, select the option of your choice, and press `[Apply]`. + +![](images/png/menu.png) + +If you prefer using Jupyter Notebook for development: + +```bash +pip install jupyter +jupyter notebook --generate-config +``` + +To run Jupyter Notebook, run the command (change the IP address for yours): + +```bash +jupyter notebook --ip=192.168.4.209 --no-browser +``` + +On the terminal, you can see the local URL address to open the notebook: + +![](images/png/jupyter.png) + +We can access it from another computer by entering the Raspberry Pi's IP address and the provided token in a web browser (we should copy it from the terminal). + +In our working directory in the Raspi, we will create a new Python 3 notebook. + +Let's enter with a very simple script to verify the installed models: + +```python +import ollama +ollama.list() +``` + +All the models will be printed as a dictionary, for example: + +```python + {'name': 'gemma2:2b', + 'model': 'gemma2:2b', + 'modified_at': '2024-09-24T19:30:40.053898094+01:00', + 'size': 1629518495, + 'digest': '8ccf136fdd5298f3ffe2d69862750ea7fb56555fa4d5b18c04e3fa4d82ee09d7', + 'details': {'parent_model': '', + 'format': 'gguf', + 'family': 'gemma2', + 'families': ['gemma2'], + 'parameter_size': '2.6B', + 'quantization_level': 'Q4_0'}}]} +``` + +Let's repeat one of the questions that we did before, but now using `ollama.generate()` from Ollama python library. This API will generate a response for the given prompt with the provided model. This is a streaming endpoint, so there will be a series of responses. The final response object will include statistics and additional data from the request. + +```python +MODEL = 'gemma2:2b' +PROMPT = 'What is the capital of France?' + +res = ollama.generate(model=MODEL, prompt=PROMPT) +print (res) +``` + +In case you are running the code as a Python script, you should save it, for example, test_ollama.py. You can use the IDE to run it or do it directly on the terminal. Also, remember that you should always call the model and define it when running a stand-alone script. + +```bash +python test_ollama.py +``` + +As a result, we will have the model response in a JSON format: + +``` +{'model': 'gemma2:2b', 'created_at': '2024-09-25T14:43:31.869633807Z', +'response': 'The capital of France is **Paris**. 🇫🇷 \n', 'done': True, +'done_reason': 'stop', 'context': [106, 1645, 108, 1841, 603, 573, 6037, 576, +6081, 235336, 107, 108, 106, 2516, 108, 651, 6037, 576, 6081, 603, 5231, 29437, +168428, 235248, 244304, 241035, 235248, 108], 'total_duration': 24259469458, +'load_duration': 19830013859, 'prompt_eval_count': 16, 'prompt_eval_duration': +1908757000, 'eval_count': 14, 'eval_duration': 2475410000} +``` + +As we can see, several pieces of information are generated, such as: + +- **response**: the main output text generated by the model in response to our prompt. + - `The capital of France is **Paris**. 🇫🇷` + +- **context**: the token IDs representing the input and context used by the model. Tokens are numerical representations of text used for processing by the language model. + - `[106, 1645, 108, 1841, 603, 573, 6037, 576, 6081, 235336, 107, 108,` + ` 106, 2516, 108, 651, 6037, 576, 6081, 603, 5231, 29437, 168428, ` + ` 235248, 244304, 241035, 235248, 108]` + + +The Performance Metrics: + +- **total_duration**: The total time taken for the operation in nanoseconds. In this case, approximately 24.26 seconds. +- **load_duration**: The time taken to load the model or components in nanoseconds. About 19.83 seconds. +- **prompt_eval_duration**: The time taken to evaluate the prompt in nanoseconds. Around 16 nanoseconds. +- **eval_count**: The number of tokens evaluated during the generation. Here, 14 tokens. +- **eval_duration**: The time taken for the model to generate the response in nanoseconds. Approximately 2.5 seconds. + +But, what we want is the plain 'response' and, perhaps for analysis, the total duration of the inference, so let's change the code to extract it from the dictionary: + +```python +print(f"\n{res['response']}") +print(f"\n [INFO] Total Duration: {(res['total_duration']/1e9):.2f} seconds") +``` + +Now, we got: + +```bash +The capital of France is **Paris**. 🇫🇷 + + [INFO] Total Duration: 24.26 seconds +``` + +**Using Ollama.chat()** + +Another way to get our response is to use `ollama.chat()`, which generates the next message in a chat with a provided model. This is a streaming endpoint, so a series of responses will occur. Streaming can be disabled using `"stream": false`. The final response object will also include statistics and additional data from the request. + +```python +PROMPT_1 = 'What is the capital of France?' + +response = ollama.chat(model=MODEL, messages=[ +{'role': 'user','content': PROMPT_1,},]) +resp_1 = response['message']['content'] +print(f"\n{resp_1}") +print(f"\n [INFO] Total Duration: {(res['total_duration']/1e9):.2f} seconds") +``` + +The answer is the same as before. + +An important consideration is that by using `ollama.generate()`, the response is "clear" from the model's "memory" after the end of inference (only used once), but If we want to keep a conversation, we must use `ollama.chat()`. Let's see it in action: + +```python +PROMPT_1 = 'What is the capital of France?' +response = ollama.chat(model=MODEL, messages=[ +{'role': 'user','content': PROMPT_1,},]) +resp_1 = response['message']['content'] +print(f"\n{resp_1}") +print(f"\n [INFO] Total Duration: {(response['total_duration']/1e9):.2f} seconds") + +PROMPT_2 = 'and of Italy?' +response = ollama.chat(model=MODEL, messages=[ +{'role': 'user','content': PROMPT_1,}, +{'role': 'assistant','content': resp_1,}, +{'role': 'user','content': PROMPT_2,},]) +resp_2 = response['message']['content'] +print(f"\n{resp_2}") +print(f"\n [INFO] Total Duration: {(response['total_duration']/1e9):.2f} seconds") +``` + +In the above code, we are running two queries, and the second prompt considers the result of the first one. + +Here is how the model responded: + +```bash +The capital of France is **Paris**. 🇫🇷 + + [INFO] Total Duration: 2.82 seconds + +The capital of Italy is **Rome**. 🇮🇹 + + [INFO] Total Duration: 4.46 seconds +``` + +**Getting an image description**: + +In the same way that we have used the `LlaVa-PHI-3` model with the command line to analyze an image, the same can be done here with Python. Let's use the same image of Paris, but now with the `ollama.generate()`: + +```python +MODEL = 'llava-phi3:3.8b' +PROMPT = "Describe this picture" + +with open('image_test_1.jpg', 'rb') as image_file: + img = image_file.read() + +response = ollama.generate( + model=MODEL, + prompt=PROMPT, + images= [img] +) +print(f"\n{response['response']}") +print(f"\n [INFO] Total Duration: {(res['total_duration']/1e9):.2f} seconds") +``` + +Here is the result: + +```bash +This image captures the iconic cityscape of Paris, France. The vantage point +is high, providing a panoramic view of the Seine River that meanders through +the heart of the city. Several bridges arch gracefully over the river, +connecting different parts of the city. The Eiffel Tower, an iron lattice +structure with a pointed top and two antennas on its summit, stands tall in the +background, piercing the sky. It is painted in a light gray color, contrasting +against the blue sky speckled with white clouds. + +The buildings that line the river are predominantly white or beige, their uniform +color palette broken occasionally by red roofs peeking through. The Seine River +itself appears calm and wide, reflecting the city's architectural beauty in its +surface. On either side of the river, trees add a touch of green to the urban +landscape. + +The image is taken from an elevated perspective, looking down on the city. This +viewpoint allows for a comprehensive view of Paris's beautiful architecture and +layout. The relative positions of the buildings, bridges, and other structures +create a harmonious composition that showcases the city's charm. + +In summary, this image presents a serene day in Paris, with its architectural +marvels - from the Eiffel Tower to the river-side buildings - all bathed in soft +colors under a clear sky. + + [INFO] Total Duration: 256.45 seconds +``` + +The model took about 4 minutes (256.45 s) to return with a detailed image description. + +> In the [10-Ollama_Python_Library](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/10-Ollama_Python_Library.ipynb) notebook, it is possible to find the experiments with the Ollama Python library. + +### Function Calling + +So far, we can observe that by using the model's response into a variable, we can effectively incorporate it into real-world projects. However, a major issue arises when the model provides varying responses to the same input. For instance, let's assume that we only need the name of a country's capital and its coordinates as the model's response in the previous examples, without any additional information, even when utilizing verbose models like Microsoft Phi. To ensure consistent responses, we can employ the 'Ollama function call,' which is fully compatible with the OpenAI API. + +#### But what exactly is "function calling"? + +In modern artificial intelligence, function calling with Large Language Models (LLMs) allows these models to perform actions beyond generating text. By integrating with external functions or APIs, LLMs can access real-time data, automate tasks, and interact with various systems. + +For instance, instead of merely responding to a query about the weather, an LLM can call a weather API to fetch the current conditions and provide accurate, up-to-date information. This capability enhances the relevance and accuracy of the model's responses and makes it a powerful tool for driving workflows and automating processes, transforming it into an active participant in real-world applications. + +For more details about Function Calling, please see this video made by [Marvin Prison](https://www.youtube.com/@MervinPraison): + +{{< video https://www.youtube.com/embed/eHfMCtlsb1o >}} + +#### Let's create a project. + +We want to create an *app* where the user enters a country's name and gets, as an output, the distance in km from the capital city of such a country and the app's location (for simplicity, We will use Santiago, Chile, as the app location). + +![](images/png/block-fc-proj.png) + +Once the user enters a country name, the model will return the name of its capital city (as a string) and the latitude and longitude of such city (in float). Using those coordinates, we can use a simple Python library ([haversine](https://pypi.org/project/haversine/)) to calculate the distance between those 2 points. + +The idea of this project is to demonstrate a combination of language model interaction, structured data handling with Pydantic, and geospatial calculations using the Haversine formula (traditional computing). + +First, let us install some libraries. Besides *Haversine*, the main one is the [OpenAI Python library](https://github.com/openai/openai-python), which provides convenient access to the OpenAI REST API from any Python 3.7+ application. The other one is [Pydantic](https://docs.pydantic.dev/latest/) (and instructor), a robust data validation and settings management library engineered by Python to enhance the robustness and reliability of our codebase. In short, *Pydantic* will help ensure that our model's response will always be consistent. + +```bash +pip install haversine +pip install openai +pip install pydantic +pip install instructor +``` + +Now, we should create a Python script designed to interact with our model (LLM) to determine the coordinates of a country's capital city and calculate the distance from Santiago de Chile to that capital. + +Let's go over the code: + +### 1. Importing Libraries + +```python +import sys +from haversine import haversine +from openai import OpenAI +from pydantic import BaseModel, Field +import instructor +``` + +- **sys**: Provides access to system-specific parameters and functions. It's used to get command-line arguments. +- **haversine**: A function from the haversine library that calculates the distance between two geographic points using the Haversine formula. +- **openAI**: A module for interacting with the OpenAI API (although it's used in conjunction with a local setup, Ollama). Everything is off-line here. +- **pydantic**: Provides data validation and settings management using Python-type annotations. It's used to define the structure of expected response data. +- **instructor**: A module is used to patch the OpenAI client to work in a specific mode (likely related to structured data handling). + +### 2. Defining Input and Model + +```python +country = sys.argv[1] # Get the country from command-line arguments +MODEL = 'phi3.5:3.8b' # The name of the model to be used +mylat = -33.33 # Latitude of Santiago de Chile +mylon = -70.51 # Longitude of Santiago de Chile +``` + +- **country**: On a Python script, getting the country name from command-line arguments is possible. On a Jupyter notebook, we can enter its name, for example, + - `country = "France"` + +- **MODEL**: Specifies the model being used, which is, in this example, the phi3.5. +- **mylat** **and** **mylon**: Coordinates of Santiago de Chile, used as the starting point for the distance calculation. + +### 3. Defining the Response Data Structure + +```python +class CityCoord(BaseModel): + city: str = Field(..., description="Name of the city") + lat: float = Field(..., description="Decimal Latitude of the city") + lon: float = Field(..., description="Decimal Longitude of the city") +``` + +- **CityCoord**: A Pydantic model that defines the expected structure of the response from the LLM. It expects three fields: city (name of the city), lat (latitude), and lon (longitude). + +### 4. Setting Up the OpenAI Client + +```python +client = instructor.patch( + OpenAI( + base_url="http://localhost:11434/v1", # Local API base URL (Ollama) + api_key="ollama", # API key (not used) + ), + mode=instructor.Mode.JSON, # Mode for structured JSON output +) +``` + +- **OpenAI**: This setup initializes an OpenAI client with a local base URL and an API key (ollama). It uses a local server. +- **instructor.patch**: Patches the OpenAI client to work in JSON mode, enabling structured output that matches the Pydantic model. + +### 5. Generating the Response + +```python +resp = client.chat.completions.create( + model=MODEL, + messages=[ + { + "role": "user", + "content": f"return the decimal latitude and decimal longitude \ + of the capital of the {country}." + } + ], + response_model=CityCoord, + max_retries=10 +) +``` + +- **client.chat.completions.create**: Calls the LLM to generate a response. +- **model**: Specifies the model to use (llava-phi3). +- **messages**: Contains the prompt for the LLM, asking for the latitude and longitude of the capital city of the specified country. +- **response_model**: Indicates that the response should conform to the CityCoord model. +- **max_retries**: The maximum number of retry attempts if the request fails. + +### 6. Calculating the Distance + +```python +distance = haversine((mylat, mylon), (resp.lat, resp.lon), unit='km') +print(f"Santiago de Chile is about {int(round(distance, -1)):,} \ + kilometers away from {resp.city}.") +``` + +- **haversine**: Calculates the distance between Santiago de Chile and the capital city returned by the LLM using their respective coordinates. +- **(mylat, mylon)**: Coordinates of Santiago de Chile. +- **resp.city**: Name of the country's capital +- **(resp.lat, resp.lon)**: Coordinates of the capital city are provided by the LLM response. +- **unit='km'**: Specifies that the distance should be calculated in kilometers. +- **print**: Outputs the distance, rounded to the nearest 10 kilometers, with thousands of separators for readability. + +**Running the code** + +If we enter different countries, for example, France, Colombia, and the United States, We can note that we always receive the same structured information: + +```bash +Santiago de Chile is about 8,060 kilometers away from Washington, D.C.. +Santiago de Chile is about 4,250 kilometers away from Bogotá. +Santiago de Chile is about 11,630 kilometers away from Paris. +``` + +If you run the code as a script, the result will be printed on the terminal: + +![](images/png/script-fc.png) + +And the calculations are pretty good! + +![](images/png/calc_real.png) + +> In the [20-Ollama_Function_Calling](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/20-Ollama_Function_Calling.ipynb) notebook, it is possible to find experiments with all models installed. + +### Adding images + +Now it is time to wrap up everything so far! Let's modify the script so that instead of entering the country name (as a text), the user enters an image, and the application (based on SLM) returns the city in the image and its geographic location. With those data, we can calculate the distance as before. + +![](images/png/block-2.png) + +For simplicity, we will implement this new code in two steps. First, the LLM will analyze the image and create a description (text). This text will be passed on to another instance, where the model will extract the information needed to pass along. + +We will start importing the libraries + +```python +import sys +import time +from haversine import haversine +import ollama +from openai import OpenAI +from pydantic import BaseModel, Field +import instructor +``` + +We can see the image if you run the code on the Jupyter Notebook. For that we need also import: + +```python +import matplotlib.pyplot as plt +from PIL import Image +``` + +> Those libraries are unnecessary if we run the code as a script. + +Now, we define the model and the local coordinates: + +```python +MODEL = 'llava-phi3:3.8b' +mylat = -33.33 +mylon = -70.51 +``` + +We can download a new image, for example, Machu Picchu from Wikipedia. On the Notebook we can see it: + +```python +# Load the image +img_path = "image_test_3.jpg" +img = Image.open(img_path) + +# Display the image +plt.figure(figsize=(8, 8)) +plt.imshow(img) +plt.axis('off') +#plt.title("Image") +plt.show() +``` + +![](images/jpeg/image_test_3.jpg) + +Now, let's define a function that will receive the image and will `return the decimal latitude and decimal longitude of the city in the image, its name, and what country it is located` + +```python +def image_description(img_path): + with open(img_path, 'rb') as file: + response = ollama.chat( + model=MODEL, + messages=[ + { + 'role': 'user', + 'content': '''return the decimal latitude and decimal longitude + of the city in the image, its name, and + what country it is located''', + 'images': [file.read()], + }, + ], + options = { + 'temperature': 0, + } + ) + #print(response['message']['content']) + return response['message']['content'] +``` + +> We can print the entire response for debug purposes. + +The image description generated for the function will be passed as a prompt for the model again. + +```python +start_time = time.perf_counter() # Start timing + +class CityCoord(BaseModel): + city: str = Field(..., description="Name of the city in the image") + country: str = Field(..., description="""Name of the country where" + the city in the image is located + """) + lat: float = Field(..., description="""Decimal Latitude of the city in" + the image""") + lon: float = Field(..., description="""Decimal Longitude of the city in" + the image""") + +# enables `response_model` in create call +client = instructor.patch( + OpenAI( + base_url="http://localhost:11434/v1", + api_key="ollama" + ), + mode=instructor.Mode.JSON, +) + +image_description = image_description(img_path) +# Send this description to the model +resp = client.chat.completions.create( + model=MODEL, + messages=[ + { + "role": "user", + "content": image_description, + } + ], + response_model=CityCoord, + max_retries=10, + temperature=0, +) +``` + +If we print the image description , we will get: + +```bash +The image shows the ancient city of Machu Picchu, located in Peru. The city is +perched on a steep hillside and consists of various structures made of stone. It +is surrounded by lush greenery and towering mountains. The sky above is blue with +scattered clouds. + +Machu Picchu's latitude is approximately 13.5086° S, and its longitude is around +72.5494° W. +``` + +And the second response from the model (` resp`) will be: + +```bash +CityCoord(city='Machu Picchu', country='Peru', lat=-13.5086, lon=-72.5494) +``` + +Now, we can do a "Post-Processing", calculating the distance and preparing the final answer: + +```python +distance = haversine((mylat, mylon), (resp.lat, resp.lon), unit='km') + +print(f"\n The image shows {resp.city}, with lat:{round(resp.lat, 2)} and \ + long: {round(resp.lon, 2)}, located in {resp.country} and about \ + {int(round(distance, -1)):,} kilometers away from \ + Santiago, Chile.\n") + +end_time = time.perf_counter() # End timing +elapsed_time = end_time - start_time # Calculate elapsed time +print(f" [INFO] ==> The code (running {MODEL}), took {elapsed_time:.1f} \ + seconds to execute.\n") +``` + +And we will get: + +```bash + The image shows Machu Picchu, with lat:-13.16 and long: -72.54, located in Peru + and about 2,250 kilometers away from Santiago, Chile. + + [INFO] ==> The code (running llava-phi3:3.8b), took 491.3 seconds to execute. +``` + +In the [30-Function_Calling_with_images](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/30-Function_Calling_with_images.ipynb) notebook, it is possible to find the experiments with multiple images. + +Let's now download the script `calc_distance_image.py` from the [GitHub]() and run it on the terminal with the command: + +```bash +python calc_distance_image.py /home/mjrovai/Documents/OLLAMA/image_test_3.jpg +``` + + + +Enter with the Machu Picchu image full patch as an argument. We will get the same previous result. + +![](images/png/app-machu-picchu.png) + +*How* about Paris? + +![](images/png/paris-app.png) + +Of course, there are many ways to optimize the code used here. Still, the idea is to explore the considerable potential of *function calling* with SLMs at the edge, allowing those models to integrate with external functions or APIs. Going beyond text generation, SLMs can access real-time data, automate tasks, and interact with various systems. + +## SLMs: Optimization Techniques + +Large Language Models (LLMs) have revolutionized natural language processing, but their deployment and optimization come with unique challenges. One significant issue is the tendency for LLMs (and more, the SLMs) to generate plausible-sounding but factually incorrect information, a phenomenon known as **hallucination**. This occurs when models produce content that seems coherent but is not grounded in truth or real-world facts. + +Other challenges include the immense computational resources required for training and running these models, the difficulty in maintaining up-to-date knowledge within the model, and the need for domain-specific adaptations. Privacy concerns also arise when handling sensitive data during training or inference. Additionally, ensuring consistent performance across diverse tasks and maintaining ethical use of these powerful tools present ongoing challenges. Addressing these issues is crucial for the effective and responsible deployment of LLMs in real-world applications. + +The fundamental techniques for enhancing LLM (and SLM) performance and efficiency are Fine-tuning, Prompt engineering, and Retrieval-Augmented Generation (RAG). + +- **Fine-tuning**, while more resource-intensive, offers a way to specialize LLMs for particular domains or tasks. This process involves further training the model on carefully curated datasets, allowing it to adapt its vast general knowledge to specific applications. Fine-tuning can lead to substantial improvements in performance, especially in specialized fields or for unique use cases. + +- **Prompt engineering** is at the forefront of LLM optimization. By carefully crafting input prompts, we can guide models to produce more accurate and relevant outputs. This technique involves structuring queries that leverage the model's pre-trained knowledge and capabilities, often incorporating examples or specific instructions to shape the desired response. + +- **Retrieval-Augmented Generation (RAG)** represents another powerful approach to improving LLM performance. This method combines the vast knowledge embedded in pre-trained models with the ability to access and incorporate external, up-to-date information. By retrieving relevant data to supplement the model's decision-making process, RAG can significantly enhance accuracy and reduce the likelihood of generating outdated or false information. + +For edge applications, it is more beneficial to focus on techniques like RAG that can enhance model performance without needing on-device fine-tuning. Let's explore it. + +## RAG Implementation + +In a basic interaction between a user and a language model, the user asks a question, which is sent as a prompt to the model. The model generates a response based solely on its pre-trained knowledge. In a RAG process, there's an additional step between the user's question and the model's response. The user's question triggers a retrieval process from a knowledge base. + +![](images/png/rag-1.png) + +### A simple RAG project + +Here are the steps to implement a basic Retrieval Augmented Generation (RAG): + +- **Determine the type of documents you'll be using:** The best types are documents from which we can get clean and unobscured text. PDFs can be problematic because they are designed for printing, not for extracting sensible text. To work with PDFs, we should get the source document or use tools to handle it. + +- **Chunk the text:** We can't store the text as one long stream because of context size limitations and the potential for confusion. Chunking involves splitting the text into smaller pieces. Chunk text has many ways, such as character count, tokens, words, paragraphs, or sections. It is also possible to overlap chunks. + +- **Create embeddings:** Embeddings are numerical representations of text that capture semantic meaning. We create embeddings by passing each chunk of text through a particular embedding model. The model outputs a vector, the length of which depends on the embedding model used. We should pull one (or more) [embedding models](https://ollama.com/blog/embedding-models) from Ollama, to perform this task. Here are some examples of embedding models available at Ollama. + + | Model | Parameter Size | Embedding Size | + | ----------------- | -------------- | -------------- | + | mxbai-embed-large | 334M | 1024 | + | nomic-embed-text | 137M | 768 | + | all-minilm | 23M | 384 | + + > Generally, larger embedding sizes capture more nuanced information about the input. Still, they also require more computational resources to process, and a higher number of parameters should increase the latency (but also the quality of the response). + +- **Store the chunks and embeddings in a vector database:** We will need a way to efficiently find the most relevant chunks of text for a given prompt, which is where a vector database comes in. We will use [Chromadb](https://www.trychroma.com/), an AI-native open-source vector database, which simplifies building RAGs by creating knowledge, facts, and skills pluggable for LLMs. Both the embedding and the source text for each chunk are stored. + +- **Build the prompt:** When we have a question, we create an embedding and query the vector database for the most similar chunks. Then, we select the top few results and include their text in the prompt. + +The goal of RAG is to provide the model with the most relevant information from our documents, allowing it to generate more accurate and informative responses. So, let's implement a simple example of an SLM incorporating a particular set of facts about bees ("Bee Facts"). + +Inside the `ollama` env, enter the command in the terminal for Chromadb instalation: + +```bash +pip install ollama chromadb +``` + +Let's pull an intermediary embedding model, `nomic-embed-text` + +```bash +ollama pull nomic-embed-text +``` + +And create a working directory: + +```python +cd Documents/OLLAMA/ +mkdir RAG-simple-bee +cd RAG-simple-bee/ +``` + +Let's create a new Jupyter notebook, [40-RAG-simple-bee](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/40-RAG-simple-bee.ipynb) for some exploration: + +Import the needed libraries: + +```python +import ollama +import chromadb +import time +``` + +And define aor models: + +```python +EMB_MODEL = "nomic-embed-text" +MODEL = 'llama3.2:3B' +``` + +Initially, a knowledge base about bee facts should be created. This involves collecting relevant documents and converting them into vector embeddings. These embeddings are then stored in a vector database, allowing for efficient similarity searches later. Enter with the "document," a base of "bee facts" as a list: + +```python +documents = [ + "Bee-keeping, also known as apiculture, involves the maintenance of bee \ + colonies, typically in hives, by humans.", + "The most commonly kept species of bees is the European honey bee (Apis \ + mellifera).", + + ... + + "There are another 20,000 different bee species in the world.", + "Brazil alone has more than 300 different bee species, and the \ + vast majority, unlike western honey bees, don’t sting.", + "Reports written in 1577 by Hans Staden, mention three native bees \ + used by indigenous people in Brazil.", + "The indigenous people in Brazil used bees for medicine and food purposes", + "From Hans Staden report: probable species: mandaçaia (Melipona \ + quadrifasciata), mandaguari (Scaptotrigona postica) and jataí-amarela \ + (Tetragonisca angustula)." +] +``` + +> We do not need to "chunk" the document here because we will use each element of the list and a chunk. + +Now, we will create our vector embedding database `bee_facts` and store the document in it: + +```python +client = chromadb.Client() +collection = client.create_collection(name="bee_facts") + +# store each document in a vector embedding database +for i, d in enumerate(documents): + response = ollama.embeddings(model=EMB_MODEL, prompt=d) + embedding = response["embedding"] + collection.add( + ids=[str(i)], + embeddings=[embedding], + documents=[d] + ) +``` + +Now that we have our "Knowledge Base" created, we can start making queries, retrieving data from it: + +![](images/png/rag-2-2.png) + +**User Query:** The process begins when a user asks a question, such as "How many bees are in a colony? Who lays eggs, and how much? How about common pests and diseases?" + +```python +prompt = "How many bees are in a colony? Who lays eggs and how much? How about\ + common pests and diseases?" +``` + +**Query Embedding:** The user's question is converted into a vector embedding using **the same embedding model** used for the knowledge base. + +```python +response = ollama.embeddings( + prompt=prompt, + model=EMB_MODEL +) +``` + +**Relevant Document Retrieval:** The system searches the knowledge base using the query embedding to find the most relevant documents (in this case, the 5 more probable). This is done using a similarity search, which compares the query embedding to the document embeddings in the database. + +```python +results = collection.query( + query_embeddings=[response["embedding"]], + n_results=5 +) +data = results['documents'] +``` + +**Prompt Augmentation:** The retrieved relevant information is combined with the original user query to create an augmented prompt. This prompt now contains the user's question and pertinent facts from the knowledge base. + +```python +prompt=f"Using this data: {data}. Respond to this prompt: {prompt}", +``` + +**Answer Generation:** The augmented prompt is then fed into a language model, in this case, the `llama3.2:3b` model. The model uses this enriched context to generate a comprehensive answer. Parameters like temperature, top_k, and top_p are set to control the randomness and quality of the generated response. + +```python +output = ollama.generate( + model=MODEL, + prompt=f"Using this data: {data}. Respond to this prompt: {prompt}", + options={ + "temperature": 0.0, + "top_k":10, + "top_p":0.5 } +) +``` + +**Response Delivery:** Finally, the system returns the generated answer to the user. + +```python +print(output['response']) +``` + +```bash +Based on the provided data, here are the answers to your questions: + +1. How many bees are in a colony? +A typical bee colony can contain between 20,000 and 80,000 bees. + +2. Who lays eggs and how much? +The queen bee lays up to 2,000 eggs per day during peak seasons. + +3. What about common pests and diseases? +Common pests and diseases that affect bees include varroa mites, hive beetles, +and foulbrood. +``` + +Let's create a function to help answer new questions: + +```python +def rag_bees(prompt, n_results=5, temp=0.0, top_k=10, top_p=0.5): + start_time = time.perf_counter() # Start timing + + # generate an embedding for the prompt and retrieve the data + response = ollama.embeddings( + prompt=prompt, + model=EMB_MODEL + ) + + results = collection.query( + query_embeddings=[response["embedding"]], + n_results=n_results + ) + data = results['documents'] + + # generate a response combining the prompt and data retrieved + output = ollama.generate( + model=MODEL, + prompt=f"Using this data: {data}. Respond to this prompt: {prompt}", + options={ + "temperature": temp, + "top_k": top_k, + "top_p": top_p } + ) + + print(output['response']) + + end_time = time.perf_counter() # End timing + elapsed_time = round((end_time - start_time), 1) # Calculate elapsed time + + print(f"\n [INFO] ==> The code for model: {MODEL}, took {elapsed_time}s \ + to generate the answer.\n") +``` + +We can now create queries and call the function: + +```python +prompt = "Are bees in Brazil?" +rag_bees(prompt) +``` + +```bash +Yes, bees are found in Brazil. According to the data, Brazil has more than 300 +different bee species, and indigenous people in Brazil used bees for medicine and +food purposes. Additionally, reports from 1577 mention three native bees used by +indigenous people in Brazil. + + [INFO] ==> The code for model: llama3.2:3b, took 22.7s to generate the answer. +``` + +By the way, if the model used supports multiple languages, we can use it (for example, Portuguese), even if the dataset was created in English: + +```python +prompt = "Existem abelhas no Brazil?" +rag_bees(prompt) +``` + +```bash +Sim, existem abelhas no Brasil! De acordo com o relato de Hans Staden, há três +espécies de abelhas nativas do Brasil que foram mencionadas: mandaçaia (Melipona +quadrifasciata), mandaguari (Scaptotrigona postica) e jataí-amarela (Tetragonisca +angustula). Além disso, o Brasil é conhecido por ter mais de 300 espécies diferentes de abelhas, a maioria das quais não é agressiva e não põe veneno. + + [INFO] ==> The code for model: llama3.2:3b, took 54.6s to generate the answer. +``` + +### Going Further + +The small LLM models tested worked well at the edge, both in text and with images, but of course, they had high latency regarding the last one. A combination of specific and dedicated models can lead to better results; for example, in real cases, an Object Detection model (such as YOLO) can get a general description and count of objects on an image that, once passed to an LLM, can help extract essential insights and actions. + +According to Avi Baum, CTO at Hailo, + +> In the vast landscape of artificial intelligence (AI), one of the most intriguing journeys has been the evolution of AI on the edge. This journey has taken us from classic machine vision to the realms of discriminative AI, enhancive AI, and now, the groundbreaking frontier of generative AI. Each step has brought us closer to a future where intelligent systems seamlessly integrate with our daily lives, offering an immersive experience of not just perception but also creation at the palm of our hand. + +![](images/jpeg/halo.jpg) + +## Conclusion + +This lab has demonstrated how a Raspberry Pi 5 can be transformed into a potent AI hub capable of running large language models (LLMs) for real-time, on-site data analysis and insights using Ollama and Python. The Raspberry Pi's versatility and power, coupled with the capabilities of lightweight LLMs like Llama 3.2 and LLaVa-Phi-3-mini, make it an excellent platform for edge computing applications. + +The potential of running LLMs on the edge extends far beyond simple data processing, as in this lab's examples. Here are some innovative suggestions for using this project: + +**1. Smart Home Automation:** + +- Integrate SLMs to interpret voice commands or analyze sensor data for intelligent home automation. This could include real-time monitoring and control of home devices, security systems, and energy management, all processed locally without relying on cloud services. + +**2. Field Data Collection and Analysis:** + +- Deploy SLMs on Raspberry Pi in remote or mobile setups for real-time data collection and analysis. This can be used in agriculture to monitor crop health, in environmental studies for wildlife tracking, or in disaster response for situational awareness and resource management. + +**3. Educational Tools:** + +- Create interactive educational tools that leverage SLMs to provide instant feedback, language translation, and tutoring. This can be particularly useful in developing regions with limited access to advanced technology and internet connectivity. + +**4. Healthcare Applications:** + +- Use SLMs for medical diagnostics and patient monitoring. They can provide real-time analysis of symptoms and suggest potential treatments. This can be integrated into telemedicine platforms or portable health devices. + +**5. Local Business Intelligence:** + +- Implement SLMs in retail or small business environments to analyze customer behavior, manage inventory, and optimize operations. The ability to process data locally ensures privacy and reduces dependency on external services. + +**6. Industrial IoT:** + +- Integrate SLMs into industrial IoT systems for predictive maintenance, quality control, and process optimization. The Raspberry Pi can serve as a localized data processing unit, reducing latency and improving the reliability of automated systems. + +**7. Autonomous Vehicles:** + +- Use SLMs to process sensory data from autonomous vehicles, enabling real-time decision-making and navigation. This can be applied to drones, robots, and self-driving cars for enhanced autonomy and safety. + +**8. Cultural Heritage and Tourism:** + +- Implement SLMs to provide interactive and informative cultural heritage sites and museum guides. Visitors can use these systems to get real-time information and insights, enhancing their experience without internet connectivity. + +**9. Artistic and Creative Projects:** + +- Use SLMs to analyze and generate creative content, such as music, art, and literature. This can foster innovative projects in the creative industries and allow for unique interactive experiences in exhibitions and performances. + +**10. Customized Assistive Technologies:** + +- Develop assistive technologies for individuals with disabilities, providing personalized and adaptive support through real-time text-to-speech, language translation, and other accessible tools. + +## Resources + +- [10-Ollama_Python_Library notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/10-Ollama_Python_Library.ipynb) +- [20-Ollama_Function_Calling notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/20-Ollama_Function_Calling.ipynb) +- [30-Function_Calling_with_images notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/30-Function_Calling_with_images.ipynb) +- [40-RAG-simple-bee notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/40-RAG-simple-bee.ipynb) +- [calc_distance_image python script](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OLLAMA_SLMs/calc_distance_image.py) diff --git a/contents/labs/raspi/object_detection/images/jpeg/cover.jpg b/contents/labs/raspi/object_detection/images/jpeg/cover.jpg new file mode 100644 index 00000000..56d39ed4 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/jpeg/cover.jpg differ diff --git a/contents/labs/raspi/object_detection/images/jpeg/obj_app.jpg b/contents/labs/raspi/object_detection/images/jpeg/obj_app.jpg new file mode 100644 index 00000000..671cddc7 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/jpeg/obj_app.jpg differ diff --git a/contents/labs/raspi/object_detection/images/jpeg/objxclas.jpg b/contents/labs/raspi/object_detection/images/jpeg/objxclas.jpg new file mode 100644 index 00000000..d0a3b75d Binary files /dev/null and b/contents/labs/raspi/object_detection/images/jpeg/objxclas.jpg differ diff --git a/contents/labs/raspi/object_detection/images/jpeg/proj_goal.jpg b/contents/labs/raspi/object_detection/images/jpeg/proj_goal.jpg new file mode 100644 index 00000000..9c825b19 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/jpeg/proj_goal.jpg differ diff --git a/contents/labs/raspi/object_detection/images/jpeg/versions.jpg b/contents/labs/raspi/object_detection/images/jpeg/versions.jpg new file mode 100644 index 00000000..85b90cb2 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/jpeg/versions.jpg differ diff --git a/contents/labs/raspi/object_detection/images/png/annotation.png b/contents/labs/raspi/object_detection/images/png/annotation.png new file mode 100644 index 00000000..ba7ecca2 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/annotation.png differ diff --git a/contents/labs/raspi/object_detection/images/png/app-running.png b/contents/labs/raspi/object_detection/images/png/app-running.png new file mode 100644 index 00000000..d1dc8fc6 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/app-running.png differ diff --git a/contents/labs/raspi/object_detection/images/png/app.png b/contents/labs/raspi/object_detection/images/png/app.png new file mode 100644 index 00000000..c9b7e22f Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/app.png differ diff --git a/contents/labs/raspi/object_detection/images/png/block.png b/contents/labs/raspi/object_detection/images/png/block.png new file mode 100644 index 00000000..f677faf5 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/block.png differ diff --git a/contents/labs/raspi/object_detection/images/png/boulding-boxes.png b/contents/labs/raspi/object_detection/images/png/boulding-boxes.png new file mode 100644 index 00000000..47051487 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/boulding-boxes.png differ diff --git a/contents/labs/raspi/object_detection/images/png/cap-img.png b/contents/labs/raspi/object_detection/images/png/cap-img.png new file mode 100644 index 00000000..29c9a6e2 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/cap-img.png differ diff --git a/contents/labs/raspi/object_detection/images/png/cat-dog.png b/contents/labs/raspi/object_detection/images/png/cat-dog.png new file mode 100644 index 00000000..4d2a710a Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/cat-dog.png differ diff --git a/contents/labs/raspi/object_detection/images/png/create-project-rf.png b/contents/labs/raspi/object_detection/images/png/create-project-rf.png new file mode 100644 index 00000000..831c1709 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/create-project-rf.png differ diff --git a/contents/labs/raspi/object_detection/images/png/data-bus.png b/contents/labs/raspi/object_detection/images/png/data-bus.png new file mode 100644 index 00000000..ae4a4755 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/data-bus.png differ diff --git a/contents/labs/raspi/object_detection/images/png/dataset-struct.png b/contents/labs/raspi/object_detection/images/png/dataset-struct.png new file mode 100644 index 00000000..647c1464 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/dataset-struct.png differ diff --git a/contents/labs/raspi/object_detection/images/png/dataset.png b/contents/labs/raspi/object_detection/images/png/dataset.png new file mode 100644 index 00000000..5c4709fb Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/dataset.png differ diff --git a/contents/labs/raspi/object_detection/images/png/dataset_code.png b/contents/labs/raspi/object_detection/images/png/dataset_code.png new file mode 100644 index 00000000..6753a693 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/dataset_code.png differ diff --git a/contents/labs/raspi/object_detection/images/png/dataset_rf.png b/contents/labs/raspi/object_detection/images/png/dataset_rf.png new file mode 100644 index 00000000..6d5ebb0c Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/dataset_rf.png differ diff --git a/contents/labs/raspi/object_detection/images/png/deploy-linux.png b/contents/labs/raspi/object_detection/images/png/deploy-linux.png new file mode 100644 index 00000000..cf9f0702 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/deploy-linux.png differ diff --git a/contents/labs/raspi/object_detection/images/png/download-dataset.png b/contents/labs/raspi/object_detection/images/png/download-dataset.png new file mode 100644 index 00000000..a6cf1602 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/download-dataset.png differ diff --git a/contents/labs/raspi/object_detection/images/png/ei-dataset.png b/contents/labs/raspi/object_detection/images/png/ei-dataset.png new file mode 100644 index 00000000..5b63e918 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/ei-dataset.png differ diff --git a/contents/labs/raspi/object_detection/images/png/ei-deploy-int8.png b/contents/labs/raspi/object_detection/images/png/ei-deploy-int8.png new file mode 100644 index 00000000..e5a56ee6 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/ei-deploy-int8.png differ diff --git a/contents/labs/raspi/object_detection/images/png/ei-features.png b/contents/labs/raspi/object_detection/images/png/ei-features.png new file mode 100644 index 00000000..c5d302a1 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/ei-features.png differ diff --git a/contents/labs/raspi/object_detection/images/png/ei-image-pre.png b/contents/labs/raspi/object_detection/images/png/ei-image-pre.png new file mode 100644 index 00000000..1c6df13c Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/ei-image-pre.png differ diff --git a/contents/labs/raspi/object_detection/images/png/ei-train-result.png b/contents/labs/raspi/object_detection/images/png/ei-train-result.png new file mode 100644 index 00000000..ff5d9e12 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/ei-train-result.png differ diff --git a/contents/labs/raspi/object_detection/images/png/final-dataset.png b/contents/labs/raspi/object_detection/images/png/final-dataset.png new file mode 100644 index 00000000..5c0dbd1b Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/final-dataset.png differ diff --git a/contents/labs/raspi/object_detection/images/png/fomo-1.png b/contents/labs/raspi/object_detection/images/png/fomo-1.png new file mode 100644 index 00000000..128e055c Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/fomo-1.png differ diff --git a/contents/labs/raspi/object_detection/images/png/fomo-test.png b/contents/labs/raspi/object_detection/images/png/fomo-test.png new file mode 100644 index 00000000..54202854 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/fomo-test.png differ diff --git a/contents/labs/raspi/object_detection/images/png/fomo-train-result.png b/contents/labs/raspi/object_detection/images/png/fomo-train-result.png new file mode 100644 index 00000000..59530180 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/fomo-train-result.png differ diff --git a/contents/labs/raspi/object_detection/images/png/fomo-works.png b/contents/labs/raspi/object_detection/images/png/fomo-works.png new file mode 100644 index 00000000..b3eed6dc Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/fomo-works.png differ diff --git a/contents/labs/raspi/object_detection/images/png/img_cap-1.png b/contents/labs/raspi/object_detection/images/png/img_cap-1.png new file mode 100644 index 00000000..93c03a88 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/img_cap-1.png differ diff --git a/contents/labs/raspi/object_detection/images/png/impulse-2.png b/contents/labs/raspi/object_detection/images/png/impulse-2.png new file mode 100644 index 00000000..4319c513 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/impulse-2.png differ diff --git a/contents/labs/raspi/object_detection/images/png/impulse-design.png b/contents/labs/raspi/object_detection/images/png/impulse-design.png new file mode 100644 index 00000000..79479571 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/impulse-design.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-fomo-result.png b/contents/labs/raspi/object_detection/images/png/infer-fomo-result.png new file mode 100644 index 00000000..62995bd7 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-fomo-result.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-iou.png b/contents/labs/raspi/object_detection/images/png/infer-iou.png new file mode 100644 index 00000000..225bc886 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-iou.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-mobv1.png b/contents/labs/raspi/object_detection/images/png/infer-mobv1.png new file mode 100644 index 00000000..54011e28 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-mobv1.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-mult.png b/contents/labs/raspi/object_detection/images/png/infer-mult.png new file mode 100644 index 00000000..4a089cdd Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-mult.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-text.png b/contents/labs/raspi/object_detection/images/png/infer-text.png new file mode 100644 index 00000000..5a746416 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-text.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-visual.png b/contents/labs/raspi/object_detection/images/png/infer-visual.png new file mode 100644 index 00000000..ff93d4f5 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-visual.png differ diff --git a/contents/labs/raspi/object_detection/images/png/infer-yolo.png b/contents/labs/raspi/object_detection/images/png/infer-yolo.png new file mode 100644 index 00000000..7b6e2e36 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/infer-yolo.png differ diff --git a/contents/labs/raspi/object_detection/images/png/inference result.png b/contents/labs/raspi/object_detection/images/png/inference result.png new file mode 100644 index 00000000..1eff0ed3 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/inference result.png differ diff --git a/contents/labs/raspi/object_detection/images/png/matrix.png b/contents/labs/raspi/object_detection/images/png/matrix.png new file mode 100644 index 00000000..f240b8e9 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/matrix.png differ diff --git a/contents/labs/raspi/object_detection/images/png/model-choice.png b/contents/labs/raspi/object_detection/images/png/model-choice.png new file mode 100644 index 00000000..22b15b7d Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/model-choice.png differ diff --git a/contents/labs/raspi/object_detection/images/png/model-deploy.png b/contents/labs/raspi/object_detection/images/png/model-deploy.png new file mode 100644 index 00000000..da7d287d Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/model-deploy.png differ diff --git a/contents/labs/raspi/object_detection/images/png/orig-fomo-img.png b/contents/labs/raspi/object_detection/images/png/orig-fomo-img.png new file mode 100644 index 00000000..325772c0 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/orig-fomo-img.png differ diff --git a/contents/labs/raspi/object_detection/images/png/orig-img.png b/contents/labs/raspi/object_detection/images/png/orig-img.png new file mode 100644 index 00000000..170305e3 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/orig-img.png differ diff --git a/contents/labs/raspi/object_detection/images/png/pre-proc.png b/contents/labs/raspi/object_detection/images/png/pre-proc.png new file mode 100644 index 00000000..9bba801d Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/pre-proc.png differ diff --git a/contents/labs/raspi/object_detection/images/png/python-infer-bus.png b/contents/labs/raspi/object_detection/images/png/python-infer-bus.png new file mode 100644 index 00000000..9c32c672 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/python-infer-bus.png differ diff --git a/contents/labs/raspi/object_detection/images/png/result-bus.png b/contents/labs/raspi/object_detection/images/png/result-bus.png new file mode 100644 index 00000000..3062c471 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/result-bus.png differ diff --git a/contents/labs/raspi/object_detection/images/png/target-device.png b/contents/labs/raspi/object_detection/images/png/target-device.png new file mode 100644 index 00000000..9bc6edd3 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/target-device.png differ diff --git a/contents/labs/raspi/object_detection/images/png/test-infer-yolo.png b/contents/labs/raspi/object_detection/images/png/test-infer-yolo.png new file mode 100644 index 00000000..f0b94f89 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/test-infer-yolo.png differ diff --git a/contents/labs/raspi/object_detection/images/png/train-result.png b/contents/labs/raspi/object_detection/images/png/train-result.png new file mode 100644 index 00000000..528ee0d3 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/train-result.png differ diff --git a/contents/labs/raspi/object_detection/images/png/upload-data.png b/contents/labs/raspi/object_detection/images/png/upload-data.png new file mode 100644 index 00000000..85a7bd90 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/upload-data.png differ diff --git a/contents/labs/raspi/object_detection/images/png/visual_inf.png b/contents/labs/raspi/object_detection/images/png/visual_inf.png new file mode 100644 index 00000000..369a9cd9 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/visual_inf.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-bus.png b/contents/labs/raspi/object_detection/images/png/yolo-bus.png new file mode 100644 index 00000000..0694fb9e Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-bus.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-dataset-upload.png b/contents/labs/raspi/object_detection/images/png/yolo-dataset-upload.png new file mode 100644 index 00000000..48793cb7 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-dataset-upload.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-infer-bus.png b/contents/labs/raspi/object_detection/images/png/yolo-infer-bus.png new file mode 100644 index 00000000..0c8e770f Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-infer-bus.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-infer-raspi.png b/contents/labs/raspi/object_detection/images/png/yolo-infer-raspi.png new file mode 100644 index 00000000..ffee0385 Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-infer-raspi.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-py-script.png b/contents/labs/raspi/object_detection/images/png/yolo-py-script.png new file mode 100644 index 00000000..809904ca Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-py-script.png differ diff --git a/contents/labs/raspi/object_detection/images/png/yolo-train-lib.png b/contents/labs/raspi/object_detection/images/png/yolo-train-lib.png new file mode 100644 index 00000000..c82225df Binary files /dev/null and b/contents/labs/raspi/object_detection/images/png/yolo-train-lib.png differ diff --git a/contents/labs/raspi/object_detection/object_detection.qmd b/contents/labs/raspi/object_detection/object_detection.qmd index 6fa7b12a..22b81904 100644 --- a/contents/labs/raspi/object_detection/object_detection.qmd +++ b/contents/labs/raspi/object_detection/object_detection.qmd @@ -1,4 +1,1498 @@ # Object Detection {.unnumbered} -## *Coming soon.* + + +![*DALL·E prompt - A cover image for an 'Object Detection' chapter in a Raspberry Pi tutorial, designed in the same vintage 1950s electronics lab style as previous covers. The scene should prominently feature wheels and cubes, similar to those provided by the user, placed on a workbench in the foreground. A Raspberry Pi with a connected camera module should be capturing an image of these objects. Surround the scene with classic lab tools like soldering irons, resistors, and wires. The lab background should include vintage equipment like oscilloscopes and tube radios, maintaining the detailed and nostalgic feel of the era. No text or logos should be included.*](images/jpeg/cover.jpg) + +## Introduction + +Building upon our exploration of image classification, we now turn our attention to a more advanced computer vision task: object detection. While image classification assigns a single label to an entire image, object detection goes further by identifying and locating multiple objects within a single image. This capability opens up many new applications and challenges, particularly in edge computing and IoT devices like the Raspberry Pi. + +Object detection combines the tasks of classification and localization. It not only determines what objects are present in an image but also pinpoints their locations by, for example, drawing bounding boxes around them. This added complexity makes object detection a more powerful tool for understanding visual scenes, but it also requires more sophisticated models and training techniques. + +In edge AI, where we work with constrained computational resources, implementing efficient object detection models becomes crucial. The challenges we faced with image classification—balancing model size, inference speed, and accuracy—are amplified in object detection. However, the rewards are also more significant, as object detection enables more nuanced and detailed visual data analysis. + +Some applications of object detection on edge devices include: + +1. Surveillance and security systems +2. Autonomous vehicles and drones +3. Industrial quality control +4. Wildlife monitoring +5. Augmented reality applications + +As we put our hands into object detection, we'll build upon the concepts and techniques we explored in image classification. We'll examine popular object detection architectures designed for efficiency, such as: + +- Single Stage Detectors, such as MobileNet and EfficientDet, +- FOMO (Faster Objects, More Objects), and +- YOLO (You Only Look Once). + +> To learn more about object detection models, follow the tutorial [A Gentle Introduction to Object Recognition With Deep Learning](https://machinelearningmastery.com/object-recognition-with-deep-learning/). + +We will explore those object detection models using + +- TensorFlow Lite Runtime (now changed to [LiteRT](https://ai.google.dev/edge/litert)), +- Edge Impulse Linux Python SDK and +- Ultralitics + +![](images/png/block.png) + +Throughout this lab, we’ll cover the fundamentals of object detection and how it differs from image classification. We'll also learn how to train, fine-tune, test, optimize, and deploy popular object detection architectures using a dataset created from scratch. + +### Object Detection Fundamentals + +Object detection builds upon the foundations of image classification but extends its capabilities significantly. To understand object detection, it's crucial first to recognize its key differences from image classification: + +#### Image Classification vs. Object Detection + +**Image Classification:** + +- Assigns a single label to an entire image +- Answers the question: “What is this image's primary object or scene?” +- Outputs a single class prediction for the whole image + +**Object Detection:** + +- Identifies and locates multiple objects within an image +- Answers the questions: "What objects are in this image, and where are they located?" +- Outputs multiple predictions, each consisting of a class label and a bounding box + +To visualize this difference, let's consider an example: ![](images/jpeg/objxclas.jpg) + +This diagram illustrates the critical difference: image classification provides a single label for the entire image, while object detection identifies multiple objects, their classes, and their locations within the image. + +#### Key Components of Object Detection + +Object detection systems typically consist of two main components: + +1. Object Localization: This component identifies where objects are located in the image. It typically outputs bounding boxes, rectangular regions encompassing each detected object. + +2. Object Classification: This component determines the class or category of each detected object, similar to image classification but applied to each localized region. + +#### Challenges in Object Detection + +Object detection presents several challenges beyond those of image classification: + +- Multiple objects: An image may contain multiple objects of various classes, sizes, and positions. +- Varying scales: Objects can appear at different sizes within the image. +- Occlusion: Objects may be partially hidden or overlapping. +- Background clutter: Distinguishing objects from complex backgrounds can be challenging. +- Real-time performance: Many applications require fast inference times, especially on edge devices. + +#### Approaches to Object Detection + +There are two main approaches to object detection: + +1. Two-stage detectors: These first propose regions of interest and then classify each region. Examples include R-CNN and its variants (Fast R-CNN, Faster R-CNN). + +2. Single-stage detectors: These predict bounding boxes (or centroids) and class probabilities in one forward pass of the network. Examples include YOLO (You Only Look Once), EfficientDet, SSD (Single Shot Detector), and FOMO (Faster Objects, More Objects). These are often faster and more suitable for edge devices like Raspberry Pi. + +#### Evaluation Metrics + +Object detection uses different metrics compared to image classification: + +- **Intersection over Union (IoU)**: Measures the overlap between predicted and ground truth bounding boxes. +- **Mean Average Precision (mAP)**: Combines precision and recall across all classes and IoU thresholds. +- **Frames Per Second (FPS)**: Measures detection speed, crucial for real-time applications on edge devices. + +## Pre-Trained Object Detection Models Overview + +As we saw in the introduction, given an image or a video stream, an object detection model can identify which of a known set of objects might be present and provide information about their positions within the image. + +> You can test some common models online by visiting [Object Detection - MediaPipe Studio](https://mediapipe-studio.webapps.google.com/studio/demo/object_detector) + +On [Kaggle](https://www.kaggle.com/models?id=298,130,299), we can find the most common pre-trained tflite models to use with the Raspi, [ssd_mobilenet_v1,](https://www.kaggle.com/models/tensorflow/ssd-mobilenet-v1/tfLite) and [EfficientDet](https://www.kaggle.com/models/tensorflow/efficientdet/tfLite). Those models were trained on the COCO (Common Objects in Context) dataset, with over 200,000 labeled images in 91 categories. Go, download the models, and upload them to the `./models` folder in the Raspi. + +> Alternatively[,](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/tree/main/OBJ_DETEC/models) you can find the models and the COCO labels on [GitHub](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/tree/main/OBJ_DETEC/models). + +For the first part of this lab, we will focus on a pre-trained 300x300 SSD-Mobilenet V1 model and compare it with the 320x320 EfficientDet-lite0, also trained using the COCO 2017 dataset. Both models were converted to a TensorFlow Lite format (4.2MB for the SSD Mobilenet and 4.6MB for the EfficientDet). + +> SSD-Mobilenet V2 or V3 is recommended for transfer learning projects, but once the V1 TFLite model is publicly available, we will use it for this overview. + +![](images/png/model-deploy.png) + +### Setting Up the TFLite Environment + +We should confirm the steps done on the last Hands-On Lab, Image Classification, as follows: + +- Updating the Raspberry Pi + +- Installing Required Libraries + +- Setting up a Virtual Environment (Optional but Recommended) + +```bash +source ~/tflite/bin/activate +``` + +- Installing TensorFlow Lite Runtime + +- Installing Additional Python Libraries (inside the environment) + +### Creating a Working Directory: + +Considering that we have created the `Documents/TFLITE` folder in the last Lab, let's now create the specific folders for this object detection lab: + +```bash +cd Documents/TFLITE/ +mkdir OBJ_DETECT +cd OBJ_DETECT +mkdir images +mkdir models +cd models +``` + +### Inference and Post-Processing + +Let's start a new [notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/SSD_MobileNetV1.ipynb) to follow all the steps to detect objects on an image: + +Import the needed libraries: + +```python +import time +import numpy as np +import matplotlib.pyplot as plt +from PIL import Image +import tflite_runtime.interpreter as tflite +``` + +Load the TFLite model and allocate tensors: + +```python +model_path = "./models/ssd-mobilenet-v1-tflite-default-v1.tflite" +interpreter = tflite.Interpreter(model_path=model_path) +interpreter.allocate_tensors() +``` + +Get input and output tensors. + +```python +input_details = interpreter.get_input_details() +output_details = interpreter.get_output_details() +``` + +**Input details** will inform us how the model should be fed with an image. The shape of `(1, 300, 300, 3)` with a dtype of `uint8` tells us that a non-normalized (pixel value range from 0 to 255) image with dimensions (300x300x3) should be input one by one (Batch Dimension: 1). + +The **output details** include not only the labels ("classes") and probabilities (“scores”) but also the relative window position of the bounding boxes ("boxes”) about where the object is located on the image and the number of detected objects ("num_detections"). The output details also tell us that the model can detect a **maximum of 10 objects** in the image. + +![](images/png/inference result.png) + +So, for the above example, using the same cat image used with the *Image Classification Lab* looking for the output, we have a **76% probability** of having found an object with a **class ID of 16** on an area delimited by a **bounding box of [0.028011084, 0.020121813, 0.9886069, 0.802299]**. Those four numbers are related to `ymin`, `xmin`, `ymax` and `xmax`, the box coordinates. + +Taking into consideration that **y** goes from the top `(ymin`) to the bottom (`ymax`) and **x** goes from left (`xmin`) to the right (`xmax`), we have, in fact, the coordinates of the top/left corner and the bottom/right one. With both edges and knowing the shape of the picture, it is possible to draw a rectangle around the object, as shown in the figure below: + +![](images/png/boulding-boxes.png) + +Next, we should find what class ID equal to 16 means. Opening the file `coco_labels.txt`, as a list, each element has an associated index, and inspecting index 16, we get, as expected, `cat`. The probability is the value returning from the score. + +Let's now upload some images with multiple objects on it for testing. + +```python +img_path = "./images/cat_dog.jpeg" +orig_img = Image.open(img_path) + +# Display the image +plt.figure(figsize=(8, 8)) +plt.imshow(orig_img) +plt.title("Original Image") +plt.show() +``` + +![](images/png/cat-dog.png) + +Based on the input details, let's pre-process the image, changing its shape and expanding its dimension: + +```python +img = orig_img.resize((input_details[0]['shape'][1], + input_details[0]['shape'][2])) +input_data = np.expand_dims(img, axis=0) +input_data.shape, input_data.dtype +``` + +The new input_data shape is` (1, 300, 300, 3)` with a dtype of `uint8`, which is compatible with what the model expects. + +Using the input_data, let's run the interpreter, measure the latency, and get the output: + +```python +start_time = time.time() +interpreter.set_tensor(input_details[0]['index'], input_data) +interpreter.invoke() +end_time = time.time() +inference_time = (end_time - start_time) * 1000 # Convert to milliseconds +print ("Inference time: {:.1f}ms".format(inference_time)) +``` + +With a latency of around 800ms, we can get 4 distinct outputs: + +```python +boxes = interpreter.get_tensor(output_details[0]['index'])[0] +classes = interpreter.get_tensor(output_details[1]['index'])[0] +scores = interpreter.get_tensor(output_details[2]['index'])[0] +num_detections = int(interpreter.get_tensor(output_details[3]['index'])[0]) +``` + +On a quick inspection, we can see that the model detected 2 objects with a score over 0.5: + +```python +for i in range(num_detections): + if scores[i] > 0.5: # Confidence threshold + print(f"Object {i}:") + print(f" Bounding Box: {boxes[i]}") + print(f" Confidence: {scores[i]}") + print(f" Class: {classes[i]}") +``` + +![](images/png/infer-mobv1.png) + +And we can also visualize the results: + +```python +plt.figure(figsize=(12, 8)) +plt.imshow(orig_img) +for i in range(num_detections): + if scores[i] > 0.5: # Adjust threshold as needed + ymin, xmin, ymax, xmax = boxes[i] + (left, right, top, bottom) = (xmin * orig_img.width, + xmax * orig_img.width, + ymin * orig_img.height, + ymax * orig_img.height) + rect = plt.Rectangle((left, top), right-left, bottom-top, + fill=False, color='red', linewidth=2) + plt.gca().add_patch(rect) + class_id = int(classes[i]) + class_name = labels[class_id] + plt.text(left, top-10, f'{class_name}: {scores[i]:.2f}', + color='red', fontsize=12, backgroundcolor='white') +``` + + + +![](images/png/visual_inf.png) + +### EfficientDet + +EfficientDet is not technically an SSD (Single Shot Detector) model, but it shares some similarities and builds upon ideas from SSD and other object detection architectures: + +1. EfficientDet: + - Developed by Google researchers in 2019 + - Uses EfficientNet as the backbone network + - Employs a novel bi-directional feature pyramid network (BiFPN) + - It uses compound scaling to scale the backbone network and the object detection components efficiently. + +2. Similarities to SSD: + - Both are single-stage detectors, meaning they perform object localization and classification in a single forward pass. + - Both use multi-scale feature maps to detect objects at different scales. + +3. Key differences: + - Backbone: SSD typically uses VGG or MobileNet, while EfficientDet uses EfficientNet. + - Feature fusion: SSD uses a simple feature pyramid, while EfficientDet uses the more advanced BiFPN. + - Scaling method: EfficientDet introduces compound scaling for all components of the network + +4. Advantages of EfficientDet: + - Generally achieves better accuracy-efficiency trade-offs than SSD and many other object detection models. + - More flexible scaling allows for a family of models with different size-performance trade-offs. + +While EfficientDet is not an SSD model, it can be seen as an evolution of single-stage detection architectures, incorporating more advanced techniques to improve efficiency and accuracy. When using EfficientDet, we can expect similar output structures to SSD (e.g., bounding boxes and class scores). + +> On GitHub, you can find another [notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/SSD_EfficientDet.ipynb) exploring the EfficientDet model that we did with SSD MobileNet. +> + +## Object Detection Project + +Now, we will develop a complete Image Classification project from data collection to training and deployment. As we did with the Image Classification project, the trained and converted model will be used for inference. + +We will use the same dataset to train 3 models: SSD-MobileNet V2, FOMO, and YOLO. + +### The Goal + +All Machine Learning projects need to start with a goal. Let's assume we are in an industrial facility and must sort and count **wheels** and special **boxes**. + +![](images/jpeg/proj_goal.jpg) + +In other words, we should perform a multi-label classification, where each image can have three classes: + +- Background (no objects) + +- Box + +- Wheel + +### Raw Data Collection + +Once we have defined our Machine Learning project goal, the next and most crucial step is collecting the dataset. We can use a phone, the Raspi, or a mix to create the raw dataset (with no labels). Let's use the simple web app on our Raspberry Pi to view the `QVGA (320 x 240)` captured images in a browser. + +From GitHub, get the Python script [get_img_data.py](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/IMG_CLASS/python_scripts/get_img_data.py) and open it in the terminal: + +```bash +python3 get_img_data.py +``` + +Access the web interface: + +- On the Raspberry Pi itself (if you have a GUI): Open a web browser and go to `http://localhost:5000` +- From another device on the same network: Open a web browser and go to `http://:5000` (Replace `` with your Raspberry Pi's IP address). For example: `http://192.168.4.210:5000/` + +![](images/png/app.png)The Python script creates a web-based interface for capturing and organizing image datasets using a Raspberry Pi and its camera. It's handy for machine learning projects that require labeled image data or not, as in our case here. + +Access the web interface from a browser, enter a generic label for the images you want to capture, and press `Start Capture`. + +![](images/png/cap-img.png) + +> Note that the images to be captured will have multiple labels that should be defined later. + +Use the live preview to position the camera and click `Capture Image` to save images under the current label (in this case, `box-wheel`. + +![](images/png/img_cap-1.png) + +When we have enough images, we can press `Stop Capture`. The captured images are saved on the folder dataset/box-wheel: + +![](images/png/dataset.png) + +> Get around 60 images. Try to capture different angles, backgrounds, and light conditions. Filezilla can transfer the created raw dataset to your main computer. + +### Labeling Data + +The next step in an Object Detect project is to create a labeled dataset. We should label the raw dataset images, creating bounding boxes around each picture's objects (box and wheel). We can use labeling tools like [LabelImg,](https://pypi.org/project/labelImg/) [CVAT,](https://www.cvat.ai/) [Roboflow,](https://roboflow.com/annotate) or even the [Edge Impulse Studio.](https://edgeimpulse.com/) Once we have explored the Edge Impulse tool in other labs, let’s use Roboflow here. + +> We are using Roboflow (free version) here for two main reasons. 1) We can have auto-labeler, and 2) The annotated dataset is available in several formats and can be used both on Edge Impulse Studio (we will use it for MobileNet V2 and FOMO train) and on CoLab (YOLOv8 train), for example. Having the annotated dataset on Edge Impulse (Free account), it is not possible to use it for training on other platforms. + +We should upload the raw dataset to [Roboflow.](https://roboflow.com/) Create a free account there and start a new project, for example, (“box-versus-wheel”). + +![](images/png/create-project-rf.png) + +> We will not enter in deep details about the Roboflow process once many tutorials are available. + +#### Annotate + +Once the project is created and the dataset is uploaded, you should make the annotations using the "Auto-Label" Tool. Note that you can also upload images with only a background, which should be saved w/o any annotations. + +![](images/png/annotation.png) + +Once all images are annotated, you should split them into training, validation, and testing. + +![](images/png/dataset_rf.png) + +#### Data Pre-Processing + +The last step with the dataset is preprocessing to generate a final version for training. Let's resize all images to 320x320 and generate augmented versions of each image (augmentation) to create new training examples from which our model can learn. + +For augmentation, we will rotate the images (+/-15^o^), crop, and vary the brightness and exposure. + +![](images/png/pre-proc.png) + +At the end of the process, we will have 153 images. + +![](images/png/final-dataset.png) + +Now, you should export the annotated dataset in a format that Edge Impulse, Ultralitics, and other frameworks/tools understand, for example, `YOLOv8`. Let's download a zipped version of the dataset to our desktop. + +![](images/png/download-dataset.png) + +Here, it is possible to review how the dataset was structured + +![](images/png/dataset-struct.png) + +There are 3 separate folders, one for each split (`train`/`test`/`valid`). For each of them, there are 2 subfolders, `images`, and `labels`. The pictures are stored as **image_id.jpg** and **images_id.txt**, where "image_id" is unique for every picture. + +The labels file format will be `class_id` `bounding box coordinates`, where in our case, class_id will be `0` for `box` and `1` for `wheel`. The numerical id (o, 1, 2...) will follow the alphabetical order of the class name. + +The `data.yaml` file has info about the dataset as the classes' names (`names: ['box', 'wheel']`) following the YOLO format. + +And that's it! We are ready to start training using the Edge Impulse Studio (as we will do in the following step), Ultralytics (as we will when discussing YOLO), or even training from scratch on CoLab (as we did with the Cifar-10 dataset on the Image Classification lab). + +> The pre-processed dataset can be found at the [Roboflow site](https://universe.roboflow.com/marcelo-rovai-riila/box-versus-wheel-auto-dataset), or here: +> +> + +## Training an SSD MobileNet Model on Edge Impulse Studio + +Go to [Edge Impulse Studio,](https://www.edgeimpulse.com/) enter your credentials at **Login** (or create an account), and start a new project. + +> Here, you can clone the project developed for this hands-on lab: [Raspi - Object Detection](https://studio.edgeimpulse.com/public/515477/live). + +On the Project `Dashboard` tab, go down and on **Project info,** and for Labeling method select `Bounding boxes (object detection)` + +### Uploading the annotated data + +On Studio, go to the `Data acquisition` tab, and on the `UPLOAD DATA` section, upload from your computer the raw dataset. + +We can use the option `Select a folder`, choosing, for example, the folder `train` in your computer, which contains two sub-folders, `images`, and `labels`. Select the `Image label format`, "YOLO TXT", upload into the caegory `Training`, and press `Upload data`. + +![](images/png/upload-data.png) + +Repeat the process for the test data (upload both folders, test, and validation). At the end of the upload process, you should end with the annotated dataset of 153 images split in the train/test (84%/16%). + +> Note that labels will be stored at the labels files `0` and `1` , which are equivalent to `box` and `wheel`. + +![](images/png/ei-dataset.png) + +### The Impulse Design + +The first thing to define when we enter the `Create impulse` step is to describe the target device for deployment. A pop-up window will appear. We will select Raspberry 4, an intermediary device between the Raspi-Zero and the Raspi-5. + +> This choice will not interfere with the training; it will only give us an idea about the latency of the model on that specific target. + +![](images/png/target-device.png) + +In this phase, you should define how to: + +- **Pre-processing** consists of resizing the individual images. In our case, the images were pre-processed on Roboflow, to `320x320` , so let's keep it. The resize will not matter here because the images are already squared. If you upload a rectangular image, squash it (squared form, without cropping). Afterward, you could define if the images are converted from RGB to Grayscale or not. + +- **Design a Model,** in this case, "Object Detection." + +![](images/png/impulse-design.png) + +### Preprocessing all dataset + +In the section `Image`, select **Color depth** as `RGB`, and press `Save parameters`. + +![](images/png/ei-image-pre.png) + +The Studio moves automatically to the next section, `Generate features`, where all samples will be pre-processed, resulting in 480 objects: 207 boxes and 273 wheels. + +![](images/png/ei-features.png) + +The feature explorer shows that all samples evidence a good separation after the feature generation. + +### Model Design, Training, and Test + +For training, we should select a pre-trained model. Let's use the **MobileNetV2 SSD FPN-Lite (320x320 only)** . It is a pre-trained object detection model designed to locate up to 10 objects within an image, outputting a bounding box for each object detected. The model is around 3.7MB in size. It supports an RGB input at 320x320px. + +Regarding the training hyper-parameters, the model will be trained with: + +- Epochs: 25 +- Batch size: 32 +- Learning Rate: 0.15. + +For validation during training, 20% of the dataset (*validation_dataset*) will be spared. + +![](images/png/ei-train-result.png) + +As a result, the model ends with an overall precision score (based on COCO mAP) of 88.8%, higher than the result when using the test data (83.3%). + +### Deploying the model + +We have two ways to deploy our model: + +- **TFLite model**, which lets deploy the trained model as `.tflite` for the Raspi to run it using Python. +- **Linux (AARCH64)**, a binary for Linux (AARCH64), implements the Edge Impulse Linux protocol, which lets us run our models on any Linux-based development board, with SDKs for Python, for example. See the documentation for more information and [setup instructions](https://docs.edgeimpulse.com/docs/edge-impulse-for-linux). + +Let's deploy the **TFLite model**. On the `Dashboard` tab, go to Transfer learning model (int8 quantized) and click on the download icon: + +![](images/png/ei-deploy-int8.png) + +Transfer the model from your computer to the Raspi folder`./models` and capture or get some images for inference and save them in the folder `./images`. + +### Inference and Post-Processing + +The inference can be made as discussed in the *Pre-Trained Object Detection Models Overview*. Let's start a new [notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/EI-SSD-MobileNetV2.ipynb) to follow all the steps to detect cubes and wheels on an image. + +Import the needed libraries: + +```python +import time +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.patches as patches +from PIL import Image +import tflite_runtime.interpreter as tflite +``` + +Define the model path and labels: + +```python +model_path = "./models/ei-raspi-object-detection-SSD-MobileNetv2-320x0320-\ +int8.lite" +labels = ['box', 'wheel'] +``` + +> Remember that the model will output the class ID as values (0 and 1), following an alphabetic order regarding the class names. + +Load the model, allocate the tensors, and get the input and output tensor details: + +```python +# Load the TFLite model +interpreter = tflite.Interpreter(model_path=model_path) +interpreter.allocate_tensors() + +# Get input and output tensors +input_details = interpreter.get_input_details() +output_details = interpreter.get_output_details() +``` + +One crucial difference to note is that the `dtype` of the input details of the model is now `int8`, which means that the input values go from -128 to +127, while each pixel of our raw image goes from 0 to 256. This means that we should pre-process the image to match it. We can check here: + +```python +input_dtype = input_details[0]['dtype'] +input_dtype +``` + +``` +numpy.int8 +``` + +So, let's open the image and show it: + +```python +# Load the image +img_path = "./images/box_2_wheel_2.jpg" +orig_img = Image.open(img_path) + +# Display the image +plt.figure(figsize=(6, 6)) +plt.imshow(orig_img) +plt.title("Original Image") +plt.show() +``` + +![](images/png/orig-img.png) + +And perform the pre-processing: + +```python +scale, zero_point = input_details[0]['quantization'] +img = orig_img.resize((input_details[0]['shape'][1], + input_details[0]['shape'][2])) +img_array = np.array(img, dtype=np.float32) / 255.0 +img_array = (img_array / scale + zero_point).clip(-128, 127).astype(np.int8) +input_data = np.expand_dims(img_array, axis=0) +``` + +Checking the input data, we can verify that the input tensor is compatible with what is expected by the model: + +```python +input_data.shape, input_data.dtype +``` + +``` +((1, 320, 320, 3), dtype('int8')) +``` + +Now, it is time to perform the inference. Let's also calculate the latency of the model: + +```python +# Inference on Raspi-Zero +start_time = time.time() +interpreter.set_tensor(input_details[0]['index'], input_data) +interpreter.invoke() +end_time = time.time() +inference_time = (end_time - start_time) * 1000 # Convert to milliseconds +print ("Inference time: {:.1f}ms".format(inference_time)) +``` + +The model will take around 600ms to perform the inference in the Raspi-Zero, which is around 5 times longer than a Raspi-5. + +Now, we can get the output classes of objects detected, its bounding boxes coordinates, and probabilities. + +```python +boxes = interpreter.get_tensor(output_details[1]['index'])[0] +classes = interpreter.get_tensor(output_details[3]['index'])[0] +scores = interpreter.get_tensor(output_details[0]['index'])[0] +num_detections = int(interpreter.get_tensor(output_details[2]['index'])[0]) +``` + +```python +for i in range(num_detections): + if scores[i] > 0.5: # Confidence threshold + print(f"Object {i}:") + print(f" Bounding Box: {boxes[i]}") + print(f" Confidence: {scores[i]}") + print(f" Class: {classes[i]}") +``` + +![](images/png/infer-text.png) + +From the results, we can see that 4 objects were detected: two with class ID 0 (`box`)and two with class ID 1 (`wheel`), what is correct! + +Let's visualize the result for a ` threshold` of 0.5 + +```python +threshold = 0.5 +plt.figure(figsize=(6,6)) +plt.imshow(orig_img) +for i in range(num_detections): + if scores[i] > threshold: + ymin, xmin, ymax, xmax = boxes[i] + (left, right, top, bottom) = (xmin * orig_img.width, + xmax * orig_img.width, + ymin * orig_img.height, + ymax * orig_img.height) + rect = plt.Rectangle((left, top), right-left, bottom-top, + fill=False, color='red', linewidth=2) + plt.gca().add_patch(rect) + class_id = int(classes[i]) + class_name = labels[class_id] + plt.text(left, top-10, f'{class_name}: {scores[i]:.2f}', + color='red', fontsize=12, backgroundcolor='white') +``` + +![](images/png/infer-visual.png) + +But what happens if we reduce the threshold to 0.3, for example? + +![](images/png/infer-mult.png) + +We start to see false positives and **multiple detections**, where the model detects the same object multiple times with different confidence levels and slightly different bounding boxes. + +Commonly, sometimes, we need to adjust the threshold to smaller values to capture all objects, avoiding false negatives, which would lead to multiple detections. + +To improve the detection results, we should implement **Non-Maximum Suppression (NMS**), which helps eliminate overlapping bounding boxes and keeps only the most confident detection. + +For that, let's create a general function named `non_max_suppression()`, with the role of refining object detection results by eliminating redundant and overlapping bounding boxes. It achieves this by iteratively selecting the detection with the highest confidence score and removing other significantly overlapping detections based on an Intersection over Union (IoU) threshold. + +```python +def non_max_suppression(boxes, scores, threshold): + # Convert to corner coordinates + x1 = boxes[:, 0] + y1 = boxes[:, 1] + x2 = boxes[:, 2] + y2 = boxes[:, 3] + + areas = (x2 - x1 + 1) * (y2 - y1 + 1) + order = scores.argsort()[::-1] + + keep = [] + while order.size > 0: + i = order[0] + keep.append(i) + xx1 = np.maximum(x1[i], x1[order[1:]]) + yy1 = np.maximum(y1[i], y1[order[1:]]) + xx2 = np.minimum(x2[i], x2[order[1:]]) + yy2 = np.minimum(y2[i], y2[order[1:]]) + + w = np.maximum(0.0, xx2 - xx1 + 1) + h = np.maximum(0.0, yy2 - yy1 + 1) + inter = w * h + ovr = inter / (areas[i] + areas[order[1:]] - inter) + + inds = np.where(ovr <= threshold)[0] + order = order[inds + 1] + + return keep +``` + +How it works: + +1. Sorting: It starts by sorting all detections by their confidence scores, highest to lowest. + +2. Selection: It selects the highest-scoring box and adds it to the final list of detections. + +3. Comparison: This selected box is compared with all remaining lower-scoring boxes. + +4. Elimination: Any box that overlaps significantly (above the IoU threshold) with the selected box is eliminated. + +5. Iteration: This process repeats with the next highest-scoring box until all boxes are processed. + +Now, we can define a more precise visualization function that will take into consideration an IoU threshold, detecting only the objects that were selected by the `non_max_suppression` function: + +```python +def visualize_detections(image, boxes, classes, scores, + labels, threshold, iou_threshold): + if isinstance(image, Image.Image): + image_np = np.array(image) + else: + image_np = image + + height, width = image_np.shape[:2] + + # Convert normalized coordinates to pixel coordinates + boxes_pixel = boxes * np.array([height, width, height, width]) + + # Apply NMS + keep = non_max_suppression(boxes_pixel, scores, iou_threshold) + + # Set the figure size to 12x8 inches + fig, ax = plt.subplots(1, figsize=(12, 8)) + + ax.imshow(image_np) + + for i in keep: + if scores[i] > threshold: + ymin, xmin, ymax, xmax = boxes[i] + rect = patches.Rectangle((xmin * width, ymin * height), + (xmax - xmin) * width, + (ymax - ymin) * height, + linewidth=2, edgecolor='r', facecolor='none') + ax.add_patch(rect) + class_name = labels[int(classes[i])] + ax.text(xmin * width, ymin * height - 10, + f'{class_name}: {scores[i]:.2f}', color='red', + fontsize=12, backgroundcolor='white') + + plt.show() +``` + +Now we can create a function that will call the others, performing inference on any image: + +```python +def detect_objects(img_path, conf=0.5, iou=0.5): + orig_img = Image.open(img_path) + scale, zero_point = input_details[0]['quantization'] + img = orig_img.resize((input_details[0]['shape'][1], + input_details[0]['shape'][2])) + img_array = np.array(img, dtype=np.float32) / 255.0 + img_array = (img_array / scale + zero_point).clip(-128, 127).\ + astype(np.int8) + input_data = np.expand_dims(img_array, axis=0) + + # Inference on Raspi-Zero + start_time = time.time() + interpreter.set_tensor(input_details[0]['index'], input_data) + interpreter.invoke() + end_time = time.time() + inference_time = (end_time - start_time) * 1000 # Convert to ms + print ("Inference time: {:.1f}ms".format(inference_time)) + + # Extract the outputs + boxes = interpreter.get_tensor(output_details[1]['index'])[0] + classes = interpreter.get_tensor(output_details[3]['index'])[0] + scores = interpreter.get_tensor(output_details[0]['index'])[0] + num_detections = int(interpreter.get_tensor(output_details[2]['index'])[0]) + + visualize_detections(orig_img, boxes, classes, scores, labels, + threshold=conf, + iou_threshold=iou) +``` + +Now, running the code, having the same image again with a confidence threshold of 0.3, but with a small IoU: + +```python +img_path = "./images/box_2_wheel_2.jpg" +detect_objects(img_path, conf=0.3,iou=0.05) +``` + +![](images/png/infer-iou.png) + +## Training a FOMO Model at Edge Impulse Studio + +The inference with the SSD MobileNet model worked well, but the latency was significantly high. The inference varied from 0.5 to 1.3 seconds on a Raspi-Zero, which means around or less than 1 FPS (1 frame per second). One alternative to speed up the process is to use FOMO (Faster Objects, More Objects). + +This novel machine learning algorithm lets us count multiple objects and find their location in an image in real-time using up to 30x less processing power and memory than MobileNet SSD or YOLO. The main reason this is possible is that while other models calculate the object’s size by drawing a square around it (bounding box), FOMO ignores the size of the image, providing only the information about where the object is located in the image through its centroid coordinates. + +### How FOMO works? + +In a typical object detection pipeline, the first stage is extracting features from the input image. **FOMO leverages MobileNetV2 to perform this task**. MobileNetV2 processes the input image to produce a feature map that captures essential characteristics, such as textures, shapes, and object edges, in a computationally efficient way. + +![](images/png/fomo-1.png) + +Once these features are extracted, FOMO’s simpler architecture, focused on center-point detection, interprets the feature map to determine where objects are located in the image. The output is a grid of cells, where each cell represents whether or not an object center is detected. The model outputs one or more confidence scores for each cell, indicating the likelihood of an object being present. + +Let's see how it works on an image. + +FOMO divides the image into blocks of pixels using a factor of 8. For the input of 96x96, the grid would be 12x12 (96/8=12). For a 160x160, the grid will be 20x20, and so on. Next, FOMO will run a classifier through each pixel block to calculate the probability that there is a box or a wheel in each of them and, subsequently, determine the regions that have the highest probability of containing the object (If a pixel block has no objects, it will be classified as *background*). From the overlap of the final region, the FOMO provides the coordinates (related to the image dimensions) of the centroid of this region. + +![](images/png/fomo-works.png) + +**Trade-off Between Speed and Precision**: + +- **Grid Resolution**: FOMO uses a grid of fixed resolution, meaning each cell can detect if an object is present in that part of the image. While it doesn’t provide high localization accuracy, it makes a trade-off by being fast and computationally light, which is crucial for edge devices. +- **Multi-Object Detection**: Since each cell is independent, FOMO can detect multiple objects simultaneously in an image by identifying multiple centers. + +### Impulse Design, new Training and Testing + +Return to Edge Impulse Studio, and in the `Experiments` tab, create another impulse. Now, the input images should be 160x160 (this is the expected input size for MobilenetV2). + +![](images/png/impulse-2.png) + +On the `Image` tab, generate the features and go to the `Object detection` tab. + +We should select a pre-trained model for training. Let’s use the **FOMO (Faster Objects, More Objects) MobileNetV2 0.35.** + +![](images/png/model-choice.png) + +Regarding the training hyper-parameters, the model will be trained with: + +- Epochs: 30 +- Batch size: 32 +- Learning Rate: 0.001. + +For validation during training, 20% of the dataset (*validation_dataset*) will be spared. We will not apply Data Augmentation for the remaining 80% (*train_dataset*) because our dataset was already augmented during the labeling phase at Roboflow. + +As a result, the model ends with an overall F1 score of 93.3% with an impressive latency of 8ms (Raspi-4), around 60X less than we got with the SSD MovileNetV2. + +![](images/png/fomo-train-result.png) + +> Note that FOMO automatically added a third label background to the two previously defined *boxes* (0) and *wheels* (1). + +On the `Model testing` tab, we can see that the accuracy was 94%. Here is one of the test sample results: + +![](images/png/fomo-test.png) + +> In object detection tasks, accuracy is generally not the primary [evaluation metric.](https://learnopencv.com/mean-average-precision-map-object-detection-model-evaluation-metric/) Object detection involves classifying objects and providing bounding boxes around them, making it a more complex problem than simple classification. The issue is that we do not have the bounding box, only the centroids. In short, using accuracy as a metric could be misleading and may not provide a complete understanding of how well the model is performing. + +### Deploying the model + +As we did in the previous section, we can deploy the trained model as TFLite or Linux (AARCH64). Let's do it now as **Linux (AARCH64)**, a binary that implements the [Edge Impulse Linux](https://docs.edgeimpulse.com/docs/tools/edge-impulse-for-linux) protocol. + +Edge Impulse for Linux models is delivered in `.eim` format. This [executable](https://docs.edgeimpulse.com/docs/run-inference/linux-eim-executable) contains our "full impulse" created in Edge Impulse Studio. The impulse consists of the signal processing block(s) and any learning and anomaly block(s) we added and trained. It is compiled with optimizations for our processor or GPU (e.g., NEON instructions on ARM cores), plus a straightforward IPC layer (over a Unix socket). + +At the `Deploy` tab, select the option `Linux (AARCH64)`, the `int8`model and press `Build`. + +![](images/png/deploy-linux.png) + +The model will be automatically downloaded to your computer. + +On our Raspi, let's create a new working area: + +```bash +cd ~ +cd Documents +mkdir EI_Linux +cd EI_Linux +mkdir models +mkdir images +``` + +Rename the model for easy identification: + +For example, `raspi-object-detection-linux-aarch64-FOMO-int8.eim` and transfer it to the new Raspi folder`./models` and capture or get some images for inference and save them in the folder `./images`. + +### Inference and Post-Processing + +The inference will be made using the [Linux Python SDK](https://docs.edgeimpulse.com/docs/tools/edge-impulse-for-linux/linux-python-sdk). This library lets us run machine learning models and collect sensor data on [Linux](https://docs.edgeimpulse.com/docs/tools/edge-impulse-for-linux) machines using Python. The SDK is open source and hosted on GitHub: [edgeimpulse/linux-sdk-python](https://github.com/edgeimpulse/linux-sdk-python). + +Let's set up a Virtual Environment for working with the Linux Python SDK + +```bash +python3 -m venv ~/eilinux +source ~/eilinux/bin/activate +``` + +And Install the all the libraries needed: + +```bash +sudo apt-get update +sudo apt-get install libatlas-base-dev libportaudio0 libportaudio2 +sudo apt-get installlibportaudiocpp0 portaudio19-dev + +pip3 install edge_impulse_linux -i https://pypi.python.org/simple +pip3 install Pillow matplotlib pyaudio opencv-contrib-python + +sudo apt-get install portaudio19-dev +pip3 install pyaudio +pip3 install opencv-contrib-python +``` + +Permit our model to be executable. + +```bash +chmod +x raspi-object-detection-linux-aarch64-FOMO-int8.eim +``` + +Install the Jupiter Notebook on the new environment + +```bash +pip3 install jupyter +``` + +Run a notebook locally (on the Raspi-4 or 5 with desktop) + +```bash +jupyter notebook +``` + +or on the browser on your computer: + +```bash +jupyter notebook --ip=192.168.4.210 --no-browser +``` + +Let's start a new [notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/EI-Linux-FOMO.ipynb) by following all the steps to detect cubes and wheels on an image using the FOMO model and the Edge Impulse Linux Python SDK. + +Import the needed libraries: + +```python +import sys, time +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.patches as patches +from PIL import Image +import cv2 +from edge_impulse_linux.image import ImageImpulseRunner +``` + +Define the model path and labels: + +```python +model_file = "raspi-object-detection-linux-aarch64-int8.eim" +model_path = "models/"+ model_file # Trained ML model from Edge Impulse +labels = ['box', 'wheel'] +``` + +> Remember that the model will output the class ID as values (0 and 1), following an alphabetic order regarding the class names. + +Load and initialize the model: + +```python +# Load the model file +runner = ImageImpulseRunner(model_path) + +# Initialize model +model_info = runner.init() +``` + +The `model_info` will contain critical information about our model. However, unlike the TFLite interpreter, the EI Linux Python SDK library will now prepare the model for inference. + +So, let's open the image and show it (Now, for compatibility, we will use OpenCV, the CV Library used internally by EI. OpenCV reads the image as BGR, so we will need to convert it to RGB : + +```python +# Load the image +img_path = "./images/1_box_1_wheel.jpg" +orig_img = cv2.imread(img_path) +img_rgb = cv2.cvtColor(orig_img, cv2.COLOR_BGR2RGB) + +# Display the image +plt.imshow(img_rgb) +plt.title("Original Image") +plt.show() +``` + +![](images/png/orig-fomo-img.png) + +Now we will get the features and the preprocessed image (`cropped`) using the `runner`: + +```python +features, cropped = runner.get_features_from_image_auto_studio_setings(img_rgb) +``` + +And perform the inference. Let's also calculate the latency of the model: + +```python +res = runner.classify(features) +``` + +Let's get the output classes of objects detected, their bounding boxes centroids, and probabilities. + +```python +print('Found %d bounding boxes (%d ms.)' % ( + len(res["result"]["bounding_boxes"]), + res['timing']['dsp'] + res['timing']['classification'])) +for bb in res["result"]["bounding_boxes"]: + print('\t%s (%.2f): x=%d y=%d w=%d h=%d' % ( + bb['label'], bb['value'], bb['x'], + bb['y'], bb['width'], bb['height'])) +``` + +``` +Found 2 bounding boxes (29 ms.) + 1 (0.91): x=112 y=40 w=16 h=16 + 0 (0.75): x=48 y=56 w=8 h=8 +``` + +The results show that two objects were detected: one with class ID 0 (`box`) and one with class ID 1 (`wheel`), which is correct! + +Let's visualize the result (The ` threshold` is 0.5, the default value set during the model testing on the Edge Impulse Studio). + +```python +print('\tFound %d bounding boxes (latency: %d ms)' % ( + len(res["result"]["bounding_boxes"]), + res['timing']['dsp'] + res['timing']['classification'])) +plt.figure(figsize=(5,5)) +plt.imshow(cropped) + +# Go through each of the returned bounding boxes +bboxes = res['result']['bounding_boxes'] +for bbox in bboxes: + + # Get the corners of the bounding box + left = bbox['x'] + top = bbox['y'] + width = bbox['width'] + height = bbox['height'] + + # Draw a circle centered on the detection + circ = plt.Circle((left+width//2, top+height//2), 5, + fill=False, color='red', linewidth=3) + plt.gca().add_patch(circ) + class_id = int(bbox['label']) + class_name = labels[class_id] + plt.text(left, top-10, f'{class_name}: {bbox["value"]:.2f}', + color='red', fontsize=12, backgroundcolor='white') +plt.show() +``` + +![](images/png/infer-fomo-result.png) + +## Exploring a YOLO Model using Ultralitics + +For this lab, we will explore YOLOv8. [Ultralytics](https://ultralytics.com/) [YOLOv8](https://github.com/ultralytics/ultralytics) is a version of the acclaimed real-time object detection and image segmentation model, YOLO. YOLOv8 is built on cutting-edge advancements in deep learning and computer vision, offering unparalleled performance in terms of speed and accuracy. Its streamlined design makes it suitable for various applications and easily adaptable to different hardware platforms, from edge devices to cloud APIs. + +### Talking about the YOLO Model + +The YOLO (You Only Look Once) model is a highly efficient and widely used object detection algorithm known for its real-time processing capabilities. Unlike traditional object detection systems that repurpose classifiers or localizers to perform detection, YOLO frames the detection problem as a single regression task. This innovative approach enables YOLO to simultaneously predict multiple bounding boxes and their class probabilities from full images in one evaluation, significantly boosting its speed. + +#### Key Features: + +1. **Single Network Architecture**: + + - YOLO employs a single neural network to process the entire image. This network divides the image into a grid and, for each grid cell, directly predicts bounding boxes and associated class probabilities. This end-to-end training improves speed and simplifies the model architecture. + +2. **Real-Time Processing**: + + - One of YOLO’s standout features is its ability to perform object detection in real-time. Depending on the version and hardware, YOLO can process images at high frames per second (FPS). This makes it ideal for applications requiring quick and accurate object detection, such as video surveillance, autonomous driving, and live sports analysis. + +3. **Evolution of Versions**: + + - Over the years, YOLO has undergone significant improvements, from YOLOv1 to the latest YOLOv10. Each iteration has introduced enhancements in accuracy, speed, and efficiency. YOLOv8, for instance, incorporates advancements in network architecture, improved training methodologies, and better support for various hardware, ensuring a more robust performance. + - Although YOLOv10 is the family's newest member with an encouraging performance based on its paper, it was just released (May 2024) and is not fully integrated with the Ultralitycs library. Conversely, the precision-recall curve analysis suggests that YOLOv8 generally outperforms YOLOv9, capturing a higher proportion of true positives while minimizing false positives more effectively (for more details, see this [article](https://encord.com/blog/performanceyolov9-vs-yolov8-custom-dataset/)). So, this lab is based on the YOLOv8n. + + ![](images/jpeg/versions.jpg) + +4. **Accuracy and Efficiency**: + + - While early versions of YOLO traded off some accuracy for speed, recent versions have made substantial strides in balancing both. The newer models are faster and more accurate, detecting small objects (such as bees) and performing well on complex datasets. + +5. **Wide Range of Applications**: + + - YOLO’s versatility has led to its adoption in numerous fields. It is used in traffic monitoring systems to detect and count vehicles, security applications to identify potential threats and agricultural technology to monitor crops and livestock. Its application extends to any domain requiring efficient and accurate object detection. + +6. **Community and Development**: + + - YOLO continues to evolve and is supported by a strong community of developers and researchers (being the YOLOv8 very strong). Open-source implementations and extensive documentation have made it accessible for customization and integration into various projects. Popular deep learning frameworks like Darknet, TensorFlow, and PyTorch support YOLO, further broadening its applicability. + - [Ultralitics YOLOv8](https://github.com/ultralytics/ultralytics?tab=readme-ov-file) can not only [Detect](https://docs.ultralytics.com/tasks/detect) (our case here) but also [Segment](https://docs.ultralytics.com/tasks/segment) and [Pose](https://docs.ultralytics.com/tasks/pose) models pre-trained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco) dataset and YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify) models pre-trained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet) dataset. [Track](https://docs.ultralytics.com/modes/track) mode is available for all Detect, Segment, and Pose models. + + ![Ultralytics YOLO supported tasks](https://raw.githubusercontent.com/ultralytics/assets/main/im/banner-tasks.png) + +### Installation + +On our Raspi, let's deactivate the current environment to create a new working area: + +```bash +deactivate +cd ~ +cd Documents/ +mkdir YOLO +cd YOLO +mkdir models +mkdir images +``` + +Let's set up a Virtual Environment for working with the Ultralytics YOLOv8 + +```bash +python3 -m venv ~/yolo +source ~/yolo/bin/activate +``` + +And install the Ultralytics packages for local inference on the Raspi + +1. Update the packages list, install pip, and upgrade to the latest: + +```bash +sudo apt update +sudo apt install python3-pip -y +pip install -U pip +``` + +2. Install the `ultralytics` pip package with optional dependencies: + +```bash +pip install ultralytics[export] +``` + +3. Reboot the device: + +```bash +sudo reboot +``` + +### Testing the YOLO + +After the Raspi-Zero booting, let's activate the `yolo` env, go to the working directory, + +```bash +source ~/yolo/bin/activate +cd /Documents/YOLO +``` + +and run inference on an image that will be downloaded from the Ultralytics website, using the YOLOV8n model (the smallest in the family) at the Terminal (CLI): + +```bash +yolo predict model='yolov8n' source='https://ultralytics.com/images/bus.jpg' +``` + +> The YOLO model family is pre-trained with the COCO dataset. + +The inference result will appear in the terminal. In the image (bus.jpg), 4 `persons`, 1 `bus,` and 1 `stop signal` were detected: + +![](images/png/yolo-infer-bus.png) + +Also, we got a message that `Results saved to runs/detect/predict`. Inspecting that directory, we can see a new image saved (bus.jpg). Let's download it from the Raspi-Zero to our desktop for inspection: + +![](images/png/yolo-bus.png) + +So, the Ultrayitics YOLO is correctly installed on our Raspi. But, on the Raspi-Zero, an issue is the high latency for this inference, around 18 seconds, even with the most miniature model of the family (YOLOv8n). + +### Export Model to NCNN format + +Deploying computer vision models on edge devices with limited computational power, such as the Raspi-Zero, can cause latency issues. One alternative is to use a format optimized for optimal performance. This ensures that even devices with limited processing power can handle advanced computer vision tasks well. + +Of all the model export formats supported by Ultralytics, the [NCNN](https://docs.ultralytics.com/integrations/ncnn) is a high-performance neural network inference computing framework optimized for mobile platforms. From the beginning of the design, NCNN was deeply considerate about deployment and use on mobile phones and did not have third-party dependencies. It is cross-platform and runs faster than all known open-source frameworks (such as TFLite). + +NCNN delivers the best inference performance when working with Raspberry Pi devices. NCNN is highly optimized for mobile embedded platforms (such as ARM architecture). + +So, let's convert our model and rerun the inference: + +1. Export a YOLOv8n PyTorch model to NCNN format, creating: '/yolov8n_ncnn_model' + +```bash +yolo export model=yolov8n.pt format=ncnn +``` + +2. Run inference with the exported model (now the source could be the bus.jpg image that was downloaded from the website to the current directory on the last inference): + +```bash +yolo predict model='./yolov8n_ncnn_model' source='bus.jpg' +``` + +> The first inference, when the model is loaded, usually has a high latency (around 17s), but from the 2nd, it is possible to note that the inference goes down to around 2s. + +### Exploring YOLO with Python + +To start, let's call the Python Interpreter so we can explore how the YOLO model works, line by line: + +```bash +python3 +``` + +Now, we should call the YOLO library from Ultralitics and load the model: + +```python +from ultralytics import YOLO +model = YOLO('yolov8n_ncnn_model') +``` + +Next, run inference over an image (let's use again `bus.jpg`): + +```python +img = 'bus.jpg' +result = model.predict(img, save=True, imgsz=640, conf=0.5, iou=0.3) +``` + +![](images/png/python-infer-bus.png) + +We can verify that the result is almost identical to the one we get running the inference at the terminal level (CLI), except that the bus stop was not detected with the reduced NCNN model. Note that the latency was reduced. + +Let's analyze the "result" content. + +For example, we can see `result[0].boxes.data`, showing us the main inference result, which is a tensor shape (4, 6). Each line is one of the objects detected, being the 4 first columns, the bounding boxes coordinates, the 5th, the confidence, and the 6th, the class (in this case, `0: person` and `5: bus`): + +![](images/png/result-bus.png) + +We can access several inference results separately, as the inference time, and have it printed in a better format: + +```python +inference_time = int(result[0].speed['inference']) +print(f"Inference Time: {inference_time} ms") +``` + +Or we can have the total number of objects detected: + +```python +print(f'Number of objects: {len (result[0].boxes.cls)}') +``` + +![](images/png/data-bus.png) + +With Python, we can create a detailed output that meets our needs (See [Model Prediction with Ultralytics YOLO]( https://docs.ultralytics.com/modes/predict/) for more details). Let's run a Python script instead of manually entering it line by line in the interpreter, as shown below. Let's use `nano` as our text editor. First, we should create an empty Python script named, for example, `yolov8_tests.py`: + +```python +nano yolov8_tests.py +``` + +Enter with the code lines: + +```python +from ultralytics import YOLO + +# Load the YOLOv8 model +model = YOLO('yolov8n_ncnn_model') + +# Run inference +img = 'bus.jpg' +result = model.predict(img, save=False, imgsz=640, conf=0.5, iou=0.3) + +# print the results +inference_time = int(result[0].speed['inference']) +print(f"Inference Time: {inference_time} ms") +print(f'Number of objects: {len (result[0].boxes.cls)}') +``` + +![](images/png/yolo-py-script.png) + +And enter with the commands: `[CTRL+O]` + `[ENTER]` +` [CTRL+X]` to save the Python script. + +Run the script: + +```bash +python yolov8_tests.py +``` + +The result is the same as running the inference at the terminal level (CLI) and with the built-in Python interpreter. + +> Calling the YOLO library and loading the model for inference for the first time takes a long time, but the inferences after that will be much faster. For example, the first single inference can take several seconds, but after that, the inference time should be reduced to less than 1 second. +> + +### Training YOLOv8 on a Customized Dataset + +Return to our "Boxe versus Wheel" dataset, labeled on [Roboflow](https://universe.roboflow.com/marcelo-rovai-riila/box-versus-wheel-auto-dataset). On the `Download Dataset`, instead of `Download a zip to computer` option done for training on Edge Impulse Studio, we will opt for `Show download code`. This option will open a pop-up window with a code snippet that should be pasted into our training notebook. + +![](images/png/dataset_code.png) + +For training, let's adapt one of the public examples available from Ultralitytics and run it on Google Colab. Below, you can find mine to be adapted in your project: + +- YOLOv8 Box versus Wheel Dataset Training [[Open In Colab]](https://colab.research.google.com/github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/yolov8_box_vs_wheel.ipynb) + +#### Critical points on the Notebook: + +1. Run it with GPU (the NVidia T4 is free) + +2. Install Ultralytics using PIP. + + ![](images/png/yolo-train-lib.png) + +3. Now, you can import the YOLO and upload your dataset to the CoLab, pasting the Download code that we get from Roboflow. Note that our dataset will be mounted under `/content/datasets/`: + +![](images/png/yolo-dataset-upload.png) + +4. It is essential to verify and change the file `data.yaml` with the correct path for the images (copy the path on each `images` folder). + +```bash +names: +- box +- wheel +nc: 2 +roboflow: + license: CC BY 4.0 + project: box-versus-wheel-auto-dataset + url: https://universe.roboflow.com/marcelo-rovai-riila/box-versus-wheel-auto-dataset/dataset/5 + version: 5 + workspace: marcelo-rovai-riila +test: /content/datasets/Box-versus-Wheel-auto-dataset-5/test/images +train: /content/datasets/Box-versus-Wheel-auto-dataset-5/train/images +val: /content/datasets/Box-versus-Wheel-auto-dataset-5/valid/images +``` + +5. Define the main hyperparameters that you want to change from default, for example: + + ```bash + MODEL = 'yolov8n.pt' + IMG_SIZE = 640 + EPOCHS = 25 # For a final project, you should consider at least 100 epochs + ``` + +6. Run the training (using CLI): + + ```bash + !yolo task=detect mode=train model={MODEL} data={dataset.location}/data.yaml epochs={EPOCHS} imgsz={IMG_SIZE} plots=True + ``` + + ![image-20240910111319804](images/png/train-result.png) + +​ The model took a few minutes to be trained and has an excellent result (mAP50 of 0.995). At the end of the training, all results are saved in the folder listed, for example: `/runs/detect/train/`. There, you can find, for example, the confusion matrix. + +![](images/png/matrix.png) + +7. Note that the trained model (`best.pt`) is saved in the folder `/runs/detect/train/weights/`. Now, you should validate the trained model with the `valid/images`. + +```bash +!yolo task=detect mode=val model={HOME}/runs/detect/train/weights/best.pt data={dataset.location}/data.yaml +``` + +​ The results were similar to training. + +8. Now, we should perform inference on the images left aside for testing + +```bash +!yolo task=detect mode=predict model={HOME}/runs/detect/train/weights/best.pt conf=0.25 source={dataset.location}/test/images save=True +``` + +The inference results are saved in the folder `runs/detect/predict`. Let's see some of them: + +![](images/png/test-infer-yolo.png) + +9. It is advised to export the train, validation, and test results for a Drive at Google. To do so, we should mount the drive. + + ```python + from google.colab import drive + drive.mount('/content/gdrive') + ``` + + and copy the content of `/runs` folder to a folder that you should create in your Drive, for example: + + ```bash + !scp -r /content/runs '/content/gdrive/MyDrive/10_UNIFEI/Box_vs_Wheel_Project' + ``` + + + +### Inference with the trained model, using the Raspi + +Download the trained model ` /runs/detect/train/weights/best.pt` to your computer. Using the FileZilla FTP, let's transfer the `best.pt` to the Raspi models folder (before the transfer, you may change the model name, for example, `box_wheel_320_yolo.pt`). + +Using the FileZilla FTP, let's transfer a few images from the test dataset to `.\YOLO\images`: + +Let's return to the YOLO folder and use the Python Interpreter: + +```bash +cd .. +python +``` + +As before, we will import the YOLO library and define our converted model to detect bees: + +```python +from ultralytics import YOLO +model = YOLO('./models/box_wheel_320_yolo.pt') +``` + +Now, let's define an image and call the inference (we will save the image result this time to external verification): + +```python +img = './images/1_box_1_wheel.jpg' +result = model.predict(img, save=True, imgsz=320, conf=0.5, iou=0.3) +``` + +Let's repeat for several images. The inference result is saved on the variable `result,` and the processed image on `runs/detect/predict8` + +![](images/png/infer-yolo.png) + +Using FileZilla FTP, we can send the inference result to our Desktop for verification: + +![](images/png/yolo-infer-raspi.png) + +We can see that the inference result is excellent! The model was trained based on the smaller base model of the YOLOv8 family (YOLOv8n). The issue is the latency, around 1 second (or 1 FPS on the Raspi-Zero). Of course, we can reduce this latency and convert the model to TFLite or NCNN. + +## Object Detection on a live stream + +All the models explored in this lab can detect objects in real-time using a camera. The captured image should be the input for the trained and converted model. For the Raspi-4 or 5 with a desktop, OpenCV can capture the frames and display the inference result. + +However, creating a live stream with a webcam to detect objects in real-time is also possible. For example, let’s start with the script developed for the Image Classification app and adapt it for a *Real-Time Object Detection Web Application Using TensorFlow Lite and Flask*. + +This app version will work for all TFLite models. Verify if the model is in its correct folder, for example: + +```python +model_path = "./models/ssd-mobilenet-v1-tflite-default-v1.tflite" +``` + +Download the Python script ` object_detection_app.py` from [GitHub](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/python_scripts/object_detection_app.py). + +And on the terminal, run: + +```bash +python3 object_detection_app.py +``` + +And access the web interface: + +- On the Raspberry Pi itself (if you have a GUI): Open a web browser and go to `http://localhost:5000` +- From another device on the same network: Open a web browser and go to `http://:5000` (Replace `` with your Raspberry Pi's IP address). For example: `http://192.168.4.210:5000/` + +Here are some screenshots of the app running on an external desktop + +![](images/png/app-running.png) + +Let's see a technical description of the key modules used in the object detection application: + +1. **TensorFlow Lite (tflite_runtime)**: + - Purpose: Efficient inference of machine learning models on edge devices. + - Why: TFLite offers reduced model size and optimized performance compared to full TensorFlow, which is crucial for resource-constrained devices like Raspberry Pi. It supports hardware acceleration and quantization, further improving efficiency. + - Key functions: `Interpreter` for loading and running the model,` get_input_details(),` and `get_output_details()` for interfacing with the model. +2. **Flask:** + - Purpose: Lightweight web framework for creating the backend server. + - Why: Flask's simplicity and flexibility make it ideal for rapidly developing and deploying web applications. It's less resource-intensive than larger frameworks suitable for edge devices. + - Key components: route decorators for defining API endpoints, `Response` objects for streaming video, `render_template_string` for serving dynamic HTML. +3. **Picamera2:** + - Purpose: Interface with the Raspberry Pi camera module. + - Why: Picamera2 is the latest library for controlling Raspberry Pi cameras, offering improved performance and features over the original Picamera library. + - Key functions: `create_preview_configuration()` for setting up the camera, `capture_file()` for capturing frames. +4. **PIL (Python Imaging Library):** + - Purpose: Image processing and manipulation. + - Why: PIL provides a wide range of image processing capabilities. It’s used here to resize images, draw bounding boxes, and convert between image formats. + - Key classes: `Image` for loading and manipulating images, `ImageDraw` for drawing shapes and text on images. +5. **NumPy:** + - Purpose: Efficient array operations and numerical computing. + - Why: NumPy’s array operations are much faster than pure Python lists, which is crucial for efficiently processing image data and model inputs/outputs. + - Key functions: `array()` for creating arrays, `expand_dims()` for adding dimensions to arrays. +6. **Threading:** + - Purpose: Concurrent execution of tasks. + - Why: Threading allows simultaneous frame capture, object detection, and web server operation, crucial for maintaining real-time performance. + - Key components: `Thread` class creates separate execution threads, and Lock is used for thread synchronization. +7. **io.BytesIO:** + - Purpose: In-memory binary streams. + - Why: Allows efficient handling of image data in memory without needing temporary files, improving speed and reducing I/O operations. +8. **time:** + - Purpose: Time-related functions. + - Why: Used for adding delays (`time.sleep()`) to control frame rate and for performance measurements. +9. **jQuery (client-side)**: + - Purpose: Simplified DOM manipulation and AJAX requests. + - Why: It makes it easy to update the web interface dynamically and communicate with the server without page reloads. + - Key functions: `.get()` and `.post()` for AJAX requests, DOM manipulation methods for updating the UI. + +Regarding the main app system architecture: + +1. **Main Thread**: Runs the Flask server, handling HTTP requests and serving the web interface. +2. **Camera Thread**: Continuously captures frames from the camera. +3. **Detection Thread**: Processes frames through the TFLite model for object detection. +4. **Frame Buffer**: Shared memory space (protected by locks) storing the latest frame and detection results. + +And the app data flow, we can describe in short: + +1. Camera captures frame → Frame Buffer +2. Detection thread reads from Frame Buffer → Processes through TFLite model → Updates detection results in Frame Buffer +3. Flask routes access Frame Buffer to serve the latest frame and detection results +4. Web client receives updates via AJAX and updates UI + +This architecture allows for efficient, real-time object detection while maintaining a responsive web interface running on a resource-constrained edge device like a Raspberry Pi. Threading and efficient libraries like TFLite and PIL enable the system to process video frames in real-time, while Flask and jQuery provide a user-friendly way to interact with them. + +You can test the app with another pre-processed model, such as the EfficientDet, changing the app line: + +```python +model_path = "./models/lite-model_efficientdet_lite0_detection_metadata_1.tflite" +``` + +> If we want to use the app for the SSD-MobileNetV2 model, trained on Edge Impulse Studio with the "Box versus Wheel" dataset, the code should also be adapted depending on the input details, as we have explored on its [notebook](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/EI-SSD-MobileNetV2.ipynb). + +## Conclusion + +This lab has explored the implementation of object detection on edge devices like the Raspberry Pi, demonstrating the power and potential of running advanced computer vision tasks on resource-constrained hardware. We've covered several vital aspects: + +1. **Model Comparison**: We examined different object detection models, including SSD-MobileNet, EfficientDet, FOMO, and YOLO, comparing their performance and trade-offs on edge devices. + +2. **Training and Deployment**: Using a custom dataset of boxes and wheels (labeled on Roboflow), we walked through the process of training models using Edge Impulse Studio and Ultralytics and deploying them on Raspberry Pi. + +3. **Optimization Techniques**: To improve inference speed on edge devices, we explored various optimization methods, such as model quantization (TFLite int8) and format conversion (e.g., to NCNN). + +4. **Real-time Applications**: The lab exemplified a real-time object detection web application, demonstrating how these models can be integrated into practical, interactive systems. + +5. **Performance Considerations**: Throughout the lab, we discussed the balance between model accuracy and inference speed, a critical consideration for edge AI applications. + +The ability to perform object detection on edge devices opens up numerous possibilities across various domains, from precision agriculture, industrial automation, and quality control to smart home applications and environmental monitoring. By processing data locally, these systems can offer reduced latency, improved privacy, and operation in environments with limited connectivity. + +Looking ahead, potential areas for further exploration include: +- Implementing multi-model pipelines for more complex tasks +- Exploring hardware acceleration options for Raspberry Pi +- Integrating object detection with other sensors for more comprehensive edge AI systems +- Developing edge-to-cloud solutions that leverage both local processing and cloud resources + +Object detection on edge devices can create intelligent, responsive systems that bring the power of AI directly into the physical world, opening up new frontiers in how we interact with and understand our environment. + +## Resources + +- [Dataset ("Box versus Wheel")](https://universe.roboflow.com/marcelo-rovai-riila/box-versus-wheel-auto-dataset) + +- [SSD-MobileNet Notebook on a Raspi](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/SSD_MobileNetV1.ipynb) + +- [EfficientDet Notebook on a Raspi](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/SSD_EfficientDet.ipynb) + +- [FOMO - EI Linux Notebook on a Raspi](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/EI-Linux-FOMO.ipynb) + +- [YOLOv8 Box versus Wheel Dataset Training on CoLab](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/blob/main/OBJ_DETEC/notebooks/yolov8_box_vs_wheel.ipynb) + +- [Edge Impulse Project - SSD MobileNet and FOMO ](https://studio.edgeimpulse.com/public/515477/live) + +- [Python Scripts](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/tree/main/OBJ_DETEC/python_scripts) + +- [Models](https://github.com/Mjrovai/EdgeML-with-Raspberry-Pi/tree/main/OBJ_DETEC/models) + + diff --git a/contents/labs/raspi/raspi.qmd b/contents/labs/raspi/raspi.qmd index b41ec2ba..2e6dfe95 100644 --- a/contents/labs/raspi/raspi.qmd +++ b/contents/labs/raspi/raspi.qmd @@ -6,7 +6,7 @@ These labs offer invaluable hands-on experience with machine learning systems, l ## Pre-requisites -- **Raspberry Pi**: Ensure you have at least one of the boards: the Raspberry Pi Zero 2W, Raspberry Pi 4 or 5. +- **Raspberry Pi**: Ensure you have at least one of the boards: the Raspberry Pi Zero 2W, Raspberry Pi 4 or 5 for the Vision Labs, and the Raspberry 5 for the GenAi lab. - **Power Adapter**: To Power on the boards. - Raspberry Pi Zero 2-W: 2.5W with a Micro-USB adapter - Raspberry Pi 4 or 5: 3.5W with a USB-C adapter @@ -24,6 +24,6 @@ These labs offer invaluable hands-on experience with machine learning systems, l | ------------ | --------------------- | -------------------------- | ------------------------------------------------------- | | Vision | Image Classification | Learn to classify images | [Link](./image_classification/image_classification.qmd) | | Vision | Object Detection | Implement object detection | [Link](./object_detection/object_detection.qmd) | -| LLM | Large Language Models | Deploy LLMs at the Edge | [Link](./llm/llm.qmd) | +| GenAI | Small Language Models | Deploy SLMs at the Edge | [Link](./llm/llm.qmd) | | | | | | diff --git a/contents/labs/raspi/setup/setup.qmd b/contents/labs/raspi/setup/setup.qmd index fcd3a891..4cf0a292 100644 --- a/contents/labs/raspi/setup/setup.qmd +++ b/contents/labs/raspi/setup/setup.qmd @@ -4,7 +4,7 @@ This chapter will guide you through setting up Raspberry Pi Zero 2 W (*Raspi-Zero*) and Raspberry Pi 5 (*Raspi-5*) models. We'll cover hardware setup, operating system installation, initial configuration, and tests. -> The general instructions for the *Rasp-5* also apply to the older Raspberry Pi versions, such as the Rasp-3 and Raspi-4. +> The general instructions for the *Raspi-5* also apply to the older Raspberry Pi versions, such as the Raspi-3 and Raspi-4. ## Introduction @@ -78,6 +78,8 @@ This tutorial will guide you through setting up the most common Raspberry Pi mod - **Ports**: 2 × micro HDMI ports, 2 × USB 3.0 ports, 2 × USB 2.0 ports, CSI camera port, DSI display port - **Power**: 5V DC via USB-C connector (3A) +> In the labs, we will use different names to address the Raspberry: `Raspi`, `Raspi-5`, `Raspi-Zero`, etc. Usually, `Raspi` is used when the instructions or comments apply to every model. + ## Installing the Operating System ### The Operating System (OS) @@ -127,7 +129,7 @@ Follow the steps to install the OS in your Raspi. ![img](images/png/zero-burn.png) - > Due to its reduced SDRAM (512MB), the recommended OS for the Rasp Zero is the 32-bit version. However, to run some machine learning models, such as the YOLOv8 from Ultralitics, we should use the 64-bit version. Although Raspi-Zero can run a *desktop*, we will choose the LITE version (no Desktop) to reduce the RAM needed for regular operation. + > Due to its reduced SDRAM (512MB), the recommended OS for the Raspi-Zero is the 32-bit version. However, to run some machine learning models, such as the YOLOv8 from Ultralitics, we should use the 64-bit version. Although Raspi-Zero can run a *desktop*, we will choose the LITE version (no Desktop) to reduce the RAM needed for regular operation. - For **Raspi-5**: We can select the full 64-bit version, which includes a desktop: `Raspberry Pi OS (64-bit)` @@ -141,7 +143,7 @@ Follow the steps to install the OS in your Raspi. 8. Write the image to the microSD card. -> In the examples here, we will use different hostnames: raspi, raspi-5, raspi-Zero, etc. You should replace by the one that you are using. +> In the examples here, we will use different hostnames depending on the device used: raspi, raspi-5, raspi-Zero, etc. It would help if you replaced it with the one you are using. ### Initial Configuration @@ -155,7 +157,7 @@ Follow the steps to install the OS in your Raspi. ### SSH Access -The easiest way to interact with the Rasp-Zero is via SSH ("Headless"). You can use a Terminal (MAC/Linux), [PuTTy (](https://www.putty.org/)Windows), or any other. +The easiest way to interact with the Raspi-Zero is via SSH ("Headless"). You can use a Terminal (MAC/Linux), [PuTTy (](https://www.putty.org/)Windows), or any other. 1. Find your Raspberry Pi's IP address (for example, check your router). @@ -310,7 +312,7 @@ CONF_SWAPSIZE=2000 And save the file. -Next, turn on the swapfile again and reboot the Rasp-zero: +Next, turn on the swapfile again and reboot the Raspi-zero: ```bash sudo dphys-swapfile setup @@ -324,7 +326,7 @@ When your device is rebooted (you should enter with the SSH again), you will rea ## Installing a Camera -The Raspi is an excellent device for computer vision applications; a camera is needed for it. We can install a standard USB webcam on the micro-USB port using a USB OTG adapter (Raspi-Zero and Rasp-5) or a camera module connected to the Raspi CSI (Camera Serial Interface) port. +The Raspi is an excellent device for computer vision applications; a camera is needed for it. We can install a standard USB webcam on the micro-USB port using a USB OTG adapter (Raspi-Zero and Raspi-5) or a camera module connected to the Raspi CSI (Camera Serial Interface) port. > USB Webcams generally have inferior quality to the camera modules that connect to the CSI port. They can also not be controlled using the `raspistill` and `raspivid` commands in the terminal or the `picamera` recording package in Python. Nevertheless, there may be reasons why you want to connect a USB camera to your Raspberry Pi, such as because of the benefit that it is much easier to set up multiple cameras with a single Raspberry Pi, long cables, or simply because you have such a camera on hand. @@ -564,16 +566,19 @@ While we've primarily interacted with the Raspberry Pi using terminal commands v ## Model-Specific Considerations -### Raspberry Pi Zero +### Raspberry Pi Zero (Raspi-Zero) + - Limited processing power, best for lightweight projects -- Use headless setup (SSH) to conserve resources. +- It is better to use a headless setup (SSH) to conserve resources. - Consider increasing swap space for memory-intensive tasks. +- It can be used for Image Classification and Object Detection Labs but not for the LLM (SLM). -### Raspberry Pi 4 or 5 +### Raspberry Pi 4 or 5 (Raspi-4 or Raspi-5) - Suitable for more demanding projects, including AI and machine learning. -- Can run full desktop environment smoothly. -- For Pi 5, consider using an active cooler for temperature management during intensive tasks. +- It can run the whole desktop environment smoothly. +- Raspi-4 can be used for Image Classification and Object Detection Labs but will not work well with LLMs (SLM). +- For Raspi-5, consider using an active cooler for temperature management during intensive tasks, as in the LLMs (SLMs) lab. -Remember to adjust your project requirements based on the specific Raspberry Pi model you're using. The Pi Zero is great for low-power, space-constrained projects, while the Pi 4/5 models are better suited for more computationally intensive tasks. +Remember to adjust your project requirements based on the specific Raspberry Pi model you're using. The Raspi-Zero is great for low-power, space-constrained projects, while the Raspi-4 or 5 models are better suited for more computationally intensive tasks. diff --git a/contents/learning_resources.qmd b/contents/learning_resources.qmd deleted file mode 100644 index a31324c7..00000000 --- a/contents/learning_resources.qmd +++ /dev/null @@ -1,46 +0,0 @@ -# Resources {#sec-resources} - -Embarking on your TinyML journey has never been easier with the curated resources to pave your path to expertise. There are coding platforms and communities where you can immerse yourself in hands-on TinyML projects, sharing or seeking advice on GitHub and Stack Overflow. Meanwhile, there are gateways to structured learning featuring courses that provide a comprehensive education in the field. - -While this page serves as a solid starting point, stay tuned as we continually expand our resource pool, with the aim to foster a rich learning and collaborative environment for TinyML enthusiasts of all levels. - -## Books - -Here is a list of recommended books for learning about TinyML or embedded AI: - -1. [TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers](https://www.amazon.com/TinyML-Learning-TensorFlow-Ultra-Low-Power-Microcontrollers/dp/1492052043) by Pete Warden and Daniel Situnayake - -2. [AI at the Edge: Solving Real-World Problems with Embedded Machine Learning](https://www.oreilly.com/library/view/ai-at-the/9781098120191/) by Daniel Situnayake and Jenny Plunkett - -3. [TinyML Cookbook: Combine artificial intelligence and ultra-low-power embedded devices to make the world smarter](https://www.amazon.com/TinyML-Cookbook-artificial-intelligence-ultra-low-power/dp/180181497X) by Gian Marco Iodice - -4. [Introduction to TinyML](https://www.amazon.com/Introduction-TinyML-Rohit-Sharma/dp/B0B5Q281L9) by Rohit Sharma - -5. [Integrated camera, microphone, BLE, Wi-Fi and the most compact design](https://mjrovai.github.io/XIAO_Big_Power_Small_Board-ebook/) by Lei Feng(Seeed Studio), Marcelo Rovai - -These books cover a range of topics related to TinyML and embedded AI, including: - -- The fundamentals of machine learning and TinyML -- How to choose the right hardware and software for your project -- How to train and deploy TinyML models on embedded devices -- Real-world examples of TinyML applications - -In addition to the above books, there are a number of other resources available for learning about TinyML and embedded AI, including online courses, tutorials, and blog posts. Some of these are listed below. Another great way to learn is by joining the [community](./community.qmd) of embedded AI developers. - -## Tutorials - -## Frameworks - -1. **GitHub** Description: There are various GitHub repositories dedicated to TinyML where you can contribute or learn from existing projects. Some popular organizations/repos to check out are: - -- TensorFlow Lite Micro: [GitHub Repository](https://github.com/tensorflow/tflite-micro) -- TinyML4D: [GitHub Repository](https://tinyml.seas.harvard.edu/4D/) -- Edge Impulse Expert Network: [Repository](https://docs.edgeimpulse.com/experts/) - -2. **Stack Overflow** Tags: [tinyml](https://stackoverflow.com/questions/tagged/tinyml) Description: Use the "tinyml" tag on Stack Overflow to ask technical questions and find answers from the community. - -## Courses and Learning Platforms - -1. **Coursera** Course: [Introduction to Embedded Machine Learning](https://www.coursera.org/learn/introduction-to-embedded-machine-learning) Description: A dedicated course on Coursera to learn the basics and advances of TinyML. - -2. **EdX** Course: [Intro to TinyML](https://www.edx.org/professional-certificate/harvardx-tiny-machine-learning) Description: Learn about TinyML with this HarvardX course. diff --git a/contents/ondevice_learning/ondevice_learning.bib b/contents/ondevice_learning/ondevice_learning.bib deleted file mode 100644 index afc583f7..00000000 --- a/contents/ondevice_learning/ondevice_learning.bib +++ /dev/null @@ -1,360 +0,0 @@ -%comment{This file was created with betterbib v5.0.11.} - - -@inproceedings{abadi2016deep, - author = {Abadi, Martin and Chu, Andy and Goodfellow, Ian and McMahan, H. Brendan and Mironov, Ilya and Talwar, Kunal and Zhang, Li}, - address = {New York, NY, USA}, - booktitle = {Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security}, - date-added = {2023-11-22 18:06:03 -0500}, - date-modified = {2023-11-22 18:08:42 -0500}, - doi = {10.1145/2976749.2978318}, - keywords = {deep learning, differential privacy}, - pages = {308--318}, - publisher = {ACM}, - series = {CCS '16}, - source = {Crossref}, - title = {Deep Learning with Differential Privacy}, - url = {https://doi.org/10.1145/2976749.2978318}, - year = {2016}, - month = oct, -} - -@inproceedings{cai2020tinytl, - author = {Cai, Han and Gan, Chuang and Zhu, Ligeng and Han, Song}, - editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/CaiGZ020.bib}, - booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, - timestamp = {Tue, 19 Jan 2021 00:00:00 +0100}, - title = {{TinyTL:} {Reduce} Memory, Not Parameters for Efficient On-Device Learning}, - url = {https://proceedings.neurips.cc/paper/2020/hash/81f7acabd411274fcf65ce2070ed568a-Abstract.html}, - year = {2020}, -} - -@article{chen2016training, - author = {Chen, Tianqi and Xu, Bing and Zhang, Chiyuan and Guestrin, Carlos}, - journal = {ArXiv preprint}, - title = {Training deep nets with sublinear memory cost}, - url = {https://arxiv.org/abs/1604.06174}, - volume = {abs/1604.06174}, - year = {2016}, -} - -@inproceedings{chen2018tvm, - author = {Chen, Tianqi and Moreau, Thierry and Jiang, Ziheng and Zheng, Lianmin and Yan, Eddie and Shen, Haichen and Cowan, Meghan and Wang, Leyuan and Hu, Yuwei and Ceze, Luis and others}, - booktitle = {13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)}, - pages = {578--594}, - title = {{TVM:} {An} automated End-to-End optimizing compiler for deep learning}, - year = {2018}, -} - -@article{chen2023learning, - author = {Chen, Zhiyong and Xu, Shugong}, - doi = {10.1186/s13636-023-00299-2}, - issn = {1687-4722}, - journal = {EURASIP Journal on Audio, Speech, and Music Processing}, - number = {1}, - pages = {33}, - publisher = {Springer Science and Business Media LLC}, - source = {Crossref}, - title = {Learning domain-heterogeneous speaker recognition systems with personalized continual federated learning}, - url = {https://doi.org/10.1186/s13636-023-00299-2}, - volume = {2023}, - year = {2023}, - month = sep, -} - -@article{david2021tensorflow, - author = {David, Robert and Duke, Jared and Jain, Advait and Janapa Reddi, Vijay and Jeffries, Nat and Li, Jian and Kreeger, Nick and Nappier, Ian and Natraj, Meghna and Wang, Tiezhen and others}, - journal = {Proceedings of Machine Learning and Systems}, - pages = {800--811}, - title = {Tensorflow lite micro: {Embedded} machine learning for tinyml systems}, - volume = {3}, - year = {2021}, -} - -@article{desai2016five, - author = {Desai, Tanvi and Ritchie, Felix and Welpton, Richard and others}, - journal = {Economics Working Paper Series}, - pages = {28}, - title = {Five Safes: {Designing} data access for research}, - volume = {1601}, - year = {2016}, -} - -@article{dhar2021survey, - author = {Dhar, Sauptik and Guo, Junyao and Liu, Jiayi (Jason) and Tripathi, Samarth and Kurup, Unmesh and Shah, Mohak}, - doi = {10.1145/3450494}, - issn = {2691-1914, 2577-6207}, - journal = {ACM Transactions on Internet of Things}, - number = {3}, - pages = {1--49}, - publisher = {Association for Computing Machinery (ACM)}, - source = {Crossref}, - subtitle = {An Algorithms and Learning Theory Perspective}, - title = {A Survey of On-Device Machine Learning}, - url = {https://doi.org/10.1145/3450494}, - volume = {2}, - year = {2021}, - month = jul, -} - -@article{dwork2014algorithmic, - author = {Dwork, Cynthia and Roth, Aaron}, - doi = {10.1561/0400000042}, - issn = {1551-305X, 1551-3068}, - journal = {Foundations and Trends{\textregistered} in Theoretical Computer Science}, - number = {3-4}, - pages = {211--407}, - publisher = {Now Publishers}, - source = {Crossref}, - title = {The Algorithmic Foundations of Differential Privacy}, - url = {https://doi.org/10.1561/0400000042}, - volume = {9}, - year = {2013}, -} - -@article{esteva2017dermatologist, - author = {Esteva, Andre and Kuprel, Brett and Novoa, Roberto A. and Ko, Justin and Swetter, Susan M. and Blau, Helen M. and Thrun, Sebastian}, - doi = {10.1038/nature21056}, - issn = {0028-0836, 1476-4687}, - journal = {Nature}, - number = {7639}, - pages = {115--118}, - publisher = {Springer Science and Business Media LLC}, - source = {Crossref}, - title = {Dermatologist-level classification of skin cancer with deep neural networks}, - url = {https://doi.org/10.1038/nature21056}, - volume = {542}, - year = {2017}, - month = jan, -} - -@inproceedings{gruslys2016memory, - author = {Gruslys, Audrunas and Munos, R\'emi and Danihelka, Ivo and Lanctot, Marc and Graves, Alex}, - editor = {Lee, Daniel D. and Sugiyama, Masashi and von Luxburg, Ulrike and Guyon, Isabelle and Garnett, Roman}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/GruslysMDLG16.bib}, - booktitle = {Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016, December 5-10, 2016, Barcelona, Spain}, - pages = {4125--4133}, - timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, - title = {Memory-Efficient Backpropagation Through Time}, - url = {https://proceedings.neurips.cc/paper/2016/hash/a501bebf79d570651ff601788ea9d16d-Abstract.html}, - year = {2016}, -} - -@inproceedings{hong2023publishing, - author = {Hong, Sanghyun and Carlini, Nicholas and Kurakin, Alexey}, - booktitle = {2023 IEEE Conference on Secure and Trustworthy Machine Learning (SaTML)}, - doi = {10.1109/satml54575.2023.00026}, - organization = {IEEE}, - pages = {271--290}, - publisher = {IEEE}, - source = {Crossref}, - title = {Publishing Efficient On-device Models Increases Adversarial Vulnerability}, - url = {https://doi.org/10.1109/satml54575.2023.00026}, - year = {2023}, - month = feb, -} - -@inproceedings{kairouz2015secure, - author = {Kairouz, Peter and Oh, Sewoong and Viswanath, Pramod}, - editor = {Cortes, Corinna and Lawrence, Neil D. and Lee, Daniel D. and Sugiyama, Masashi and Garnett, Roman}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/KairouzOV15.bib}, - booktitle = {Advances in Neural Information Processing Systems 28: Annual Conference on Neural Information Processing Systems 2015, December 7-12, 2015, Montreal, Quebec, Canada}, - pages = {2008--2016}, - timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, - title = {Secure Multi-party Differential Privacy}, - url = {https://proceedings.neurips.cc/paper/2015/hash/a01610228fe998f515a72dd730294d87-Abstract.html}, - year = {2015}, -} - -@article{karargyris2023federated, - author = {Karargyris, Alexandros and Umeton, Renato and Sheller, Micah J and Aristizabal, Alejandro and George, Johnu and Wuest, Anna and Pati, Sarthak and Kassem, Hasan and Zenk, Maximilian and Baid, Ujjwal and others}, - doi = {10.1038/s42256-023-00652-2}, - issn = {2522-5839}, - journal = {Nature Machine Intelligence}, - number = {7}, - pages = {799--810}, - publisher = {Springer Science and Business Media LLC}, - source = {Crossref}, - title = {Federated benchmarking of medical artificial intelligence with {MedPerf}}, - url = {https://doi.org/10.1038/s42256-023-00652-2}, - volume = {5}, - year = {2023}, - month = jul, -} - -@article{kwon2023tinytrain, - author = {Kwon, Young D and Li, Rui and Venieris, Stylianos I and Chauhan, Jagmohan and Lane, Nicholas D and Mascolo, Cecilia}, - journal = {ArXiv preprint}, - title = {{TinyTrain:} {Deep} Neural Network Training at the Extreme Edge}, - url = {https://arxiv.org/abs/2307.09988}, - volume = {abs/2307.09988}, - year = {2023}, -} - -@inproceedings{li2016lightrnn, - author = {Li, Xiang and Qin, Tao and Yang, Jian and Liu, Tie-Yan}, - editor = {Lee, Daniel D. and Sugiyama, Masashi and von Luxburg, Ulrike and Guyon, Isabelle and Garnett, Roman}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/LiQYHL16.bib}, - booktitle = {Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016, December 5-10, 2016, Barcelona, Spain}, - pages = {4385--4393}, - timestamp = {Thu, 21 Jan 2021 00:00:00 +0100}, - title = {{LightRNN:} {Memory} and Computation-Efficient Recurrent Neural Networks}, - url = {https://proceedings.neurips.cc/paper/2016/hash/c3e4035af2a1cde9f21e1ae1951ac80b-Abstract.html}, - year = {2016}, -} - -@inproceedings{lin2020mcunet, - author = {Lin, Ji and Chen, Wei-Ming and Lin, Yujun and Cohn, John and Gan, Chuang and Han, Song}, - editor = {Larochelle, Hugo and Ranzato, Marc'Aurelio and Hadsell, Raia and Balcan, Maria-Florina and Lin, Hsuan-Tien}, - bibsource = {dblp computer science bibliography, https://dblp.org}, - biburl = {https://dblp.org/rec/conf/nips/LinCLCG020.bib}, - booktitle = {Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual}, - timestamp = {Thu, 11 Feb 2021 00:00:00 +0100}, - title = {{MCUNet:} {Tiny} Deep Learning on {IoT} Devices}, - url = {https://proceedings.neurips.cc/paper/2020/hash/86c51678350f656dcc7f490a43946ee5-Abstract.html}, - year = {2020}, -} - -@article{lin2022device, - author = {Lin, Ji and Zhu, Ligeng and Chen, Wei-Ming and Wang, Wei-Chen and Gan, Chuang and Han, Song}, - journal = {Adv. Neur. In.}, - pages = {22941--22954}, - title = {On-device training under 256kb memory}, - volume = {35}, - year = {2022}, -} - -@article{moshawrab2023reviewing, - author = {Moshawrab, Mohammad and Adda, Mehdi and Bouzouane, Abdenour and Ibrahim, Hussein and Raad, Ali}, - doi = {10.3390/electronics12102287}, - issn = {2079-9292}, - journal = {Electronics}, - number = {10}, - pages = {2287}, - publisher = {MDPI AG}, - source = {Crossref}, - title = {Reviewing Federated Learning Aggregation Algorithms; Strategies, Contributions, Limitations and Future Perspectives}, - url = {https://doi.org/10.3390/electronics12102287}, - volume = {12}, - year = {2023}, - month = may, -} - -@inproceedings{nguyen2023re, - author = {Nguyen, Ngoc-Bao and Chandrasegaran, Keshigeyan and Abdollahzadeh, Milad and Cheung, Ngai-Man}, - booktitle = {2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, - doi = {10.1109/cvpr52729.2023.01572}, - pages = {16384--16393}, - publisher = {IEEE}, - source = {Crossref}, - title = {Re-Thinking Model Inversion Attacks Against Deep Neural Networks}, - url = {https://doi.org/10.1109/cvpr52729.2023.01572}, - year = {2023}, - month = jun, -} - -@article{pan2009survey, - author = {Pan, Sinno Jialin and Yang, Qiang}, - doi = {10.1109/tkde.2009.191}, - issn = {1041-4347}, - journal = {IEEE Trans. Knowl. Data Eng.}, - number = {10}, - pages = {1345--1359}, - publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, - source = {Crossref}, - title = {A Survey on Transfer Learning}, - url = {https://doi.org/10.1109/tkde.2009.191}, - volume = {22}, - year = {2010}, - month = oct, -} - -@inproceedings{rouhani2017tinydl, - author = {Darvish Rouhani, Bita and Mirhoseini, Azalia and Koushanfar, Farinaz}, - bdsk-url-1 = {https://doi.org/10.1109/ISCAS.2017.8050343}, - booktitle = {2017 IEEE International Symposium on Circuits and Systems (ISCAS)}, - doi = {10.1109/iscas.2017.8050343}, - pages = {1--4}, - publisher = {IEEE}, - source = {Crossref}, - title = {{TinyDL:} {Just-in-time} deep learning solution for constrained embedded systems}, - url = {https://doi.org/10.1109/iscas.2017.8050343}, - year = {2017}, - month = may, -} - -@inproceedings{shi2022data, - author = {Shi, Hongrui and Radu, Valentin}, - booktitle = {Proceedings of the 2nd European Workshop on Machine Learning and Systems}, - doi = {10.1145/3517207.3526980}, - pages = {72--78}, - publisher = {ACM}, - source = {Crossref}, - title = {Data selection for efficient model update in federated learning}, - url = {https://doi.org/10.1145/3517207.3526980}, - year = {2022}, - month = apr, -} - -@article{wu2022sustainable, - author = {Wu, Carole-Jean and Raghavendra, Ramya and Gupta, Udit and Acun, Bilge and Ardalani, Newsha and Maeng, Kiwan and Chang, Gloria and Aga, Fiona and Huang, Jinshi and Bai, Charles and others}, - journal = {Proceedings of Machine Learning and Systems}, - pages = {795--813}, - title = {Sustainable ai: {Environmental} implications, challenges and opportunities}, - volume = {4}, - year = {2022}, -} - -@article{xu2023federated, - author = {Xu, Zheng and Zhang, Yanxiang and Andrew, Galen and Choquette-Choo, Christopher A and Kairouz, Peter and McMahan, H Brendan and Rosenstock, Jesse and Zhang, Yuanbo}, - journal = {ArXiv preprint}, - title = {Federated Learning of Gboard Language Models with Differential Privacy}, - url = {https://arxiv.org/abs/2305.18465}, - volume = {abs/2305.18465}, - year = {2023}, -} - -@inproceedings{yang2023online, - author = {Yang, Tien-Ju and Xiao, Yonghui and Motta, Giovanni and Beaufays, Fran\c{c}oise and Mathews, Rajiv and Chen, Mingqing}, - booktitle = {ICASSP 2023 - 2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, - doi = {10.1109/icassp49357.2023.10097124}, - organization = {IEEE}, - pages = {1--5}, - publisher = {IEEE}, - source = {Crossref}, - title = {Online Model Compression for Federated Learning with Large Models}, - url = {https://doi.org/10.1109/icassp49357.2023.10097124}, - year = {2023}, - month = jun, -} - -@article{zhao2018federated, - author = {Zhao, Yue and Li, Meng and Lai, Liangzhen and Suda, Naveen and Civin, Damon and Chandra, Vikas}, - journal = {ArXiv preprint}, - title = {Federated learning with non-iid data}, - url = {https://arxiv.org/abs/1806.00582}, - volume = {abs/1806.00582}, - year = {2018}, -} - -@article{zhuang2021comprehensive, - author = {Zhuang, Fuzhen and Qi, Zhiyuan and Duan, Keyu and Xi, Dongbo and Zhu, Yongchun and Zhu, Hengshu and Xiong, Hui and He, Qing}, - journal = {Proc. IEEE}, - title = {A Comprehensive Survey on Transfer Learning}, - year = {2021}, - volume = {109}, - number = {1}, - pages = {43--76}, - keywords = {Transfer learning;Semisupervised learning;Data models;Covariance matrices;Machine learning;Adaptation models;Domain adaptation;interpretation;machine learning;transfer learning}, - doi = {10.1109/jproc.2020.3004555}, - source = {Crossref}, - url = {https://doi.org/10.1109/jproc.2020.3004555}, - publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, - issn = {0018-9219, 1558-2256}, - month = jan, -} diff --git a/contents/summary.qmd b/contents/summary.qmd deleted file mode 100644 index b450ab7d..00000000 --- a/contents/summary.qmd +++ /dev/null @@ -1,3 +0,0 @@ -# Summary - -In summary, this book has no content whatsoever. diff --git a/contents/tools.qmd b/contents/tools.qmd deleted file mode 100644 index 7bc88c2f..00000000 --- a/contents/tools.qmd +++ /dev/null @@ -1,46 +0,0 @@ -# Tools {.appendix} - -This is a non-exhaustive list of tools and frameworks that are available for embedded AI development. - -## Hardware Kits - -### Microcontrollers and Development Boards - -| No | Hardware | Processor | Features | TinyML Compatibility | -|:----|:------------------------------|:--------------------------------|:---------------------------------------------------------|:-------------------------------------------------| -| 1 | Arduino Nano 33 BLE Sense | ARM Cortex-M4 | Onboard sensors, Bluetooth connectivity | TensorFlow Lite Micro | -| 2 | Raspberry Pi Pico | Dual-core Arm Cortex-M0+ | Low-cost, large community support | TensorFlow Lite Micro | -| 3 | SparkFun Edge | Ambiq Apollo3 Blue | Ultra-low power consumption, onboard microphone | TensorFlow Lite Micro | -| 4 | Adafruit EdgeBadge | ATSAMD51 32-bit Cortex M4 | Compact size, integrated display and microphone | TensorFlow Lite Micro | -| 5 | Google Coral Development Board | NXP i.MX 8M SOC (quad Cortex-A53, Cortex-M4F) | Edge TPU, Wi-Fi, Bluetooth | TensorFlow Lite for Coral | -| 6 | STM32 Discovery Kits | Various (e.g., STM32F7, STM32H7) | Different configurations, Cube.AI software support | STM32Cube.AI | -| 7 | Arduino Nicla Vision | STM32H747AII6 Dual Arm Cortex M7/M4 | Integrated camera, low power, compact design | TensorFlow Lite Micro | -| 8 | Arduino Nicla Sense ME | 64 MHz Arm Cortex M4 (nRF52832) | Multi-sensor platform, environment sensing, BLE, Wi-Fi| TensorFlow Lite Micro| -| 9 | XIAO ESP32S3 Sense | Xtensa LX7 dual-core (ESP32-S3R8) | Integrated camera, microphone, BLE, Wi-Fi and the most compact design| TensorFlow Lite Micro| - -## Software Tools - -### Machine Learning Frameworks - -| No | Machine Learning Framework | Description | Use Cases | -|:----|:---------------------------|:--------------------------------------------------------------------------------|:------------------------------------------| -| 1 | TensorFlow Lite | Lightweight library for running machine learning models on constrained devices | Image recognition, voice commands, anomaly detection | -| 2 | Edge Impulse | A platform providing tools for creating machine learning models optimized for edge devices | Data collection, model training, deployment on tiny devices | -| 3 | ONNX Runtime | A performance-optimized engine for running ONNX models, fine-tuned for edge devices | Cross-platform deployment of machine learning models | - -### Libraries and APIs - -| No | Library/API | Description | Use Cases | -|:----|:-------------|:------------------------------------------------------------------------------------------------------|:------------------------------------------| -| 1 | CMSIS-NN | A collection of efficient neural network kernels optimized for Cortex-M processors | Embedded vision and AI applications | -| 2 | ARM NN | An inference engine for CPUs, GPUs, and NPUs, enabling the translation of neural network frameworks | Accelerating machine learning model inference on ARM-based devices | - -## IDEs and Development Environments - -| No | IDE/Development Environment | Description | Features | -|:----|:------------------------------|:------------------------------------------------------------------------------------|:----------------------------------------------------| -| 1 | PlatformIO | An open-source ecosystem for IoT development catering to various boards & platforms | Cross-platform build system, continuous testing, firmware updates | -| 2 | Eclipse Embedded CDT | A plugin for Eclipse facilitating embedded systems development | Supports various compilers and debuggers, integrates with popular build tools | -| 3 | Arduino IDE | Official development environment for Arduino supporting various boards & languages | User-friendly interface, large community support, extensive library collection | -| 4 | Mbed Studio | ARM's IDE for developing robust embedded software with Mbed OS | Integrated debugger, Mbed OS integration, version control support | -| 5 | Segger Embedded Studio | A powerful IDE for ARM microcontrollers supporting a wide range of development boards | Advanced code editor, project management, debugging capabilities | diff --git a/contents/zoo_datasets.qmd b/contents/zoo_datasets.qmd deleted file mode 100644 index a95caefa..00000000 --- a/contents/zoo_datasets.qmd +++ /dev/null @@ -1,35 +0,0 @@ -# Datasets {#sec-datasets} - -1. **Google Speech Commands Dataset** - - Description: A set of one-second .wav audio files, each containing a single spoken English word. - - [Link to the Dataset](https://ai.googleblog.com/2017/08/launching-speech-commands-dataset.html) - -2. **VisualWakeWords Dataset** - - Description: A dataset tailored for TinyML vision applications, consisting of binary labeled images indicating whether a person is in the image or not. - - [Link to the Dataset](https://github.com/tensorflow/models/tree/master/research/slim#preparing-the-visualwakewords-dataset) - -3. **EMNIST Dataset** - - Description: A dataset containing 28x28 pixel images of handwritten characters and digits, which is an extension of the MNIST dataset but includes letters. - - [Link to the Dataset](https://www.nist.gov/itl/products-and-services/emnist-dataset) - -4. **UCI Machine Learning Repository: Human Activity Recognition Using Smartphones** - - Description: A dataset with the recordings of 30 study participants performing activities of daily living (ADL) while carrying a waist-mounted smartphone with embedded inertial sensors. - - [Link to the Dataset](https://archive.ics.uci.edu/ml/datasets/human+activity+recognition+using+smartphones) - -5. **PlantVillage Dataset** - - Description: A dataset comprising of images of healthy and diseased crop leaves categorized based on the crop type and disease type, which could be used in a TinyML agricultural project. - - [Link to the Dataset](https://github.com/spMohanty/PlantVillage-Dataset) - -6. **Gesture Recognition using 3D Motion Sensing (3D Gesture Database)** - - Description: This dataset contains 3D gesture data recorded using a Leap Motion Controller, which might be useful for gesture recognition projects. - - [Link to the Dataset](https://lttm.dei.unipd.it/downloads/gesture/) - -7. **Multilingual Spoken Words Corpus** - - Description: A dataset containing recordings of common spoken words in various languages, useful for speech recognition projects targeting multiple languages. - - [Link to the Dataset](https://mlcommons.org/en/multilingual-spoken-words/) - -8. **Wake Vision** - - Description: A dataset containing over 6 million images for binary person classification. In addition, it includes a fine-grain benchmark suite for evaluating the fairness and robustness of models. - - [Link to the Dataset](https://wakevision.ai/) - -Remember to verify the dataset's license or terms of use to ensure it can be used for your intended purpose. diff --git a/contents/zoo_models.qmd b/contents/zoo_models.qmd deleted file mode 100644 index e57464e1..00000000 --- a/contents/zoo_models.qmd +++ /dev/null @@ -1 +0,0 @@ -## Model Zoo diff --git a/index.qmd b/index.qmd index d5e23fb4..58e3a51c 100644 --- a/index.qmd +++ b/index.qmd @@ -1,3 +1,4 @@ + # Preface {.unnumbered} Welcome to {{< var title.long >}}. This book is your gateway to the fast-paced world of AI systems. It is an extension of the course [CS249r](https://sites.google.com/g.harvard.edu/cs249-tinyml-2023) at Harvard University. @@ -23,10 +24,6 @@ The book focuses on AI systems' principles and case studies, aiming to give you To dive into this book, you don't need to be an AI expert. All you need is a basic understanding of computer science concepts and a curiosity to explore how AI systems work. This is where innovation happens, and a basic grasp of programming and data structures will be your compass. -# Book Conventions - -For details on the conventions used in this book, check out the [Conventions](./contents/conventions.qmd) section. - # Content Transparency Statement This book is a community-driven project, with content generated collaboratively by numerous contributors over time. The content creation process may have involved various editing tools, including generative AI technology. As the main author, editor, and curator, Prof. Vijay Janapa Reddi maintains human oversight and editorial oversight to make sure the content is accurate and relevant. However, no one is perfect, so inaccuracies may still exist. We highly value your feedback and encourage you to provide corrections or suggestions. This collaborative approach is crucial for enhancing and maintaining the quality of the content contained within and making high-quality information globally accessible. @@ -41,4 +38,4 @@ Do you have questions or feedback? Feel free to [e-mail Prof. Vijay Janapa Reddi # Contributors -A big thanks to everyone who's helped make this book what it is! You can see the full list of individual contributors [here](./contents/contributors.qmd) and additional GitHub style details [here](https://github.com/harvard-edge/cs249r_book/graphs/contributors). Join us as a contributor! \ No newline at end of file +A big thanks to everyone who's helped make this book what it is! You can see the full list of individual contributors [here](./contents/contributors.qmd) and additional GitHub style details [here](https://github.com/harvard-edge/cs249r_book/graphs/contributors). Join us as a contributor! diff --git a/notebooklm_podcast_mlsysbookai.mp3 b/notebooklm_podcast_mlsysbookai.mp3 new file mode 100644 index 00000000..08ae49ab Binary files /dev/null and b/notebooklm_podcast_mlsysbookai.mp3 differ diff --git a/scripts/ai_menu/dist/142.bundle.js b/scripts/ai_menu/dist/142.bundle.js deleted file mode 100644 index f8772208..00000000 --- a/scripts/ai_menu/dist/142.bundle.js +++ /dev/null @@ -1 +0,0 @@ -function a1_0x5ba4(_0x3c1c10,_0x3ad1df){var _0x1ce0a8=a1_0x1ce0();return a1_0x5ba4=function(_0x5ba4ff,_0x487578){_0x5ba4ff=_0x5ba4ff-0x7c;var _0x3152b7=_0x1ce0a8[_0x5ba4ff];return _0x3152b7;},a1_0x5ba4(_0x3c1c10,_0x3ad1df);}function a1_0x1ce0(){var _0x1984cf=['create','command','replace','initiate','script','Unknown\x20command','defineProperty','bind','exports','51474nXCvEQ','quickStart_single','then','5168130LctHYc','data','1396648fmBiAp','webpackChunkinjectchat','keys','quickStart','9304947MvJWgM','error','delete_row','5663077gJtUGs','length','prototype','location','undefined','src','object','reduce','dbName','getElementsByTagName','push','test','postMessage','key','toStringTag','document','24JVqJTH','pop','5QFmHsW','useLocal','all','update','Module','message','2892224mKDxSC','onmessage','search','hasOwnProperty','text','.bundle.js','currentScript','601274bnmbwv'];a1_0x1ce0=function(){return _0x1984cf;};return a1_0x1ce0();}(function(_0x7ab508,_0x46e702){var _0x381f6e=a1_0x5ba4,_0x230945=_0x7ab508();while(!![]){try{var _0x364646=-parseInt(_0x381f6e(0xae))/0x1+parseInt(_0x381f6e(0x83))/0x2*(-parseInt(_0x381f6e(0x9f))/0x3)+parseInt(_0x381f6e(0x88))/0x4+-parseInt(_0x381f6e(0xa1))/0x5*(-parseInt(_0x381f6e(0x86))/0x6)+parseInt(_0x381f6e(0x8f))/0x7+parseInt(_0x381f6e(0xa7))/0x8+-parseInt(_0x381f6e(0x8c))/0x9;if(_0x364646===_0x46e702)break;else _0x230945['push'](_0x230945['shift']());}catch(_0x5a6091){_0x230945['push'](_0x230945['shift']());}}}(a1_0x1ce0,0x83d63),((()=>{var _0x10efe4=a1_0x5ba4,_0x5cd145={},_0x3ee540={};function _0x8ac46c(_0x54451f){var _0x36eb53=a1_0x5ba4,_0x3a83b6=_0x3ee540[_0x54451f];if(void 0x0!==_0x3a83b6)return _0x3a83b6['exports'];var _0x32c250=_0x3ee540[_0x54451f]={'exports':{}};return _0x5cd145[_0x54451f](_0x32c250,_0x32c250['exports'],_0x8ac46c),_0x32c250[_0x36eb53(0x82)];}let _0x212644,_0x371d50,_0x932e79,_0x2cdef9,_0xfd822d;_0x8ac46c['m']=_0x5cd145,_0x8ac46c['d']=(_0x3808c3,_0x366a45)=>{for(var _0x163c8c in _0x366a45)_0x8ac46c['o'](_0x366a45,_0x163c8c)&&!_0x8ac46c['o'](_0x3808c3,_0x163c8c)&&Object['defineProperty'](_0x3808c3,_0x163c8c,{'enumerable':!0x0,'get':_0x366a45[_0x163c8c]});},_0x8ac46c['f']={},_0x8ac46c['e']=_0x446e09=>Promise[_0x10efe4(0xa3)](Object[_0x10efe4(0x8a)](_0x8ac46c['f'])[_0x10efe4(0x96)]((_0x1e77f7,_0x47a291)=>(_0x8ac46c['f'][_0x47a291](_0x446e09,_0x1e77f7),_0x1e77f7),[])),_0x8ac46c['u']=_0x560747=>_0x560747+_0x10efe4(0xac),_0x8ac46c['g']=(function(){var _0x5e0a56=_0x10efe4;if(_0x5e0a56(0x95)==typeof globalThis)return globalThis;try{return this||new Function('return\x20this')();}catch(_0x13a1de){if(_0x5e0a56(0x95)==typeof window)return window;}}()),_0x8ac46c['o']=(_0x307fa2,_0x3b83dd)=>Object[_0x10efe4(0x91)][_0x10efe4(0xaa)]['call'](_0x307fa2,_0x3b83dd),_0x8ac46c['r']=_0x5d81b9=>{var _0xcf5836=_0x10efe4;_0xcf5836(0x93)!=typeof Symbol&&Symbol[_0xcf5836(0x9d)]&&Object['defineProperty'](_0x5d81b9,Symbol[_0xcf5836(0x9d)],{'value':_0xcf5836(0xa5)}),Object[_0xcf5836(0x80)](_0x5d81b9,'__esModule',{'value':!0x0});},((()=>{var _0x5b5906=_0x10efe4,_0x1d3ea1;_0x8ac46c['g']['importScripts']&&(_0x1d3ea1=_0x8ac46c['g'][_0x5b5906(0x92)]+'');var _0xad447d=_0x8ac46c['g'][_0x5b5906(0x9e)];if(!_0x1d3ea1&&_0xad447d&&(_0xad447d[_0x5b5906(0xad)]&&(_0x1d3ea1=_0xad447d[_0x5b5906(0xad)][_0x5b5906(0x94)]),!_0x1d3ea1)){var _0x22f724=_0xad447d[_0x5b5906(0x98)](_0x5b5906(0x7e));if(_0x22f724[_0x5b5906(0x90)]){for(var _0x2cfff3=_0x22f724[_0x5b5906(0x90)]-0x1;_0x2cfff3>-0x1&&(!_0x1d3ea1||!/^http(s?):/[_0x5b5906(0x9a)](_0x1d3ea1));)_0x1d3ea1=_0x22f724[_0x2cfff3--][_0x5b5906(0x94)];}}if(!_0x1d3ea1)throw new Error('Automatic\x20publicPath\x20is\x20not\x20supported\x20in\x20this\x20browser');_0x1d3ea1=_0x1d3ea1['replace'](/#.*$/,'')['replace'](/\?.*$/,'')[_0x5b5906(0x7c)](/\/[^\/]+$/,'/'),_0x8ac46c['p']=_0x1d3ea1;})()),((()=>{var _0x36df6e=_0x10efe4,_0x354f9c={0x8e:0x1,0x2f9:0x1};_0x8ac46c['f']['i']=(_0x2868c0,_0x25792a)=>{_0x354f9c[_0x2868c0]||importScripts(_0x8ac46c['p']+_0x8ac46c['u'](_0x2868c0));};var _0x417256=self[_0x36df6e(0x89)]=self['webpackChunkinjectchat']||[],_0x2e5474=_0x417256[_0x36df6e(0x99)][_0x36df6e(0x81)](_0x417256);_0x417256[_0x36df6e(0x99)]=_0x2c9f7f=>{var _0x35e106=_0x36df6e,[_0xe5bd04,_0x4065a5,_0x3ad43c]=_0x2c9f7f;for(var _0x32c1e4 in _0x4065a5)_0x8ac46c['o'](_0x4065a5,_0x32c1e4)&&(_0x8ac46c['m'][_0x32c1e4]=_0x4065a5[_0x32c1e4]);for(_0x3ad43c&&_0x3ad43c(_0x8ac46c);_0xe5bd04[_0x35e106(0x90)];)_0x354f9c[_0xe5bd04[_0x35e106(0xa0)]()]=0x1;_0x2e5474(_0x2c9f7f);};})()),self[_0x10efe4(0xa8)]=async _0x4fcff6=>{var _0x3c7254=_0x10efe4;if(!(_0x212644&&_0x371d50&&quickStart_single&&_0x932e79&&_0x2cdef9&&_0xfd822d)){const _0x340eae=await _0x8ac46c['e'](0x180)[_0x3c7254(0x85)](_0x8ac46c[_0x3c7254(0x81)](_0x8ac46c,0x20c0));_0x212644=_0x340eae[_0x3c7254(0x7d)],_0x371d50=_0x340eae[_0x3c7254(0x8b)],quickStart_single=_0x340eae[_0x3c7254(0x84)],_0x932e79=_0x340eae[_0x3c7254(0xa9)],_0x2cdef9=_0x340eae[_0x3c7254(0x8e)],_0xfd822d=_0x340eae[_0x3c7254(0xa4)];}try{let _0x3c613e;const {token:_0x4097d3,..._0xdd636f}=_0x4fcff6[_0x3c7254(0x87)];switch(_0x4fcff6[_0x3c7254(0x87)][_0x3c7254(0xb0)]){case _0x3c7254(0x7d):_0x3c613e=await _0x212644(_0x4fcff6['data'][_0x3c7254(0x97)]),_0x3c613e={'result':_0x3c613e};break;case _0x3c7254(0xaf):_0x3c613e=await _0x371d50(_0xdd636f,_0x4097d3,_0x4fcff6[_0x3c7254(0x87)][_0x3c7254(0xa2)]),_0x3c613e={'result':_0x3c613e,'id':_0x4fcff6['data']['id']};break;case'create_single':_0x3c613e=await quickStart_single(_0x4fcff6[_0x3c7254(0x87)],_0x4097d3,_0x4fcff6[_0x3c7254(0x87)]['useLocal']),_0x3c613e={'result':_0x3c613e,'id':_0x4fcff6[_0x3c7254(0x87)]['id']};break;case _0x3c7254(0xa9):_0x3c613e=await _0x932e79(_0xdd636f[_0x3c7254(0xab)],_0x4fcff6[_0x3c7254(0x87)]['k'],_0x4097d3,_0x4fcff6[_0x3c7254(0x87)][_0x3c7254(0xa2)]),_0x3c613e={'result':_0x3c613e,'id':_0x4fcff6['data']['id']};break;case _0x3c7254(0x8e):_0x3c613e=await _0x2cdef9(_0x4fcff6['data'][_0x3c7254(0x9c)]),_0x3c613e={'result':_0x3c613e,'id':_0x4fcff6[_0x3c7254(0x87)]['id']};break;case _0x3c7254(0xa4):_0x3c613e=await _0xfd822d(_0x4fcff6[_0x3c7254(0x87)][_0x3c7254(0x9c)],_0xdd636f,_0x4097d3),_0x3c613e={'result':_0x3c613e,'id':_0x4fcff6[_0x3c7254(0x87)]['id']};break;default:throw new Error(_0x3c7254(0x7f));}self[_0x3c7254(0x9b)]({'status':'success','data':_0x3c613e['result'],'id':_0x3c613e['id']});}catch(_0x3d25ec){self[_0x3c7254(0x9b)]({'status':_0x3c7254(0x8d),'message':_0x3d25ec[_0x3c7254(0xa6)]});}};})())); \ No newline at end of file diff --git a/scripts/ai_menu/dist/384.bundle.js b/scripts/ai_menu/dist/384.bundle.js deleted file mode 100644 index 41115bdf..00000000 --- a/scripts/ai_menu/dist/384.bundle.js +++ /dev/null @@ -1 +0,0 @@ -'use strict';const a3_0x7411a7=a3_0x40a4;(function(_0x295744,_0x480532){const _0x55b540=a3_0x40a4,_0x399941=_0x295744();while(!![]){try{const _0xe8f930=-parseInt(_0x55b540(0x8f))/0x1+-parseInt(_0x55b540(0x6a))/0x2+parseInt(_0x55b540(0x8b))/0x3+-parseInt(_0x55b540(0x85))/0x4+-parseInt(_0x55b540(0x9e))/0x5*(-parseInt(_0x55b540(0x8c))/0x6)+parseInt(_0x55b540(0x6c))/0x7*(-parseInt(_0x55b540(0x98))/0x8)+-parseInt(_0x55b540(0xac))/0x9*(-parseInt(_0x55b540(0x68))/0xa);if(_0xe8f930===_0x480532)break;else _0x399941['push'](_0x399941['shift']());}catch(_0xc56e48){_0x399941['push'](_0x399941['shift']());}}}(a3_0x563e,0x210cd));function a3_0x40a4(_0x569441,_0x383192){const _0x563ef2=a3_0x563e();return a3_0x40a4=function(_0x40a430,_0x1e8049){_0x40a430=_0x40a430-0x66;let _0x529658=_0x563ef2[_0x40a430];return _0x529658;},a3_0x40a4(_0x569441,_0x383192);}function a3_0x563e(){const _0x49247f=['objectStoreNames','insert','21684OdQThy','\x20expected\x20to\x20be\x20present\x20in\x20the\x20object\x20being\x20updated','createObjectStore','webpackChunkinjectchat','contains','reduce','403254Ewfqws','30fGrXPu','sqrt','numTables','232435MfTsIV','hashVector','get','add','indexOf','sort','Object\x20not\x20found\x20with\x20the\x20provided\x20key','tables','map','344128MkZVXR','objectStore','splice','length','updateHashIndex','readwrite','193345qcidYh','charToSplit','join','transaction','delete','error','query','overlap','_hashIndex','application/json','all','json','vectorDB_new','onupgradeneeded','9gqrErZ','Unable\x20to\x20update\x20object\x20without\x20a\x20key','target','catch','from','Bearer\x20','put','2640710jGVzOa','onerror','93082OrzGHY','push','28BDtBzE','HTTP\x20error!\x20status:\x20','slice','readonly','result','similarity','onsuccess','split','https://tinymlbackend3.azurewebsites.net/api/embeddings-binary','then','match','update','Unable\x20to\x20delete\x20object\x20without\x20a\x20key','interval','text','status','random','POST','open','embedding','\x20on\x20\x27object\x27\x20is\x20expected\x20to\x20be\x20an\x20Array\x20or\x20Int8Array','isArray','forEach'];a3_0x563e=function(){return _0x49247f;};return a3_0x563e();}(self[a3_0x7411a7(0x88)]=self[a3_0x7411a7(0x88)]||[])[a3_0x7411a7(0x6b)]([[0x180],{0x20c0:(_0x4a0bff,_0x24149f,_0xad5310)=>{const _0x13e715=a3_0x7411a7;_0xad5310['r'](_0x24149f),_0xad5310['d'](_0x24149f,{'delete_row':()=>_0x5ac645,'initiate':()=>_0x3bf636,'quickStart':()=>_0x4c0da1,'quickStart_single':()=>_0x57bd8d,'search':()=>_0x21a838,'update':()=>_0x4bc83f});let _0x51866b={'dbName':_0x13e715(0xaa),'objectStore':'vectors','hyperplanes':0xa,'dimensions':0x180,'numPlanes':0x5};class _0x4462ca{constructor(_0x27c594,_0x474c3a,_0x115bd9=0x5){const _0x50e146=_0x13e715;this[_0x50e146(0x8e)]=_0x115bd9,this[_0x50e146(0x96)]=Array[_0x50e146(0xb0)]({'length':_0x115bd9},()=>Array['from']({'length':_0x474c3a},()=>function(_0x40ccfa){const _0x58b94d=_0x50e146;return Array[_0x58b94d(0xb0)]({'length':_0x40ccfa},()=>Math[_0x58b94d(0x7c)]()-0.5);}(_0x27c594)));}['hashVector'](_0x5eb81f){const _0x13a317=_0x13e715;return this['tables'][_0x13a317(0x97)](_0x504361=>_0x504361[_0x13a317(0x97)](_0x3f3347=>_0x5eb81f['reduce']((_0x3a0534,_0x1cf399,_0x3e0701)=>_0x3a0534+_0x1cf399*_0x3f3347[_0x3e0701],0x0)>=0x0?'1':'0')[_0x13a317(0xa0)](''));}}function _0xfa1783(_0x27170d,_0xfbf2f0){const _0x2755b0=_0x13e715;return 0x1===_0x27170d[_0x2755b0(0x9b)]&&(_0x27170d=_0x27170d[0x0]),_0x27170d[_0x2755b0(0x8a)]((_0x12070f,_0x19e0ab,_0x7af477)=>_0x12070f+_0x19e0ab*_0xfbf2f0[_0x7af477],0x0)/(Math[_0x2755b0(0x8d)](_0x27170d[_0x2755b0(0x8a)]((_0x13fab3,_0x387280)=>_0x13fab3+_0x387280*_0x387280,0x0))*Math['sqrt'](_0xfbf2f0[_0x2755b0(0x8a)]((_0x4d2df8,_0x15bba0)=>_0x4d2df8+_0x15bba0*_0x15bba0,0x0)));}class _0x49971b{#t;#e;#r;#o;constructor(_0x10cc1c={}){const {dbName:_0x2eece8,objectStore:_0x33380d,vectorPath:_0x969ad3,dimensions:_0x3607c0,numPlanes:_0x55cee5}={..._0x51866b,..._0x10cc1c};this.#t=_0x33380d,this.#e=_0x969ad3,this.#o=new _0x4462ca(_0x3607c0,_0x55cee5),this.#r=function(_0x5e81d1){const {dbName:_0x43351f,objectStore:_0x5a5b9d,vectorPath:_0x3e01e2}={..._0x51866b,..._0x5e81d1};return new Promise((_0x3b0d31,_0x249278)=>{const _0x3bd11c=a3_0x40a4,_0xd2cd0e=indexedDB[_0x3bd11c(0x7e)](_0x43351f,0x2);_0xd2cd0e[_0x3bd11c(0xab)]=_0x5101c3=>{const _0x36151a=_0x3bd11c,_0x21115b=_0x5101c3[_0x36151a(0xae)][_0x36151a(0x70)];_0x21115b[_0x36151a(0x83)][_0x36151a(0x89)](_0x5a5b9d)||_0x21115b[_0x36151a(0x87)](_0x5a5b9d,{'autoIncrement':!0x0});const _0x28f01e=_0x5a5b9d+_0x36151a(0xa6);_0x21115b[_0x36151a(0x83)][_0x36151a(0x89)](_0x28f01e)||_0x21115b[_0x36151a(0x87)](_0x28f01e,{'autoIncrement':!0x0});},_0xd2cd0e['onsuccess']=_0x4b2110=>{const _0x221fe1=_0x3bd11c;_0x3b0d31(_0x4b2110[_0x221fe1(0xae)][_0x221fe1(0x70)]);},_0xd2cd0e[_0x3bd11c(0x69)]=_0x65c6e7=>{const _0x592c0a=_0x3bd11c;_0x249278(_0x65c6e7[_0x592c0a(0xae)][_0x592c0a(0xa3)]);};});}({'dbName':_0x2eece8,'objectStore':_0x33380d,'vectorPath':_0x969ad3});}async[_0x13e715(0x84)](_0x42686b){const _0x58d375=_0x13e715,_0x4f7742=_0x42686b[this.#e];if(!(Array[_0x58d375(0x81)](_0x4f7742)||_0x4f7742 instanceof Int8Array))throw new Error(this.#e+_0x58d375(0x80));const _0x421f69=(await this.#r)[_0x58d375(0xa1)]([this.#t,this.#t+_0x58d375(0xa6)],_0x58d375(0x9d)),_0xd87e6=_0x421f69[_0x58d375(0x99)](this.#t),_0x896c6=_0x421f69[_0x58d375(0x99)](this.#t+_0x58d375(0xa6));try{const _0x55d24c=_0xd87e6[_0x58d375(0x92)](_0x42686b),_0x4da87c=await new Promise((_0x233fc0,_0x4004e3)=>{const _0x2ff365=_0x58d375;_0x55d24c[_0x2ff365(0x72)]=()=>_0x233fc0(_0x55d24c[_0x2ff365(0x70)]),_0x55d24c[_0x2ff365(0x69)]=()=>_0x4004e3(_0x55d24c[_0x2ff365(0xa3)]);}),_0x477ccb=this.#o[_0x58d375(0x90)](_0x4f7742);for(let _0xa674df of _0x477ccb){const _0x426a2e=await new Promise((_0x1ad6d6,_0xc037b5)=>{const _0x4ccd0f=_0x58d375,_0x3ebf9d=_0x896c6[_0x4ccd0f(0x91)](_0xa674df);_0x3ebf9d[_0x4ccd0f(0x72)]=()=>_0x1ad6d6(_0x3ebf9d['result']||[]),_0x3ebf9d['onerror']=()=>_0xc037b5(_0x3ebf9d['error']);});_0x426a2e[_0x58d375(0x6b)](_0x4da87c),await new Promise((_0x4d0b94,_0x1dc81e)=>{const _0x13d4d5=_0x58d375,_0x14e74a=_0x896c6[_0x13d4d5(0x67)](_0x426a2e,_0xa674df);_0x14e74a[_0x13d4d5(0x72)]=()=>_0x4d0b94(),_0x14e74a[_0x13d4d5(0x69)]=()=>_0x1dc81e(_0x14e74a[_0x13d4d5(0xa3)]);});}return _0x4da87c;}catch(_0x41a0f2){throw _0x41a0f2;}}async['delete'](_0xe2f884){const _0x25240d=_0x13e715;if(null==_0xe2f884)throw new Error(_0x25240d(0x78));const _0x5dcaef=(await this.#r)['transaction']([this.#t,this.#t+_0x25240d(0xa6)],'readwrite'),_0x267c20=_0x5dcaef[_0x25240d(0x99)](this.#t),_0x190179=_0x5dcaef[_0x25240d(0x99)](this.#t+'_hashIndex'),_0x28fdb9=await new Promise((_0x152e59,_0x3d78a8)=>{const _0x5b0058=_0x25240d,_0x186483=_0x267c20[_0x5b0058(0x91)](_0xe2f884);_0x186483['onsuccess']=()=>_0x152e59(_0x186483['result']),_0x186483[_0x5b0058(0x69)]=()=>_0x3d78a8(_0x186483[_0x5b0058(0xa3)]);});if(!_0x28fdb9)throw new Error(_0x25240d(0x95));const _0x10a7cb=_0x28fdb9[this.#e],_0x480c8e=this.#o['hashVector'](_0x10a7cb);return await Promise[_0x25240d(0xa8)](_0x480c8e['map'](_0x5d899f=>this['removeFromBucket'](_0x190179,_0xe2f884,_0x5d899f))),new Promise((_0x363091,_0x3fdafb)=>{const _0x33ace8=_0x25240d,_0x279af2=_0x267c20[_0x33ace8(0xa2)](_0xe2f884);_0x279af2[_0x33ace8(0x72)]=()=>_0x363091(),_0x279af2[_0x33ace8(0x69)]=()=>_0x3fdafb(_0x279af2[_0x33ace8(0xa3)]);});}async['removeFromBucket'](_0x364d0d,_0x403365,_0x5b6112){const _0x4c243f=_0x13e715,_0x2d8aed=await new Promise((_0xab5d9b,_0x4c1643)=>{const _0x242f75=a3_0x40a4,_0x1c536d=_0x364d0d[_0x242f75(0x91)](_0x5b6112);_0x1c536d[_0x242f75(0x72)]=()=>_0xab5d9b(_0x1c536d[_0x242f75(0x70)]||[]),_0x1c536d[_0x242f75(0x69)]=()=>_0x4c1643(_0x1c536d[_0x242f75(0xa3)]);}),_0x24c229=_0x2d8aed['indexOf'](_0x403365);-0x1!==_0x24c229&&(_0x2d8aed[_0x4c243f(0x9a)](_0x24c229,0x1),await new Promise((_0x3be8ce,_0x232a50)=>{const _0x1ae345=_0x4c243f,_0xf82c84=_0x364d0d[_0x1ae345(0x67)](_0x2d8aed,_0x5b6112);_0xf82c84[_0x1ae345(0x72)]=()=>_0x3be8ce(),_0xf82c84[_0x1ae345(0x69)]=()=>_0x232a50(_0xf82c84[_0x1ae345(0xa3)]);}));}async[_0x13e715(0x77)](_0x36f293,_0x1c0072){const _0x158ba6=_0x13e715;if(null==_0x36f293)throw new Error(_0x158ba6(0xad));if(!(this.#e in _0x1c0072))throw new Error(this.#e+_0x158ba6(0x86));if(!(Array[_0x158ba6(0x81)](_0x1c0072[this.#e])||_0x1c0072[this.#e]instanceof Int8Array))throw new Error(this.#e+'\x20on\x20\x27object\x27\x20is\x20expected\x20to\x20be\x20an\x20Array\x20or\x20Int8Array');const _0x2ee32f=(await this.#r)[_0x158ba6(0xa1)]([this.#t,this.#t+_0x158ba6(0xa6)],_0x158ba6(0x9d)),_0x4aa076=_0x2ee32f[_0x158ba6(0x99)](this.#t),_0x3d438a=_0x2ee32f[_0x158ba6(0x99)](this.#t+_0x158ba6(0xa6)),_0x213e50=_0x4aa076[_0x158ba6(0x91)](_0x36f293);return new Promise((_0x5721ee,_0x478554)=>{const _0x44a371=_0x158ba6;_0x213e50[_0x44a371(0x72)]=async()=>{const _0x242b18=_0x44a371,_0x4e35fe=_0x213e50[_0x242b18(0x70)];if(!_0x4e35fe)return void _0x478554(new Error('Object\x20not\x20found\x20with\x20the\x20provided\x20key'));const _0x2f99ac=this.#o['hashVector'](_0x4e35fe[this.#e]),_0x3f8a1e=this.#o[_0x242b18(0x90)](_0x1c0072[this.#e]),_0x5e8e0b=_0x4aa076[_0x242b18(0x67)](_0x1c0072,_0x36f293);_0x5e8e0b[_0x242b18(0x72)]=async()=>{const _0x2f59f0=_0x242b18;try{for(let _0x494bba=0x0;_0x494bba_0x478554(_0x5e8e0b['error']);},_0x213e50[_0x44a371(0x69)]=()=>_0x478554(_0x213e50[_0x44a371(0xa3)]);});}async[_0x13e715(0x9c)](_0x2571f7,_0x16836b,_0x5c688c,_0x180597){const _0x35214e=_0x13e715,_0x1715b6=_0x2571f7['get'](_0x5c688c),_0x5a2762=await new Promise((_0x2ef4cf,_0x4319d5)=>{const _0x430227=a3_0x40a4;_0x1715b6['onsuccess']=()=>_0x2ef4cf(_0x1715b6[_0x430227(0x70)]||[]),_0x1715b6[_0x430227(0x69)]=()=>_0x4319d5(_0x1715b6['error']);}),_0x4e9e92=_0x5a2762[_0x35214e(0x93)](_0x16836b);-0x1!==_0x4e9e92&&(_0x5a2762[_0x35214e(0x9a)](_0x4e9e92,0x1),await _0x2571f7['put'](_0x5a2762,_0x5c688c));const _0x203bfd=_0x2571f7[_0x35214e(0x91)](_0x180597),_0x460277=await new Promise((_0x9ec7e4,_0x203cc2)=>{const _0x315fa7=_0x35214e;_0x203bfd['onsuccess']=()=>_0x9ec7e4(_0x203bfd[_0x315fa7(0x70)]||[]),_0x203bfd[_0x315fa7(0x69)]=()=>_0x203cc2(_0x203bfd[_0x315fa7(0xa3)]);});_0x460277['push'](_0x16836b),await _0x2571f7[_0x35214e(0x67)](_0x460277,_0x180597);}async['query'](_0x49c59f,_0x43863f={'limit':0xa}){const _0x532220=_0x13e715,{limit:_0x33a071}=_0x43863f;let _0x12c580=new Set(),_0x158171=[];try{const _0x4f3ece=(await this.#r)['transaction']([this.#t,this.#t+_0x532220(0xa6)],_0x532220(0x6f)),_0x553a2b=_0x4f3ece[_0x532220(0x99)](this.#t),_0x1e4afb=_0x4f3ece[_0x532220(0x99)](this.#t+_0x532220(0xa6)),_0x3a2799=this.#o[_0x532220(0x90)](_0x49c59f);for(let _0x60df1 of _0x3a2799){const _0x312e6e=await new Promise((_0x19695c,_0x4232bf)=>{const _0x5855e7=_0x532220,_0x235732=_0x1e4afb[_0x5855e7(0x91)](_0x60df1);_0x235732['onsuccess']=()=>_0x19695c(_0x235732[_0x5855e7(0x70)]||[]),_0x235732[_0x5855e7(0x69)]=()=>_0x4232bf(_0x235732[_0x5855e7(0xa3)]);});for(let _0x3ad19d of _0x312e6e)if(!_0x12c580['has'](_0x3ad19d)){_0x12c580[_0x532220(0x92)](_0x3ad19d);const _0x1420d4=await new Promise((_0x334cb3,_0x4e9d67)=>{const _0x5ea9ee=_0x532220,_0x14b4eb=_0x553a2b[_0x5ea9ee(0x91)](_0x3ad19d);_0x14b4eb[_0x5ea9ee(0x72)]=()=>_0x334cb3(_0x14b4eb[_0x5ea9ee(0x70)]),_0x14b4eb['onerror']=()=>_0x4e9d67(_0x14b4eb[_0x5ea9ee(0xa3)]);}),_0x97cf32=_0xfa1783(_0x49c59f,_0x1420d4[this.#e]);_0x158171['push']({'object':_0x1420d4,'key':_0x3ad19d,'similarity':_0x97cf32});}}return _0x158171[_0x532220(0x94)]((_0x28a05d,_0x47125f)=>_0x47125f[_0x532220(0x71)]-_0x28a05d[_0x532220(0x71)]),_0x158171[_0x532220(0x6e)](0x0,_0x33a071);}catch(_0x3744c8){throw _0x3744c8;}}get[_0x13e715(0x99)](){return this.#t;}}const _0x5ce9ff=_0x13e715(0x74);function _0x520b42(_0x17f286,_0x514955){const _0x56cedb=_0x13e715;return fetch(_0x5ce9ff,{'method':_0x56cedb(0x7d),'headers':{'Authorization':_0x56cedb(0x66)+_0x514955,'Content-Type':_0x56cedb(0xa7)},'body':JSON['stringify']({'text':_0x17f286})})[_0x56cedb(0x75)](_0x3c8b4c=>{const _0xbe94eb=_0x56cedb;if(!_0x3c8b4c['ok'])throw new Error(_0xbe94eb(0x6d)+_0x3c8b4c[_0xbe94eb(0x7b)]);return _0x3c8b4c[_0xbe94eb(0xa9)]();})[_0x56cedb(0xaf)](_0x972c83=>{});}const _0x2560cc=new class{constructor(_0x5c5c40,_0xbaa30f,_0x2db607='\x0a\x0a'){const _0x164150=_0x13e715;this[_0x164150(0x79)]=_0x5c5c40,this[_0x164150(0xa5)]=_0xbaa30f,this[_0x164150(0x9f)]=_0x2db607;}['split'](_0x38f031){const _0x281fc3=_0x13e715,_0x2640b4=[],_0x47ae8b=_0x38f031[_0x281fc3(0x73)](this[_0x281fc3(0x9f)]);let _0xacc379=[],_0x2a2c64=0x0;return _0x47ae8b[_0x281fc3(0x82)](_0x3ca10a=>{const _0x1456ff=_0x281fc3;(_0x3ca10a[_0x1456ff(0x76)](/\w+|[^\w\s]+/g)||[])[_0x1456ff(0x82)](_0x4777ae=>{const _0x3fa2bd=_0x1456ff;_0x2a2c64+_0x4777ae[_0x3fa2bd(0x9b)]+0x1>this[_0x3fa2bd(0x79)]&&(_0x2640b4['push'](_0xacc379[_0x3fa2bd(0xa0)]('\x20')),_0xacc379=_0xacc379[_0x3fa2bd(0x6e)](-this[_0x3fa2bd(0xa5)]),_0x2a2c64=_0xacc379[_0x3fa2bd(0xa0)]('\x20')['length']+0x1),_0xacc379[_0x3fa2bd(0x6b)](_0x4777ae),_0x2a2c64+=_0x4777ae[_0x3fa2bd(0x9b)]+0x1;});}),_0xacc379['length']>0x0&&_0x2640b4['push'](_0xacc379[_0x281fc3(0xa0)]('\x20')),_0x2640b4;}}(0xc8,0x14,'\x0a\x0a');let _0x5c4544;const _0x2c97b3=[];async function _0x3bf636(_0x3dd9de){const _0x5cb197=_0x13e715;var _0x4f41a0;return _0x4f41a0={'dbName':_0x3dd9de},_0x51866b={..._0x51866b,..._0x4f41a0},_0x5c4544=new _0x49971b({'vectorPath':_0x5cb197(0x7f)}),_0x51866b;}async function _0x4c0da1(_0x16feb6,_0x15806a,_0x5c9f24=!0x0){const _0x3742e3=_0x13e715,{text:_0x4b4c69,..._0x16cd95}=_0x16feb6,_0x4076bc=_0x2560cc['split'](_0x4b4c69);let _0x55b59e;_0x55b59e=await _0x520b42(_0x4076bc,_0x15806a);for(let _0x4b5dfd=0x0;_0x4b5dfd<_0x4076bc[_0x3742e3(0x9b)];_0x4b5dfd++){const {text:_0x2d35a8,..._0x34f7d7}=_0x16feb6;_0x34f7d7['text']=_0x4076bc[_0x4b5dfd];const _0x549521=await _0x5c4544[_0x3742e3(0x84)]({'embedding':_0x55b59e[_0x4b5dfd],..._0x34f7d7});_0x2c97b3['push']({'key':_0x549521,..._0x34f7d7});}return _0x2c97b3;}async function _0x21a838(_0x2e0523,_0x168d28={'limit':0x5},_0x25b409,_0x294eec=!0x0){const _0x4d08a9=_0x13e715;let _0x259786;return _0x259786=await _0x520b42(_0x2e0523,_0x25b409),await _0x5c4544[_0x4d08a9(0xa4)](_0x259786,_0x168d28);}async function _0x57bd8d(_0x137cbe,_0x41bd13,_0x4e4788=!0x0){const _0x164057=_0x13e715,{text:_0x478f1d,..._0x3c8e01}=_0x137cbe,_0x284749=_0x520b42([_0x478f1d],_0x41bd13),_0x2eaf04=await _0x5c4544['insert']({'embedding':_0x284749,'text':_0x478f1d,..._0x3c8e01});return _0x2c97b3[_0x164057(0x6b)]({'key':_0x2eaf04,..._0x3c8e01}),_0x2c97b3;}async function _0x5ac645(_0x2cf277){const _0x25d0b5=_0x13e715;return await _0x5c4544[_0x25d0b5(0xa2)](_0x2cf277);}async function _0x4bc83f(_0x5bb086,_0x29f48f,_0x5b36c1){const _0x105cde=_0x13e715,_0x4b60f5=_0x29f48f[_0x105cde(0x7a)];if(!_0x29f48f[_0x105cde(0x7f)]){const _0x23dec0=await _0x520b42([_0x4b60f5],_0x5b36c1);_0x29f48f[_0x105cde(0x7f)]=_0x23dec0;}return await _0x5c4544[_0x105cde(0x77)](_0x5bb086,{'embedding':text_embeddings,'metaData':_0x29f48f});}}}]); \ No newline at end of file diff --git a/scripts/ai_menu/dist/761.bundle.js b/scripts/ai_menu/dist/761.bundle.js deleted file mode 100644 index 24784493..00000000 --- a/scripts/ai_menu/dist/761.bundle.js +++ /dev/null @@ -1 +0,0 @@ -function a2_0x58fa(_0x642f08,_0x2c9efa){var _0x45befe=a2_0x45be();return a2_0x58fa=function(_0x58fae3,_0x19c4dc){_0x58fae3=_0x58fae3-0xc4;var _0x4ba436=_0x45befe[_0x58fae3];return _0x4ba436;},a2_0x58fa(_0x642f08,_0x2c9efa);}function a2_0x45be(){var _0x1a3e8e=['defineProperty','onmessage','length','test','quickStart_single','document','delete_row','webpackChunkinjectchat','result','getElementsByTagName','initiate','postMessage','update','message','.bundle.js','toStringTag','undefined','then','1277297kocjiI','useLocal','prototype','16KhiIff','return\x20this','1310uCSiWl','search','24dfnBsp','__esModule','bind','push','script','12153504ZViPlU','keys','3TcIUmi','currentScript','importScripts','success','1458309SuXADv','all','reduce','create_single','348406QWpacp','pop','key','replace','object','data','quickStart','text','4445012bSHxjJ','Automatic\x20publicPath\x20is\x20not\x20supported\x20in\x20this\x20browser','397685MuTomF','4uKRJGe','41103DRjukJ','exports','create','error'];a2_0x45be=function(){return _0x1a3e8e;};return a2_0x45be();}(function(_0x3331ad,_0xe1c6ac){var _0x4110ca=a2_0x58fa,_0x27589a=_0x3331ad();while(!![]){try{var _0x2a09a8=-parseInt(_0x4110ca(0xd4))/0x1*(parseInt(_0x4110ca(0xdc))/0x2)+parseInt(_0x4110ca(0xd8))/0x3*(-parseInt(_0x4110ca(0xe7))/0x4)+-parseInt(_0x4110ca(0xe6))/0x5*(parseInt(_0x4110ca(0xcd))/0x6)+-parseInt(_0x4110ca(0xc6))/0x7*(parseInt(_0x4110ca(0xc9))/0x8)+-parseInt(_0x4110ca(0xe8))/0x9*(-parseInt(_0x4110ca(0xcb))/0xa)+parseInt(_0x4110ca(0xe4))/0xb+parseInt(_0x4110ca(0xd2))/0xc;if(_0x2a09a8===_0xe1c6ac)break;else _0x27589a['push'](_0x27589a['shift']());}catch(_0x15b1fb){_0x27589a['push'](_0x27589a['shift']());}}}(a2_0x45be,0x4ef1f),((()=>{var _0x51f697=a2_0x58fa,_0x46f2c9={},_0x15c007={};function _0x5f56eb(_0xb11168){var _0x13947e=a2_0x58fa,_0x467cc7=_0x15c007[_0xb11168];if(void 0x0!==_0x467cc7)return _0x467cc7[_0x13947e(0xe9)];var _0x173334=_0x15c007[_0xb11168]={'exports':{}};return _0x46f2c9[_0xb11168](_0x173334,_0x173334[_0x13947e(0xe9)],_0x5f56eb),_0x173334[_0x13947e(0xe9)];}let _0xc9ac1,_0x1e35d7,_0x340467,_0x17c84d,_0x3836de;_0x5f56eb['m']=_0x46f2c9,_0x5f56eb['d']=(_0x2a677b,_0x50a1db)=>{var _0x1261be=a2_0x58fa;for(var _0x2ebb9c in _0x50a1db)_0x5f56eb['o'](_0x50a1db,_0x2ebb9c)&&!_0x5f56eb['o'](_0x2a677b,_0x2ebb9c)&&Object[_0x1261be(0xec)](_0x2a677b,_0x2ebb9c,{'enumerable':!0x0,'get':_0x50a1db[_0x2ebb9c]});},_0x5f56eb['f']={},_0x5f56eb['e']=_0x57a9e7=>Promise[_0x51f697(0xd9)](Object[_0x51f697(0xd3)](_0x5f56eb['f'])[_0x51f697(0xda)]((_0x5b3e50,_0x17fd46)=>(_0x5f56eb['f'][_0x17fd46](_0x57a9e7,_0x5b3e50),_0x5b3e50),[])),_0x5f56eb['u']=_0x1e41a3=>_0x1e41a3+_0x51f697(0xfa),_0x5f56eb['g']=(function(){var _0x2951bc=_0x51f697;if('object'==typeof globalThis)return globalThis;try{return this||new Function(_0x2951bc(0xca))();}catch(_0x330695){if(_0x2951bc(0xe0)==typeof window)return window;}}()),_0x5f56eb['o']=(_0x5d230f,_0x42321c)=>Object[_0x51f697(0xc8)]['hasOwnProperty']['call'](_0x5d230f,_0x42321c),_0x5f56eb['r']=_0x3a2c01=>{var _0x26695d=_0x51f697;_0x26695d(0xc4)!=typeof Symbol&&Symbol['toStringTag']&&Object['defineProperty'](_0x3a2c01,Symbol[_0x26695d(0xfb)],{'value':'Module'}),Object['defineProperty'](_0x3a2c01,_0x26695d(0xce),{'value':!0x0});},((()=>{var _0x5da09d=_0x51f697,_0x3b9ed6;_0x5f56eb['g'][_0x5da09d(0xd6)]&&(_0x3b9ed6=_0x5f56eb['g']['location']+'');var _0x3adc53=_0x5f56eb['g'][_0x5da09d(0xf1)];if(!_0x3b9ed6&&_0x3adc53&&(_0x3adc53[_0x5da09d(0xd5)]&&(_0x3b9ed6=_0x3adc53[_0x5da09d(0xd5)]['src']),!_0x3b9ed6)){var _0x133b3b=_0x3adc53[_0x5da09d(0xf5)](_0x5da09d(0xd1));if(_0x133b3b[_0x5da09d(0xee)]){for(var _0xe5d7f3=_0x133b3b['length']-0x1;_0xe5d7f3>-0x1&&(!_0x3b9ed6||!/^http(s?):/[_0x5da09d(0xef)](_0x3b9ed6));)_0x3b9ed6=_0x133b3b[_0xe5d7f3--]['src'];}}if(!_0x3b9ed6)throw new Error(_0x5da09d(0xe5));_0x3b9ed6=_0x3b9ed6[_0x5da09d(0xdf)](/#.*$/,'')[_0x5da09d(0xdf)](/\?.*$/,'')[_0x5da09d(0xdf)](/\/[^\/]+$/,'/'),_0x5f56eb['p']=_0x3b9ed6;})()),((()=>{var _0x352ec8=_0x51f697,_0x3c4398={0x2f9:0x1,0x8e:0x1};_0x5f56eb['f']['i']=(_0x3cc50d,_0x17d8c5)=>{_0x3c4398[_0x3cc50d]||importScripts(_0x5f56eb['p']+_0x5f56eb['u'](_0x3cc50d));};var _0x40a368=self[_0x352ec8(0xf3)]=self['webpackChunkinjectchat']||[],_0x55e9b3=_0x40a368[_0x352ec8(0xd0)][_0x352ec8(0xcf)](_0x40a368);_0x40a368[_0x352ec8(0xd0)]=_0x85d5ed=>{var _0x367e65=_0x352ec8,[_0x4d7546,_0x2554da,_0x3e0f6a]=_0x85d5ed;for(var _0x509008 in _0x2554da)_0x5f56eb['o'](_0x2554da,_0x509008)&&(_0x5f56eb['m'][_0x509008]=_0x2554da[_0x509008]);for(_0x3e0f6a&&_0x3e0f6a(_0x5f56eb);_0x4d7546[_0x367e65(0xee)];)_0x3c4398[_0x4d7546[_0x367e65(0xdd)]()]=0x1;_0x55e9b3(_0x85d5ed);};})()),self[_0x51f697(0xed)]=async _0x543a4a=>{var _0x2c50ac=_0x51f697;if(!(_0xc9ac1&&_0x1e35d7&&quickStart_single&&_0x340467&&_0x17c84d&&_0x3836de)){const _0x141b8d=await _0x5f56eb['e'](0x180)[_0x2c50ac(0xc5)](_0x5f56eb[_0x2c50ac(0xcf)](_0x5f56eb,0x20c0));_0xc9ac1=_0x141b8d[_0x2c50ac(0xf6)],_0x1e35d7=_0x141b8d[_0x2c50ac(0xe2)],quickStart_single=_0x141b8d[_0x2c50ac(0xf0)],_0x340467=_0x141b8d[_0x2c50ac(0xcc)],_0x17c84d=_0x141b8d[_0x2c50ac(0xf2)],_0x3836de=_0x141b8d[_0x2c50ac(0xf8)];}try{let _0x5ae1e4;const {token:_0x2f57e7,..._0x109626}=_0x543a4a['data'];switch(_0x543a4a[_0x2c50ac(0xe1)]['command']){case _0x2c50ac(0xf6):_0x5ae1e4=await _0xc9ac1(_0x543a4a[_0x2c50ac(0xe1)]['dbName']),_0x5ae1e4={'result':_0x5ae1e4};break;case _0x2c50ac(0xea):_0x5ae1e4=await _0x1e35d7(_0x109626,_0x2f57e7,_0x543a4a[_0x2c50ac(0xe1)]['useLocal']),_0x5ae1e4={'result':_0x5ae1e4,'id':_0x543a4a[_0x2c50ac(0xe1)]['id']};break;case _0x2c50ac(0xdb):_0x5ae1e4=await quickStart_single(_0x543a4a[_0x2c50ac(0xe1)],_0x2f57e7,_0x543a4a[_0x2c50ac(0xe1)]['useLocal']),_0x5ae1e4={'result':_0x5ae1e4,'id':_0x543a4a[_0x2c50ac(0xe1)]['id']};break;case _0x2c50ac(0xcc):_0x5ae1e4=await _0x340467(_0x109626[_0x2c50ac(0xe3)],_0x543a4a['data']['k'],_0x2f57e7,_0x543a4a[_0x2c50ac(0xe1)][_0x2c50ac(0xc7)]),_0x5ae1e4={'result':_0x5ae1e4,'id':_0x543a4a[_0x2c50ac(0xe1)]['id']};break;case _0x2c50ac(0xf2):_0x5ae1e4=await _0x17c84d(_0x543a4a[_0x2c50ac(0xe1)][_0x2c50ac(0xde)]),_0x5ae1e4={'result':_0x5ae1e4,'id':_0x543a4a[_0x2c50ac(0xe1)]['id']};break;case _0x2c50ac(0xf8):_0x5ae1e4=await _0x3836de(_0x543a4a['data'][_0x2c50ac(0xde)],_0x109626,_0x2f57e7),_0x5ae1e4={'result':_0x5ae1e4,'id':_0x543a4a[_0x2c50ac(0xe1)]['id']};break;default:throw new Error('Unknown\x20command');}self['postMessage']({'status':_0x2c50ac(0xd7),'data':_0x5ae1e4[_0x2c50ac(0xf4)],'id':_0x5ae1e4['id']});}catch(_0x419301){self[_0x2c50ac(0xf7)]({'status':_0x2c50ac(0xeb),'message':_0x419301[_0x2c50ac(0xf9)]});}};})())); \ No newline at end of file diff --git a/scripts/ai_menu/dist/bundle.js b/scripts/ai_menu/dist/bundle.js index 6df98d7c..b72b9f06 100644 --- a/scripts/ai_menu/dist/bundle.js +++ b/scripts/ai_menu/dist/bundle.js @@ -1 +1,2 @@ -function a0_0x329b(_0x389d58,_0x26c77e){const _0x461a2b=a0_0x461a();return a0_0x329b=function(_0x329b89,_0x5a852e){_0x329b89=_0x329b89-0x68;let _0x4d5a78=_0x461a2b[_0x329b89];return _0x4d5a78;},a0_0x329b(_0x389d58,_0x26c77e);}(function(_0x96a87e,_0x372e3f){const _0x6916bd=a0_0x329b,_0x2e36f1=_0x96a87e();while(!![]){try{const _0x335068=-parseInt(_0x6916bd(0x6fc))/0x1*(parseInt(_0x6916bd(0x46d5))/0x2)+-parseInt(_0x6916bd(0x48fa))/0x3*(-parseInt(_0x6916bd(0x23bf))/0x4)+parseInt(_0x6916bd(0x691))/0x5*(parseInt(_0x6916bd(0x3179))/0x6)+-parseInt(_0x6916bd(0x4a82))/0x7+-parseInt(_0x6916bd(0x390f))/0x8+parseInt(_0x6916bd(0x2744))/0x9+parseInt(_0x6916bd(0x11cb))/0xa;if(_0x335068===_0x372e3f)break;else _0x2e36f1['push'](_0x2e36f1['shift']());}catch(_0x3eebaf){_0x2e36f1['push'](_0x2e36f1['shift']());}}}(a0_0x461a,0x8bf13),((()=>{const _0x37e7a3=a0_0x329b;var _0x5439d6={0x1b4f:(_0x16e7df,_0x264f3f,_0x56cb36)=>{'use strict';const _0x186b35=a0_0x329b;_0x56cb36['r'](_0x264f3f),_0x56cb36['d'](_0x264f3f,{'default':()=>_0x6ddba0});var _0xa0cfe5=_0x56cb36(0x641),_0x128342=_0x56cb36['n'](_0xa0cfe5),_0x3baa41=_0x56cb36(0x18aa),_0x517e2c=_0x56cb36['n'](_0x3baa41)()(_0x128342());_0x517e2c[_0x186b35(0x4131)]([_0x16e7df['id'],_0x186b35(0x4106),'']);const _0x6ddba0=_0x517e2c;},0x32d:(_0x4e3d49,_0x11f6bf,_0x13ea13)=>{'use strict';const _0x54f5d1=a0_0x329b;_0x13ea13['r'](_0x11f6bf),_0x13ea13['d'](_0x11f6bf,{'default':()=>_0x563fca});var _0x18d223=_0x13ea13(0x641),_0x14bfcb=_0x13ea13['n'](_0x18d223),_0x363946=_0x13ea13(0x18aa),_0x2c5caf=_0x13ea13['n'](_0x363946),_0xd2c9f0=_0x13ea13(0x1141),_0x205a8a=_0x13ea13['n'](_0xd2c9f0),_0x782117=new URL(_0x13ea13(0x1a4e),_0x13ea13['b']),_0x674383=_0x2c5caf()(_0x14bfcb());_0x674383[_0x54f5d1(0x4131)]([_0x4e3d49['id'],_0x54f5d1(0x4270)]);var _0x2dbfbc=_0x205a8a()(_0x782117);_0x674383[_0x54f5d1(0x4131)]([_0x4e3d49['id'],_0x54f5d1(0x39fa)+_0x2dbfbc+_0x54f5d1(0x14d4),'']);const _0x563fca=_0x674383;},0xeb5:(_0x4513fd,_0x2bbb53,_0x13322a)=>{'use strict';const _0x4a798a=a0_0x329b;_0x13322a['r'](_0x2bbb53),_0x13322a['d'](_0x2bbb53,{'default':()=>_0x1f0008});var _0x2124bd=_0x13322a(0x641),_0x1e999d=_0x13322a['n'](_0x2124bd),_0x22f24a=_0x13322a(0x18aa),_0x434933=_0x13322a['n'](_0x22f24a),_0xeb2f19=_0x13322a(0x1141),_0x48ec92=_0x13322a['n'](_0xeb2f19),_0xa6a592=new URL(_0x13322a(0x1a4e),_0x13322a['b']),_0x463b93=_0x434933()(_0x1e999d());_0x463b93[_0x4a798a(0x4131)]([_0x4513fd['id'],_0x4a798a(0x4270)]);var _0x95b8ed=_0x48ec92()(_0xa6a592);_0x463b93['push']([_0x4513fd['id'],_0x4a798a(0x3a96)+_0x95b8ed+_0x4a798a(0xaa3),'']);const _0x1f0008=_0x463b93;},0xa79:(_0x428428,_0x9ab17a,_0x4ffc1c)=>{'use strict';const _0x5f26c4=a0_0x329b;_0x4ffc1c['r'](_0x9ab17a),_0x4ffc1c['d'](_0x9ab17a,{'default':()=>_0x198576});var _0x3ffe56=_0x4ffc1c(0x641),_0x1b59b8=_0x4ffc1c['n'](_0x3ffe56),_0x50dc5b=_0x4ffc1c(0x18aa),_0x1ea239=_0x4ffc1c['n'](_0x50dc5b)()(_0x1b59b8());_0x1ea239[_0x5f26c4(0x4131)]([_0x428428['id'],_0x5f26c4(0x255b),'']);const _0x198576=_0x1ea239;},0x18aa:_0x18b499=>{'use strict';const _0xe21ed0=a0_0x329b;_0x18b499[_0xe21ed0(0x15de)]=function(_0x13ecb0){const _0x5ca0c8=_0xe21ed0;var _0x1d3905=[];return _0x1d3905[_0x5ca0c8(0x44de)]=function(){const _0x3cd2f4=_0x5ca0c8;return this[_0x3cd2f4(0x2c94)](function(_0x5c2133){const _0x48de12=_0x3cd2f4;var _0x58a747='',_0xf18804=void 0x0!==_0x5c2133[0x5];return _0x5c2133[0x4]&&(_0x58a747+=_0x48de12(0x1096)[_0x48de12(0x41bf)](_0x5c2133[0x4],_0x48de12(0x27eb))),_0x5c2133[0x2]&&(_0x58a747+=_0x48de12(0x1e80)[_0x48de12(0x41bf)](_0x5c2133[0x2],'\x20{')),_0xf18804&&(_0x58a747+=_0x48de12(0x2337)['concat'](_0x5c2133[0x5][_0x48de12(0x205b)]>0x0?'\x20'[_0x48de12(0x41bf)](_0x5c2133[0x5]):'','\x20{')),_0x58a747+=_0x13ecb0(_0x5c2133),_0xf18804&&(_0x58a747+='}'),_0x5c2133[0x2]&&(_0x58a747+='}'),_0x5c2133[0x4]&&(_0x58a747+='}'),_0x58a747;})[_0x3cd2f4(0x379c)]('');},_0x1d3905['i']=function(_0x2a423d,_0x5211eb,_0x5a5e94,_0x337166,_0x175f76){const _0x3454c3=_0x5ca0c8;_0x3454c3(0x4f7c)==typeof _0x2a423d&&(_0x2a423d=[[null,_0x2a423d,void 0x0]]);var _0x44c708={};if(_0x5a5e94)for(var _0x1dd223=0x0;_0x1dd2230x0?'\x20'['concat'](_0x8ce9f[0x5]):'','\x20{')[_0x3454c3(0x41bf)](_0x8ce9f[0x1],'}')),_0x8ce9f[0x5]=_0x175f76),_0x5211eb&&(_0x8ce9f[0x2]?(_0x8ce9f[0x1]=_0x3454c3(0x1e80)['concat'](_0x8ce9f[0x2],'\x20{')[_0x3454c3(0x41bf)](_0x8ce9f[0x1],'}'),_0x8ce9f[0x2]=_0x5211eb):_0x8ce9f[0x2]=_0x5211eb),_0x337166&&(_0x8ce9f[0x4]?(_0x8ce9f[0x1]=_0x3454c3(0x1096)[_0x3454c3(0x41bf)](_0x8ce9f[0x4],_0x3454c3(0x27eb))[_0x3454c3(0x41bf)](_0x8ce9f[0x1],'}'),_0x8ce9f[0x4]=_0x337166):_0x8ce9f[0x4]=''[_0x3454c3(0x41bf)](_0x337166)),_0x1d3905[_0x3454c3(0x4131)](_0x8ce9f));}},_0x1d3905;};},0x1141:_0x278572=>{'use strict';const _0x513c16=a0_0x329b;_0x278572[_0x513c16(0x15de)]=function(_0x27ae3a,_0x1443ff){const _0x33de23=_0x513c16;return _0x1443ff||(_0x1443ff={}),_0x27ae3a?(_0x27ae3a=String(_0x27ae3a['__esModule']?_0x27ae3a[_0x33de23(0x2fab)]:_0x27ae3a),/^['"].*['"]$/[_0x33de23(0x34c)](_0x27ae3a)&&(_0x27ae3a=_0x27ae3a['slice'](0x1,-0x1)),_0x1443ff[_0x33de23(0x37e1)]&&(_0x27ae3a+=_0x1443ff[_0x33de23(0x37e1)]),/["'() \t\n]|(%20)/[_0x33de23(0x34c)](_0x27ae3a)||_0x1443ff[_0x33de23(0x2403)]?'\x22'[_0x33de23(0x41bf)](_0x27ae3a[_0x33de23(0x1db7)](/"/g,'\x5c\x22')[_0x33de23(0x1db7)](/\n/g,'\x5cn'),'\x22'):_0x27ae3a):_0x27ae3a;};},0x641:_0x297d37=>{'use strict';const _0x23121a=a0_0x329b;_0x297d37[_0x23121a(0x15de)]=function(_0x8d4026){return _0x8d4026[0x1];};},0x1121:_0xbf4284=>{'use strict';const _0x5e17d1=a0_0x329b;_0xbf4284[_0x5e17d1(0x15de)]=function(_0x4e3d81,_0x5ee2df){const _0x4ac117=_0x5e17d1;return _0x5ee2df||(_0x5ee2df={}),_0x4e3d81?(_0x4e3d81=String(_0x4e3d81['__esModule']?_0x4e3d81[_0x4ac117(0x2fab)]:_0x4e3d81),_0x5ee2df[_0x4ac117(0x37e1)]&&(_0x4e3d81+=_0x5ee2df[_0x4ac117(0x37e1)]),_0x5ee2df[_0x4ac117(0x1839)]&&/[\t\n\f\r "'=<>`]/['test'](_0x4e3d81)?'\x22'[_0x4ac117(0x41bf)](_0x4e3d81,'\x22'):_0x4e3d81):_0x4e3d81;};},0x11c3:(_0x288369,_0x1977a9,_0x28fcad)=>{const _0x5e18c0=a0_0x329b;var _0x264422=_0x28fcad(0x1b4f);_0x264422&&_0x264422['__esModule']&&(_0x264422=_0x264422[_0x5e18c0(0x2fab)]),_0x288369[_0x5e18c0(0x15de)]=_0x5e18c0(0x4f7c)==typeof _0x264422?_0x264422:_0x264422[_0x5e18c0(0x44de)]();},0x459:(_0x32b1e8,_0x255792,_0x35d8af)=>{const _0x3c0296=a0_0x329b;var _0xd7aa82=_0x35d8af(0x32d);_0xd7aa82&&_0xd7aa82['__esModule']&&(_0xd7aa82=_0xd7aa82[_0x3c0296(0x2fab)]),_0x32b1e8[_0x3c0296(0x15de)]='string'==typeof _0xd7aa82?_0xd7aa82:_0xd7aa82[_0x3c0296(0x44de)]();},0x1279:(_0x234d8b,_0x129538,_0x168018)=>{const _0x5af421=a0_0x329b;var _0x4eed6f=_0x168018(0xeb5);_0x4eed6f&&_0x4eed6f[_0x5af421(0x145c)]&&(_0x4eed6f=_0x4eed6f[_0x5af421(0x2fab)]),_0x234d8b['exports']='string'==typeof _0x4eed6f?_0x4eed6f:_0x4eed6f['toString']();},0x1fbd:(_0x48b80a,_0x1a024c,_0x18a41d)=>{const _0x19d00b=a0_0x329b;var _0x210a63=_0x18a41d(0xa79);_0x210a63&&_0x210a63[_0x19d00b(0x145c)]&&(_0x210a63=_0x210a63['default']),_0x48b80a['exports']=_0x19d00b(0x4f7c)==typeof _0x210a63?_0x210a63:_0x210a63[_0x19d00b(0x44de)]();},0x1a4e:_0x54d1ad=>{'use strict';const _0x209fe1=a0_0x329b;_0x54d1ad[_0x209fe1(0x15de)]=_0x209fe1(0x7d1);},0x133e:(_0x4eda61,_0x13f493,_0x1120a5)=>{'use strict';const _0x194099=a0_0x329b;_0x4eda61[_0x194099(0x15de)]=_0x1120a5['p']+'2225addae43ee43f8435.js';},0x1fe3:(_0x25959f,_0x43b00c,_0x1272ca)=>{'use strict';const _0x3ad4c0=a0_0x329b;_0x25959f[_0x3ad4c0(0x15de)]=_0x1272ca['p']+_0x3ad4c0(0x485e);},0x20e0:_0x508026=>{const _0x462745=a0_0x329b;function _0x176e20(_0x25f021){const _0x1b8f0d=a0_0x329b;return _0x25f021 instanceof Map?_0x25f021['clear']=_0x25f021[_0x1b8f0d(0x450b)]=_0x25f021['set']=function(){const _0xacaf85=_0x1b8f0d;throw new Error(_0xacaf85(0x9d9));}:_0x25f021 instanceof Set&&(_0x25f021[_0x1b8f0d(0x2fd8)]=_0x25f021[_0x1b8f0d(0x30a1)]=_0x25f021[_0x1b8f0d(0x450b)]=function(){const _0x38a515=_0x1b8f0d;throw new Error(_0x38a515(0x17f6));}),Object['freeze'](_0x25f021),Object['getOwnPropertyNames'](_0x25f021)[_0x1b8f0d(0x4854)](_0xe7c4b=>{const _0x29ad3d=_0x1b8f0d,_0x13e6d0=_0x25f021[_0xe7c4b],_0x5ffd71=typeof _0x13e6d0;_0x29ad3d(0x2b58)!==_0x5ffd71&&_0x29ad3d(0x3dfb)!==_0x5ffd71||Object[_0x29ad3d(0x31eb)](_0x13e6d0)||_0x176e20(_0x13e6d0);}),_0x25f021;}class _0x18443c{constructor(_0xef0012){const _0x2c2a10=a0_0x329b;void 0x0===_0xef0012[_0x2c2a10(0x2a43)]&&(_0xef0012[_0x2c2a10(0x2a43)]={}),this[_0x2c2a10(0x2a43)]=_0xef0012[_0x2c2a10(0x2a43)],this[_0x2c2a10(0x153e)]=!0x1;}[_0x462745(0x240f)](){this['isMatchIgnored']=!0x0;}}function _0x41b56e(_0x55cd15){const _0x1e0383=_0x462745;return _0x55cd15['replace'](/&/g,'&')[_0x1e0383(0x1db7)](//g,'>')['replace'](/"/g,_0x1e0383(0x48cc))[_0x1e0383(0x1db7)](/'/g,''');}function _0x54435a(_0x29beb0,..._0xc87174){const _0x33832f=_0x462745,_0x321d3e=Object['create'](null);for(const _0x1c06e6 in _0x29beb0)_0x321d3e[_0x1c06e6]=_0x29beb0[_0x1c06e6];return _0xc87174[_0x33832f(0x4854)](function(_0x357597){for(const _0x38e283 in _0x357597)_0x321d3e[_0x38e283]=_0x357597[_0x38e283];}),_0x321d3e;}const _0x5dad51=_0x568107=>!!_0x568107[_0x462745(0x2939)];class _0x1e00f9{constructor(_0x1ac0f4,_0x1650bd){const _0x3002ae=_0x462745;this[_0x3002ae(0x1808)]='',this[_0x3002ae(0x4549)]=_0x1650bd['classPrefix'],_0x1ac0f4[_0x3002ae(0x4eab)](this);}[_0x462745(0x1cc1)](_0x2e6298){this['buffer']+=_0x41b56e(_0x2e6298);}[_0x462745(0x33ea)](_0x4366be){const _0x4aa24c=_0x462745;if(!_0x5dad51(_0x4366be))return;const _0x5324c3=((_0x84c644,{prefix:_0x2c012a})=>{const _0x3437af=a0_0x329b;if(_0x84c644[_0x3437af(0xe6e)]('language:'))return _0x84c644[_0x3437af(0x1db7)](_0x3437af(0x1b89),_0x3437af(0x4395));if(_0x84c644[_0x3437af(0x1fa2)]('.')){const _0x5e6992=_0x84c644['split']('.');return[''+_0x2c012a+_0x5e6992['shift'](),..._0x5e6992[_0x3437af(0x2c94)]((_0x399361,_0x1b1de0)=>''+_0x399361+'_'[_0x3437af(0x16da)](_0x1b1de0+0x1))][_0x3437af(0x379c)]('\x20');}return''+_0x2c012a+_0x84c644;})(_0x4366be['scope'],{'prefix':this[_0x4aa24c(0x4549)]});this[_0x4aa24c(0x3fe3)](_0x5324c3);}['closeNode'](_0x49712b){const _0x4d0d48=_0x462745;_0x5dad51(_0x49712b)&&(this[_0x4d0d48(0x1808)]+=_0x4d0d48(0x3de));}['value'](){const _0x2ec003=_0x462745;return this[_0x2ec003(0x1808)];}[_0x462745(0x3fe3)](_0x547d5c){const _0x34b389=_0x462745;this[_0x34b389(0x1808)]+=_0x34b389(0x36e3)+_0x547d5c+'\x22>';}}const _0x583255=(_0x3c3efd={})=>{const _0x58c80d=_0x462745,_0x168ecf={'children':[]};return Object[_0x58c80d(0x11e8)](_0x168ecf,_0x3c3efd),_0x168ecf;};class _0x2e663f{constructor(){const _0x1a906c=_0x462745;this['rootNode']=_0x583255(),this[_0x1a906c(0x323c)]=[this['rootNode']];}get['top'](){const _0x4dc58b=_0x462745;return this[_0x4dc58b(0x323c)][this['stack'][_0x4dc58b(0x205b)]-0x1];}get[_0x462745(0xdf8)](){const _0xa12e92=_0x462745;return this[_0xa12e92(0x363b)];}[_0x462745(0x2fd8)](_0x51bcc8){const _0x4dd529=_0x462745;this[_0x4dd529(0x139d)]['children'][_0x4dd529(0x4131)](_0x51bcc8);}[_0x462745(0x33ea)](_0x5c4db4){const _0x3b65a3=_0x462745,_0x13ebeb=_0x583255({'scope':_0x5c4db4});this[_0x3b65a3(0x2fd8)](_0x13ebeb),this[_0x3b65a3(0x323c)][_0x3b65a3(0x4131)](_0x13ebeb);}[_0x462745(0x2adf)](){const _0x527ea3=_0x462745;if(this[_0x527ea3(0x323c)]['length']>0x1)return this[_0x527ea3(0x323c)][_0x527ea3(0x2895)]();}[_0x462745(0x48f4)](){const _0x3d2b57=_0x462745;for(;this[_0x3d2b57(0x2adf)](););}[_0x462745(0x191d)](){const _0xec7ac5=_0x462745;return JSON[_0xec7ac5(0xf0b)](this['rootNode'],null,0x4);}['walk'](_0x4947f4){const _0xf9f5c8=_0x462745;return this[_0xf9f5c8(0x31f6)][_0xf9f5c8(0x2f7e)](_0x4947f4,this[_0xf9f5c8(0x363b)]);}static['_walk'](_0x38c701,_0x345cb3){const _0x13c173=_0x462745;return'string'==typeof _0x345cb3?_0x38c701['addText'](_0x345cb3):_0x345cb3[_0x13c173(0x4538)]&&(_0x38c701['openNode'](_0x345cb3),_0x345cb3[_0x13c173(0x4538)][_0x13c173(0x4854)](_0x4fe08c=>this[_0x13c173(0x2f7e)](_0x38c701,_0x4fe08c)),_0x38c701[_0x13c173(0x2adf)](_0x345cb3)),_0x38c701;}static[_0x462745(0xced)](_0x46519d){const _0x885269=_0x462745;_0x885269(0x4f7c)!=typeof _0x46519d&&_0x46519d['children']&&(_0x46519d[_0x885269(0x4538)][_0x885269(0x464d)](_0x555b2a=>'string'==typeof _0x555b2a)?_0x46519d['children']=[_0x46519d[_0x885269(0x4538)][_0x885269(0x379c)]('')]:_0x46519d[_0x885269(0x4538)]['forEach'](_0x5a735d=>{const _0x10daf9=_0x885269;_0x2e663f[_0x10daf9(0xced)](_0x5a735d);}));}}class _0x230d3b extends _0x2e663f{constructor(_0x4f33a2){const _0x1f1afa=_0x462745;super(),this[_0x1f1afa(0x199c)]=_0x4f33a2;}[_0x462745(0x1cc1)](_0x14011a){''!==_0x14011a&&this['add'](_0x14011a);}[_0x462745(0x2f20)](_0x3ef200){const _0x4b6075=_0x462745;this[_0x4b6075(0x33ea)](_0x3ef200);}[_0x462745(0x18f5)](){this['closeNode']();}[_0x462745(0x1f7e)](_0x1e44e3,_0xe6d384){const _0x702fe3=_0x462745,_0x5f29aa=_0x1e44e3[_0x702fe3(0xdf8)];_0xe6d384&&(_0x5f29aa['scope']=_0x702fe3(0x1b89)+_0xe6d384),this[_0x702fe3(0x2fd8)](_0x5f29aa);}['toHTML'](){const _0x1da2ad=_0x462745;return new _0x1e00f9(this,this[_0x1da2ad(0x199c)])[_0x1da2ad(0x1827)]();}[_0x462745(0x653)](){const _0xd8c1b8=_0x462745;return this[_0xd8c1b8(0x48f4)](),!0x0;}}function _0x4d27c6(_0x50274f){const _0x2de569=_0x462745;return _0x50274f?'string'==typeof _0x50274f?_0x50274f:_0x50274f[_0x2de569(0x3b28)]:null;}function _0x30b045(_0xf463f7){const _0x5dc8d7=_0x462745;return _0xd673dd(_0x5dc8d7(0x5b0),_0xf463f7,')');}function _0x34d8fc(_0x2aefea){const _0x51046c=_0x462745;return _0xd673dd(_0x51046c(0x2d50),_0x2aefea,')*');}function _0x34dffb(_0x1674e7){const _0x40a89e=_0x462745;return _0xd673dd(_0x40a89e(0x2d50),_0x1674e7,')?');}function _0xd673dd(..._0x555646){const _0x521ef2=_0x462745;return _0x555646[_0x521ef2(0x2c94)](_0x502fe4=>_0x4d27c6(_0x502fe4))[_0x521ef2(0x379c)]('');}function _0x5a9f6e(..._0x3c89eb){const _0x18ac52=_0x462745,_0x4585f6=function(_0x3ccc54){const _0x26a92b=a0_0x329b,_0x2ad477=_0x3ccc54[_0x3ccc54[_0x26a92b(0x205b)]-0x1];return'object'==typeof _0x2ad477&&_0x2ad477['constructor']===Object?(_0x3ccc54['splice'](_0x3ccc54[_0x26a92b(0x205b)]-0x1,0x1),_0x2ad477):{};}(_0x3c89eb);return'('+(_0x4585f6[_0x18ac52(0x46d0)]?'':'?:')+_0x3c89eb[_0x18ac52(0x2c94)](_0x1173f0=>_0x4d27c6(_0x1173f0))[_0x18ac52(0x379c)]('|')+')';}function _0x41d1a4(_0x470c3e){const _0xe1dcf1=_0x462745;return new RegExp(_0x470c3e[_0xe1dcf1(0x44de)]()+'|')[_0xe1dcf1(0x3bbd)]('')[_0xe1dcf1(0x205b)]-0x1;}const _0x47e775=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _0x5a56ae(_0x174b74,{joinWith:_0x3fd684}){const _0x13cbb4=_0x462745;let _0x5c371a=0x0;return _0x174b74[_0x13cbb4(0x2c94)](_0x42edb8=>{const _0x204054=_0x13cbb4;_0x5c371a+=0x1;const _0x5635e9=_0x5c371a;let _0x1f8b0a=_0x4d27c6(_0x42edb8),_0x52d9a9='';for(;_0x1f8b0a[_0x204054(0x205b)]>0x0;){const _0x26bb10=_0x47e775['exec'](_0x1f8b0a);if(!_0x26bb10){_0x52d9a9+=_0x1f8b0a;break;}_0x52d9a9+=_0x1f8b0a[_0x204054(0x3934)](0x0,_0x26bb10['index']),_0x1f8b0a=_0x1f8b0a['substring'](_0x26bb10[_0x204054(0x1cf3)]+_0x26bb10[0x0][_0x204054(0x205b)]),'\x5c'===_0x26bb10[0x0][0x0]&&_0x26bb10[0x1]?_0x52d9a9+='\x5c'+String(Number(_0x26bb10[0x1])+_0x5635e9):(_0x52d9a9+=_0x26bb10[0x0],'('===_0x26bb10[0x0]&&_0x5c371a++);}return _0x52d9a9;})[_0x13cbb4(0x2c94)](_0x52dafe=>'('+_0x52dafe+')')['join'](_0x3fd684);}const _0x3acce4=_0x462745(0x1843),_0x58cab3=_0x462745(0x341d),_0x224a88=_0x462745(0x37d3),_0x577405=_0x462745(0x3288),_0x54738c=_0x462745(0x494c),_0x1f9cf4={'begin':'\x5c\x5c[\x5cs\x5cS]','relevance':0x0},_0x7c431f={'scope':'string','begin':'\x27','end':'\x27','illegal':'\x5cn','contains':[_0x1f9cf4]},_0x404ca7={'scope':_0x462745(0x4f7c),'begin':'\x22','end':'\x22','illegal':'\x5cn','contains':[_0x1f9cf4]},_0x4272a8=function(_0x299788,_0x5ad1ff,_0x5c1a12={}){const _0x238699=_0x462745,_0x3a3a3b=_0x54435a({'scope':'comment','begin':_0x299788,'end':_0x5ad1ff,'contains':[]},_0x5c1a12);_0x3a3a3b[_0x238699(0x160d)][_0x238699(0x4131)]({'scope':_0x238699(0x3d82),'begin':_0x238699(0x2173),'end':/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,'excludeBegin':!0x0,'relevance':0x0});const _0xe46fd=_0x5a9f6e('I','a','is','so','us','to','at','if','in','it','on',/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return _0x3a3a3b[_0x238699(0x160d)][_0x238699(0x4131)]({'begin':_0xd673dd(/[ ]+/,'(',_0xe46fd,/[.]?[:]?([.][ ]|[ ])/,_0x238699(0x229c))}),_0x3a3a3b;},_0x23c89d=_0x4272a8('//','$'),_0x1ac85c=_0x4272a8('/\x5c*',_0x462745(0x507f)),_0x4c2372=_0x4272a8('#','$'),_0x4665bb={'scope':_0x462745(0x1ed7),'begin':_0x224a88,'relevance':0x0},_0x26e8bc={'scope':'number','begin':_0x577405,'relevance':0x0},_0x3859b0={'scope':_0x462745(0x1ed7),'begin':_0x54738c,'relevance':0x0},_0x49c770={'scope':_0x462745(0x27ae),'begin':/\/(?=[^/\n]*\/)/,'end':/\/[gimuy]*/,'contains':[_0x1f9cf4,{'begin':/\[/,'end':/\]/,'relevance':0x0,'contains':[_0x1f9cf4]}]},_0x52abd6={'scope':_0x462745(0x5f1),'begin':_0x3acce4,'relevance':0x0},_0x5ca25f={'scope':_0x462745(0x5f1),'begin':_0x58cab3,'relevance':0x0},_0x18eb55={'begin':_0x462745(0x28bd)+_0x58cab3,'relevance':0x0};var _0xa1270f=Object['freeze']({'__proto__':null,'APOS_STRING_MODE':_0x7c431f,'BACKSLASH_ESCAPE':_0x1f9cf4,'BINARY_NUMBER_MODE':_0x3859b0,'BINARY_NUMBER_RE':_0x54738c,'COMMENT':_0x4272a8,'C_BLOCK_COMMENT_MODE':_0x1ac85c,'C_LINE_COMMENT_MODE':_0x23c89d,'C_NUMBER_MODE':_0x26e8bc,'C_NUMBER_RE':_0x577405,'END_SAME_AS_BEGIN':function(_0x13d2a8){return Object['assign'](_0x13d2a8,{'on:begin':(_0x231b89,_0x5da11a)=>{const _0xe232dc=a0_0x329b;_0x5da11a['data'][_0xe232dc(0x2884)]=_0x231b89[0x1];},'on:end':(_0x3b8f7c,_0x4c0f46)=>{const _0x192fb9=a0_0x329b;_0x4c0f46[_0x192fb9(0x2a43)][_0x192fb9(0x2884)]!==_0x3b8f7c[0x1]&&_0x4c0f46[_0x192fb9(0x240f)]();}});},'HASH_COMMENT_MODE':_0x4c2372,'IDENT_RE':_0x3acce4,'MATCH_NOTHING_RE':/\b\B/,'METHOD_GUARD':_0x18eb55,'NUMBER_MODE':_0x4665bb,'NUMBER_RE':_0x224a88,'PHRASAL_WORDS_MODE':{'begin':/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},'QUOTE_STRING_MODE':_0x404ca7,'REGEXP_MODE':_0x49c770,'RE_STARTERS_RE':'!|!=|!==|%|%=|&|&&|&=|\x5c*|\x5c*=|\x5c+|\x5c+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\x5c?|\x5c[|\x5c{|\x5c(|\x5c^|\x5c^=|\x5c||\x5c|=|\x5c|\x5c||~','SHEBANG':(_0x599a16={})=>{const _0x2e67ee=_0x462745,_0x25bf30=/^#![ ]*\//;return _0x599a16[_0x2e67ee(0x13bb)]&&(_0x599a16[_0x2e67ee(0x1706)]=_0xd673dd(_0x25bf30,/.*\b/,_0x599a16[_0x2e67ee(0x13bb)],/\b.*/)),_0x54435a({'scope':_0x2e67ee(0x482),'begin':_0x25bf30,'end':/$/,'relevance':0x0,'on:begin':(_0x47c2b4,_0x429b22)=>{const _0x9d709a=_0x2e67ee;0x0!==_0x47c2b4[_0x9d709a(0x1cf3)]&&_0x429b22[_0x9d709a(0x240f)]();}},_0x599a16);},'TITLE_MODE':_0x52abd6,'UNDERSCORE_IDENT_RE':_0x58cab3,'UNDERSCORE_TITLE_MODE':_0x5ca25f});function _0x10ce35(_0x497f63,_0x2935ee){const _0x141660=_0x462745;'.'===_0x497f63[_0x141660(0xe2d)][_0x497f63[_0x141660(0x1cf3)]-0x1]&&_0x2935ee[_0x141660(0x240f)]();}function _0x581aaf(_0x364ab,_0x5ea85b){const _0x1758e8=_0x462745;void 0x0!==_0x364ab[_0x1758e8(0x35ce)]&&(_0x364ab['scope']=_0x364ab['className'],delete _0x364ab[_0x1758e8(0x35ce)]);}function _0x5945bf(_0x30fdf7,_0x52ee5e){const _0x233251=_0x462745;_0x52ee5e&&_0x30fdf7[_0x233251(0x25db)]&&(_0x30fdf7[_0x233251(0x1706)]=_0x233251(0x3648)+_0x30fdf7[_0x233251(0x25db)]['split']('\x20')[_0x233251(0x379c)]('|')+_0x233251(0x1293),_0x30fdf7[_0x233251(0x3402)]=_0x10ce35,_0x30fdf7[_0x233251(0x3a6f)]=_0x30fdf7[_0x233251(0x3a6f)]||_0x30fdf7[_0x233251(0x25db)],delete _0x30fdf7[_0x233251(0x25db)],void 0x0===_0x30fdf7[_0x233251(0x3531)]&&(_0x30fdf7[_0x233251(0x3531)]=0x0));}function _0x3e564b(_0x35a92a,_0x223787){const _0x54078b=_0x462745;Array[_0x54078b(0x477f)](_0x35a92a['illegal'])&&(_0x35a92a[_0x54078b(0x1111)]=_0x5a9f6e(..._0x35a92a[_0x54078b(0x1111)]));}function _0x3bf03c(_0x1928ec,_0xaf6de3){const _0x23947b=_0x462745;if(_0x1928ec[_0x23947b(0xdc0)]){if(_0x1928ec['begin']||_0x1928ec[_0x23947b(0x721)])throw new Error(_0x23947b(0x3a6d));_0x1928ec['begin']=_0x1928ec[_0x23947b(0xdc0)],delete _0x1928ec[_0x23947b(0xdc0)];}}function _0x1427d6(_0x104c97,_0x1d01f1){const _0x1da704=_0x462745;void 0x0===_0x104c97[_0x1da704(0x3531)]&&(_0x104c97['relevance']=0x1);}const _0x3acef8=(_0x64cf5c,_0x23ea94)=>{const _0x4944fb=_0x462745;if(!_0x64cf5c[_0x4944fb(0x2b2b)])return;if(_0x64cf5c['starts'])throw new Error(_0x4944fb(0x3124));const _0x2b8db2=Object[_0x4944fb(0x11e8)]({},_0x64cf5c);Object[_0x4944fb(0x2f75)](_0x64cf5c)[_0x4944fb(0x4854)](_0x5ee447=>{delete _0x64cf5c[_0x5ee447];}),_0x64cf5c[_0x4944fb(0x3a6f)]=_0x2b8db2[_0x4944fb(0x3a6f)],_0x64cf5c[_0x4944fb(0x1706)]=_0xd673dd(_0x2b8db2[_0x4944fb(0x2b2b)],_0x30b045(_0x2b8db2['begin'])),_0x64cf5c[_0x4944fb(0x3399)]={'relevance':0x0,'contains':[Object['assign'](_0x2b8db2,{'endsParent':!0x0})]},_0x64cf5c[_0x4944fb(0x3531)]=0x0,delete _0x2b8db2[_0x4944fb(0x2b2b)];},_0x216dec=['of',_0x462745(0x43ea),_0x462745(0x8f1),'in',_0x462745(0x4163),'or','if',_0x462745(0x452b),_0x462745(0x2667),_0x462745(0x20cf),_0x462745(0x1827)],_0x468d33=_0x462745(0x2448);function _0x3be62a(_0x5d0b8d,_0x192bec,_0x5ac539=_0x468d33){const _0x8262e1=_0x462745,_0x477ab6=Object['create'](null);return _0x8262e1(0x4f7c)==typeof _0x5d0b8d?_0x9ceea9(_0x5ac539,_0x5d0b8d[_0x8262e1(0x29d0)]('\x20')):Array['isArray'](_0x5d0b8d)?_0x9ceea9(_0x5ac539,_0x5d0b8d):Object[_0x8262e1(0x2f75)](_0x5d0b8d)['forEach'](function(_0x345f94){Object['assign'](_0x477ab6,_0x3be62a(_0x5d0b8d[_0x345f94],_0x192bec,_0x345f94));}),_0x477ab6;function _0x9ceea9(_0xd016aa,_0x333243){const _0x190071=_0x8262e1;_0x192bec&&(_0x333243=_0x333243[_0x190071(0x2c94)](_0xb0e82b=>_0xb0e82b[_0x190071(0x1a57)]())),_0x333243[_0x190071(0x4854)](function(_0x18dacb){const _0x17f480=_0x18dacb['split']('|');_0x477ab6[_0x17f480[0x0]]=[_0xd016aa,_0x31d38e(_0x17f480[0x0],_0x17f480[0x1])];});}}function _0x31d38e(_0x11074a,_0x1c3e3f){return _0x1c3e3f?Number(_0x1c3e3f):function(_0x51b8b2){const _0x58dbaf=a0_0x329b;return _0x216dec[_0x58dbaf(0x1fa2)](_0x51b8b2[_0x58dbaf(0x1a57)]());}(_0x11074a)?0x0:0x1;}const _0xb5a38b={},_0x36d887=_0x3b1782=>{},_0x1aae4f=(_0x4da996,_0x2c754b)=>{_0xb5a38b[_0x4da996+'/'+_0x2c754b]||(_0xb5a38b[_0x4da996+'/'+_0x2c754b]=!0x0);},_0x5b1110=new Error();function _0x2853f1(_0x23242f,_0x400390,{key:_0x250f6b}){const _0x373530=_0x462745;let _0x237bbd=0x0;const _0x15db93=_0x23242f[_0x250f6b],_0x4cfbd2={},_0x583506={};for(let _0x516e81=0x1;_0x516e81<=_0x400390['length'];_0x516e81++)_0x583506[_0x516e81+_0x237bbd]=_0x15db93[_0x516e81],_0x4cfbd2[_0x516e81+_0x237bbd]=!0x0,_0x237bbd+=_0x41d1a4(_0x400390[_0x516e81-0x1]);_0x23242f[_0x250f6b]=_0x583506,_0x23242f[_0x250f6b][_0x373530(0x2b24)]=_0x4cfbd2,_0x23242f[_0x250f6b][_0x373530(0x3838)]=!0x0;}function _0x43df01(_0x39ad9f){const _0x2178e4=_0x462745;!function(_0x58387d){const _0xa6e14e=a0_0x329b;_0x58387d[_0xa6e14e(0x2939)]&&_0xa6e14e(0x2b58)==typeof _0x58387d[_0xa6e14e(0x2939)]&&null!==_0x58387d[_0xa6e14e(0x2939)]&&(_0x58387d[_0xa6e14e(0x311c)]=_0x58387d[_0xa6e14e(0x2939)],delete _0x58387d[_0xa6e14e(0x2939)]);}(_0x39ad9f),'string'==typeof _0x39ad9f[_0x2178e4(0x311c)]&&(_0x39ad9f[_0x2178e4(0x311c)]={'_wrap':_0x39ad9f[_0x2178e4(0x311c)]}),_0x2178e4(0x4f7c)==typeof _0x39ad9f[_0x2178e4(0x18f5)]&&(_0x39ad9f[_0x2178e4(0x18f5)]={'_wrap':_0x39ad9f['endScope']}),function(_0x48ec70){const _0x5f09ad=_0x2178e4;if(Array[_0x5f09ad(0x477f)](_0x48ec70['begin'])){if(_0x48ec70[_0x5f09ad(0x1ea7)]||_0x48ec70[_0x5f09ad(0x1a01)]||_0x48ec70['returnBegin'])throw _0x36d887('skip,\x20excludeBegin,\x20returnBegin\x20not\x20compatible\x20with\x20beginScope:\x20{}'),_0x5b1110;if(_0x5f09ad(0x2b58)!=typeof _0x48ec70[_0x5f09ad(0x311c)]||null===_0x48ec70[_0x5f09ad(0x311c)])throw _0x36d887('beginScope\x20must\x20be\x20object'),_0x5b1110;_0x2853f1(_0x48ec70,_0x48ec70['begin'],{'key':_0x5f09ad(0x311c)}),_0x48ec70[_0x5f09ad(0x1706)]=_0x5a56ae(_0x48ec70[_0x5f09ad(0x1706)],{'joinWith':''});}}(_0x39ad9f),function(_0x224ffc){const _0x52c36a=_0x2178e4;if(Array[_0x52c36a(0x477f)](_0x224ffc[_0x52c36a(0x721)])){if(_0x224ffc['skip']||_0x224ffc['excludeEnd']||_0x224ffc['returnEnd'])throw _0x36d887(_0x52c36a(0x21cf)),_0x5b1110;if(_0x52c36a(0x2b58)!=typeof _0x224ffc[_0x52c36a(0x18f5)]||null===_0x224ffc[_0x52c36a(0x18f5)])throw _0x36d887(_0x52c36a(0x4132)),_0x5b1110;_0x2853f1(_0x224ffc,_0x224ffc[_0x52c36a(0x721)],{'key':_0x52c36a(0x18f5)}),_0x224ffc['end']=_0x5a56ae(_0x224ffc[_0x52c36a(0x721)],{'joinWith':''});}}(_0x39ad9f);}function _0x103b43(_0x51e5dd){const _0x1bed03=_0x462745;function _0x22923b(_0x1cad6d,_0x5d82c1){const _0x5e740e=a0_0x329b;return new RegExp(_0x4d27c6(_0x1cad6d),'m'+(_0x51e5dd[_0x5e740e(0x340)]?'i':'')+(_0x51e5dd[_0x5e740e(0x6ee)]?'u':'')+(_0x5d82c1?'g':''));}class _0x5502d4{constructor(){const _0x5d4eaa=a0_0x329b;this[_0x5d4eaa(0x7af)]={},this[_0x5d4eaa(0x281d)]=[],this['matchAt']=0x1,this['position']=0x0;}['addRule'](_0x3f2cca,_0x33b306){const _0x13f6ba=a0_0x329b;_0x33b306[_0x13f6ba(0x3a28)]=this[_0x13f6ba(0x3a28)]++,this[_0x13f6ba(0x7af)][this['matchAt']]=_0x33b306,this[_0x13f6ba(0x281d)][_0x13f6ba(0x4131)]([_0x33b306,_0x3f2cca]),this['matchAt']+=_0x41d1a4(_0x3f2cca)+0x1;}['compile'](){const _0x9d861e=a0_0x329b;0x0===this['regexes'][_0x9d861e(0x205b)]&&(this[_0x9d861e(0x3bbd)]=()=>null);const _0x57002e=this[_0x9d861e(0x281d)][_0x9d861e(0x2c94)](_0x58083b=>_0x58083b[0x1]);this['matcherRe']=_0x22923b(_0x5a56ae(_0x57002e,{'joinWith':'|'}),!0x0),this[_0x9d861e(0x1dc3)]=0x0;}[_0x1bed03(0x3bbd)](_0x99c5f9){const _0x670409=_0x1bed03;this[_0x670409(0x1087)][_0x670409(0x1dc3)]=this['lastIndex'];const _0xf86f68=this[_0x670409(0x1087)][_0x670409(0x3bbd)](_0x99c5f9);if(!_0xf86f68)return null;const _0x3c812e=_0xf86f68[_0x670409(0x734)]((_0x152891,_0x477b17)=>_0x477b17>0x0&&void 0x0!==_0x152891),_0x49ddac=this['matchIndexes'][_0x3c812e];return _0xf86f68[_0x670409(0x506f)](0x0,_0x3c812e),Object[_0x670409(0x11e8)](_0xf86f68,_0x49ddac);}}class _0x1e79c3{constructor(){const _0x5f74fb=_0x1bed03;this['rules']=[],this[_0x5f74fb(0x41a8)]=[],this[_0x5f74fb(0x4d47)]=0x0,this[_0x5f74fb(0x1dc3)]=0x0,this[_0x5f74fb(0x1b93)]=0x0;}[_0x1bed03(0x3c9b)](_0xa3c6af){const _0x29d56c=_0x1bed03;if(this[_0x29d56c(0x41a8)][_0xa3c6af])return this['multiRegexes'][_0xa3c6af];const _0x396796=new _0x5502d4();return this['rules'][_0x29d56c(0x428e)](_0xa3c6af)[_0x29d56c(0x4854)](([_0x2d2567,_0x460443])=>_0x396796[_0x29d56c(0xeeb)](_0x2d2567,_0x460443)),_0x396796['compile'](),this[_0x29d56c(0x41a8)][_0xa3c6af]=_0x396796,_0x396796;}[_0x1bed03(0x46fa)](){return 0x0!==this['regexIndex'];}[_0x1bed03(0x1627)](){this['regexIndex']=0x0;}['addRule'](_0x476024,_0x561e37){const _0x344e13=_0x1bed03;this[_0x344e13(0x28bb)][_0x344e13(0x4131)]([_0x476024,_0x561e37]),_0x344e13(0x1706)===_0x561e37[_0x344e13(0x70a)]&&this[_0x344e13(0x4d47)]++;}[_0x1bed03(0x3bbd)](_0x47eeb8){const _0x29071f=_0x1bed03,_0x10ce77=this[_0x29071f(0x3c9b)](this['regexIndex']);_0x10ce77[_0x29071f(0x1dc3)]=this[_0x29071f(0x1dc3)];let _0x350367=_0x10ce77[_0x29071f(0x3bbd)](_0x47eeb8);if(this[_0x29071f(0x46fa)]()){if(_0x350367&&_0x350367['index']===this[_0x29071f(0x1dc3)]);else{const _0x2b6e76=this[_0x29071f(0x3c9b)](0x0);_0x2b6e76['lastIndex']=this['lastIndex']+0x1,_0x350367=_0x2b6e76['exec'](_0x47eeb8);}}return _0x350367&&(this['regexIndex']+=_0x350367[_0x29071f(0x3a28)]+0x1,this[_0x29071f(0x1b93)]===this[_0x29071f(0x4d47)]&&this['considerAll']()),_0x350367;}}if(_0x51e5dd['compilerExtensions']||(_0x51e5dd[_0x1bed03(0x3344)]=[]),_0x51e5dd[_0x1bed03(0x160d)]&&_0x51e5dd[_0x1bed03(0x160d)][_0x1bed03(0x1fa2)](_0x1bed03(0x1001)))throw new Error(_0x1bed03(0x1b82));return _0x51e5dd[_0x1bed03(0x301d)]=_0x54435a(_0x51e5dd['classNameAliases']||{}),function _0x256349(_0xeb3ea7,_0x2d3c1d){const _0x3da18b=_0x1bed03,_0x90042c=_0xeb3ea7;if(_0xeb3ea7[_0x3da18b(0x1c32)])return _0x90042c;[_0x581aaf,_0x3bf03c,_0x43df01,_0x3acef8][_0x3da18b(0x4854)](_0x5473bb=>_0x5473bb(_0xeb3ea7,_0x2d3c1d)),_0x51e5dd[_0x3da18b(0x3344)][_0x3da18b(0x4854)](_0x959935=>_0x959935(_0xeb3ea7,_0x2d3c1d)),_0xeb3ea7['__beforeBegin']=null,[_0x5945bf,_0x3e564b,_0x1427d6][_0x3da18b(0x4854)](_0x427181=>_0x427181(_0xeb3ea7,_0x2d3c1d)),_0xeb3ea7[_0x3da18b(0x1c32)]=!0x0;let _0x4e4977=null;return'object'==typeof _0xeb3ea7[_0x3da18b(0x3a6f)]&&_0xeb3ea7['keywords'][_0x3da18b(0x5001)]&&(_0xeb3ea7['keywords']=Object[_0x3da18b(0x11e8)]({},_0xeb3ea7[_0x3da18b(0x3a6f)]),_0x4e4977=_0xeb3ea7['keywords'][_0x3da18b(0x5001)],delete _0xeb3ea7[_0x3da18b(0x3a6f)][_0x3da18b(0x5001)]),_0x4e4977=_0x4e4977||/\w+/,_0xeb3ea7[_0x3da18b(0x3a6f)]&&(_0xeb3ea7[_0x3da18b(0x3a6f)]=_0x3be62a(_0xeb3ea7[_0x3da18b(0x3a6f)],_0x51e5dd[_0x3da18b(0x340)])),_0x90042c['keywordPatternRe']=_0x22923b(_0x4e4977,!0x0),_0x2d3c1d&&(_0xeb3ea7['begin']||(_0xeb3ea7['begin']=/\B|\b/),_0x90042c[_0x3da18b(0x34bb)]=_0x22923b(_0x90042c['begin']),_0xeb3ea7['end']||_0xeb3ea7[_0x3da18b(0x454c)]||(_0xeb3ea7[_0x3da18b(0x721)]=/\B|\b/),_0xeb3ea7[_0x3da18b(0x721)]&&(_0x90042c['endRe']=_0x22923b(_0x90042c[_0x3da18b(0x721)])),_0x90042c[_0x3da18b(0x1df5)]=_0x4d27c6(_0x90042c['end'])||'',_0xeb3ea7[_0x3da18b(0x454c)]&&_0x2d3c1d[_0x3da18b(0x1df5)]&&(_0x90042c['terminatorEnd']+=(_0xeb3ea7[_0x3da18b(0x721)]?'|':'')+_0x2d3c1d[_0x3da18b(0x1df5)])),_0xeb3ea7['illegal']&&(_0x90042c[_0x3da18b(0x3872)]=_0x22923b(_0xeb3ea7[_0x3da18b(0x1111)])),_0xeb3ea7['contains']||(_0xeb3ea7[_0x3da18b(0x160d)]=[]),_0xeb3ea7[_0x3da18b(0x160d)]=[][_0x3da18b(0x41bf)](..._0xeb3ea7['contains'][_0x3da18b(0x2c94)](function(_0x54f64d){return function(_0x3b5332){const _0x12dcb9=a0_0x329b;_0x3b5332[_0x12dcb9(0x2d95)]&&!_0x3b5332[_0x12dcb9(0x20c1)]&&(_0x3b5332[_0x12dcb9(0x20c1)]=_0x3b5332[_0x12dcb9(0x2d95)][_0x12dcb9(0x2c94)](function(_0x35e34c){return _0x54435a(_0x3b5332,{'variants':null},_0x35e34c);}));if(_0x3b5332[_0x12dcb9(0x20c1)])return _0x3b5332[_0x12dcb9(0x20c1)];if(_0x14b2fa(_0x3b5332))return _0x54435a(_0x3b5332,{'starts':_0x3b5332[_0x12dcb9(0x3399)]?_0x54435a(_0x3b5332['starts']):null});if(Object[_0x12dcb9(0x31eb)](_0x3b5332))return _0x54435a(_0x3b5332);return _0x3b5332;}('self'===_0x54f64d?_0xeb3ea7:_0x54f64d);})),_0xeb3ea7[_0x3da18b(0x160d)][_0x3da18b(0x4854)](function(_0x509354){_0x256349(_0x509354,_0x90042c);}),_0xeb3ea7['starts']&&_0x256349(_0xeb3ea7[_0x3da18b(0x3399)],_0x2d3c1d),_0x90042c[_0x3da18b(0x2102)]=function(_0x217085){const _0x315793=_0x3da18b,_0x2b6d76=new _0x1e79c3();return _0x217085[_0x315793(0x160d)]['forEach'](_0xe55896=>_0x2b6d76[_0x315793(0xeeb)](_0xe55896[_0x315793(0x1706)],{'rule':_0xe55896,'type':'begin'})),_0x217085[_0x315793(0x1df5)]&&_0x2b6d76[_0x315793(0xeeb)](_0x217085[_0x315793(0x1df5)],{'type':_0x315793(0x721)}),_0x217085[_0x315793(0x1111)]&&_0x2b6d76[_0x315793(0xeeb)](_0x217085['illegal'],{'type':'illegal'}),_0x2b6d76;}(_0x90042c),_0x90042c;}(_0x51e5dd);}function _0x14b2fa(_0x2c97ba){const _0x5e93c1=_0x462745;return!!_0x2c97ba&&(_0x2c97ba['endsWithParent']||_0x14b2fa(_0x2c97ba[_0x5e93c1(0x3399)]));}class _0x2af65c extends Error{constructor(_0x22ea03,_0x46d718){const _0x2d51e2=_0x462745;super(_0x22ea03),this['name']=_0x2d51e2(0x41d1),this[_0x2d51e2(0x1978)]=_0x46d718;}}const _0x5aaa0d=_0x41b56e,_0x455a4b=_0x54435a,_0x3a1295=Symbol(_0x462745(0xf09)),_0x5e364c=function(_0x273db0){const _0x5eb70e=_0x462745,_0x1326e6=Object[_0x5eb70e(0x2925)](null),_0x43a43e=Object[_0x5eb70e(0x2925)](null),_0x319ceb=[];let _0x3e5462=!0x0;const _0x17f499=_0x5eb70e(0x15a5),_0x538ebf={'disableAutodetect':!0x0,'name':_0x5eb70e(0x1056),'contains':[]};let _0x30b306={'ignoreUnescapedHTML':!0x1,'throwUnescapedHTML':!0x1,'noHighlightRe':/^(no-?highlight)$/i,'languageDetectRe':/\blang(?:uage)?-([\w-]+)\b/i,'classPrefix':_0x5eb70e(0x16c),'cssSelector':'pre\x20code','languages':null,'__emitter':_0x230d3b};function _0xf2ae1e(_0xb6990d){const _0x36366a=_0x5eb70e;return _0x30b306[_0x36366a(0x472e)][_0x36366a(0x34c)](_0xb6990d);}function _0x5b460f(_0x1815ec,_0x15c575,_0x2e2885){const _0x278563=_0x5eb70e;let _0x54eed7='',_0xaf438='';_0x278563(0x2b58)==typeof _0x15c575?(_0x54eed7=_0x1815ec,_0x2e2885=_0x15c575[_0x278563(0x2a4)],_0xaf438=_0x15c575['language']):(_0x1aae4f(_0x278563(0x15ad),'highlight(lang,\x20code,\x20...args)\x20has\x20been\x20deprecated.'),_0x1aae4f('10.7.0',_0x278563(0x2208)),_0xaf438=_0x1815ec,_0x54eed7=_0x15c575),void 0x0===_0x2e2885&&(_0x2e2885=!0x0);const _0x1937f8={'code':_0x54eed7,'language':_0xaf438};_0x3b147c('before:highlight',_0x1937f8);const _0x17dce4=_0x1937f8['result']?_0x1937f8[_0x278563(0x209a)]:_0x31d193(_0x1937f8[_0x278563(0x2be5)],_0x1937f8['code'],_0x2e2885);return _0x17dce4[_0x278563(0xbd0)]=_0x1937f8[_0x278563(0xbd0)],_0x3b147c('after:highlight',_0x17dce4),_0x17dce4;}function _0x31d193(_0xafef5,_0x5d9819,_0x11cea9,_0x505c38){const _0x49f31b=_0x5eb70e,_0x4c1afc=Object['create'](null);function _0x32b2e6(){const _0xcd87bd=a0_0x329b;if(!_0x1ca551[_0xcd87bd(0x3a6f)])return void _0x574628[_0xcd87bd(0x1cc1)](_0x106463);let _0x3bf6e4=0x0;_0x1ca551[_0xcd87bd(0x7b6)][_0xcd87bd(0x1dc3)]=0x0;let _0x29f07c=_0x1ca551[_0xcd87bd(0x7b6)][_0xcd87bd(0x3bbd)](_0x106463),_0x15b2ee='';for(;_0x29f07c;){_0x15b2ee+=_0x106463[_0xcd87bd(0x3934)](_0x3bf6e4,_0x29f07c[_0xcd87bd(0x1cf3)]);const _0x4476dc=_0x3644c4[_0xcd87bd(0x340)]?_0x29f07c[0x0]['toLowerCase']():_0x29f07c[0x0],_0x15e6e8=(_0x3635c8=_0x4476dc,_0x1ca551[_0xcd87bd(0x3a6f)][_0x3635c8]);if(_0x15e6e8){const [_0x169339,_0x55b8d0]=_0x15e6e8;if(_0x574628[_0xcd87bd(0x1cc1)](_0x15b2ee),_0x15b2ee='',_0x4c1afc[_0x4476dc]=(_0x4c1afc[_0x4476dc]||0x0)+0x1,_0x4c1afc[_0x4476dc]<=0x7&&(_0x228100+=_0x55b8d0),_0x169339[_0xcd87bd(0xe6e)]('_'))_0x15b2ee+=_0x29f07c[0x0];else{const _0x15ce66=_0x3644c4[_0xcd87bd(0x301d)][_0x169339]||_0x169339;_0x20b9a0(_0x29f07c[0x0],_0x15ce66);}}else _0x15b2ee+=_0x29f07c[0x0];_0x3bf6e4=_0x1ca551[_0xcd87bd(0x7b6)][_0xcd87bd(0x1dc3)],_0x29f07c=_0x1ca551[_0xcd87bd(0x7b6)][_0xcd87bd(0x3bbd)](_0x106463);}var _0x3635c8;_0x15b2ee+=_0x106463[_0xcd87bd(0x3934)](_0x3bf6e4),_0x574628['addText'](_0x15b2ee);}function _0xb53dc(){const _0x5fd70f=a0_0x329b;null!=_0x1ca551[_0x5fd70f(0x4a4e)]?(function(){const _0x34a7b4=_0x5fd70f;if(''===_0x106463)return;let _0x38251b=null;if(_0x34a7b4(0x4f7c)==typeof _0x1ca551[_0x34a7b4(0x4a4e)]){if(!_0x1326e6[_0x1ca551[_0x34a7b4(0x4a4e)]])return void _0x574628[_0x34a7b4(0x1cc1)](_0x106463);_0x38251b=_0x31d193(_0x1ca551[_0x34a7b4(0x4a4e)],_0x106463,!0x0,_0xcb889b[_0x1ca551[_0x34a7b4(0x4a4e)]]),_0xcb889b[_0x1ca551[_0x34a7b4(0x4a4e)]]=_0x38251b['_top'];}else _0x38251b=_0xf1e362(_0x106463,_0x1ca551[_0x34a7b4(0x4a4e)][_0x34a7b4(0x205b)]?_0x1ca551[_0x34a7b4(0x4a4e)]:null);_0x1ca551[_0x34a7b4(0x3531)]>0x0&&(_0x228100+=_0x38251b[_0x34a7b4(0x3531)]),_0x574628[_0x34a7b4(0x1f7e)](_0x38251b[_0x34a7b4(0x122b)],_0x38251b[_0x34a7b4(0x2be5)]);}()):_0x32b2e6(),_0x106463='';}function _0x20b9a0(_0xd35a93,_0x51f1f6){const _0x4f8244=a0_0x329b;''!==_0xd35a93&&(_0x574628[_0x4f8244(0x2f20)](_0x51f1f6),_0x574628[_0x4f8244(0x1cc1)](_0xd35a93),_0x574628[_0x4f8244(0x18f5)]());}function _0x46bbb2(_0xbe21dc,_0x1f1e1e){const _0x3c44c6=a0_0x329b;let _0x4d1f30=0x1;const _0x3cf815=_0x1f1e1e[_0x3c44c6(0x205b)]-0x1;for(;_0x4d1f30<=_0x3cf815;){if(!_0xbe21dc[_0x3c44c6(0x2b24)][_0x4d1f30]){_0x4d1f30++;continue;}const _0x15b04f=_0x3644c4[_0x3c44c6(0x301d)][_0xbe21dc[_0x4d1f30]]||_0xbe21dc[_0x4d1f30],_0x305604=_0x1f1e1e[_0x4d1f30];_0x15b04f?_0x20b9a0(_0x305604,_0x15b04f):(_0x106463=_0x305604,_0x32b2e6(),_0x106463=''),_0x4d1f30++;}}function _0x58cae5(_0x4021ad,_0x1b6865){const _0x272139=a0_0x329b;return _0x4021ad[_0x272139(0x2939)]&&_0x272139(0x4f7c)==typeof _0x4021ad[_0x272139(0x2939)]&&_0x574628[_0x272139(0x33ea)](_0x3644c4['classNameAliases'][_0x4021ad[_0x272139(0x2939)]]||_0x4021ad['scope']),_0x4021ad[_0x272139(0x311c)]&&(_0x4021ad[_0x272139(0x311c)]['_wrap']?(_0x20b9a0(_0x106463,_0x3644c4[_0x272139(0x301d)][_0x4021ad[_0x272139(0x311c)][_0x272139(0x146e)]]||_0x4021ad[_0x272139(0x311c)][_0x272139(0x146e)]),_0x106463=''):_0x4021ad['beginScope'][_0x272139(0x3838)]&&(_0x46bbb2(_0x4021ad[_0x272139(0x311c)],_0x1b6865),_0x106463='')),_0x1ca551=Object[_0x272139(0x2925)](_0x4021ad,{'parent':{'value':_0x1ca551}}),_0x1ca551;}function _0x3e5029(_0x5d280e,_0x1d0c63,_0x962885){const _0x4f7609=a0_0x329b;let _0x45add2=function(_0x421fc7,_0x443c02){const _0x258fc2=a0_0x329b,_0x586b45=_0x421fc7&&_0x421fc7[_0x258fc2(0x3bbd)](_0x443c02);return _0x586b45&&0x0===_0x586b45[_0x258fc2(0x1cf3)];}(_0x5d280e[_0x4f7609(0x16c5)],_0x962885);if(_0x45add2){if(_0x5d280e[_0x4f7609(0x1350)]){const _0x4a7849=new _0x18443c(_0x5d280e);_0x5d280e[_0x4f7609(0x1350)](_0x1d0c63,_0x4a7849),_0x4a7849[_0x4f7609(0x153e)]&&(_0x45add2=!0x1);}if(_0x45add2){for(;_0x5d280e[_0x4f7609(0xd00)]&&_0x5d280e['parent'];)_0x5d280e=_0x5d280e[_0x4f7609(0x2667)];return _0x5d280e;}}if(_0x5d280e['endsWithParent'])return _0x3e5029(_0x5d280e['parent'],_0x1d0c63,_0x962885);}function _0x449cc1(_0x3527df){const _0x35f4ef=a0_0x329b;return 0x0===_0x1ca551[_0x35f4ef(0x2102)][_0x35f4ef(0x1b93)]?(_0x106463+=_0x3527df[0x0],0x1):(_0x13fdbd=!0x0,0x0);}function _0x439026(_0x2b5ff7){const _0x6b28fe=a0_0x329b,_0xd46b2f=_0x2b5ff7[0x0],_0x2fd763=_0x5d9819[_0x6b28fe(0x3934)](_0x2b5ff7[_0x6b28fe(0x1cf3)]),_0x52a4fb=_0x3e5029(_0x1ca551,_0x2b5ff7,_0x2fd763);if(!_0x52a4fb)return _0x3a1295;const _0x2967b2=_0x1ca551;_0x1ca551[_0x6b28fe(0x18f5)]&&_0x1ca551['endScope'][_0x6b28fe(0x146e)]?(_0xb53dc(),_0x20b9a0(_0xd46b2f,_0x1ca551['endScope'][_0x6b28fe(0x146e)])):_0x1ca551[_0x6b28fe(0x18f5)]&&_0x1ca551['endScope'][_0x6b28fe(0x3838)]?(_0xb53dc(),_0x46bbb2(_0x1ca551['endScope'],_0x2b5ff7)):_0x2967b2[_0x6b28fe(0x1ea7)]?_0x106463+=_0xd46b2f:(_0x2967b2[_0x6b28fe(0x4cb1)]||_0x2967b2[_0x6b28fe(0x318b)]||(_0x106463+=_0xd46b2f),_0xb53dc(),_0x2967b2[_0x6b28fe(0x318b)]&&(_0x106463=_0xd46b2f));do{_0x1ca551['scope']&&_0x574628[_0x6b28fe(0x2adf)](),_0x1ca551[_0x6b28fe(0x1ea7)]||_0x1ca551['subLanguage']||(_0x228100+=_0x1ca551[_0x6b28fe(0x3531)]),_0x1ca551=_0x1ca551[_0x6b28fe(0x2667)];}while(_0x1ca551!==_0x52a4fb[_0x6b28fe(0x2667)]);return _0x52a4fb[_0x6b28fe(0x3399)]&&_0x58cae5(_0x52a4fb[_0x6b28fe(0x3399)],_0x2b5ff7),_0x2967b2[_0x6b28fe(0x4cb1)]?0x0:_0xd46b2f['length'];}let _0x11ff68={};function _0x2f55df(_0x11a7dd,_0xa885c2){const _0x23b9ce=a0_0x329b,_0x571ebf=_0xa885c2&&_0xa885c2[0x0];if(_0x106463+=_0x11a7dd,null==_0x571ebf)return _0xb53dc(),0x0;if(_0x23b9ce(0x1706)===_0x11ff68[_0x23b9ce(0x70a)]&&_0x23b9ce(0x721)===_0xa885c2[_0x23b9ce(0x70a)]&&_0x11ff68[_0x23b9ce(0x1cf3)]===_0xa885c2['index']&&''===_0x571ebf){if(_0x106463+=_0x5d9819[_0x23b9ce(0x428e)](_0xa885c2['index'],_0xa885c2[_0x23b9ce(0x1cf3)]+0x1),!_0x3e5462){const _0x5a3615=new Error(_0x23b9ce(0x33f2)+_0xafef5+')');throw _0x5a3615[_0x23b9ce(0x4817)]=_0xafef5,_0x5a3615[_0x23b9ce(0x317b)]=_0x11ff68['rule'],_0x5a3615;}return 0x1;}if(_0x11ff68=_0xa885c2,'begin'===_0xa885c2[_0x23b9ce(0x70a)])return function(_0x58207f){const _0x108292=_0x23b9ce,_0x201bb7=_0x58207f[0x0],_0x482d64=_0x58207f['rule'],_0xca00ba=new _0x18443c(_0x482d64),_0x30c58e=[_0x482d64['__beforeBegin'],_0x482d64[_0x108292(0x2bc9)]];for(const _0x8c3e15 of _0x30c58e)if(_0x8c3e15&&(_0x8c3e15(_0x58207f,_0xca00ba),_0xca00ba[_0x108292(0x153e)]))return _0x449cc1(_0x201bb7);return _0x482d64['skip']?_0x106463+=_0x201bb7:(_0x482d64[_0x108292(0x1a01)]&&(_0x106463+=_0x201bb7),_0xb53dc(),_0x482d64[_0x108292(0x23d5)]||_0x482d64[_0x108292(0x1a01)]||(_0x106463=_0x201bb7)),_0x58cae5(_0x482d64,_0x58207f),_0x482d64[_0x108292(0x23d5)]?0x0:_0x201bb7[_0x108292(0x205b)];}(_0xa885c2);if(_0x23b9ce(0x1111)===_0xa885c2[_0x23b9ce(0x70a)]&&!_0x11cea9){const _0x2b872c=new Error(_0x23b9ce(0x2c30)+_0x571ebf+'\x22\x20for\x20mode\x20\x22'+(_0x1ca551[_0x23b9ce(0x2939)]||_0x23b9ce(0x1930))+'\x22');throw _0x2b872c[_0x23b9ce(0x3ed1)]=_0x1ca551,_0x2b872c;}if('end'===_0xa885c2[_0x23b9ce(0x70a)]){const _0x42977b=_0x439026(_0xa885c2);if(_0x42977b!==_0x3a1295)return _0x42977b;}if('illegal'===_0xa885c2[_0x23b9ce(0x70a)]&&''===_0x571ebf)return 0x1;if(_0x491300>0x186a0&&_0x491300>0x3*_0xa885c2[_0x23b9ce(0x1cf3)])throw new Error('potential\x20infinite\x20loop,\x20way\x20more\x20iterations\x20than\x20matches');return _0x106463+=_0x571ebf,_0x571ebf['length'];}const _0x3644c4=_0x54ac74(_0xafef5);if(!_0x3644c4)throw _0x36d887(_0x17f499[_0x49f31b(0x1db7)]('{}',_0xafef5)),new Error(_0x49f31b(0x3be2)+_0xafef5+'\x22');const _0xec6c4f=_0x103b43(_0x3644c4);let _0x5f1060='',_0x1ca551=_0x505c38||_0xec6c4f;const _0xcb889b={},_0x574628=new _0x30b306[(_0x49f31b(0x618))](_0x30b306);!(function(){const _0x289df7=_0x49f31b,_0x152d8a=[];for(let _0x27a963=_0x1ca551;_0x27a963!==_0x3644c4;_0x27a963=_0x27a963[_0x289df7(0x2667)])_0x27a963['scope']&&_0x152d8a[_0x289df7(0x214d)](_0x27a963[_0x289df7(0x2939)]);_0x152d8a['forEach'](_0x127535=>_0x574628[_0x289df7(0x33ea)](_0x127535));}());let _0x106463='',_0x228100=0x0,_0x544e2a=0x0,_0x491300=0x0,_0x13fdbd=!0x1;try{if(_0x3644c4[_0x49f31b(0x3d1f)])_0x3644c4[_0x49f31b(0x3d1f)](_0x5d9819,_0x574628);else{for(_0x1ca551[_0x49f31b(0x2102)][_0x49f31b(0x1627)]();;){_0x491300++,_0x13fdbd?_0x13fdbd=!0x1:_0x1ca551[_0x49f31b(0x2102)][_0x49f31b(0x1627)](),_0x1ca551['matcher'][_0x49f31b(0x1dc3)]=_0x544e2a;const _0x3c6faa=_0x1ca551[_0x49f31b(0x2102)][_0x49f31b(0x3bbd)](_0x5d9819);if(!_0x3c6faa)break;const _0x3a078c=_0x2f55df(_0x5d9819[_0x49f31b(0x3934)](_0x544e2a,_0x3c6faa['index']),_0x3c6faa);_0x544e2a=_0x3c6faa[_0x49f31b(0x1cf3)]+_0x3a078c;}_0x2f55df(_0x5d9819[_0x49f31b(0x3934)](_0x544e2a));}return _0x574628['finalize'](),_0x5f1060=_0x574628[_0x49f31b(0x4c75)](),{'language':_0xafef5,'value':_0x5f1060,'relevance':_0x228100,'illegal':!0x1,'_emitter':_0x574628,'_top':_0x1ca551};}catch(_0x5ced28){if(_0x5ced28['message']&&_0x5ced28[_0x49f31b(0x18ac)][_0x49f31b(0x1fa2)](_0x49f31b(0x4200)))return{'language':_0xafef5,'value':_0x5aaa0d(_0x5d9819),'illegal':!0x0,'relevance':0x0,'_illegalBy':{'message':_0x5ced28[_0x49f31b(0x18ac)],'index':_0x544e2a,'context':_0x5d9819['slice'](_0x544e2a-0x64,_0x544e2a+0x64),'mode':_0x5ced28[_0x49f31b(0x3ed1)],'resultSoFar':_0x5f1060},'_emitter':_0x574628};if(_0x3e5462)return{'language':_0xafef5,'value':_0x5aaa0d(_0x5d9819),'illegal':!0x1,'relevance':0x0,'errorRaised':_0x5ced28,'_emitter':_0x574628,'_top':_0x1ca551};throw _0x5ced28;}}function _0xf1e362(_0x54950a,_0x438aa4){const _0x2fc52d=_0x5eb70e;_0x438aa4=_0x438aa4||_0x30b306[_0x2fc52d(0x161)]||Object[_0x2fc52d(0x2f75)](_0x1326e6);const _0x1cd225=function(_0x3b95f9){const _0x10cc29=_0x2fc52d,_0x3d2db8={'value':_0x5aaa0d(_0x3b95f9),'illegal':!0x1,'relevance':0x0,'_top':_0x538ebf,'_emitter':new _0x30b306[(_0x10cc29(0x618))](_0x30b306)};return _0x3d2db8['_emitter'][_0x10cc29(0x1cc1)](_0x3b95f9),_0x3d2db8;}(_0x54950a),_0x24ef4f=_0x438aa4[_0x2fc52d(0x295e)](_0x54ac74)[_0x2fc52d(0x295e)](_0x160555)['map'](_0x2ea888=>_0x31d193(_0x2ea888,_0x54950a,!0x1));_0x24ef4f[_0x2fc52d(0x214d)](_0x1cd225);const _0x51eefc=_0x24ef4f[_0x2fc52d(0x509)]((_0x13d87a,_0x485ecc)=>{const _0x1ee581=_0x2fc52d;if(_0x13d87a[_0x1ee581(0x3531)]!==_0x485ecc[_0x1ee581(0x3531)])return _0x485ecc[_0x1ee581(0x3531)]-_0x13d87a[_0x1ee581(0x3531)];if(_0x13d87a[_0x1ee581(0x2be5)]&&_0x485ecc['language']){if(_0x54ac74(_0x13d87a['language'])[_0x1ee581(0x3ff9)]===_0x485ecc['language'])return 0x1;if(_0x54ac74(_0x485ecc[_0x1ee581(0x2be5)])[_0x1ee581(0x3ff9)]===_0x13d87a[_0x1ee581(0x2be5)])return-0x1;}return 0x0;}),[_0x1f40f0,_0x172727]=_0x51eefc,_0x548217=_0x1f40f0;return _0x548217['secondBest']=_0x172727,_0x548217;}function _0xcd55c6(_0x5b3e4f){const _0x52fa42=_0x5eb70e;let _0x4ae677=null;const _0x196c0a=function(_0x7bb957){const _0x167e5f=a0_0x329b;let _0x111ae1=_0x7bb957[_0x167e5f(0x35ce)]+'\x20';_0x111ae1+=_0x7bb957['parentNode']?_0x7bb957['parentNode'][_0x167e5f(0x35ce)]:'';const _0x165ae4=_0x30b306[_0x167e5f(0x4181)]['exec'](_0x111ae1);if(_0x165ae4){const _0x57150a=_0x54ac74(_0x165ae4[0x1]);return _0x57150a||_0x17f499['replace']('{}',_0x165ae4[0x1]),_0x57150a?_0x165ae4[0x1]:_0x167e5f(0x9a1);}return _0x111ae1[_0x167e5f(0x29d0)](/\s+/)[_0x167e5f(0x12b9)](_0x57291f=>_0xf2ae1e(_0x57291f)||_0x54ac74(_0x57291f));}(_0x5b3e4f);if(_0xf2ae1e(_0x196c0a))return;if(_0x3b147c(_0x52fa42(0x32b8),{'el':_0x5b3e4f,'language':_0x196c0a}),_0x5b3e4f[_0x52fa42(0x23b9)][_0x52fa42(0x19b9)])return;if(_0x5b3e4f['children'][_0x52fa42(0x205b)]>0x0&&(_0x30b306['ignoreUnescapedHTML'],_0x30b306[_0x52fa42(0x3c1)]))throw new _0x2af65c(_0x52fa42(0x8ee),_0x5b3e4f[_0x52fa42(0x22eb)]);_0x4ae677=_0x5b3e4f;const _0x61311a=_0x4ae677['textContent'],_0x3b1f0c=_0x196c0a?_0x5b460f(_0x61311a,{'language':_0x196c0a,'ignoreIllegals':!0x0}):_0xf1e362(_0x61311a);_0x5b3e4f[_0x52fa42(0x22eb)]=_0x3b1f0c[_0x52fa42(0x1827)],_0x5b3e4f['dataset']['highlighted']=_0x52fa42(0x137f),function(_0x4261de,_0x1ded62,_0x46967b){const _0x35dd00=_0x52fa42,_0x103cf7=_0x1ded62&&_0x43a43e[_0x1ded62]||_0x46967b;_0x4261de[_0x35dd00(0x318e)][_0x35dd00(0x2fd8)](_0x35dd00(0xff8)),_0x4261de[_0x35dd00(0x318e)][_0x35dd00(0x2fd8)]('language-'+_0x103cf7);}(_0x5b3e4f,_0x196c0a,_0x3b1f0c[_0x52fa42(0x2be5)]),_0x5b3e4f[_0x52fa42(0x209a)]={'language':_0x3b1f0c[_0x52fa42(0x2be5)],'re':_0x3b1f0c[_0x52fa42(0x3531)],'relevance':_0x3b1f0c[_0x52fa42(0x3531)]},_0x3b1f0c['secondBest']&&(_0x5b3e4f['secondBest']={'language':_0x3b1f0c[_0x52fa42(0x4b1c)][_0x52fa42(0x2be5)],'relevance':_0x3b1f0c[_0x52fa42(0x4b1c)][_0x52fa42(0x3531)]}),_0x3b147c('after:highlightElement',{'el':_0x5b3e4f,'result':_0x3b1f0c,'text':_0x61311a});}let _0x272c48=!0x1;function _0x41085f(){const _0x48e3f4=_0x5eb70e;if('loading'===document[_0x48e3f4(0xdbe)])return void(_0x272c48=!0x0);document[_0x48e3f4(0x44dc)](_0x30b306['cssSelector'])[_0x48e3f4(0x4854)](_0xcd55c6);}function _0x54ac74(_0x25b382){const _0x5a43a6=_0x5eb70e;return _0x25b382=(_0x25b382||'')[_0x5a43a6(0x1a57)](),_0x1326e6[_0x25b382]||_0x1326e6[_0x43a43e[_0x25b382]];}function _0x29f21b(_0x4d0989,{languageName:_0x2c2c5f}){const _0x2d3163=_0x5eb70e;_0x2d3163(0x4f7c)==typeof _0x4d0989&&(_0x4d0989=[_0x4d0989]),_0x4d0989[_0x2d3163(0x4854)](_0x489d29=>{_0x43a43e[_0x489d29['toLowerCase']()]=_0x2c2c5f;});}function _0x160555(_0x2af96a){const _0x446ef6=_0x5eb70e,_0x5729a4=_0x54ac74(_0x2af96a);return _0x5729a4&&!_0x5729a4[_0x446ef6(0x2c36)];}function _0x3b147c(_0x11c6a4,_0x2b0b3d){const _0x526b1e=_0x5eb70e,_0x1b5430=_0x11c6a4;_0x319ceb[_0x526b1e(0x4854)](function(_0x3502dd){_0x3502dd[_0x1b5430]&&_0x3502dd[_0x1b5430](_0x2b0b3d);});}'undefined'!=typeof window&&window[_0x5eb70e(0x20d0)]&&window[_0x5eb70e(0x20d0)](_0x5eb70e(0x205c),function(){_0x272c48&&_0x41085f();},!0x1),Object['assign'](_0x273db0,{'highlight':_0x5b460f,'highlightAuto':_0xf1e362,'highlightAll':_0x41085f,'highlightElement':_0xcd55c6,'highlightBlock':function(_0x214e89){const _0x4c23c9=_0x5eb70e;return _0x1aae4f(_0x4c23c9(0x15ad),'highlightBlock\x20will\x20be\x20removed\x20entirely\x20in\x20v12.0'),_0x1aae4f(_0x4c23c9(0x15ad),'Please\x20use\x20highlightElement\x20now.'),_0xcd55c6(_0x214e89);},'configure':function(_0x44ea47){_0x30b306=_0x455a4b(_0x30b306,_0x44ea47);},'initHighlighting':()=>{const _0x704b4f=_0x5eb70e;_0x41085f(),_0x1aae4f(_0x704b4f(0x2bdd),_0x704b4f(0x490d));},'initHighlightingOnLoad':function(){const _0x195c17=_0x5eb70e;_0x41085f(),_0x1aae4f('10.6.0',_0x195c17(0x238f));},'registerLanguage':function(_0x455a24,_0x52a154){const _0x1c64a6=_0x5eb70e;let _0xbc9cfe=null;try{_0xbc9cfe=_0x52a154(_0x273db0);}catch(_0x1dc958){if(_0x36d887(_0x1c64a6(0x231e)[_0x1c64a6(0x1db7)]('{}',_0x455a24)),!_0x3e5462)throw _0x1dc958;_0x36d887(_0x1dc958),_0xbc9cfe=_0x538ebf;}_0xbc9cfe['name']||(_0xbc9cfe['name']=_0x455a24),_0x1326e6[_0x455a24]=_0xbc9cfe,_0xbc9cfe[_0x1c64a6(0xbc1)]=_0x52a154[_0x1c64a6(0xf0f)](null,_0x273db0),_0xbc9cfe['aliases']&&_0x29f21b(_0xbc9cfe['aliases'],{'languageName':_0x455a24});},'unregisterLanguage':function(_0x43982a){const _0x39f6bb=_0x5eb70e;delete _0x1326e6[_0x43982a];for(const _0x523100 of Object[_0x39f6bb(0x2f75)](_0x43a43e))_0x43a43e[_0x523100]===_0x43982a&&delete _0x43a43e[_0x523100];},'listLanguages':function(){return Object['keys'](_0x1326e6);},'getLanguage':_0x54ac74,'registerAliases':_0x29f21b,'autoDetection':_0x160555,'inherit':_0x455a4b,'addPlugin':function(_0x4f9e09){!function(_0x18aab8){const _0x1de267=a0_0x329b;_0x18aab8[_0x1de267(0x3c10)]&&!_0x18aab8['before:highlightElement']&&(_0x18aab8[_0x1de267(0x32b8)]=_0x4c8e5b=>{const _0x28bb0c=_0x1de267;_0x18aab8[_0x28bb0c(0x3c10)](Object['assign']({'block':_0x4c8e5b['el']},_0x4c8e5b));}),_0x18aab8[_0x1de267(0x3b1a)]&&!_0x18aab8[_0x1de267(0x32a8)]&&(_0x18aab8['after:highlightElement']=_0x3b17cf=>{const _0x48bc5b=_0x1de267;_0x18aab8[_0x48bc5b(0x3b1a)](Object['assign']({'block':_0x3b17cf['el']},_0x3b17cf));});}(_0x4f9e09),_0x319ceb['push'](_0x4f9e09);},'removePlugin':function(_0x2d47b2){const _0x2a68a0=_0x5eb70e,_0x4b75ba=_0x319ceb[_0x2a68a0(0x3458)](_0x2d47b2);-0x1!==_0x4b75ba&&_0x319ceb[_0x2a68a0(0x506f)](_0x4b75ba,0x1);}}),_0x273db0['debugMode']=function(){_0x3e5462=!0x1;},_0x273db0[_0x5eb70e(0xaa2)]=function(){_0x3e5462=!0x0;},_0x273db0[_0x5eb70e(0x260d)]=_0x5eb70e(0x23a6),_0x273db0[_0x5eb70e(0x12ab)]={'concat':_0xd673dd,'lookahead':_0x30b045,'either':_0x5a9f6e,'optional':_0x34dffb,'anyNumberOfTimes':_0x34d8fc};for(const _0x3d20da in _0xa1270f)_0x5eb70e(0x2b58)==typeof _0xa1270f[_0x3d20da]&&_0x176e20(_0xa1270f[_0x3d20da]);return Object[_0x5eb70e(0x11e8)](_0x273db0,_0xa1270f),_0x273db0;},_0x144467=_0x5e364c({});_0x144467[_0x462745(0x216)]=()=>_0x5e364c({}),_0x508026[_0x462745(0x15de)]=_0x144467,_0x144467['HighlightJS']=_0x144467,_0x144467[_0x462745(0x2fab)]=_0x144467;},0xc97:(_0x32bbf6,_0x5f49af,_0x43fc22)=>{const _0x3c28d4=a0_0x329b;var _0x2821ed=_0x43fc22(0x20e0);_0x2821ed[_0x3c28d4(0x4393)]('1c',_0x43fc22(0x1757)),_0x2821ed[_0x3c28d4(0x4393)]('abnf',_0x43fc22(0x14f0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xe90),_0x43fc22(0x13a7)),_0x2821ed['registerLanguage'](_0x3c28d4(0x44c1),_0x43fc22(0x2382)),_0x2821ed['registerLanguage']('ada',_0x43fc22(0xceb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x27dc),_0x43fc22(0x3c9)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2a29),_0x43fc22(0x1ebd)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2499),_0x43fc22(0x270)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x29bc),_0x43fc22(0x707)),_0x2821ed['registerLanguage']('arduino',_0x43fc22(0x134f)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2be7),_0x43fc22(0x1e92)),_0x2821ed['registerLanguage']('xml',_0x43fc22(0x72)),_0x2821ed['registerLanguage'](_0x3c28d4(0x47bc),_0x43fc22(0x1064)),_0x2821ed['registerLanguage'](_0x3c28d4(0x46aa),_0x43fc22(0x2709)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1069),_0x43fc22(0x1156)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xf0d),_0x43fc22(0x7e5)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3553),_0x43fc22(0x275)),_0x2821ed[_0x3c28d4(0x4393)]('awk',_0x43fc22(0xa8e)),_0x2821ed['registerLanguage'](_0x3c28d4(0x2db8),_0x43fc22(0xf64)),_0x2821ed[_0x3c28d4(0x4393)]('bash',_0x43fc22(0x21c1)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2ae6),_0x43fc22(0x1991)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x23c6),_0x43fc22(0x1a8d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x268f),_0x43fc22(0x7bc)),_0x2821ed[_0x3c28d4(0x4393)]('c',_0x43fc22(0x2d2)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4833),_0x43fc22(0x19ab)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x22a3),_0x43fc22(0x25a7)),_0x2821ed['registerLanguage'](_0x3c28d4(0x177d),_0x43fc22(0x1fb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3646),_0x43fc22(0x41a)),_0x2821ed['registerLanguage'](_0x3c28d4(0x440b),_0x43fc22(0x1d9b)),_0x2821ed[_0x3c28d4(0x4393)]('clojure-repl',_0x43fc22(0x2581)),_0x2821ed['registerLanguage'](_0x3c28d4(0x160f),_0x43fc22(0x7d8)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x901),_0x43fc22(0x20ac)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3935),_0x43fc22(0x25fa)),_0x2821ed['registerLanguage'](_0x3c28d4(0x2ad5),_0x43fc22(0x2450)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4ee0),_0x43fc22(0x19aa)),_0x2821ed[_0x3c28d4(0x4393)]('crmsh',_0x43fc22(0x6dc)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1761),_0x43fc22(0x21d5)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1634),_0x43fc22(0x1bd0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2582),_0x43fc22(0x1a9d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x26d6),_0x43fc22(0x21a4)),_0x2821ed['registerLanguage']('d',_0x43fc22(0x1a1b)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4f61),_0x43fc22(0x25a)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xbe0),_0x43fc22(0x8e2)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4ff0),_0x43fc22(0x20fb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2334),_0x43fc22(0x2194)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x332f),_0x43fc22(0xda8)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x12b7),_0x43fc22(0x5dc)),_0x2821ed[_0x3c28d4(0x4393)]('dockerfile',_0x43fc22(0x23ed)),_0x2821ed[_0x3c28d4(0x4393)]('dos',_0x43fc22(0x2299)),_0x2821ed[_0x3c28d4(0x4393)]('dsconfig',_0x43fc22(0x205c)),_0x2821ed['registerLanguage']('dts',_0x43fc22(0xa0a)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4c7),_0x43fc22(0x25fb)),_0x2821ed[_0x3c28d4(0x4393)]('ebnf',_0x43fc22(0x2094)),_0x2821ed['registerLanguage']('elixir',_0x43fc22(0x25a0)),_0x2821ed[_0x3c28d4(0x4393)]('elm',_0x43fc22(0x1fdb)),_0x2821ed['registerLanguage']('ruby',_0x43fc22(0x1397)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x190d),_0x43fc22(0x1104)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4b57),_0x43fc22(0x1d94)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x289e),_0x43fc22(0x1ffc)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x50ae),_0x43fc22(0x1c78)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x184a),_0x43fc22(0x1f48)),_0x2821ed['registerLanguage'](_0x3c28d4(0x4736),_0x43fc22(0x2610)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x435d),_0x43fc22(0x4a5)),_0x2821ed['registerLanguage'](_0x3c28d4(0x3480),_0x43fc22(0x2455)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x471a),_0x43fc22(0x1d47)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3091),_0x43fc22(0xeba)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x366e),_0x43fc22(0x212b)),_0x2821ed['registerLanguage'](_0x3c28d4(0x24b9),_0x43fc22(0xce1)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x24c2),_0x43fc22(0xec3)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x27d6),_0x43fc22(0x4ab)),_0x2821ed[_0x3c28d4(0x4393)]('go',_0x43fc22(0x2631)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2484),_0x43fc22(0x1c48)),_0x2821ed['registerLanguage'](_0x3c28d4(0x2818),_0x43fc22(0x598)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x35b8),_0x43fc22(0x1d32)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4699),_0x43fc22(0xfd)),_0x2821ed[_0x3c28d4(0x4393)]('haml',_0x43fc22(0x11a5)),_0x2821ed['registerLanguage'](_0x3c28d4(0x660),_0x43fc22(0xc73)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x59e),_0x43fc22(0x17b)),_0x2821ed[_0x3c28d4(0x4393)]('haxe',_0x43fc22(0x102b)),_0x2821ed[_0x3c28d4(0x4393)]('hsp',_0x43fc22(0xfa8)),_0x2821ed['registerLanguage'](_0x3c28d4(0x1b57),_0x43fc22(0xd37)),_0x2821ed[_0x3c28d4(0x4393)]('hy',_0x43fc22(0x1250)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4792),_0x43fc22(0x1b39)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x22bf),_0x43fc22(0x5fd)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1af6),_0x43fc22(0x1193)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4707),_0x43fc22(0x1621)),_0x2821ed[_0x3c28d4(0x4393)]('java',_0x43fc22(0x131f)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1269),_0x43fc22(0x1793)),_0x2821ed['registerLanguage']('jboss-cli',_0x43fc22(0x15f7)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x25b9),_0x43fc22(0x26d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x11bb),_0x43fc22(0x22aa)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x23cb),_0x43fc22(0x2142)),_0x2821ed['registerLanguage']('kotlin',_0x43fc22(0xb16)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xe3e),_0x43fc22(0x17c9)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3906),_0x43fc22(0xd9b)),_0x2821ed[_0x3c28d4(0x4393)]('ldif',_0x43fc22(0x1c04)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1f1),_0x43fc22(0x1a2f)),_0x2821ed['registerLanguage'](_0x3c28d4(0x27e4),_0x43fc22(0x208a)),_0x2821ed['registerLanguage'](_0x3c28d4(0x1ffa),_0x43fc22(0x9bb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x757),_0x43fc22(0x1acb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x17a9),_0x43fc22(0x171a)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x43d9),_0x43fc22(0x18fe)),_0x2821ed['registerLanguage'](_0x3c28d4(0x325a),_0x43fc22(0x9b0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3d06),_0x43fc22(0xf21)),_0x2821ed[_0x3c28d4(0x4393)]('makefile',_0x43fc22(0x1df3)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2b3b),_0x43fc22(0x1937)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3e34),_0x43fc22(0x2212)),_0x2821ed['registerLanguage'](_0x3c28d4(0x1ef5),_0x43fc22(0x2018)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xe27),_0x43fc22(0x26e1)),_0x2821ed['registerLanguage'](_0x3c28d4(0x1edb),_0x43fc22(0x15ce)),_0x2821ed['registerLanguage'](_0x3c28d4(0x2630),_0x43fc22(0x204d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2658),_0x43fc22(0x3b0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x31a1),_0x43fc22(0x3b2)),_0x2821ed['registerLanguage']('mojolicious',_0x43fc22(0x17be)),_0x2821ed[_0x3c28d4(0x4393)]('monkey',_0x43fc22(0x1eaa)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x12d1),_0x43fc22(0x2419)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x41a7),_0x43fc22(0x2663)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3ac),_0x43fc22(0x124b)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3939),_0x43fc22(0x1c5b)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2ad7),_0x43fc22(0x6d3)),_0x2821ed[_0x3c28d4(0x4393)]('nix',_0x43fc22(0x140)),_0x2821ed[_0x3c28d4(0x4393)]('node-repl',_0x43fc22(0x1a11)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3579),_0x43fc22(0x8c)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1c33),_0x43fc22(0x3af)),_0x2821ed['registerLanguage']('ocaml',_0x43fc22(0x6ff)),_0x2821ed['registerLanguage'](_0x3c28d4(0x132a),_0x43fc22(0x1a10)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3feb),_0x43fc22(0xbd4)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1ead),_0x43fc22(0x23cb)),_0x2821ed[_0x3c28d4(0x4393)]('pf',_0x43fc22(0x2285)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3492),_0x43fc22(0x1adc)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x7bd),_0x43fc22(0xc27)),_0x2821ed['registerLanguage'](_0x3c28d4(0x4289),_0x43fc22(0x6be)),_0x2821ed['registerLanguage']('plaintext',_0x43fc22(0x2350)),_0x2821ed[_0x3c28d4(0x4393)]('pony',_0x43fc22(0x1af7)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3f7),_0x43fc22(0xf8e)),_0x2821ed['registerLanguage'](_0x3c28d4(0x105d),_0x43fc22(0x23f0)),_0x2821ed['registerLanguage'](_0x3c28d4(0x328b),_0x43fc22(0x1456)),_0x2821ed['registerLanguage'](_0x3c28d4(0x4f2d),_0x43fc22(0x1818)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3511),_0x43fc22(0x1dde)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xf7b),_0x43fc22(0x1c84)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1749),_0x43fc22(0x2161)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4733),_0x43fc22(0x1f3b)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x1f6c),_0x43fc22(0x45d)),_0x2821ed['registerLanguage'](_0x3c28d4(0x3c39),_0x43fc22(0x11b)),_0x2821ed[_0x3c28d4(0x4393)]('q',_0x43fc22(0x24a8)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x124f),_0x43fc22(0x2645)),_0x2821ed[_0x3c28d4(0x4393)]('r',_0x43fc22(0x1fc1)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x49d4),_0x43fc22(0x192e)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4902),_0x43fc22(0x185e)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x31fa),_0x43fc22(0xb6d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3058),_0x43fc22(0x175c)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x117d),_0x43fc22(0x19fa)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x159f),_0x43fc22(0x163a)),_0x2821ed[_0x3c28d4(0x4393)]('rust',_0x43fc22(0x1521)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3b34),_0x43fc22(0x1e4a)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x20f6),_0x43fc22(0xd79)),_0x2821ed[_0x3c28d4(0x4393)]('scheme',_0x43fc22(0x1864)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3bf1),_0x43fc22(0x18b)),_0x2821ed['registerLanguage'](_0x3c28d4(0x41ec),_0x43fc22(0x64b)),_0x2821ed[_0x3c28d4(0x4393)]('shell',_0x43fc22(0x226d)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3fe9),_0x43fc22(0x1017)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x355f),_0x43fc22(0x4e)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3791),_0x43fc22(0x1b2f)),_0x2821ed['registerLanguage'](_0x3c28d4(0x19d3),_0x43fc22(0x18b5)),_0x2821ed['registerLanguage'](_0x3c28d4(0x24b4),_0x43fc22(0x13b)),_0x2821ed['registerLanguage'](_0x3c28d4(0xda8),_0x43fc22(0x1ed3)),_0x2821ed['registerLanguage'](_0x3c28d4(0x4059),_0x43fc22(0x9f2)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3b72),_0x43fc22(0x1fc0)),_0x2821ed[_0x3c28d4(0x4393)]('stylus',_0x43fc22(0x1665)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3a76),_0x43fc22(0x194b)),_0x2821ed[_0x3c28d4(0x4393)]('swift',_0x43fc22(0x5d8)),_0x2821ed['registerLanguage'](_0x3c28d4(0xe1c),_0x43fc22(0x96)),_0x2821ed[_0x3c28d4(0x4393)]('yaml',_0x43fc22(0x15d4)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x3869),_0x43fc22(0x22ee)),_0x2821ed['registerLanguage'](_0x3c28d4(0x27a3),_0x43fc22(0x4f8)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x387b),_0x43fc22(0x26a0)),_0x2821ed[_0x3c28d4(0x4393)]('tp',_0x43fc22(0x3db)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x483b),_0x43fc22(0xde)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x135),_0x43fc22(0x21c0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0xf7),_0x43fc22(0x24f5)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x2aa3),_0x43fc22(0x22e0)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x446b),_0x43fc22(0x4b0)),_0x2821ed['registerLanguage'](_0x3c28d4(0x2261),_0x43fc22(0xa4)),_0x2821ed['registerLanguage']('verilog',_0x43fc22(0x2039)),_0x2821ed[_0x3c28d4(0x4393)]('vhdl',_0x43fc22(0x2211)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x34ca),_0x43fc22(0x22cb)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x4a69),_0x43fc22(0x2487)),_0x2821ed[_0x3c28d4(0x4393)]('wren',_0x43fc22(0x13cd)),_0x2821ed[_0x3c28d4(0x4393)](_0x3c28d4(0x8fe),_0x43fc22(0x1d5a)),_0x2821ed[_0x3c28d4(0x4393)]('xl',_0x43fc22(0x21e3)),_0x2821ed['registerLanguage'](_0x3c28d4(0x40dd),_0x43fc22(0xbeb)),_0x2821ed['registerLanguage'](_0x3c28d4(0x1f92),_0x43fc22(0x2229)),_0x2821ed[_0x3c28d4(0x4b0)]=_0x2821ed,_0x2821ed[_0x3c28d4(0x2fab)]=_0x2821ed,_0x32bbf6[_0x3c28d4(0x15de)]=_0x2821ed;},0x1757:_0x32a1b0=>{const _0x367580=a0_0x329b;_0x32a1b0[_0x367580(0x15de)]=function(_0x4452c5){const _0x2a34a7=_0x367580,_0x4ba045=_0x2a34a7(0x3063),_0x3b6984='далее\x20возврат\x20вызватьисключение\x20выполнить\x20для\x20если\x20и\x20из\x20или\x20иначе\x20иначеесли\x20исключение\x20каждого\x20конецесли\x20конецпопытки\x20конеццикла\x20не\x20новый\x20перейти\x20перем\x20по\x20пока\x20попытка\x20прервать\x20продолжить\x20тогда\x20цикл\x20экспорт\x20',_0x213289=_0x2a34a7(0x38ee),_0x1a7158=_0x4452c5['inherit'](_0x4452c5[_0x2a34a7(0x1f70)]),_0x2e4dd4={'className':_0x2a34a7(0x4f7c),'begin':_0x2a34a7(0x1dee),'end':_0x2a34a7(0x8e7),'contains':[{'begin':'\x22\x22'}]},_0x156fcf={'begin':'\x27','end':'\x27','excludeBegin':!0x0,'excludeEnd':!0x0,'contains':[{'className':_0x2a34a7(0x1ed7),'begin':'\x5cd{4}([\x5c.\x5c\x5c/:-]?\x5cd{2}){0,5}'}]},_0x5f35b7=_0x4452c5[_0x2a34a7(0x4f2)](_0x4452c5[_0x2a34a7(0x4d7)]);return{'name':_0x2a34a7(0x2a58),'case_insensitive':!0x0,'keywords':{'$pattern':_0x4ba045,'keyword':_0x3b6984,'built_in':_0x2a34a7(0x15e4),'class':_0x2a34a7(0x2d42),'type':_0x2a34a7(0x15d2),'literal':_0x213289},'contains':[{'className':'meta','begin':_0x2a34a7(0x4a90),'end':'$','keywords':{'$pattern':_0x4ba045,'keyword':_0x3b6984+_0x2a34a7(0x50f6)},'contains':[_0x5f35b7]},{'className':_0x2a34a7(0x3dfb),'variants':[{'begin':_0x2a34a7(0x29ae),'end':'\x5c)','keywords':_0x2a34a7(0xe46)},{'begin':_0x2a34a7(0x11fb),'keywords':_0x2a34a7(0xbf1)}],'contains':[{'begin':'\x5c(','end':'\x5c)','endsParent':!0x0,'contains':[{'className':'params','begin':_0x4ba045,'end':',','excludeEnd':!0x0,'endsWithParent':!0x0,'keywords':{'$pattern':_0x4ba045,'keyword':_0x2a34a7(0x38d5),'literal':_0x213289},'contains':[_0x1a7158,_0x2e4dd4,_0x156fcf]},_0x5f35b7]},_0x4452c5[_0x2a34a7(0x4f2)](_0x4452c5['TITLE_MODE'],{'begin':_0x4ba045})]},_0x5f35b7,{'className':_0x2a34a7(0x3148),'begin':'~','end':_0x2a34a7(0x436c),'excludeEnd':!0x0},_0x1a7158,_0x2e4dd4,_0x156fcf]};};},0x14f0:_0x105c8a=>{const _0x234e61=a0_0x329b;_0x105c8a[_0x234e61(0x15de)]=function(_0x54b1de){const _0x4ee621=_0x234e61,_0x1732c4=_0x54b1de[_0x4ee621(0x12ab)],_0x3b72a7=_0x54b1de[_0x4ee621(0x274a)](/;/,/$/);return{'name':'Augmented\x20Backus-Naur\x20Form','illegal':/[!@#$^&',?+~`|:]/,'keywords':[_0x4ee621(0x1414),_0x4ee621(0x2bc0),_0x4ee621(0x2c1),'CR',_0x4ee621(0x2623),'CTL',_0x4ee621(0x4276),_0x4ee621(0x3d5c),_0x4ee621(0x19c0),_0x4ee621(0x4204),'LF',_0x4ee621(0x1c83),_0x4ee621(0x1f8a),'SP',_0x4ee621(0x4d89),_0x4ee621(0x15ae)],'contains':[{'scope':'operator','match':/=\/?/},{'scope':_0x4ee621(0x47d5),'match':_0x1732c4['concat'](/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},_0x3b72a7,{'scope':_0x4ee621(0x3148),'match':/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{'scope':'symbol','match':/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{'scope':_0x4ee621(0x3148),'match':/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{'scope':_0x4ee621(0x3148),'match':/%[si](?=".*")/},_0x54b1de[_0x4ee621(0x3c93)],_0x54b1de['NUMBER_MODE']]};};},0x13a7:_0x3d2ee5=>{const _0x54ba44=a0_0x329b;_0x3d2ee5[_0x54ba44(0x15de)]=function(_0x54d073){const _0x5ea478=_0x54ba44,_0x91583=_0x54d073[_0x5ea478(0x12ab)],_0xbc8fdf=[_0x5ea478(0x2980),_0x5ea478(0x4827),_0x5ea478(0x4597),_0x5ea478(0x285c),_0x5ea478(0x50d0),'CONNECT',_0x5ea478(0x43b3),_0x5ea478(0x3e3f),_0x5ea478(0x4d24)];return{'name':_0x5ea478(0x157e),'contains':[{'className':_0x5ea478(0x1ed7),'begin':/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,'relevance':0x5},{'className':_0x5ea478(0x1ed7),'begin':/\b\d+\b/,'relevance':0x0},{'className':'string','begin':_0x91583[_0x5ea478(0x41bf)](/"/,_0x91583[_0x5ea478(0x467b)](..._0xbc8fdf)),'end':/"/,'keywords':_0xbc8fdf,'illegal':/\n/,'relevance':0x5,'contains':[{'begin':/HTTP\/[12]\.\d'/,'relevance':0x5}]},{'className':_0x5ea478(0x4f7c),'begin':/\[\d[^\]\n]{8,}\]/,'illegal':/\n/,'relevance':0x1},{'className':_0x5ea478(0x4f7c),'begin':/\[/,'end':/\]/,'illegal':/\n/,'relevance':0x0},{'className':'string','begin':/"Mozilla\/\d\.\d \(/,'end':/"/,'illegal':/\n/,'relevance':0x3},{'className':_0x5ea478(0x4f7c),'begin':/"/,'end':/"/,'illegal':/\n/,'relevance':0x0}]};};},0x2382:_0xa03045=>{const _0x233048=a0_0x329b;_0xa03045[_0x233048(0x15de)]=function(_0x3f21f4){const _0xdc5c9=_0x233048,_0x47d85d=_0x3f21f4['regex'],_0x22041b=/[a-zA-Z_$][a-zA-Z0-9_$]*/,_0x3b7b3e=_0x47d85d[_0xdc5c9(0x41bf)](_0x22041b,_0x47d85d[_0xdc5c9(0x41bf)](_0xdc5c9(0x1f97),_0x22041b,')*')),_0x4b0ea1={'className':_0xdc5c9(0xba9),'begin':/[.]{3}/,'end':_0x22041b,'relevance':0xa};return{'name':_0xdc5c9(0x4e50),'aliases':['as'],'keywords':{'keyword':['as',_0xdc5c9(0x49c0),_0xdc5c9(0x1bf3),_0xdc5c9(0x424a),_0xdc5c9(0x42ec),_0xdc5c9(0x27b),_0xdc5c9(0x495f),_0xdc5c9(0x2fab),_0xdc5c9(0x450b),'do',_0xdc5c9(0x4dc8),_0xdc5c9(0x21c8),_0xdc5c9(0x36f0),'extends','final',_0xdc5c9(0x292f),_0xdc5c9(0x8f1),_0xdc5c9(0x3dfb),'get','if',_0xdc5c9(0xc32),'import','in',_0xdc5c9(0x3354),_0xdc5c9(0x39fe),_0xdc5c9(0x1fc2),_0xdc5c9(0x191a),'is',_0xdc5c9(0x3b86),_0xdc5c9(0x4341),_0xdc5c9(0x386e),_0xdc5c9(0x1d76),'package',_0xdc5c9(0x276d),'protected',_0xdc5c9(0x1397),_0xdc5c9(0xf06),_0xdc5c9(0x2d7e),_0xdc5c9(0x2308),_0xdc5c9(0x4d6e),_0xdc5c9(0x68),_0xdc5c9(0x2d0d),_0xdc5c9(0x2b8d),_0xdc5c9(0x47b4),_0xdc5c9(0x3445),_0xdc5c9(0x3903),'var',_0xdc5c9(0x4004),_0xdc5c9(0x217b),_0xdc5c9(0xa48)],'literal':['true',_0xdc5c9(0x3561),_0xdc5c9(0x15f0),'undefined']},'contains':[_0x3f21f4['APOS_STRING_MODE'],_0x3f21f4[_0xdc5c9(0x3c93)],_0x3f21f4['C_LINE_COMMENT_MODE'],_0x3f21f4['C_BLOCK_COMMENT_MODE'],_0x3f21f4[_0xdc5c9(0x3d6a)],{'match':[/\bpackage/,/\s+/,_0x3b7b3e],'className':{0x1:_0xdc5c9(0x2448),0x3:_0xdc5c9(0xc2f)}},{'match':[/\b(?:class|interface|extends|implements)/,/\s+/,_0x22041b],'className':{0x1:_0xdc5c9(0x2448),0x3:'title.class'}},{'className':_0xdc5c9(0x482),'beginKeywords':_0xdc5c9(0x647),'end':/;/,'keywords':{'keyword':_0xdc5c9(0x647)}},{'beginKeywords':'function','end':/[{;]/,'excludeEnd':!0x0,'illegal':/\S/,'contains':[_0x3f21f4[_0xdc5c9(0x4f2)](_0x3f21f4['TITLE_MODE'],{'className':'title.function'}),{'className':_0xdc5c9(0x4f24),'begin':/\(/,'end':/\)/,'contains':[_0x3f21f4[_0xdc5c9(0x36ec)],_0x3f21f4[_0xdc5c9(0x3c93)],_0x3f21f4[_0xdc5c9(0x4d7)],_0x3f21f4[_0xdc5c9(0x1bbc)],_0x4b0ea1]},{'begin':_0x47d85d[_0xdc5c9(0x41bf)](/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},_0x3f21f4[_0xdc5c9(0x3dff)]],'illegal':/#/};};},0xceb:_0x1fed88=>{const _0x3e134a=a0_0x329b;_0x1fed88[_0x3e134a(0x15de)]=function(_0x4722a7){const _0x2a8805=_0x3e134a,_0x591498=_0x2a8805(0x194d),_0x1a9c8c=_0x2a8805(0x23db)+_0x591498,_0x37827b=_0x2a8805(0x3648)+(_0x591498+'#\x5cw+(\x5c.\x5cw+)?#('+_0x1a9c8c+')?')+'|'+(_0x591498+_0x2a8805(0x1f97)+_0x591498+_0x2a8805(0x18e6)+_0x1a9c8c+')?')+')',_0x575948=_0x2a8805(0xddf),_0x4614a3=_0x2a8805(0x2cf1),_0x5e0186=_0x4722a7['COMMENT']('--','$'),_0x3d4fea={'begin':'\x5cs+:\x5cs+','end':_0x2a8805(0x3023),'illegal':_0x4614a3,'contains':[{'beginKeywords':_0x2a8805(0x270c),'endsParent':!0x0},{'className':_0x2a8805(0x2448),'beginKeywords':_0x2a8805(0xbe9)},{'className':'type','begin':_0x575948,'endsParent':!0x0,'relevance':0x0}]};return{'name':_0x2a8805(0x3971),'case_insensitive':!0x0,'keywords':{'keyword':[_0x2a8805(0x504b),'else',_0x2a8805(0x386e),_0x2a8805(0xf06),_0x2a8805(0x444c),_0x2a8805(0x50b9),_0x2a8805(0x4163),_0x2a8805(0x2a4c),_0x2a8805(0x3ba4),_0x2a8805(0x721),_0x2a8805(0x4e05),_0x2a8805(0xc44),'select',_0x2a8805(0x4401),'exception','of',_0x2a8805(0x7e1),'aliased',_0x2a8805(0x3e3a),'or',_0x2a8805(0x3f5f),_0x2a8805(0x1d1f),_0x2a8805(0xa18),_0x2a8805(0x1349),_0x2a8805(0x43ea),'for','out','synchronized','array',_0x2a8805(0x3dfb),'overriding','at',_0x2a8805(0x3181),_0x2a8805(0xf11),_0x2a8805(0x4574),_0x2a8805(0x49c9),_0x2a8805(0x1706),'goto',_0x2a8805(0x267e),'terminate',_0x2a8805(0x3673),_0x2a8805(0x276d),'then','if',_0x2a8805(0x1a4b),_0x2a8805(0x70a),_0x2a8805(0x1bf3),'in',_0x2a8805(0x2638),'constant',_0x2a8805(0x1fc2),'is',_0x2a8805(0x4f8c),_0x2a8805(0x3903),'declare',_0x2a8805(0x3cf6),'delay',_0x2a8805(0x78c),_0x2a8805(0xf1d),'when','delta',_0x2a8805(0x2ca7),_0x2a8805(0x3eae),'while',_0x2a8805(0x42f0),'renames',_0x2a8805(0xa48),'do',_0x2a8805(0x1b25),_0x2a8805(0x4961),_0x2a8805(0x2bb8)],'literal':[_0x2a8805(0x16e),_0x2a8805(0x68a)]},'contains':[_0x5e0186,{'className':_0x2a8805(0x4f7c),'begin':/"/,'end':/"/,'contains':[{'begin':/""/,'relevance':0x0}]},{'className':_0x2a8805(0x4f7c),'begin':/'.'/},{'className':_0x2a8805(0x1ed7),'begin':_0x37827b,'relevance':0x0},{'className':_0x2a8805(0x3148),'begin':'\x27'+_0x575948},{'className':_0x2a8805(0x5f1),'begin':'(\x5cbwith\x5cs+)?(\x5cbprivate\x5cs+)?\x5cbpackage\x5cs+(\x5cbbody\x5cs+)?','end':'(is|$)','keywords':_0x2a8805(0xb6d),'excludeBegin':!0x0,'excludeEnd':!0x0,'illegal':_0x4614a3},{'begin':_0x2a8805(0xa9c),'end':_0x2a8805(0x17e0),'keywords':_0x2a8805(0x1607),'returnBegin':!0x0,'contains':[_0x5e0186,{'className':_0x2a8805(0x5f1),'begin':_0x2a8805(0x2abb),'end':_0x2a8805(0x318f),'excludeBegin':!0x0,'excludeEnd':!0x0,'illegal':_0x4614a3},_0x3d4fea,{'className':_0x2a8805(0x70a),'begin':_0x2a8805(0x2b52),'end':_0x2a8805(0x587),'keywords':'return','excludeBegin':!0x0,'excludeEnd':!0x0,'endsParent':!0x0,'illegal':_0x4614a3}]},{'className':_0x2a8805(0x70a),'begin':'\x5cb(sub)?type\x5cs+','end':_0x2a8805(0x8a0),'keywords':_0x2a8805(0x70a),'excludeBegin':!0x0,'illegal':_0x4614a3},_0x3d4fea]};};},0x3c9:_0x107610=>{_0x107610['exports']=function(_0x1ed3bf){const _0x2410b9=a0_0x329b,_0xcc6492={'className':_0x2410b9(0x4853),'begin':_0x2410b9(0x3dbe)},_0x15e84e={'className':_0x2410b9(0x3148),'begin':_0x2410b9(0x984)},_0x56590c={'className':_0x2410b9(0x2448),'begin':'<','end':'>','contains':[_0xcc6492,_0x15e84e]};return _0xcc6492[_0x2410b9(0x160d)]=[_0x56590c],_0x15e84e['contains']=[_0x56590c],{'name':_0x2410b9(0x2e28),'aliases':[_0x2410b9(0x168e)],'keywords':[_0x2410b9(0x8f1),_0x2410b9(0x2d2d),_0x2410b9(0x49c0),_0x2410b9(0x495f),'while','do|0',_0x2410b9(0xf06),'if',_0x2410b9(0x36f0),'case',_0x2410b9(0x68),_0x2410b9(0x3b86),'is',_0x2410b9(0x1759),'or',_0x2410b9(0x43ea),_0x2410b9(0x2bb8),_0x2410b9(0x4163),_0x2410b9(0x248f),'in','inout|10','out',_0x2410b9(0x1d76),_0x2410b9(0x2028),'private',_0x2410b9(0x1397),_0x2410b9(0x27b),'default|0',_0x2410b9(0xac4),_0x2410b9(0x186),'external',_0x2410b9(0x2ee6),_0x2410b9(0x4afd),_0x2410b9(0x4947),'funcdef',_0x2410b9(0x2d0d),_0x2410b9(0x4d6e),_0x2410b9(0x2c76),_0x2410b9(0xc81),_0x2410b9(0x1fc2),'abstract|0',_0x2410b9(0x47b4),'catch',_0x2410b9(0x2638),_0x2410b9(0x2b0a),_0x2410b9(0x203c)],'illegal':_0x2410b9(0x4edd),'contains':[{'className':_0x2410b9(0x4f7c),'begin':'\x27','end':'\x27','illegal':'\x5cn','contains':[_0x1ed3bf[_0x2410b9(0x421a)]],'relevance':0x0},{'className':_0x2410b9(0x4f7c),'begin':_0x2410b9(0x3a07),'end':_0x2410b9(0x3a07)},{'className':_0x2410b9(0x4f7c),'begin':'\x22','end':'\x22','illegal':'\x5cn','contains':[_0x1ed3bf['BACKSLASH_ESCAPE']],'relevance':0x0},_0x1ed3bf['C_LINE_COMMENT_MODE'],_0x1ed3bf[_0x2410b9(0x1bbc)],{'className':_0x2410b9(0x4f7c),'begin':_0x2410b9(0x3645),'end':'\x5c]'},{'beginKeywords':'interface\x20namespace','end':/\{/,'illegal':_0x2410b9(0x893),'contains':[{'className':_0x2410b9(0x3148),'begin':_0x2410b9(0x8c1)}]},{'beginKeywords':_0x2410b9(0x42ec),'end':/\{/,'illegal':'[;.\x5c-]','contains':[{'className':_0x2410b9(0x3148),'begin':'[a-zA-Z0-9_]+','contains':[{'begin':_0x2410b9(0x1703),'contains':[{'className':'symbol','begin':_0x2410b9(0x8c1)}]}]}]},_0xcc6492,_0x15e84e,{'className':_0x2410b9(0x14b),'begin':'\x5cb(null|true|false)'},{'className':'number','relevance':0x0,'begin':'(-?)(\x5cb0[xXbBoOdD][a-fA-F0-9]+|(\x5cb\x5cd+(\x5c.\x5cd*)?f?|\x5c.\x5cd+f?)([eE][-+]?\x5cd+f?)?)'}]};};},0x1ebd:_0x23b8e2=>{const _0x16cab7=a0_0x329b;_0x23b8e2[_0x16cab7(0x15de)]=function(_0x10a16e){const _0x45abc5=_0x16cab7,_0x4c0b36={'className':'number','begin':/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{'name':_0x45abc5(0x95f),'aliases':[_0x45abc5(0x325f)],'case_insensitive':!0x0,'contains':[_0x10a16e[_0x45abc5(0x165c)],{'className':'section','begin':/<\/?/,'end':/>/,'contains':[_0x4c0b36,{'className':'number','begin':/:\d{1,5}/},_0x10a16e[_0x45abc5(0x4f2)](_0x10a16e['QUOTE_STRING_MODE'],{'relevance':0x0})]},{'className':_0x45abc5(0x47d5),'begin':/\w+/,'relevance':0x0,'keywords':{'_':['order',_0x45abc5(0x1179),_0x45abc5(0x3b7),_0x45abc5(0xe8d),_0x45abc5(0x3370),_0x45abc5(0x18b0),_0x45abc5(0x4e40),'documentroot',_0x45abc5(0x1b66),_0x45abc5(0x441e),'loadmodule',_0x45abc5(0x199c),_0x45abc5(0x164d),_0x45abc5(0x3caa),'serverroot',_0x45abc5(0x19af)]},'starts':{'end':/$/,'relevance':0x0,'keywords':{'literal':_0x45abc5(0x4d3)},'contains':[{'className':_0x45abc5(0x482),'begin':/\s\[/,'end':/\]$/},{'className':_0x45abc5(0x4b3a),'begin':/[\$%]\{/,'end':/\}/,'contains':[_0x45abc5(0x1001),{'className':'number','begin':/[$%]\d+/}]},_0x4c0b36,{'className':_0x45abc5(0x1ed7),'begin':/\b\d+/},_0x10a16e[_0x45abc5(0x3c93)]]}}],'illegal':/\S/};};},0x270:_0xd1dfa4=>{const _0x14da80=a0_0x329b;_0xd1dfa4[_0x14da80(0x15de)]=function(_0x4575cd){const _0x45a76b=_0x14da80,_0x30f882=_0x4575cd[_0x45a76b(0x12ab)],_0x396bd8=_0x4575cd['inherit'](_0x4575cd[_0x45a76b(0x3c93)],{'illegal':null}),_0x3d1777={'className':_0x45a76b(0x4f24),'begin':/\(/,'end':/\)/,'contains':[_0x45a76b(0x1001),_0x4575cd[_0x45a76b(0x3d6a)],_0x396bd8]},_0x135d5b=_0x4575cd['COMMENT'](/--/,/$/),_0x4fb818=[_0x135d5b,_0x4575cd['COMMENT'](/\(\*/,/\*\)/,{'contains':['self',_0x135d5b]}),_0x4575cd['HASH_COMMENT_MODE']];return{'name':_0x45a76b(0x359f),'aliases':[_0x45a76b(0x254f)],'keywords':{'keyword':'about\x20above\x20after\x20against\x20and\x20around\x20as\x20at\x20back\x20before\x20beginning\x20behind\x20below\x20beneath\x20beside\x20between\x20but\x20by\x20considering\x20contain\x20contains\x20continue\x20copy\x20div\x20does\x20eighth\x20else\x20end\x20equal\x20equals\x20error\x20every\x20exit\x20fifth\x20first\x20for\x20fourth\x20from\x20front\x20get\x20given\x20global\x20if\x20ignoring\x20in\x20into\x20is\x20it\x20its\x20last\x20local\x20me\x20middle\x20mod\x20my\x20ninth\x20not\x20of\x20on\x20onto\x20or\x20over\x20prop\x20property\x20put\x20ref\x20reference\x20repeat\x20returning\x20script\x20second\x20set\x20seventh\x20since\x20sixth\x20some\x20tell\x20tenth\x20that\x20the|0\x20then\x20third\x20through\x20thru\x20timeout\x20times\x20to\x20transaction\x20try\x20until\x20where\x20while\x20whose\x20with\x20without','literal':_0x45a76b(0x3fbf),'built_in':_0x45a76b(0x3f2f)},'contains':[_0x396bd8,_0x4575cd[_0x45a76b(0x3d6a)],{'className':_0x45a76b(0x4853),'begin':_0x30f882[_0x45a76b(0x41bf)](/\b/,_0x30f882[_0x45a76b(0x467b)](/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{'className':_0x45a76b(0x4853),'begin':/^\s*return\b/},{'className':_0x45a76b(0x14b),'begin':/\b(text item delimiters|current application|missing value)\b/},{'className':_0x45a76b(0x2448),'begin':_0x30f882[_0x45a76b(0x41bf)](/\b/,_0x30f882['either'](/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{'beginKeywords':'on','illegal':/[${=;\n]/,'contains':[_0x4575cd[_0x45a76b(0x469b)],_0x3d1777]},..._0x4fb818],'illegal':/\/\/|->|=>|\[\[/};};},0x707:_0x380e97=>{const _0x2af7d0=a0_0x329b;_0x380e97[_0x2af7d0(0x15de)]=function(_0x428f03){const _0x2e291f=_0x2af7d0,_0x375a95=_0x2e291f(0x3ab4),_0x587aa8={'keyword':['if','for',_0x2e291f(0x217b),'var',_0x2e291f(0x386e),_0x2e291f(0x3dfb),'do',_0x2e291f(0xf06),'void',_0x2e291f(0x36f0),'break'],'literal':['BackSlash','DoubleQuote',_0x2e291f(0x3561),'ForwardSlash',_0x2e291f(0x2b62),_0x2e291f(0x46ea),_0x2e291f(0x480f),'null','PI','SingleQuote',_0x2e291f(0x43fa),_0x2e291f(0x8d),'true',_0x2e291f(0x2c3)],'built_in':['Abs','Acos',_0x2e291f(0x1d2f),'Angle',_0x2e291f(0x2d1e),_0x2e291f(0x38af),_0x2e291f(0x82d),_0x2e291f(0x2804),_0x2e291f(0x51f),_0x2e291f(0x6fb),'Atan2',_0x2e291f(0xbcf),_0x2e291f(0x4e8),'Back',_0x2e291f(0x40c6),_0x2e291f(0x14e6),'Buffer',_0x2e291f(0x12c9),'Ceil',_0x2e291f(0x174e),_0x2e291f(0x1c4),_0x2e291f(0x440e),_0x2e291f(0x1478),'Constrain',_0x2e291f(0xd1d),_0x2e291f(0x4631),'Cos',_0x2e291f(0x2c15),_0x2e291f(0x2912),_0x2e291f(0x17da),_0x2e291f(0x3c98),_0x2e291f(0x14cd),_0x2e291f(0x3ee9),'Day','Decode',_0x2e291f(0x3398),'Densify','DensifyGeodetic',_0x2e291f(0xe33),_0x2e291f(0x332e),_0x2e291f(0x5074),_0x2e291f(0x4c79),_0x2e291f(0x1095),_0x2e291f(0x1bfb),_0x2e291f(0x1b8d),_0x2e291f(0x3738),_0x2e291f(0x632),_0x2e291f(0x1389),_0x2e291f(0x3165),_0x2e291f(0x1ccd),_0x2e291f(0x11e1),_0x2e291f(0x12c1),'Extent',_0x2e291f(0x629),'FeatureSet',_0x2e291f(0x19ac),_0x2e291f(0x267a),_0x2e291f(0x8a4),_0x2e291f(0x2824),_0x2e291f(0x4a17),_0x2e291f(0xb8a),'Find',_0x2e291f(0xf49),_0x2e291f(0x42ce),_0x2e291f(0x19e),_0x2e291f(0xc7a),_0x2e291f(0x1cc0),_0x2e291f(0x1b87),_0x2e291f(0x1edc),_0x2e291f(0x302b),_0x2e291f(0x2ef6),'GetUser',_0x2e291f(0x14b0),_0x2e291f(0x4689),'Hash',_0x2e291f(0x2fee),'Hour','IIf',_0x2e291f(0x3312),_0x2e291f(0x1306),_0x2e291f(0x21d3),'Intersection',_0x2e291f(0x41e),_0x2e291f(0x1c64),'IsNan',_0x2e291f(0x3849),_0x2e291f(0x3d67),'ISOWeekday','ISOYear',_0x2e291f(0x45b3),_0x2e291f(0x3e2a),_0x2e291f(0x2cf6),_0x2e291f(0x10a3),_0x2e291f(0x3f62),_0x2e291f(0x1cc),_0x2e291f(0x43db),_0x2e291f(0xe5b),'Map','Max','Mean',_0x2e291f(0x3f09),_0x2e291f(0x43d8),'Min',_0x2e291f(0x2517),_0x2e291f(0x1d0a),_0x2e291f(0x4c1c),_0x2e291f(0x1b77),_0x2e291f(0x5140),_0x2e291f(0x4584),_0x2e291f(0x41eb),_0x2e291f(0x4cba),_0x2e291f(0x3bb0),_0x2e291f(0x1898),_0x2e291f(0x3993),_0x2e291f(0x18f8),_0x2e291f(0x445),_0x2e291f(0x2c4e),_0x2e291f(0x4544),_0x2e291f(0x21d8),_0x2e291f(0x3a2f),_0x2e291f(0x233d),_0x2e291f(0x2432),_0x2e291f(0x3cb6),_0x2e291f(0x38fa),_0x2e291f(0x23e1),'Replace',_0x2e291f(0x1648),_0x2e291f(0x3c7e),_0x2e291f(0x4a91),_0x2e291f(0x3777),_0x2e291f(0x174),_0x2e291f(0x3a5d),_0x2e291f(0x1de3),_0x2e291f(0x23fb),_0x2e291f(0x1bd2),_0x2e291f(0x3239),'Sin','Slice',_0x2e291f(0x13d0),'Splice',_0x2e291f(0x1fc6),_0x2e291f(0x1907),_0x2e291f(0x43d6),_0x2e291f(0x4292),_0x2e291f(0x4dd1),'Subtypes','Sum',_0x2e291f(0x20d2),'Tan','Text',_0x2e291f(0x31c1),_0x2e291f(0x1429),_0x2e291f(0xa27),_0x2e291f(0x1b63),_0x2e291f(0x1653),_0x2e291f(0x38cd),'Top|0',_0x2e291f(0x411a),'ToUTC',_0x2e291f(0x3722),_0x2e291f(0xd38),_0x2e291f(0x31d4),'TrackCurrentDistance',_0x2e291f(0x1212),_0x2e291f(0x4a15),_0x2e291f(0x2eec),'TrackDistanceWindow',_0x2e291f(0x32ca),'TrackFieldWindow','TrackGeometryWindow','TrackIndex',_0x2e291f(0x49df),_0x2e291f(0x2722),'TrackStartTime',_0x2e291f(0x1e65),_0x2e291f(0x463f),_0x2e291f(0x6d2),_0x2e291f(0x4aa3),_0x2e291f(0x2f2),_0x2e291f(0x27af),'Variance',_0x2e291f(0x46b6),_0x2e291f(0x3459),_0x2e291f(0x1963),'Within','Year']},_0x307730={'className':_0x2e291f(0x1ed7),'variants':[{'begin':'\x5cb(0[bB][01]+)'},{'begin':_0x2e291f(0x1e47)},{'begin':_0x428f03[_0x2e291f(0x2627)]}],'relevance':0x0},_0x1e6d8b={'className':'subst','begin':_0x2e291f(0x3a54),'end':'\x5c}','keywords':_0x587aa8,'contains':[]},_0xe88ab2={'className':_0x2e291f(0x4f7c),'begin':'`','end':'`','contains':[_0x428f03['BACKSLASH_ESCAPE'],_0x1e6d8b]};_0x1e6d8b['contains']=[_0x428f03['APOS_STRING_MODE'],_0x428f03[_0x2e291f(0x3c93)],_0xe88ab2,_0x307730,_0x428f03[_0x2e291f(0xdfc)]];const _0x29a229=_0x1e6d8b[_0x2e291f(0x160d)][_0x2e291f(0x41bf)]([_0x428f03[_0x2e291f(0x1bbc)],_0x428f03[_0x2e291f(0x4d7)]]);return{'name':_0x2e291f(0x4f5a),'case_insensitive':!0x0,'keywords':_0x587aa8,'contains':[_0x428f03[_0x2e291f(0x36ec)],_0x428f03['QUOTE_STRING_MODE'],_0xe88ab2,_0x428f03[_0x2e291f(0x4d7)],_0x428f03['C_BLOCK_COMMENT_MODE'],{'className':_0x2e291f(0x3148),'begin':_0x2e291f(0x2624)},_0x307730,{'begin':/[{,]\s*/,'relevance':0x0,'contains':[{'begin':_0x375a95+_0x2e291f(0x2b59),'returnBegin':!0x0,'relevance':0x0,'contains':[{'className':'attr','begin':_0x375a95,'relevance':0x0}]}]},{'begin':'('+_0x428f03[_0x2e291f(0x5a3)]+_0x2e291f(0x3c68),'keywords':_0x2e291f(0xf06),'contains':[_0x428f03[_0x2e291f(0x4d7)],_0x428f03[_0x2e291f(0x1bbc)],_0x428f03[_0x2e291f(0xdfc)],{'className':'function','begin':_0x2e291f(0x176b)+_0x375a95+_0x2e291f(0x4a73),'returnBegin':!0x0,'end':_0x2e291f(0x1c88),'contains':[{'className':_0x2e291f(0x4f24),'variants':[{'begin':_0x375a95},{'begin':/\(\s*\)/},{'begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'keywords':_0x587aa8,'contains':_0x29a229}]}]}],'relevance':0x0},{'beginKeywords':_0x2e291f(0x3dfb),'end':/\{/,'excludeEnd':!0x0,'contains':[_0x428f03[_0x2e291f(0x4f2)](_0x428f03['TITLE_MODE'],{'className':_0x2e291f(0x326a),'begin':_0x375a95}),{'className':_0x2e291f(0x4f24),'begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'contains':_0x29a229}],'illegal':/\[|%/},{'begin':/\$[(.]/}],'illegal':/#(?!!)/};};},0x134f:_0x562c45=>{const _0xbcb99c=a0_0x329b;_0x562c45[_0xbcb99c(0x15de)]=function(_0x5c6981){const _0xb844ee=_0xbcb99c,_0x34614b={'type':[_0xb844ee(0x1206),_0xb844ee(0x18d4),_0xb844ee(0x2013),_0xb844ee(0x2f8c)],'built_in':[_0xb844ee(0x179e),_0xb844ee(0x1f15),_0xb844ee(0x4f8),_0xb844ee(0x1f57),_0xb844ee(0x17e8),'LiquidCrystal','RobotControl','GSMVoiceCall',_0xb844ee(0x4531),_0xb844ee(0x110b),'HttpClient',_0xb844ee(0xa01),_0xb844ee(0x2f74),_0xb844ee(0x2304),_0xb844ee(0x3e54),'Scheduler',_0xb844ee(0x212d),'YunClient','YunServer',_0xb844ee(0x3e59),'GSMClient',_0xb844ee(0x39d1),_0xb844ee(0x28f7),'Ethernet',_0xb844ee(0x1478),_0xb844ee(0x5069),_0xb844ee(0x487a),_0xb844ee(0x48e8),_0xb844ee(0x23ac),_0xb844ee(0x3440),_0xb844ee(0x4b3d),'Mailbox',_0xb844ee(0x3a7e),_0xb844ee(0x2fce),_0xb844ee(0x28af),_0xb844ee(0x2cd9),_0xb844ee(0x4be3),_0xb844ee(0x4c58),'FileIO','Bridge',_0xb844ee(0x451b),_0xb844ee(0x31aa),_0xb844ee(0x3bd8),_0xb844ee(0x401),_0xb844ee(0x3fcb),_0xb844ee(0x3b11),_0xb844ee(0xafb),_0xb844ee(0x1b54),_0xb844ee(0xa1b),_0xb844ee(0x4cac),_0xb844ee(0x2e90),'TFT','GSM',_0xb844ee(0x4603),'SD'],'_hints':['setup',_0xb844ee(0x2ca7),_0xb844ee(0x35b),_0xb844ee(0x4d1c),_0xb844ee(0x3b88),_0xb844ee(0x3d33),_0xb844ee(0x174b),_0xb844ee(0x3601),'noListenOnLocalhost',_0xb844ee(0x17ba),'setFirmwareVersion',_0xb844ee(0x273c),_0xb844ee(0x251c),'getVoiceCallStatus',_0xb844ee(0xdcc),_0xb844ee(0x12c7),_0xb844ee(0xaf0),'beginTransmission',_0xb844ee(0x802),_0xb844ee(0x15c6),_0xb844ee(0x4a85),_0xb844ee(0x3d99),_0xb844ee(0x1df8),_0xb844ee(0x366c),_0xb844ee(0x3ae7),_0xb844ee(0x1b7d),_0xb844ee(0x2431),_0xb844ee(0xe6c),_0xb844ee(0x554),_0xb844ee(0x1572),_0xb844ee(0x2d33),_0xb844ee(0x4035),'setClockDivider',_0xb844ee(0x23f5),'endTransmission',_0xb844ee(0x4dd7),_0xb844ee(0x3db9),_0xb844ee(0x1fd0),_0xb844ee(0x25e9),_0xb844ee(0x10ba),_0xb844ee(0x412e),'robotNameWrite',_0xb844ee(0x4d4d),_0xb844ee(0x17cd),_0xb844ee(0x4ba7),_0xb844ee(0xe3f),_0xb844ee(0x3dec),_0xb844ee(0x205a),'mouseReleased',_0xb844ee(0x40fa),_0xb844ee(0x223a),_0xb844ee(0x3dc9),_0xb844ee(0x123d),_0xb844ee(0x706),_0xb844ee(0x3e49),_0xb844ee(0x1e36),_0xb844ee(0x421c),_0xb844ee(0x42f4),_0xb844ee(0x3cef),_0xb844ee(0x7b0),_0xb844ee(0x74d),'getModifiers',_0xb844ee(0x359b),_0xb844ee(0x4383),'waitContinue','processInput',_0xb844ee(0x4ef4),_0xb844ee(0x3d17),_0xb844ee(0x33a),_0xb844ee(0x40c8),_0xb844ee(0x4c8e),_0xb844ee(0x73),_0xb844ee(0x14e2),_0xb844ee(0x1120),_0xb844ee(0x3309),_0xb844ee(0x3e0f),_0xb844ee(0x4d71),'beginPacket',_0xb844ee(0x1fed),_0xb844ee(0x3b14),_0xb844ee(0x2299),_0xb844ee(0x1d52),_0xb844ee(0x25e3),_0xb844ee(0x2b5e),'rightToLeft','setTextSize','leftToRight',_0xb844ee(0x14cc),_0xb844ee(0xb02),_0xb844ee(0x4919),_0xb844ee(0x38e0),'interrupts',_0xb844ee(0x4529),_0xb844ee(0x2b85),_0xb844ee(0x25d7),_0xb844ee(0x148d),_0xb844ee(0xda0),'getPINUsed',_0xb844ee(0x1d3f),_0xb844ee(0x31d6),_0xb844ee(0xf0a),_0xb844ee(0x4edc),'analogRead',_0xb844ee(0x21a1),_0xb844ee(0x2394),_0xb844ee(0x3605),'keyPressed',_0xb844ee(0x3dc5),'readButton','subnetMask',_0xb844ee(0x308b),_0xb844ee(0x2ce0),'writeGreen',_0xb844ee(0x2b3f),_0xb844ee(0x2fb),_0xb844ee(0x1695),_0xb844ee(0x10fa),_0xb844ee(0x9af),_0xb844ee(0x1870),_0xb844ee(0x9e4),_0xb844ee(0x2d5),'getXChange',_0xb844ee(0x1bc7),_0xb844ee(0x7ed),_0xb844ee(0x121d),'voiceCall','endPacket',_0xb844ee(0x39c3),_0xb844ee(0x10d7),'writeJSON',_0xb844ee(0x1c2c),'available',_0xb844ee(0x3454),'findUntil','readBytes',_0xb844ee(0x4f69),'readGreen','writeBlue',_0xb844ee(0xdd1),_0xb844ee(0x3e59),_0xb844ee(0x26d4),_0xb844ee(0x2cd4),_0xb844ee(0x12a4),'gatewayIP',_0xb844ee(0x22a7),'getOemKey',_0xb844ee(0x725),_0xb844ee(0x6ac),'loadImage',_0xb844ee(0x4ede),'onRequest',_0xb844ee(0x4433),'changePIN','playFile',_0xb844ee(0x3fc8),'parseInt',_0xb844ee(0x1962),_0xb844ee(0x47a8),_0xb844ee(0x3574),_0xb844ee(0x1f4),_0xb844ee(0x3a80),'updateIR',_0xb844ee(0x22df),'position','writeRGB','highByte',_0xb844ee(0x225d),_0xb844ee(0x6f6),'readBlue',_0xb844ee(0x169),'remoteIP','transfer','shutdown',_0xb844ee(0x502f),_0xb844ee(0x4822),_0xb844ee(0x2713),'attached',_0xb844ee(0x4015),'noCursor','checkReg',_0xb844ee(0xc07),_0xb844ee(0x2583),_0xb844ee(0x301c),_0xb844ee(0x26f5),_0xb844ee(0x287b),_0xb844ee(0x47c3),_0xb844ee(0x1903),_0xb844ee(0x321d),_0xb844ee(0x3259),'getIMEI',_0xb844ee(0x254a),_0xb844ee(0x2af3),'process','getBand',_0xb844ee(0x4107),'beginSD',_0xb844ee(0xa93),_0xb844ee(0x614),'setBand',_0xb844ee(0x1845),'bitRead',_0xb844ee(0x4ec6),_0xb844ee(0x4d4c),'readRed',_0xb844ee(0x1466),'noFill',_0xb844ee(0x80a),_0xb844ee(0x3caa),'stroke',_0xb844ee(0x1a5c),'attach',_0xb844ee(0x2177),_0xb844ee(0x41b8),_0xb844ee(0x1808),'height','bitSet',_0xb844ee(0x443e),_0xb844ee(0x4379),'cursor',_0xb844ee(0x4a2c),'IRread',_0xb844ee(0x1fc0),_0xb844ee(0x192a),_0xb844ee(0x3e98),'micros','millis','begin',_0xb844ee(0x33d3),_0xb844ee(0xe9),_0xb844ee(0x8b9),_0xb844ee(0x573),'width',_0xb844ee(0x1b34),'blink',_0xb844ee(0x30a1),'press','mkdir',_0xb844ee(0x1f0c),_0xb844ee(0x1c79),_0xb844ee(0x6db),_0xb844ee(0x25d6),_0xb844ee(0x1692),_0xb844ee(0x828),_0xb844ee(0x4da9),_0xb844ee(0x36dd),_0xb844ee(0x477e),_0xb844ee(0x2f35),'move',_0xb844ee(0x403d),_0xb844ee(0x324a),_0xb844ee(0x4b32),_0xb844ee(0x3dde),_0xb844ee(0x36fa),'seek',_0xb844ee(0x69e),'size',_0xb844ee(0x4921),_0xb844ee(0x1c58),'home',_0xb844ee(0x12b9),_0xb844ee(0x427d),'tone','sqrt',_0xb844ee(0xcc7),_0xb844ee(0x97a),_0xb844ee(0x721),_0xb844ee(0x3bca),_0xb844ee(0x356b),_0xb844ee(0x2ad5),_0xb844ee(0x423c),_0xb844ee(0xec3),_0xb844ee(0x2c94),_0xb844ee(0x444c),_0xb844ee(0x28c),_0xb844ee(0x12f9),_0xb844ee(0x2685),_0xb844ee(0x3de4),_0xb844ee(0x1b1a)],'literal':[_0xb844ee(0x3a3c),'FIRMATA_STRING',_0xb844ee(0x263c),_0xb844ee(0x48ec),'REPORT_ANALOG',_0xb844ee(0x17ec),_0xb844ee(0xdae),_0xb844ee(0x2f70),_0xb844ee(0x25ff),_0xb844ee(0xd68),_0xb844ee(0x235d),'SYSEX_START',_0xb844ee(0x2936),_0xb844ee(0x44b5),_0xb844ee(0x5bf),_0xb844ee(0x37a4),_0xb844ee(0x1f7a),'HIGH','LOW']},_0x59a934=function(_0x1fc02f){const _0x20c0d7=_0xb844ee,_0x1322d2=_0x1fc02f[_0x20c0d7(0x12ab)],_0x40ba92=_0x1fc02f[_0x20c0d7(0x274a)]('//','$',{'contains':[{'begin':/\\\n/}]}),_0x37552f=_0x20c0d7(0x26ca),_0x5aff06=_0x20c0d7(0x45e0),_0x150b89=_0x20c0d7(0x32e2)+_0x37552f+'|'+_0x1322d2[_0x20c0d7(0x180e)](_0x5aff06)+'[a-zA-Z_]\x5cw*'+_0x1322d2[_0x20c0d7(0x180e)]('<[^<>]+>')+')',_0x3eebcb={'className':_0x20c0d7(0x70a),'begin':_0x20c0d7(0xd70)},_0x5b95e9={'className':_0x20c0d7(0x4f7c),'variants':[{'begin':'(u8?|U|L)?\x22','end':'\x22','illegal':'\x5cn','contains':[_0x1fc02f['BACKSLASH_ESCAPE']]},{'begin':_0x20c0d7(0x1f19),'end':'\x27','illegal':'.'},_0x1fc02f[_0x20c0d7(0x138f)]({'begin':/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,'end':/\)([^()\\ ]{0,16})"/})]},_0x587aa6={'className':_0x20c0d7(0x1ed7),'variants':[{'begin':_0x20c0d7(0x315a)},{'begin':_0x20c0d7(0x4e9e)},{'begin':_0x20c0d7(0x2c71)}],'relevance':0x0},_0x256c53={'className':_0x20c0d7(0x482),'begin':/#\s*[a-z]+\b/,'end':/$/,'keywords':{'keyword':_0x20c0d7(0x4277)},'contains':[{'begin':/\\\n/,'relevance':0x0},_0x1fc02f[_0x20c0d7(0x4f2)](_0x5b95e9,{'className':_0x20c0d7(0x4f7c)}),{'className':_0x20c0d7(0x4f7c),'begin':/<.*?>/},_0x40ba92,_0x1fc02f[_0x20c0d7(0x1bbc)]]},_0x377fc3={'className':_0x20c0d7(0x5f1),'begin':_0x1322d2[_0x20c0d7(0x180e)](_0x5aff06)+_0x1fc02f[_0x20c0d7(0x2cb)],'relevance':0x0},_0x379b44=_0x1322d2[_0x20c0d7(0x180e)](_0x5aff06)+_0x1fc02f[_0x20c0d7(0x2cb)]+_0x20c0d7(0x17b4),_0x36bcb7={'type':[_0x20c0d7(0x3618),_0x20c0d7(0x4743),'char16_t',_0x20c0d7(0x335f),_0x20c0d7(0xc0f),_0x20c0d7(0x1038),_0x20c0d7(0x3ff6),_0x20c0d7(0x269f),_0x20c0d7(0x3c8d),_0x20c0d7(0x4fd3),_0x20c0d7(0x4004),_0x20c0d7(0x1b10),_0x20c0d7(0x282),_0x20c0d7(0x3497),_0x20c0d7(0x27b),'static'],'keyword':[_0x20c0d7(0x3d1a),'alignof',_0x20c0d7(0x43ea),_0x20c0d7(0x3876),_0x20c0d7(0x137d),_0x20c0d7(0x45cd),_0x20c0d7(0x312b),_0x20c0d7(0x2f3e),_0x20c0d7(0x4a75),_0x20c0d7(0x4869),_0x20c0d7(0x12bb),_0x20c0d7(0x49c0),'case',_0x20c0d7(0x424a),_0x20c0d7(0x42ec),_0x20c0d7(0x1489),_0x20c0d7(0x3628),'co_yield','compl','concept',_0x20c0d7(0x1955),'consteval',_0x20c0d7(0x15dc),_0x20c0d7(0x4bcd),_0x20c0d7(0x495f),_0x20c0d7(0x1201),_0x20c0d7(0x2fab),_0x20c0d7(0x450b),'do',_0x20c0d7(0x1b74),'else',_0x20c0d7(0x4afd),_0x20c0d7(0x2b0a),_0x20c0d7(0x5010),'extern',_0x20c0d7(0x3561),'final',_0x20c0d7(0x8f1),_0x20c0d7(0x514),_0x20c0d7(0x330f),'if','import',_0x20c0d7(0x50d2),_0x20c0d7(0x2d36),_0x20c0d7(0x31dc),'namespace',_0x20c0d7(0x386e),_0x20c0d7(0x2e82),_0x20c0d7(0x4163),'not_eq',_0x20c0d7(0x1e8b),_0x20c0d7(0x5d3),'or',_0x20c0d7(0x1475),'override',_0x20c0d7(0x276d),_0x20c0d7(0x2638),'public',_0x20c0d7(0x326b),_0x20c0d7(0x3fa5),'reinterpret_cast|10',_0x20c0d7(0x5cf),'return',_0x20c0d7(0x50c9),_0x20c0d7(0x240b),'static_cast|10',_0x20c0d7(0x2570),_0x20c0d7(0x68),_0x20c0d7(0x3c07),'template',_0x20c0d7(0x2d0d),_0x20c0d7(0xe85),'throw',_0x20c0d7(0xd3f),_0x20c0d7(0x32f0),_0x20c0d7(0x23f6),_0x20c0d7(0x47b4),_0x20c0d7(0x4947),'typeid',_0x20c0d7(0x4c5a),'union',_0x20c0d7(0x19f9),_0x20c0d7(0xfec),_0x20c0d7(0x2dab),_0x20c0d7(0x217b),_0x20c0d7(0x2bb8),'xor_eq'],'literal':['NULL',_0x20c0d7(0x3561),'nullopt',_0x20c0d7(0x1e8b),_0x20c0d7(0x23f6)],'built_in':['_Pragma'],'_type_hints':[_0x20c0d7(0x4be7),_0x20c0d7(0x65c),_0x20c0d7(0x45b0),_0x20c0d7(0x310b),_0x20c0d7(0x3d84),_0x20c0d7(0x3602),'condition_variable','condition_variable_any',_0x20c0d7(0x4d1f),_0x20c0d7(0x2ada),_0x20c0d7(0x47b1),_0x20c0d7(0x47d9),_0x20c0d7(0x4596),'initializer_list',_0x20c0d7(0x512d),_0x20c0d7(0x307c),_0x20c0d7(0x382a),_0x20c0d7(0x1fb9),_0x20c0d7(0x4ae7),_0x20c0d7(0x20d8),_0x20c0d7(0x49b4),'optional',_0x20c0d7(0x2169),'packaged_task',_0x20c0d7(0x3dc),_0x20c0d7(0x2e53),_0x20c0d7(0x19d0),_0x20c0d7(0x2b48),_0x20c0d7(0x44a5),_0x20c0d7(0x331f),_0x20c0d7(0x4028),'set',_0x20c0d7(0x2e3d),_0x20c0d7(0x186b),_0x20c0d7(0x2b9a),'shared_timed_mutex',_0x20c0d7(0x2b8b),_0x20c0d7(0x323c),'string_view','stringstream',_0x20c0d7(0x100d),_0x20c0d7(0x3343),'true_type',_0x20c0d7(0x1d4e),_0x20c0d7(0x2282),_0x20c0d7(0x3c09),_0x20c0d7(0xe64),_0x20c0d7(0x3854),_0x20c0d7(0x4b27),'unordered_set',_0x20c0d7(0x1078),_0x20c0d7(0x54a),'weak_ptr',_0x20c0d7(0x4017),_0x20c0d7(0x20b0)]},_0x12ce17={'className':_0x20c0d7(0x425c),'relevance':0x0,'keywords':{'_hint':[_0x20c0d7(0x504b),_0x20c0d7(0x444c),_0x20c0d7(0x12fe),_0x20c0d7(0x3138),_0x20c0d7(0x3c77),'asin',_0x20c0d7(0x4c11),'atan2',_0x20c0d7(0x441c),_0x20c0d7(0xd3),_0x20c0d7(0xaf6),_0x20c0d7(0x3d86),'clog','cos',_0x20c0d7(0x4a61),_0x20c0d7(0x14e1),_0x20c0d7(0x432b),_0x20c0d7(0x40ec),_0x20c0d7(0x227),'exit',_0x20c0d7(0x3904),_0x20c0d7(0x311d),_0x20c0d7(0x4dbd),'fmod',_0x20c0d7(0x4e69),_0x20c0d7(0x4a64),'fputs',_0x20c0d7(0x4eea),_0x20c0d7(0x2540),'fscanf',_0x20c0d7(0x47d9),'invoke',_0x20c0d7(0xb25),_0x20c0d7(0x5cb),'iscntrl',_0x20c0d7(0x442f),_0x20c0d7(0x1d53),'islower','isprint','ispunct','isspace',_0x20c0d7(0xdb9),'isxdigit','labs','launder',_0x20c0d7(0x1c10),'log',_0x20c0d7(0x7a7),_0x20c0d7(0x4389),_0x20c0d7(0x1810),_0x20c0d7(0x25bf),'make_tuple','make_unique',_0x20c0d7(0x8b2),_0x20c0d7(0x3a9b),_0x20c0d7(0x2761),_0x20c0d7(0x454d),'memset',_0x20c0d7(0x13fa),_0x20c0d7(0x470b),_0x20c0d7(0xec3),_0x20c0d7(0x18bf),_0x20c0d7(0x2e22),_0x20c0d7(0x3756),_0x20c0d7(0x42ca),_0x20c0d7(0x1106),_0x20c0d7(0x423c),_0x20c0d7(0x5095),_0x20c0d7(0xde1),_0x20c0d7(0x23bc),'sqrt',_0x20c0d7(0x4d78),_0x20c0d7(0xc35),'stderr','stdin',_0x20c0d7(0x429a),_0x20c0d7(0x49a5),'strchr',_0x20c0d7(0x26e9),_0x20c0d7(0x71f),_0x20c0d7(0x1177),_0x20c0d7(0x2652),_0x20c0d7(0x312e),_0x20c0d7(0x5012),_0x20c0d7(0x4c28),_0x20c0d7(0x1626),_0x20c0d7(0x2f6e),_0x20c0d7(0x1656),_0x20c0d7(0x2992),_0x20c0d7(0x2df),'tan',_0x20c0d7(0xdc2),_0x20c0d7(0x1fda),_0x20c0d7(0x4240),'tolower','toupper',_0x20c0d7(0x136),_0x20c0d7(0x4586),'vprintf',_0x20c0d7(0x152f)]},'begin':_0x1322d2[_0x20c0d7(0x41bf)](/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,_0x1fc02f[_0x20c0d7(0x2cb)],_0x1322d2[_0x20c0d7(0x2901)](/(<[^<>]+>|)\s*\(/))},_0x379465=[_0x12ce17,_0x256c53,_0x3eebcb,_0x40ba92,_0x1fc02f['C_BLOCK_COMMENT_MODE'],_0x587aa6,_0x5b95e9],_0x418620={'variants':[{'begin':/=/,'end':/;/},{'begin':/\(/,'end':/\)/},{'beginKeywords':_0x20c0d7(0x19e7),'end':/;/}],'keywords':_0x36bcb7,'contains':_0x379465[_0x20c0d7(0x41bf)]([{'begin':/\(/,'end':/\)/,'keywords':_0x36bcb7,'contains':_0x379465[_0x20c0d7(0x41bf)]([_0x20c0d7(0x1001)]),'relevance':0x0}]),'relevance':0x0},_0x3733ed={'className':_0x20c0d7(0x3dfb),'begin':'('+_0x150b89+'[\x5c*&\x5cs]+)+'+_0x379b44,'returnBegin':!0x0,'end':/[{;=]/,'excludeEnd':!0x0,'keywords':_0x36bcb7,'illegal':/[^\w\s\*&:<>.]/,'contains':[{'begin':_0x37552f,'keywords':_0x36bcb7,'relevance':0x0},{'begin':_0x379b44,'returnBegin':!0x0,'contains':[_0x377fc3],'relevance':0x0},{'begin':/::/,'relevance':0x0},{'begin':/:/,'endsWithParent':!0x0,'contains':[_0x5b95e9,_0x587aa6]},{'relevance':0x0,'match':/,/},{'className':_0x20c0d7(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0x36bcb7,'relevance':0x0,'contains':[_0x40ba92,_0x1fc02f['C_BLOCK_COMMENT_MODE'],_0x5b95e9,_0x587aa6,_0x3eebcb,{'begin':/\(/,'end':/\)/,'keywords':_0x36bcb7,'relevance':0x0,'contains':[_0x20c0d7(0x1001),_0x40ba92,_0x1fc02f[_0x20c0d7(0x1bbc)],_0x5b95e9,_0x587aa6,_0x3eebcb]}]},_0x3eebcb,_0x40ba92,_0x1fc02f[_0x20c0d7(0x1bbc)],_0x256c53]};return{'name':_0x20c0d7(0x94d),'aliases':['cc',_0x20c0d7(0x217c),_0x20c0d7(0x189c),_0x20c0d7(0x3d38),'hh',_0x20c0d7(0x1e86),_0x20c0d7(0x4f93)],'keywords':_0x36bcb7,'illegal':'','keywords':_0x36bcb7,'contains':[_0x20c0d7(0x1001),_0x3eebcb]},{'begin':_0x1fc02f[_0x20c0d7(0x2cb)]+'::','keywords':_0x36bcb7},{'match':[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],'className':{0x1:_0x20c0d7(0x2448),0x3:_0x20c0d7(0xc2f)}}])};}(_0x5c6981),_0x3379aa=_0x59a934['keywords'];return _0x3379aa['type']=[..._0x3379aa[_0xb844ee(0x70a)],..._0x34614b[_0xb844ee(0x70a)]],_0x3379aa[_0xb844ee(0x14b)]=[..._0x3379aa[_0xb844ee(0x14b)],..._0x34614b[_0xb844ee(0x14b)]],_0x3379aa[_0xb844ee(0x4853)]=[..._0x3379aa[_0xb844ee(0x4853)],..._0x34614b['built_in']],_0x3379aa[_0xb844ee(0x177f)]=_0x34614b['_hints'],_0x59a934['name']=_0xb844ee(0x3ecb),_0x59a934[_0xb844ee(0x1dce)]=[_0xb844ee(0x10da)],_0x59a934[_0xb844ee(0x3ff9)]=_0xb844ee(0x4ee0),_0x59a934;};},0x1e92:_0x3c0075=>{const _0x59f639=a0_0x329b;_0x3c0075[_0x59f639(0x15de)]=function(_0x10b7b8){const _0x3d2195=_0x59f639,_0x24ed72={'variants':[_0x10b7b8[_0x3d2195(0x274a)](_0x3d2195(0xc45),'$',{'relevance':0x0,'excludeBegin':!0x0}),_0x10b7b8[_0x3d2195(0x274a)](_0x3d2195(0x40a5),'$',{'relevance':0x0}),_0x10b7b8['C_LINE_COMMENT_MODE'],_0x10b7b8[_0x3d2195(0x1bbc)]]};return{'name':_0x3d2195(0xfd7),'case_insensitive':!0x0,'aliases':[_0x3d2195(0x204e)],'keywords':{'$pattern':_0x3d2195(0x86b)+_0x10b7b8[_0x3d2195(0x2cb)],'meta':_0x3d2195(0x3d57),'built_in':'r0\x20r1\x20r2\x20r3\x20r4\x20r5\x20r6\x20r7\x20r8\x20r9\x20r10\x20r11\x20r12\x20r13\x20r14\x20r15\x20w0\x20w1\x20w2\x20w3\x20w4\x20w5\x20w6\x20w7\x20w8\x20w9\x20w10\x20w11\x20w12\x20w13\x20w14\x20w15\x20w16\x20w17\x20w18\x20w19\x20w20\x20w21\x20w22\x20w23\x20w24\x20w25\x20w26\x20w27\x20w28\x20w29\x20w30\x20x0\x20x1\x20x2\x20x3\x20x4\x20x5\x20x6\x20x7\x20x8\x20x9\x20x10\x20x11\x20x12\x20x13\x20x14\x20x15\x20x16\x20x17\x20x18\x20x19\x20x20\x20x21\x20x22\x20x23\x20x24\x20x25\x20x26\x20x27\x20x28\x20x29\x20x30\x20pc\x20lr\x20sp\x20ip\x20sl\x20sb\x20fp\x20a1\x20a2\x20a3\x20a4\x20v1\x20v2\x20v3\x20v4\x20v5\x20v6\x20v7\x20v8\x20f0\x20f1\x20f2\x20f3\x20f4\x20f5\x20f6\x20f7\x20p0\x20p1\x20p2\x20p3\x20p4\x20p5\x20p6\x20p7\x20p8\x20p9\x20p10\x20p11\x20p12\x20p13\x20p14\x20p15\x20c0\x20c1\x20c2\x20c3\x20c4\x20c5\x20c6\x20c7\x20c8\x20c9\x20c10\x20c11\x20c12\x20c13\x20c14\x20c15\x20q0\x20q1\x20q2\x20q3\x20q4\x20q5\x20q6\x20q7\x20q8\x20q9\x20q10\x20q11\x20q12\x20q13\x20q14\x20q15\x20cpsr_c\x20cpsr_x\x20cpsr_s\x20cpsr_f\x20cpsr_cx\x20cpsr_cxs\x20cpsr_xs\x20cpsr_xsf\x20cpsr_sf\x20cpsr_cxsf\x20spsr_c\x20spsr_x\x20spsr_s\x20spsr_f\x20spsr_cx\x20spsr_cxs\x20spsr_xs\x20spsr_xsf\x20spsr_sf\x20spsr_cxsf\x20s0\x20s1\x20s2\x20s3\x20s4\x20s5\x20s6\x20s7\x20s8\x20s9\x20s10\x20s11\x20s12\x20s13\x20s14\x20s15\x20s16\x20s17\x20s18\x20s19\x20s20\x20s21\x20s22\x20s23\x20s24\x20s25\x20s26\x20s27\x20s28\x20s29\x20s30\x20s31\x20d0\x20d1\x20d2\x20d3\x20d4\x20d5\x20d6\x20d7\x20d8\x20d9\x20d10\x20d11\x20d12\x20d13\x20d14\x20d15\x20d16\x20d17\x20d18\x20d19\x20d20\x20d21\x20d22\x20d23\x20d24\x20d25\x20d26\x20d27\x20d28\x20d29\x20d30\x20d31\x20{PC}\x20{VAR}\x20{TRUE}\x20{FALSE}\x20{OPT}\x20{CONFIG}\x20{ENDIAN}\x20{CODESIZE}\x20{CPU}\x20{FPU}\x20{ARCHITECTURE}\x20{PCSTOREOFFSET}\x20{ARMASM_VERSION}\x20{INTER}\x20{ROPI}\x20{RWPI}\x20{SWST}\x20{NOSWST}\x20.\x20@'},'contains':[{'className':_0x3d2195(0x2448),'begin':'\x5cb(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\x5cs)'},_0x24ed72,_0x10b7b8[_0x3d2195(0x3c93)],{'className':_0x3d2195(0x4f7c),'begin':'\x27','end':'[^\x5c\x5c]\x27','relevance':0x0},{'className':'title','begin':'\x5c|','end':'\x5c|','illegal':'\x5cn','relevance':0x0},{'className':_0x3d2195(0x1ed7),'variants':[{'begin':_0x3d2195(0x3d8c)},{'begin':_0x3d2195(0x4d43)},{'begin':_0x3d2195(0x5b3)},{'begin':_0x3d2195(0x3f00)}],'relevance':0x0},{'className':'symbol','variants':[{'begin':_0x3d2195(0x1f01)},{'begin':'^[a-z_\x5c.\x5c$][a-z0-9_\x5c.\x5c$]+'},{'begin':_0x3d2195(0x21b6)}],'relevance':0x0}]};};},0x1064:_0x210d25=>{const _0x41d835=a0_0x329b;_0x210d25[_0x41d835(0x15de)]=function(_0x2ce231){const _0x54a27c=_0x41d835,_0x53a131=_0x2ce231[_0x54a27c(0x12ab)],_0x124b57=[{'className':_0x54a27c(0x2ca0),'begin':/\*{2}([^\n]+?)\*{2}/},{'className':_0x54a27c(0x2ca0),'begin':_0x53a131['concat'](/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),'relevance':0x0},{'className':_0x54a27c(0x2ca0),'begin':/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{'className':_0x54a27c(0x2ca0),'begin':/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],_0x24978f=[{'className':_0x54a27c(0x3010),'begin':/_{2}([^\n]+?)_{2}/},{'className':'emphasis','begin':_0x53a131[_0x54a27c(0x41bf)](/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),'relevance':0x0},{'className':_0x54a27c(0x3010),'begin':/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{'className':_0x54a27c(0x3010),'begin':/_[^\s]([^\n]+\n)+([^\n]+)_/},{'className':_0x54a27c(0x3010),'begin':_0x54a27c(0x3e6e),'end':_0x54a27c(0x1b56),'contains':[{'begin':_0x54a27c(0x23fe),'relevance':0x0}],'relevance':0x0}];return{'name':_0x54a27c(0x212),'aliases':[_0x54a27c(0x21ba)],'contains':[_0x2ce231[_0x54a27c(0x274a)](_0x54a27c(0x23e4),_0x54a27c(0x2fc9),{'relevance':0xa}),_0x2ce231[_0x54a27c(0x274a)](_0x54a27c(0x29f2),'$',{'relevance':0x0}),{'className':'title','begin':_0x54a27c(0x1bbd)},{'begin':_0x54a27c(0x4310),'end':'\x5cn^[=\x5c*]{4,}$','relevance':0xa},{'className':_0x54a27c(0x386b),'relevance':0xa,'variants':[{'begin':_0x54a27c(0x45e2)},{'begin':'^[^\x5c[\x5c]\x5cn]+?\x5cn[=\x5c-~\x5c^\x5c+]{2,}$'}]},{'className':_0x54a27c(0x482),'begin':_0x54a27c(0x2382),'end':'\x5cs','excludeEnd':!0x0,'relevance':0xa},{'className':_0x54a27c(0x482),'begin':'^\x5c[.+?\x5c]$','relevance':0x0},{'className':'quote','begin':_0x54a27c(0xa82),'end':_0x54a27c(0x44ee),'relevance':0xa},{'className':_0x54a27c(0xbd0),'begin':_0x54a27c(0x319d),'end':_0x54a27c(0x1af7),'relevance':0xa},{'begin':_0x54a27c(0x1131),'end':_0x54a27c(0x2345),'contains':[{'begin':'<','end':'>','subLanguage':_0x54a27c(0x2742),'relevance':0x0}],'relevance':0xa},{'className':'bullet','begin':_0x54a27c(0x49fe)},{'className':_0x54a27c(0x3148),'begin':_0x54a27c(0x4fbc),'relevance':0xa},{'begin':/\\[*_`]/},{'begin':/\\\\\*{2}[^\n]*?\*{2}/},{'begin':/\\\\_{2}[^\n]*_{2}/},{'begin':/\\\\`{2}[^\n]*`{2}/},{'begin':/[:;}][*_`](?![*_`])/},..._0x124b57,..._0x24978f,{'className':'string','variants':[{'begin':'``.+?\x27\x27'},{'begin':_0x54a27c(0x1d6)}]},{'className':_0x54a27c(0xbd0),'begin':/`{2}/,'end':/(\n{2}|`{2})/},{'className':_0x54a27c(0xbd0),'begin':_0x54a27c(0x3f7c),'relevance':0x0},{'className':_0x54a27c(0xbd0),'begin':_0x54a27c(0x179d),'end':'$','relevance':0x0},{'begin':'^\x27{3,}[\x20\x5ct]*$','relevance':0xa},{'begin':'(link:)?(http|https|ftp|file|irc|image:?):\x5cS+?\x5c[[^[]*?\x5c]','returnBegin':!0x0,'contains':[{'begin':'(link|image:?):','relevance':0x0},{'className':_0x54a27c(0x3622),'begin':'\x5cw','end':_0x54a27c(0x3a47),'relevance':0x0},{'className':_0x54a27c(0x4f7c),'begin':'\x5c[','end':'\x5c]','excludeBegin':!0x0,'excludeEnd':!0x0,'relevance':0x0}],'relevance':0xa}]};};},0x2709:_0x274674=>{const _0x2e777b=a0_0x329b;_0x274674[_0x2e777b(0x15de)]=function(_0xbaad62){const _0xaf2de1=_0x2e777b,_0xf78b61=_0xbaad62['regex'],_0x2e7386=[_0xaf2de1(0x3561),'synchronized','int',_0xaf2de1(0x3ba4),_0xaf2de1(0x3ff6),_0xaf2de1(0x276d),'char',_0xaf2de1(0x1206),'static',_0xaf2de1(0x15f0),'if',_0xaf2de1(0x27b),_0xaf2de1(0x8f1),_0xaf2de1(0x23f6),_0xaf2de1(0x217b),_0xaf2de1(0x3c8d),_0xaf2de1(0x2b8d),'strictfp','finally',_0xaf2de1(0x2638),_0xaf2de1(0x2c76),_0xaf2de1(0x4341),_0xaf2de1(0xac4),_0xaf2de1(0xf06),'void','enum',_0xaf2de1(0x36f0),_0xaf2de1(0x5048),_0xaf2de1(0xc32),'break',_0xaf2de1(0x1f50),_0xaf2de1(0x386e),_0xaf2de1(0x424a),_0xaf2de1(0x39fe),'byte','super',_0xaf2de1(0x2dab),_0xaf2de1(0x1bf3),_0xaf2de1(0x79e),_0xaf2de1(0x4fd3),_0xaf2de1(0x4574),_0xaf2de1(0x2fab),_0xaf2de1(0x1038),_0xaf2de1(0x1397),_0xaf2de1(0x47b4),_0xaf2de1(0x2d0d),_0xaf2de1(0x68),_0xaf2de1(0x495f),_0xaf2de1(0x4c65),_0xaf2de1(0x332a),_0xaf2de1(0x2769),_0xaf2de1(0x16f7),_0xaf2de1(0x2cd3),_0xaf2de1(0x4a5e),_0xaf2de1(0x7b3),_0xaf2de1(0x2af9),_0xaf2de1(0x23b),_0xaf2de1(0x1c09),'withincode',_0xaf2de1(0x1245),_0xaf2de1(0xa3f),_0xaf2de1(0x19b8),'getWithinTypeName','handler',_0xaf2de1(0xdee),_0xaf2de1(0x72a),'thisEnclosingJoinPointStaticPart','declare',_0xaf2de1(0x2ec0),'warning',_0xaf2de1(0x4b47),'soft','precedence',_0xaf2de1(0x32b)],_0x146a62=[_0xaf2de1(0x2685),_0xaf2de1(0x2d7e),'args',_0xaf2de1(0x4c9d)];return{'name':_0xaf2de1(0x89d),'keywords':_0x2e7386,'illegal':/<\/|#/,'contains':[_0xbaad62['COMMENT'](/\/\*\*/,/\*\//,{'relevance':0x0,'contains':[{'begin':/\w+@/,'relevance':0x0},{'className':'doctag','begin':/@[A-Za-z]+/}]}),_0xbaad62[_0xaf2de1(0x4d7)],_0xbaad62[_0xaf2de1(0x1bbc)],_0xbaad62[_0xaf2de1(0x36ec)],_0xbaad62[_0xaf2de1(0x3c93)],{'className':_0xaf2de1(0x42ec),'beginKeywords':_0xaf2de1(0x4c3b),'end':/[{;=]/,'excludeEnd':!0x0,'illegal':/[:;"\[\]]/,'contains':[{'beginKeywords':_0xaf2de1(0x3911)},_0xbaad62['UNDERSCORE_TITLE_MODE'],{'begin':/\([^\)]*/,'end':/[)]+/,'keywords':_0x2e7386['concat'](_0x146a62),'excludeEnd':!0x1}]},{'className':_0xaf2de1(0x42ec),'beginKeywords':_0xaf2de1(0x40cd),'end':/[{;=]/,'excludeEnd':!0x0,'relevance':0x0,'keywords':_0xaf2de1(0x40cd),'illegal':/[:"\[\]]/,'contains':[{'beginKeywords':_0xaf2de1(0xf91)},_0xbaad62['UNDERSCORE_TITLE_MODE']]},{'beginKeywords':'pointcut\x20after\x20before\x20around\x20throwing\x20returning','end':/[)]/,'excludeEnd':!0x1,'illegal':/["\[\]]/,'contains':[{'begin':_0xf78b61[_0xaf2de1(0x41bf)](_0xbaad62[_0xaf2de1(0x2691)],/\s*\(/),'returnBegin':!0x0,'contains':[_0xbaad62['UNDERSCORE_TITLE_MODE']]}]},{'begin':/[:]/,'returnBegin':!0x0,'end':/[{;]/,'relevance':0x0,'excludeEnd':!0x1,'keywords':_0x2e7386,'illegal':/["\[\]]/,'contains':[{'begin':_0xf78b61[_0xaf2de1(0x41bf)](_0xbaad62[_0xaf2de1(0x2691)],/\s*\(/),'keywords':_0x2e7386['concat'](_0x146a62),'relevance':0x0},_0xbaad62[_0xaf2de1(0x3c93)]]},{'beginKeywords':'new\x20throw','relevance':0x0},{'className':_0xaf2de1(0x3dfb),'begin':/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,'returnBegin':!0x0,'end':/[{;=]/,'keywords':_0x2e7386,'excludeEnd':!0x0,'contains':[{'begin':_0xf78b61[_0xaf2de1(0x41bf)](_0xbaad62[_0xaf2de1(0x2691)],/\s*\(/),'returnBegin':!0x0,'relevance':0x0,'contains':[_0xbaad62['UNDERSCORE_TITLE_MODE']]},{'className':_0xaf2de1(0x4f24),'begin':/\(/,'end':/\)/,'relevance':0x0,'keywords':_0x2e7386,'contains':[_0xbaad62[_0xaf2de1(0x36ec)],_0xbaad62[_0xaf2de1(0x3c93)],_0xbaad62[_0xaf2de1(0x3d6a)],_0xbaad62[_0xaf2de1(0x1bbc)]]},_0xbaad62['C_LINE_COMMENT_MODE'],_0xbaad62[_0xaf2de1(0x1bbc)]]},_0xbaad62[_0xaf2de1(0x3d6a)],{'className':'meta','begin':/@[A-Za-z]+/}]};};},0x1156:_0x8c0374=>{const _0x13d1ae=a0_0x329b;_0x8c0374[_0x13d1ae(0x15de)]=function(_0x192400){const _0x1487b0=_0x13d1ae,_0x4f34bc={'begin':_0x1487b0(0x3da1)};return{'name':_0x1487b0(0x139c),'case_insensitive':!0x0,'aliases':['ahk'],'keywords':{'keyword':'Break\x20Continue\x20Critical\x20Exit\x20ExitApp\x20Gosub\x20Goto\x20New\x20OnExit\x20Pause\x20return\x20SetBatchLines\x20SetTimer\x20Suspend\x20Thread\x20Throw\x20Until\x20ahk_id\x20ahk_class\x20ahk_pid\x20ahk_exe\x20ahk_group','literal':'true\x20false\x20NOT\x20AND\x20OR','built_in':'ComSpec\x20Clipboard\x20ClipboardAll\x20ErrorLevel'},'contains':[_0x4f34bc,_0x192400[_0x1487b0(0x4f2)](_0x192400[_0x1487b0(0x3c93)],{'contains':[_0x4f34bc]}),_0x192400[_0x1487b0(0x274a)](';','$',{'relevance':0x0}),_0x192400[_0x1487b0(0x1bbc)],{'className':_0x1487b0(0x1ed7),'begin':_0x192400[_0x1487b0(0x2d71)],'relevance':0x0},{'className':'variable','begin':_0x1487b0(0x297b)},{'className':_0x1487b0(0x4853),'begin':_0x1487b0(0x85c)},{'className':'title','variants':[{'begin':_0x1487b0(0x3d6)},{'begin':_0x1487b0(0x505e),'relevance':0x0}]},{'className':'meta','begin':_0x1487b0(0x41be),'end':'$','relevance':0x0},{'className':_0x1487b0(0x4853),'begin':_0x1487b0(0x271d)},{'begin':_0x1487b0(0x28d2)}]};};},0x7e5:_0x8ee18c=>{const _0x6c57aa=a0_0x329b;_0x8ee18c[_0x6c57aa(0x15de)]=function(_0x202aa3){const _0x433706=_0x6c57aa,_0x1460d6={'variants':[_0x202aa3['COMMENT'](';','$',{'relevance':0x0}),_0x202aa3[_0x433706(0x274a)](_0x433706(0x3a14),_0x433706(0x2b2a)),_0x202aa3['COMMENT']('#comments-start',_0x433706(0x5045))]},_0x152b17={'begin':_0x433706(0x35e7)},_0x273971={'className':_0x433706(0x4f7c),'variants':[{'begin':/"/,'end':/"/,'contains':[{'begin':/""/,'relevance':0x0}]},{'begin':/'/,'end':/'/,'contains':[{'begin':/''/,'relevance':0x0}]}]},_0xb93112={'variants':[_0x202aa3[_0x433706(0x30c0)],_0x202aa3[_0x433706(0x3d6a)]]};return{'name':'AutoIt','case_insensitive':!0x0,'illegal':/\/\*/,'keywords':{'keyword':'ByRef\x20Case\x20Const\x20ContinueCase\x20ContinueLoop\x20Dim\x20Do\x20Else\x20ElseIf\x20EndFunc\x20EndIf\x20EndSelect\x20EndSwitch\x20EndWith\x20Enum\x20Exit\x20ExitLoop\x20For\x20Func\x20Global\x20If\x20In\x20Local\x20Next\x20ReDim\x20Return\x20Select\x20Static\x20Step\x20Switch\x20Then\x20To\x20Until\x20Volatile\x20WEnd\x20While\x20With','built_in':_0x433706(0x4971),'literal':'True\x20False\x20And\x20Null\x20Not\x20Or\x20Default'},'contains':[_0x1460d6,_0x152b17,_0x273971,_0xb93112,{'className':_0x433706(0x482),'begin':'#','end':'$','keywords':{'keyword':[_0x433706(0xf37),'forcedef',_0x433706(0x5b5),_0x433706(0x15d0),_0x433706(0x3354),_0x433706(0x4dc9),_0x433706(0x4214),_0x433706(0x3f6b),_0x433706(0x267e),_0x433706(0x4bf7),_0x433706(0x3a18),_0x433706(0xcb7),_0x433706(0x4ce0),_0x433706(0x75a)]},'contains':[{'begin':/\\\n/,'relevance':0x0},{'beginKeywords':'include','keywords':{'keyword':_0x433706(0x3354)},'end':'$','contains':[_0x273971,{'className':_0x433706(0x4f7c),'variants':[{'begin':'<','end':'>'},{'begin':/"/,'end':/"/,'contains':[{'begin':/""/,'relevance':0x0}]},{'begin':/'/,'end':/'/,'contains':[{'begin':/''/,'relevance':0x0}]}]}]},_0x273971,_0x1460d6]},{'className':_0x433706(0x3148),'begin':_0x433706(0x2ea0)},{'beginKeywords':_0x433706(0x19ff),'end':'$','illegal':_0x433706(0x2a0b),'contains':[_0x202aa3[_0x433706(0x4f2)](_0x202aa3[_0x433706(0x469b)],{'className':_0x433706(0x326a)}),{'className':'params','begin':'\x5c(','end':'\x5c)','contains':[_0x152b17,_0x273971,_0xb93112]}]}]};};},0x275:_0x160d37=>{const _0xa82016=a0_0x329b;_0x160d37[_0xa82016(0x15de)]=function(_0x2f03b9){const _0x30bca7=_0xa82016;return{'name':_0x30bca7(0x2a6d),'case_insensitive':!0x0,'keywords':{'$pattern':'\x5c.?'+_0x2f03b9[_0x30bca7(0x2cb)],'keyword':_0x30bca7(0x2391),'built_in':'r0\x20r1\x20r2\x20r3\x20r4\x20r5\x20r6\x20r7\x20r8\x20r9\x20r10\x20r11\x20r12\x20r13\x20r14\x20r15\x20r16\x20r17\x20r18\x20r19\x20r20\x20r21\x20r22\x20r23\x20r24\x20r25\x20r26\x20r27\x20r28\x20r29\x20r30\x20r31\x20x|0\x20xh\x20xl\x20y|0\x20yh\x20yl\x20z|0\x20zh\x20zl\x20ucsr1c\x20udr1\x20ucsr1a\x20ucsr1b\x20ubrr1l\x20ubrr1h\x20ucsr0c\x20ubrr0h\x20tccr3c\x20tccr3a\x20tccr3b\x20tcnt3h\x20tcnt3l\x20ocr3ah\x20ocr3al\x20ocr3bh\x20ocr3bl\x20ocr3ch\x20ocr3cl\x20icr3h\x20icr3l\x20etimsk\x20etifr\x20tccr1c\x20ocr1ch\x20ocr1cl\x20twcr\x20twdr\x20twar\x20twsr\x20twbr\x20osccal\x20xmcra\x20xmcrb\x20eicra\x20spmcsr\x20spmcr\x20portg\x20ddrg\x20ping\x20portf\x20ddrf\x20sreg\x20sph\x20spl\x20xdiv\x20rampz\x20eicrb\x20eimsk\x20gimsk\x20gicr\x20eifr\x20gifr\x20timsk\x20tifr\x20mcucr\x20mcucsr\x20tccr0\x20tcnt0\x20ocr0\x20assr\x20tccr1a\x20tccr1b\x20tcnt1h\x20tcnt1l\x20ocr1ah\x20ocr1al\x20ocr1bh\x20ocr1bl\x20icr1h\x20icr1l\x20tccr2\x20tcnt2\x20ocr2\x20ocdr\x20wdtcr\x20sfior\x20eearh\x20eearl\x20eedr\x20eecr\x20porta\x20ddra\x20pina\x20portb\x20ddrb\x20pinb\x20portc\x20ddrc\x20pinc\x20portd\x20ddrd\x20pind\x20spdr\x20spsr\x20spcr\x20udr0\x20ucsr0a\x20ucsr0b\x20ubrr0l\x20acsr\x20admux\x20adcsr\x20adch\x20adcl\x20porte\x20ddre\x20pine\x20pinf','meta':_0x30bca7(0x188e)},'contains':[_0x2f03b9[_0x30bca7(0x1bbc)],_0x2f03b9[_0x30bca7(0x274a)](';','$',{'relevance':0x0}),_0x2f03b9[_0x30bca7(0x3d6a)],_0x2f03b9['BINARY_NUMBER_MODE'],{'className':_0x30bca7(0x1ed7),'begin':_0x30bca7(0x513)},_0x2f03b9['QUOTE_STRING_MODE'],{'className':'string','begin':'\x27','end':'[^\x5c\x5c]\x27','illegal':_0x30bca7(0x505d)},{'className':_0x30bca7(0x3148),'begin':_0x30bca7(0x44ba)},{'className':_0x30bca7(0x482),'begin':'#','end':'$'},{'className':_0x30bca7(0xfeb),'begin':'@[0-9]+'}]};};},0xa8e:_0x5420ba=>{const _0x44a07e=a0_0x329b;_0x5420ba[_0x44a07e(0x15de)]=function(_0xabac21){const _0x271e=_0x44a07e;return{'name':'Awk','keywords':{'keyword':'BEGIN\x20END\x20if\x20else\x20while\x20do\x20for\x20in\x20break\x20continue\x20delete\x20next\x20nextfile\x20function\x20func\x20exit|10'},'contains':[{'className':'variable','variants':[{'begin':/\$[\w\d#@][\w\d_]*/},{'begin':/\$\{(.*?)\}/}]},{'className':'string','contains':[_0xabac21[_0x271e(0x421a)]],'variants':[{'begin':/(u|b)?r?'''/,'end':/'''/,'relevance':0xa},{'begin':/(u|b)?r?"""/,'end':/"""/,'relevance':0xa},{'begin':/(u|r|ur)'/,'end':/'/,'relevance':0xa},{'begin':/(u|r|ur)"/,'end':/"/,'relevance':0xa},{'begin':/(b|br)'/,'end':/'/},{'begin':/(b|br)"/,'end':/"/},_0xabac21[_0x271e(0x36ec)],_0xabac21[_0x271e(0x3c93)]]},_0xabac21[_0x271e(0xdfc)],_0xabac21[_0x271e(0x165c)],_0xabac21[_0x271e(0x1f70)]]};};},0xf64:_0x33b5c1=>{_0x33b5c1['exports']=function(_0x19efca){const _0x32ac22=a0_0x329b,_0x38f1f4=_0x19efca['UNDERSCORE_IDENT_RE'],_0x5c34f5={'keyword':[_0x32ac22(0x3ba4),'as',_0x32ac22(0x168e),'avg','break',_0x32ac22(0x2f67),'by',_0x32ac22(0xd90),_0x32ac22(0x1bf3),_0x32ac22(0x424a),_0x32ac22(0x2b36),_0x32ac22(0x42ec),_0x32ac22(0x4b2d),_0x32ac22(0x4b2d),'common',_0x32ac22(0x27b),_0x32ac22(0x495f),_0x32ac22(0x4d47),'crosscompany',_0x32ac22(0x38e3),_0x32ac22(0x226b),'desc',_0x32ac22(0x254a),_0x32ac22(0x257d),'do','edit',_0x32ac22(0x36f0),_0x32ac22(0x34e8),_0x32ac22(0x41b8),_0x32ac22(0x5048),_0x32ac22(0xac4),_0x32ac22(0x292f),_0x32ac22(0x27cc),_0x32ac22(0xca2),_0x32ac22(0x4d79),'firstonly10','firstonly100','firstonly1000',_0x32ac22(0x573),_0x32ac22(0x8f1),_0x32ac22(0x2bba),_0x32ac22(0x27b2),_0x32ac22(0x3ab),_0x32ac22(0x2e10),'forupdate',_0x32ac22(0xc81),_0x32ac22(0x29e7),'group','hint','if','implements','in',_0x32ac22(0x1cf3),'insert_recordset','interface',_0x32ac22(0x191a),'is',_0x32ac22(0x379c),_0x32ac22(0x1fb0),_0x32ac22(0x129c),_0x32ac22(0x3efd),'mod',_0x32ac22(0x3b86),'new',_0x32ac22(0x1aec),_0x32ac22(0x1025),_0x32ac22(0x34d0),_0x32ac22(0xee9),_0x32ac22(0x921),_0x32ac22(0xe6),_0x32ac22(0xa78),_0x32ac22(0x33d3),_0x32ac22(0x276d),'protected',_0x32ac22(0x1397),_0x32ac22(0x1e2b),_0x32ac22(0x4e33),_0x32ac22(0x2c41),'return',_0x32ac22(0x2a4c),_0x32ac22(0x477),_0x32ac22(0x466),'setting','static',_0x32ac22(0x510a),_0x32ac22(0x4d6e),_0x32ac22(0x68),_0x32ac22(0x2d0d),_0x32ac22(0x2b8d),'try',_0x32ac22(0x2ece),_0x32ac22(0x34dd),_0x32ac22(0x262c),_0x32ac22(0x457f),_0x32ac22(0x36ce),_0x32ac22(0x19f9),_0x32ac22(0x3ff3),_0x32ac22(0x4004),_0x32ac22(0x43c),_0x32ac22(0x217b)],'built_in':[_0x32ac22(0x3e0d),_0x32ac22(0x1206),_0x32ac22(0x18d4),'char',_0x32ac22(0x4b9),'date',_0x32ac22(0x1038),_0x32ac22(0x4afd),_0x32ac22(0xf4e),_0x32ac22(0x269f),'int64',_0x32ac22(0x3c8d),_0x32ac22(0x3746),'short',_0x32ac22(0x31ea),'utcdatetime',_0x32ac22(0x3c21)],'literal':[_0x32ac22(0x2fab),'false',_0x32ac22(0x15f0),'true']},_0x572e05={'variants':[{'match':[/(class|interface)\s+/,_0x38f1f4,/\s+(extends|implements)\s+/,_0x38f1f4]},{'match':[/class\s+/,_0x38f1f4]}],'scope':{0x2:_0x32ac22(0xc2f),0x4:_0x32ac22(0x4803)},'keywords':_0x5c34f5};return{'name':_0x32ac22(0x507),'aliases':[_0x32ac22(0x2928)],'keywords':_0x5c34f5,'contains':[_0x19efca[_0x32ac22(0x4d7)],_0x19efca[_0x32ac22(0x1bbc)],_0x19efca['APOS_STRING_MODE'],_0x19efca[_0x32ac22(0x3c93)],_0x19efca['C_NUMBER_MODE'],{'className':_0x32ac22(0x482),'begin':'#','end':'$'},_0x572e05]};};},0x21c1:_0x57bc34=>{const _0x513f19=a0_0x329b;_0x57bc34[_0x513f19(0x15de)]=function(_0x135c46){const _0x2a07f0=_0x513f19,_0x4d58f2=_0x135c46[_0x2a07f0(0x12ab)],_0x20b294={},_0x4cd73e={'begin':/\$\{/,'end':/\}/,'contains':[_0x2a07f0(0x1001),{'begin':/:-/,'contains':[_0x20b294]}]};Object[_0x2a07f0(0x11e8)](_0x20b294,{'className':_0x2a07f0(0x4b3a),'variants':[{'begin':_0x4d58f2['concat'](/\$[\w\d#@][\w\d_]*/,_0x2a07f0(0x1e14))},_0x4cd73e]});const _0x237f83={'className':_0x2a07f0(0xfeb),'begin':/\$\(/,'end':/\)/,'contains':[_0x135c46[_0x2a07f0(0x421a)]]},_0x3259ad={'begin':/<<-?\s*(?=\w+)/,'starts':{'contains':[_0x135c46[_0x2a07f0(0x138f)]({'begin':/(\w+)/,'end':/(\w+)/,'className':_0x2a07f0(0x4f7c)})]}},_0x1c5519={'className':_0x2a07f0(0x4f7c),'begin':/"/,'end':/"/,'contains':[_0x135c46['BACKSLASH_ESCAPE'],_0x20b294,_0x237f83]};_0x237f83[_0x2a07f0(0x160d)][_0x2a07f0(0x4131)](_0x1c5519);const _0x108158={'begin':/\$?\(\(/,'end':/\)\)/,'contains':[{'begin':/\d+#[0-9a-f]+/,'className':_0x2a07f0(0x1ed7)},_0x135c46[_0x2a07f0(0x1f70)],_0x20b294]},_0x5086c8=_0x135c46[_0x2a07f0(0x5e9)]({'binary':'('+['fish',_0x2a07f0(0x360d),_0x2a07f0(0x1ab3),'sh',_0x2a07f0(0x3b57),_0x2a07f0(0x2725),'tcsh',_0x2a07f0(0x3683),_0x2a07f0(0x24a)]['join']('|')+')','relevance':0xa}),_0xccc352={'className':'function','begin':/\w[\w\d_]*\s*\(\s*\)\s*\{/,'returnBegin':!0x0,'contains':[_0x135c46['inherit'](_0x135c46[_0x2a07f0(0x38c3)],{'begin':/\w[\w\d_]*/})],'relevance':0x0};return{'name':_0x2a07f0(0x3619),'aliases':['sh'],'keywords':{'$pattern':/\b[a-z][a-z0-9._-]+\b/,'keyword':['if',_0x2a07f0(0x452b),_0x2a07f0(0x36f0),_0x2a07f0(0x344b),'fi',_0x2a07f0(0x8f1),_0x2a07f0(0x217b),_0x2a07f0(0x46e8),'in','do',_0x2a07f0(0x48dc),_0x2a07f0(0x1bf3),_0x2a07f0(0x47ac),'function',_0x2a07f0(0x477)],'literal':['true',_0x2a07f0(0x3561)],'built_in':['break','cd',_0x2a07f0(0x495f),'eval',_0x2a07f0(0x3bbd),'exit',_0x2a07f0(0x5010),_0x2a07f0(0xb16),'hash',_0x2a07f0(0x1f42),_0x2a07f0(0x1e2b),'return',_0x2a07f0(0x13fc),_0x2a07f0(0x34c),_0x2a07f0(0xbef),_0x2a07f0(0x49b2),_0x2a07f0(0x28f9),'unset','alias',_0x2a07f0(0xf0f),_0x2a07f0(0x3448),'caller',_0x2a07f0(0xd8c),_0x2a07f0(0x2c65),'echo',_0x2a07f0(0x3e75),_0x2a07f0(0x33b4),_0x2a07f0(0x4647),'local',_0x2a07f0(0x1e78),_0x2a07f0(0x279a),'printf','read','readarray',_0x2a07f0(0x3b28),_0x2a07f0(0x70a),_0x2a07f0(0x4b61),_0x2a07f0(0x389f),'unalias',_0x2a07f0(0x2d7e),_0x2a07f0(0x444b),_0x2a07f0(0x2212),'bg',_0x2a07f0(0x8fc),'bye','cap',_0x2a07f0(0x3962),_0x2a07f0(0x835),_0x2a07f0(0x2f7c),'compcall','compctl',_0x2a07f0(0x3be5),'compfiles',_0x2a07f0(0x8eb),_0x2a07f0(0x268e),_0x2a07f0(0x33b),_0x2a07f0(0x139b),_0x2a07f0(0x1277),_0x2a07f0(0x44a2),'disable',_0x2a07f0(0x3794),'echotc',_0x2a07f0(0x26ac),_0x2a07f0(0x23ca),'fc','fg',_0x2a07f0(0x3ff6),_0x2a07f0(0x1f22),_0x2a07f0(0x3af7),_0x2a07f0(0x1af5),_0x2a07f0(0x4fa3),'integer',_0x2a07f0(0x1f06),_0x2a07f0(0x3f1b),_0x2a07f0(0x2383),'log',_0x2a07f0(0x36d7),_0x2a07f0(0x923),_0x2a07f0(0x33d3),_0x2a07f0(0xf21),_0x2a07f0(0x430f),_0x2a07f0(0x3079),_0x2a07f0(0x1789),_0x2a07f0(0x2057),_0x2a07f0(0x4c57),_0x2a07f0(0x1c3f),_0x2a07f0(0x191c),'ttyctl',_0x2a07f0(0x5003),'unhash',_0x2a07f0(0xcea),_0x2a07f0(0x34c5),_0x2a07f0(0x18ad),'wait',_0x2a07f0(0x20d5),_0x2a07f0(0x43c),_0x2a07f0(0x48b7),_0x2a07f0(0x1c57),_0x2a07f0(0x1767),'zftp',_0x2a07f0(0x4f88),_0x2a07f0(0x3134),'zparseopts',_0x2a07f0(0x2a32),_0x2a07f0(0x2b7a),'zregexparse','zsocket','zstyle',_0x2a07f0(0x2960),'chcon',_0x2a07f0(0x1ba9),_0x2a07f0(0x4b8b),_0x2a07f0(0x4440),'cp','dd','df',_0x2a07f0(0x1301),_0x2a07f0(0x2ba2),'ln','ls',_0x2a07f0(0x44c7),_0x2a07f0(0x3f3),'mknod',_0x2a07f0(0x3a3b),'mv',_0x2a07f0(0x1edd),'rm',_0x2a07f0(0x1f0c),_0x2a07f0(0x14af),_0x2a07f0(0xf9e),_0x2a07f0(0x3674),_0x2a07f0(0x5032),'vdir','b2sum',_0x2a07f0(0x2c0),_0x2a07f0(0xd0b),_0x2a07f0(0x2b4),_0x2a07f0(0x1e72),_0x2a07f0(0x32c7),_0x2a07f0(0x2605),_0x2a07f0(0x3e9b),_0x2a07f0(0x380d),_0x2a07f0(0x49dc),'fold',_0x2a07f0(0x20c7),_0x2a07f0(0x379c),'md5sum','nl',_0x2a07f0(0x24c6),'od',_0x2a07f0(0x4f03),_0x2a07f0(0x3208),'pr',_0x2a07f0(0x3b05),_0x2a07f0(0x4091),_0x2a07f0(0x92a),_0x2a07f0(0x2594),'sha512sum',_0x2a07f0(0x1383),_0x2a07f0(0x509),_0x2a07f0(0x29d0),_0x2a07f0(0x510a),_0x2a07f0(0x2e54),_0x2a07f0(0x14c2),'tr',_0x2a07f0(0x2201),'unexpand',_0x2a07f0(0x3e61),'wc','arch','basename','chroot',_0x2a07f0(0x576),'dirname','du',_0x2a07f0(0x1d3a),'env','expr',_0x2a07f0(0x3a42),_0x2a07f0(0xbbd),_0x2a07f0(0x3439),'id',_0x2a07f0(0x3622),_0x2a07f0(0x369f),'nice',_0x2a07f0(0x46d),'nproc','pathchk','pinky','printenv','printf','pwd',_0x2a07f0(0x4776),'runcon',_0x2a07f0(0x3d93),_0x2a07f0(0x1a54),_0x2a07f0(0x1c3f),_0x2a07f0(0x24a6),'stty',_0x2a07f0(0x244),_0x2a07f0(0x34c),_0x2a07f0(0x17c0),'tty',_0x2a07f0(0x412b),'unlink',_0x2a07f0(0x3182),_0x2a07f0(0x1cb6),_0x2a07f0(0x4464),_0x2a07f0(0x2255),_0x2a07f0(0x137f)]},'contains':[_0x5086c8,_0x135c46[_0x2a07f0(0x5e9)](),_0xccc352,_0x108158,_0x135c46[_0x2a07f0(0x165c)],_0x3259ad,{'match':/(\/[a-z._-]+)+/},_0x1c5519,{'match':/\\"/},{'className':_0x2a07f0(0x4f7c),'begin':/'/,'end':/'/},{'match':/\\'/},_0x20b294]};};},0x1991:_0x2cc250=>{const _0x57c9a1=a0_0x329b;_0x2cc250[_0x57c9a1(0x15de)]=function(_0x42cf8b){const _0xae5ecd=_0x57c9a1;return{'name':_0xae5ecd(0xa54),'case_insensitive':!0x0,'illegal':'^.','keywords':{'$pattern':_0xae5ecd(0x2bfb),'keyword':[_0xae5ecd(0x4a1a),_0xae5ecd(0xc12),_0xae5ecd(0x477d),_0xae5ecd(0x2247),_0xae5ecd(0x2e95),_0xae5ecd(0x27a5),'BLOAD|10','BSAVE|10',_0xae5ecd(0x1268),'CALLS',_0xae5ecd(0x4342),_0xae5ecd(0x13fd),_0xae5ecd(0x5038),_0xae5ecd(0x20ee),_0xae5ecd(0x3976),_0xae5ecd(0x1ca8),_0xae5ecd(0x1cb8),'CLOSE',_0xae5ecd(0x4994),_0xae5ecd(0x3dd),_0xae5ecd(0x3c9f),_0xae5ecd(0x4bd),_0xae5ecd(0x8af),'COS',_0xae5ecd(0x457d),_0xae5ecd(0x480d),_0xae5ecd(0x2f52),_0xae5ecd(0x514f),_0xae5ecd(0x1cce),_0xae5ecd(0x387c),_0xae5ecd(0x1261),_0xae5ecd(0x33ba),_0xae5ecd(0xaac),'DEFSNG',_0xae5ecd(0x373b),'DEF|0','SEG',_0xae5ecd(0x2a93),'DELETE',_0xae5ecd(0x10a7),'DRAW',_0xae5ecd(0x5090),_0xae5ecd(0x1ea),_0xae5ecd(0x51d),'ENVIRON$','EOF',_0xae5ecd(0x425f),'ERASE',_0xae5ecd(0x49a3),_0xae5ecd(0x4b0c),_0xae5ecd(0x48d),'ERR',_0xae5ecd(0x4c5f),_0xae5ecd(0x30a2),'FIELD',_0xae5ecd(0x4cfa),'FIX',_0xae5ecd(0x1e62),_0xae5ecd(0x1e5a),_0xae5ecd(0x2980),'GOSUB|10',_0xae5ecd(0x440a),_0xae5ecd(0x47ec),'IF','THEN','ELSE|0',_0xae5ecd(0x3b38),_0xae5ecd(0x2889),_0xae5ecd(0x1f7a),_0xae5ecd(0xd72),_0xae5ecd(0x1702),_0xae5ecd(0x4c45),_0xae5ecd(0x46b7),_0xae5ecd(0x3e12),_0xae5ecd(0x3742),_0xae5ecd(0x1821),'KEY','ON',_0xae5ecd(0x4ccb),'LIST',_0xae5ecd(0x10e5),_0xae5ecd(0x455c),_0xae5ecd(0x2b3d),_0xae5ecd(0x446),_0xae5ecd(0x1e67),'LLIST',_0xae5ecd(0x315b),_0xae5ecd(0x15ff),_0xae5ecd(0x3af6),'LOF',_0xae5ecd(0x1568),_0xae5ecd(0x1ce4),_0xae5ecd(0x1487),_0xae5ecd(0x1802),_0xae5ecd(0x23ec),_0xae5ecd(0x506c),_0xae5ecd(0x1140),_0xae5ecd(0x2661),_0xae5ecd(0x3923),_0xae5ecd(0x2b17),_0xae5ecd(0x18f9),_0xae5ecd(0x303c),_0xae5ecd(0x1a53),_0xae5ecd(0x1cd3),'NOISE',_0xae5ecd(0x20aa),_0xae5ecd(0x2c9c),'ON','OR',_0xae5ecd(0x158e),_0xae5ecd(0x4e53),_0xae5ecd(0x43d5),_0xae5ecd(0x3e2e),_0xae5ecd(0x3bcd),_0xae5ecd(0x436e),_0xae5ecd(0x2778),_0xae5ecd(0x3897),_0xae5ecd(0x66a),_0xae5ecd(0x4302),_0xae5ecd(0x280a),_0xae5ecd(0x2468),_0xae5ecd(0x2fe0),_0xae5ecd(0x360f),_0xae5ecd(0x3a0f),_0xae5ecd(0x4e3d),_0xae5ecd(0x2e44),_0xae5ecd(0x4691),_0xae5ecd(0x2cc1),_0xae5ecd(0x285c),_0xae5ecd(0x1f25),_0xae5ecd(0x4d15),_0xae5ecd(0x3d47),'RENUM',_0xae5ecd(0x308d),_0xae5ecd(0x4c2b),_0xae5ecd(0x299),_0xae5ecd(0x906),_0xae5ecd(0x39e),_0xae5ecd(0x2bf4),_0xae5ecd(0x4cb4),_0xae5ecd(0x1b9b),_0xae5ecd(0x3c32),'SAVE','SCREEN',_0xae5ecd(0x87e),_0xae5ecd(0x4de0),_0xae5ecd(0x1ff1),_0xae5ecd(0x2435),_0xae5ecd(0x4fcd),_0xae5ecd(0x1d89),_0xae5ecd(0xcdd),_0xae5ecd(0x1964),_0xae5ecd(0x1348),_0xae5ecd(0x3f97),'STR$',_0xae5ecd(0x27cb),_0xae5ecd(0x4cdf),_0xae5ecd(0x34f0),_0xae5ecd(0x2f0e),_0xae5ecd(0xcfd),'TIME$',_0xae5ecd(0x2843),_0xae5ecd(0x2ae7),'TRON','TO','USR',_0xae5ecd(0x69a),_0xae5ecd(0x40c3),_0xae5ecd(0x164b),_0xae5ecd(0x4dfb),'WAIT','WHILE','WEND',_0xae5ecd(0x22fa),'WINDOW',_0xae5ecd(0x2b72),_0xae5ecd(0x10e8)]},'contains':[_0x42cf8b[_0xae5ecd(0x3c93)],_0x42cf8b[_0xae5ecd(0x274a)](_0xae5ecd(0x3d47),'$',{'relevance':0xa}),_0x42cf8b[_0xae5ecd(0x274a)]('\x27','$',{'relevance':0x0}),{'className':'symbol','begin':_0xae5ecd(0x4e3e),'relevance':0xa},{'className':'number','begin':_0xae5ecd(0x49c2),'relevance':0x0},{'className':_0xae5ecd(0x1ed7),'begin':_0xae5ecd(0x4f0d)},{'className':_0xae5ecd(0x1ed7),'begin':_0xae5ecd(0xb69)}]};};},0x1a8d:_0x4562c8=>{const _0x51b378=a0_0x329b;_0x4562c8[_0x51b378(0x15de)]=function(_0x4e2ae7){const _0x12fcc7=_0x51b378;return{'name':_0x12fcc7(0x3b98),'contains':[{'className':'attribute','begin'://},{'begin':/::=/,'end':/$/,'contains':[{'begin'://},_0x4e2ae7[_0x12fcc7(0x4d7)],_0x4e2ae7[_0x12fcc7(0x1bbc)],_0x4e2ae7[_0x12fcc7(0x36ec)],_0x4e2ae7[_0x12fcc7(0x3c93)]]}]};};},0x7bc:_0x2d3ed0=>{const _0x3b3b52=a0_0x329b;_0x2d3ed0[_0x3b3b52(0x15de)]=function(_0x313977){const _0x1e8990=_0x3b3b52,_0x5b9e5f={'className':_0x1e8990(0x14b),'begin':/[+-]+/,'relevance':0x0};return{'name':_0x1e8990(0x4abd),'aliases':['bf'],'contains':[_0x313977[_0x1e8990(0x274a)](/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{'contains':[{'match':/[ ]+[^\[\]\.,\+\-<> \r\n]/,'relevance':0x0}],'returnEnd':!0x0,'relevance':0x0}),{'className':_0x1e8990(0x5f1),'begin':_0x1e8990(0x1912),'relevance':0x0},{'className':_0x1e8990(0x4f7c),'begin':_0x1e8990(0x3196),'relevance':0x0},{'begin':/(?=\+\+|--)/,'contains':[_0x5b9e5f]},_0x5b9e5f]};};},0x2d2:_0x3330a1=>{const _0x45263b=a0_0x329b;_0x3330a1[_0x45263b(0x15de)]=function(_0x4e7b0d){const _0x322968=_0x45263b,_0x5d14e2=_0x4e7b0d[_0x322968(0x12ab)],_0x22d604=_0x4e7b0d[_0x322968(0x274a)]('//','$',{'contains':[{'begin':/\\\n/}]}),_0x1817bf=_0x322968(0x26ca),_0x3b88e0=_0x322968(0x45e0),_0x592110='('+_0x1817bf+'|'+_0x5d14e2[_0x322968(0x180e)](_0x3b88e0)+_0x322968(0x341d)+_0x5d14e2[_0x322968(0x180e)]('<[^<>]+>')+')',_0x430053={'className':'type','variants':[{'begin':'\x5cb[a-z\x5cd_]*_t\x5cb'},{'match':/\batomic_[a-z]{3,6}\b/}]},_0xeb2887={'className':_0x322968(0x4f7c),'variants':[{'begin':'(u8?|U|L)?\x22','end':'\x22','illegal':'\x5cn','contains':[_0x4e7b0d[_0x322968(0x421a)]]},{'begin':'(u8?|U|L)?\x27(\x5c\x5c(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\x5cS)|.)','end':'\x27','illegal':'.'},_0x4e7b0d[_0x322968(0x138f)]({'begin':/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,'end':/\)([^()\\ ]{0,16})"/})]},_0x1b8167={'className':_0x322968(0x1ed7),'variants':[{'begin':_0x322968(0x315a)},{'begin':_0x322968(0x4e9e)},{'begin':_0x322968(0x2c71)}],'relevance':0x0},_0x1a79fa={'className':'meta','begin':/#\s*[a-z]+\b/,'end':/$/,'keywords':{'keyword':_0x322968(0x4277)},'contains':[{'begin':/\\\n/,'relevance':0x0},_0x4e7b0d[_0x322968(0x4f2)](_0xeb2887,{'className':_0x322968(0x4f7c)}),{'className':_0x322968(0x4f7c),'begin':/<.*?>/},_0x22d604,_0x4e7b0d[_0x322968(0x1bbc)]]},_0x15b83a={'className':_0x322968(0x5f1),'begin':_0x5d14e2[_0x322968(0x180e)](_0x3b88e0)+_0x4e7b0d[_0x322968(0x2cb)],'relevance':0x0},_0x2bd5eb=_0x5d14e2[_0x322968(0x180e)](_0x3b88e0)+_0x4e7b0d[_0x322968(0x2cb)]+_0x322968(0x17b4),_0x1a4779={'keyword':[_0x322968(0x137d),_0x322968(0x4a75),_0x322968(0x49c0),_0x322968(0x1bf3),_0x322968(0x495f),_0x322968(0x2fab),'do',_0x322968(0x36f0),_0x322968(0x4afd),_0x322968(0x2d37),_0x322968(0x8f1),_0x322968(0x435d),_0x322968(0x330f),'if',_0x322968(0x50d2),_0x322968(0x3fa5),_0x322968(0x946),_0x322968(0xf06),_0x322968(0x50c9),_0x322968(0x2570),'switch',_0x322968(0x4947),_0x322968(0xcc),_0x322968(0x2dab),_0x322968(0x217b),_0x322968(0x12c),'_Alignof','_Atomic',_0x322968(0x2d2e),_0x322968(0x3225),_0x322968(0x21e4),_0x322968(0x513c),'alignas','alignof','noreturn',_0x322968(0x240b),_0x322968(0xe85),_0x322968(0x14d6)],'type':['float',_0x322968(0x1038),'signed',_0x322968(0x282),_0x322968(0x269f),_0x322968(0x4fd3),'long',_0x322968(0x4743),_0x322968(0x4004),'_Bool',_0x322968(0x37c6),'_Imaginary','_Decimal32',_0x322968(0x39a3),_0x322968(0x2c35),'const','static',_0x322968(0x3602),'bool','imaginary'],'literal':'true\x20false\x20NULL','built_in':'std\x20string\x20wstring\x20cin\x20cout\x20cerr\x20clog\x20stdin\x20stdout\x20stderr\x20stringstream\x20istringstream\x20ostringstream\x20auto_ptr\x20deque\x20list\x20queue\x20stack\x20vector\x20map\x20set\x20pair\x20bitset\x20multiset\x20multimap\x20unordered_set\x20unordered_map\x20unordered_multiset\x20unordered_multimap\x20priority_queue\x20make_pair\x20array\x20shared_ptr\x20abort\x20terminate\x20abs\x20acos\x20asin\x20atan2\x20atan\x20calloc\x20ceil\x20cosh\x20cos\x20exit\x20exp\x20fabs\x20floor\x20fmod\x20fprintf\x20fputs\x20free\x20frexp\x20fscanf\x20future\x20isalnum\x20isalpha\x20iscntrl\x20isdigit\x20isgraph\x20islower\x20isprint\x20ispunct\x20isspace\x20isupper\x20isxdigit\x20tolower\x20toupper\x20labs\x20ldexp\x20log10\x20log\x20malloc\x20realloc\x20memchr\x20memcmp\x20memcpy\x20memset\x20modf\x20pow\x20printf\x20putchar\x20puts\x20scanf\x20sinh\x20sin\x20snprintf\x20sprintf\x20sqrt\x20sscanf\x20strcat\x20strchr\x20strcmp\x20strcpy\x20strcspn\x20strlen\x20strncat\x20strncmp\x20strncpy\x20strpbrk\x20strrchr\x20strspn\x20strstr\x20tanh\x20tan\x20vfprintf\x20vprintf\x20vsprintf\x20endl\x20initializer_list\x20unique_ptr'},_0xd1ef80=[_0x1a79fa,_0x430053,_0x22d604,_0x4e7b0d[_0x322968(0x1bbc)],_0x1b8167,_0xeb2887],_0x3bed78={'variants':[{'begin':/=/,'end':/;/},{'begin':/\(/,'end':/\)/},{'beginKeywords':'new\x20throw\x20return\x20else','end':/;/}],'keywords':_0x1a4779,'contains':_0xd1ef80['concat']([{'begin':/\(/,'end':/\)/,'keywords':_0x1a4779,'contains':_0xd1ef80[_0x322968(0x41bf)]([_0x322968(0x1001)]),'relevance':0x0}]),'relevance':0x0},_0x30b990={'begin':'('+_0x592110+_0x322968(0x1090)+_0x2bd5eb,'returnBegin':!0x0,'end':/[{;=]/,'excludeEnd':!0x0,'keywords':_0x1a4779,'illegal':/[^\w\s\*&:<>.]/,'contains':[{'begin':_0x1817bf,'keywords':_0x1a4779,'relevance':0x0},{'begin':_0x2bd5eb,'returnBegin':!0x0,'contains':[_0x4e7b0d[_0x322968(0x4f2)](_0x15b83a,{'className':_0x322968(0x326a)})],'relevance':0x0},{'relevance':0x0,'match':/,/},{'className':_0x322968(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0x1a4779,'relevance':0x0,'contains':[_0x22d604,_0x4e7b0d['C_BLOCK_COMMENT_MODE'],_0xeb2887,_0x1b8167,_0x430053,{'begin':/\(/,'end':/\)/,'keywords':_0x1a4779,'relevance':0x0,'contains':[_0x322968(0x1001),_0x22d604,_0x4e7b0d[_0x322968(0x1bbc)],_0xeb2887,_0x1b8167,_0x430053]}]},_0x430053,_0x22d604,_0x4e7b0d[_0x322968(0x1bbc)],_0x1a79fa]};return{'name':'C','aliases':['h'],'keywords':_0x1a4779,'disableAutodetect':!0x0,'illegal':'=]/,'contains':[{'beginKeywords':_0x322968(0x17e4)},_0x4e7b0d[_0x322968(0x38c3)]]}]),'exports':{'preprocessor':_0x1a79fa,'strings':_0xeb2887,'keywords':_0x1a4779}};};},0x19ab:_0x170940=>{const _0x387b70=a0_0x329b;_0x170940[_0x387b70(0x15de)]=function(_0x470457){const _0x1d6902=_0x387b70,_0x50027d=_0x470457[_0x1d6902(0x12ab)],_0xdb89d9=[_0x1d6902(0x257d),_0x1d6902(0x1b25),'in','and','or',_0x1d6902(0x4163),_0x1d6902(0x2bb8),_0x1d6902(0x2763),_0x1d6902(0x1706),_0x1d6902(0x1bf3),'do',_0x1d6902(0x4386),_0x1d6902(0x36f0),_0x1d6902(0x721),_0x1d6902(0x3e3a),_0x1d6902(0x8f1),'local','if','of','repeat',_0x1d6902(0x452b),'to','until',_0x1d6902(0x217b),_0x1d6902(0xa48),_0x1d6902(0x3c21)],_0x2b6ce2=[_0x470457[_0x1d6902(0x4d7)],_0x470457[_0x1d6902(0x274a)](/\{/,/\}/,{'relevance':0x0}),_0x470457[_0x1d6902(0x274a)](/\(\*/,/\*\)/,{'relevance':0xa})],_0x27f4f0={'className':_0x1d6902(0x4f7c),'begin':/'/,'end':/'/,'contains':[{'begin':/''/}]},_0x500434={'className':_0x1d6902(0x4f7c),'begin':/(#\d+)+/},_0x4ae3a2={'match':[/procedure/,/\s+/,/[a-zA-Z_][\w@]*/,/\s*/],'scope':{0x1:_0x1d6902(0x2448),0x3:_0x1d6902(0x326a)},'contains':[{'className':_0x1d6902(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0xdb89d9,'contains':[_0x27f4f0,_0x500434,_0x470457['NUMBER_MODE']]},..._0x2b6ce2]},_0x57ff07={'match':[/OBJECT/,/\s+/,_0x50027d['either'](_0x1d6902(0x2a57),_0x1d6902(0x4056),_0x1d6902(0x227f),_0x1d6902(0x199a),_0x1d6902(0xcd0),_0x1d6902(0x46f5),_0x1d6902(0x41a6),_0x1d6902(0x3aa2),_0x1d6902(0xa69)),/\s+/,/\d+/,/\s+(?=[^\s])/,/.*/,/$/],'relevance':0x3,'scope':{0x1:_0x1d6902(0x2448),0x3:_0x1d6902(0x70a),0x5:'number',0x7:'title'}};return{'name':_0x1d6902(0x1abc),'case_insensitive':!0x0,'keywords':{'keyword':_0xdb89d9,'literal':_0x1d6902(0x3570)},'illegal':/\/\*/,'contains':[{'match':/[\w]+(?=\=)/,'scope':_0x1d6902(0x47d5),'relevance':0x0},_0x27f4f0,_0x500434,{'className':_0x1d6902(0x1ed7),'begin':'\x5cb\x5cd+(\x5c.\x5cd+)?(DT|D|T)','relevance':0x0},{'className':_0x1d6902(0x4f7c),'begin':'\x22','end':'\x22'},_0x470457[_0x1d6902(0x1f70)],_0x57ff07,_0x4ae3a2]};};},0x25a7:_0x31be9c=>{const _0x361ab2=a0_0x329b;_0x31be9c[_0x361ab2(0x15de)]=function(_0x2bdd61){const _0x357014=_0x361ab2,_0xca91e={'variants':[{'match':[/(struct|enum|interface)/,/\s+/,_0x2bdd61[_0x357014(0x2cb)]]},{'match':[/extends/,/\s*\(/,_0x2bdd61[_0x357014(0x2cb)],/\s*\)/]}],'scope':{0x1:_0x357014(0x2448),0x3:_0x357014(0xc2f)}};return{'name':_0x357014(0x5087),'aliases':[_0x357014(0x7c4)],'keywords':{'keyword':[_0x357014(0x2570),_0x357014(0x4afd),'interface','union',_0x357014(0x4941),_0x357014(0x2c76),_0x357014(0x19f9),_0x357014(0x27b),_0x357014(0x2af6),_0x357014(0x5048),'in','of','on','as',_0x357014(0xa48),'from',_0x357014(0x2940)],'type':[_0x357014(0x1cc4),_0x357014(0x427e),'Int8','Int16',_0x357014(0x337f),_0x357014(0x126f),_0x357014(0x298a),'UInt16',_0x357014(0x4585),_0x357014(0x323e),'Float32',_0x357014(0x3f9b),'Text','Data',_0x357014(0x4b0a),_0x357014(0x1a1f),'Capability','List'],'literal':[_0x357014(0x23f6),_0x357014(0x3561)]},'contains':[_0x2bdd61[_0x357014(0x3c93)],_0x2bdd61[_0x357014(0x1f70)],_0x2bdd61['HASH_COMMENT_MODE'],{'className':_0x357014(0x482),'begin':/@0x[\w\d]{16};/,'illegal':/\n/},{'className':'symbol','begin':/@\d+\b/},_0xca91e]};};},0x1fb:_0x3cbe9c=>{_0x3cbe9c['exports']=function(_0x3a4d99){const _0x37bf08=a0_0x329b,_0x339f9c=[_0x37bf08(0x475),'module',_0x37bf08(0x4574),'import',_0x37bf08(0x1f89),'class',_0x37bf08(0x1fc2),_0x37bf08(0x2b58),_0x37bf08(0x1ff0),_0x37bf08(0x1827),_0x37bf08(0x11e8),_0x37bf08(0x4004),_0x37bf08(0x3dfb),'new','of',_0x37bf08(0x5048),_0x37bf08(0x1fcc),_0x37bf08(0x2f57),'in','out',_0x37bf08(0xf06),'break',_0x37bf08(0x495f),_0x37bf08(0x2b8d),'assert','dynamic','if',_0x37bf08(0x36f0),'switch','case',_0x37bf08(0x8f1),_0x37bf08(0x217b),_0x37bf08(0x47b4),_0x37bf08(0x424a),_0x37bf08(0x292f),_0x37bf08(0x452b),'let',_0x37bf08(0x2d0d),_0x37bf08(0xe6),_0x37bf08(0x4d6e),'is',_0x37bf08(0x41b8),_0x37bf08(0x8c9)],_0x45d3cc={'className':'subst','excludeBegin':!0x0,'excludeEnd':!0x0,'begin':/``/,'end':/``/,'keywords':_0x339f9c,'relevance':0xa},_0xbff076=[{'className':_0x37bf08(0x4f7c),'begin':_0x37bf08(0x3a07),'end':_0x37bf08(0x3a07),'relevance':0xa},{'className':'string','begin':'\x22','end':'\x22','contains':[_0x45d3cc]},{'className':_0x37bf08(0x4f7c),'begin':'\x27','end':'\x27'},{'className':_0x37bf08(0x1ed7),'begin':_0x37bf08(0x1e3c),'relevance':0x0}];return _0x45d3cc[_0x37bf08(0x160d)]=_0xbff076,{'name':_0x37bf08(0x1ff7),'keywords':{'keyword':_0x339f9c['concat']([_0x37bf08(0x186),'abstract',_0x37bf08(0x185f),_0x37bf08(0x2fab),'actual',_0x37bf08(0x4b3a),_0x37bf08(0x2e4f),_0x37bf08(0x4341),_0x37bf08(0x2c06),'final',_0x37bf08(0x45a),_0x37bf08(0x2af6),_0x37bf08(0x3842),'small']),'meta':[_0x37bf08(0xc96),'by',_0x37bf08(0x815),_0x37bf08(0x1c3b),_0x37bf08(0x4c65),_0x37bf08(0x3181)]},'illegal':'\x5c$[^01]|#[^0-9a-fA-F]','contains':[_0x3a4d99[_0x37bf08(0x4d7)],_0x3a4d99['COMMENT'](_0x37bf08(0x1a19),'\x5c*/',{'contains':[_0x37bf08(0x1001)]}),{'className':_0x37bf08(0x482),'begin':_0x37bf08(0x4b62)}][_0x37bf08(0x41bf)](_0xbff076)};};},0x41a:_0x30c867=>{_0x30c867['exports']=function(_0x4b2c46){const _0x388adf=a0_0x329b;return{'name':_0x388adf(0x4954),'aliases':[_0x388adf(0x4d6b),'dcl'],'keywords':{'keyword':['if',_0x388adf(0x4647),'in',_0x388adf(0xa48),_0x388adf(0x43c),_0x388adf(0x1bf3),'of',_0x388adf(0x42ec),'instance','otherwise',_0x388adf(0x3e20),_0x388adf(0x2371),_0x388adf(0x2805),_0x388adf(0x2d36),_0x388adf(0xc81),'import',_0x388adf(0x2750),'as',_0x388adf(0x9db),'code',_0x388adf(0x50d2),_0x388adf(0x15a6),_0x388adf(0x5010),'ccall',_0x388adf(0x1ca),_0x388adf(0xf11),'derive','infix',_0x388adf(0x181e),'infixr'],'built_in':_0x388adf(0x16ff),'literal':_0x388adf(0xf70)},'contains':[_0x4b2c46[_0x388adf(0x4d7)],_0x4b2c46['C_BLOCK_COMMENT_MODE'],_0x4b2c46[_0x388adf(0x36ec)],_0x4b2c46[_0x388adf(0x3c93)],_0x4b2c46[_0x388adf(0x3d6a)],{'begin':_0x388adf(0x55b)}]};};},0x2581:_0x33960e=>{const _0x4d6aae=a0_0x329b;_0x33960e[_0x4d6aae(0x15de)]=function(_0x3b3219){const _0x52a82c=_0x4d6aae;return{'name':_0x52a82c(0x47c1),'contains':[{'className':'meta.prompt','begin':/^([\w.-]+|\s*#_)?=>/,'starts':{'end':/$/,'subLanguage':_0x52a82c(0x440b)}}]};};},0x1d9b:_0xca8389=>{_0xca8389['exports']=function(_0x350ea8){const _0x255dcb=a0_0x329b,_0x392706='a-zA-Z_\x5c-!.?+*=<>&\x27',_0x304f3c=_0x255dcb(0x18db)+_0x392706+']['+_0x392706+_0x255dcb(0x4a37),_0x327547=_0x255dcb(0x3a7f),_0x1aaeac={'$pattern':_0x304f3c,'built_in':_0x327547+_0x255dcb(0x18a6)},_0x326d44={'begin':_0x304f3c,'relevance':0x0},_0x29c201={'scope':_0x255dcb(0x1ed7),'relevance':0x0,'variants':[{'match':/[-+]?0[xX][0-9a-fA-F]+N?/},{'match':/[-+]?0[0-7]+N?/},{'match':/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{'match':/[-+]?[0-9]+\/[0-9]+N?/},{'match':/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{'match':/[-+]?([1-9][0-9]*|0)N?/}]},_0x5a9e43={'scope':_0x255dcb(0x4962),'variants':[{'match':/\\o[0-3]?[0-7]{1,2}/},{'match':/\\u[0-9a-fA-F]{4}/},{'match':/\\(newline|space|tab|formfeed|backspace|return)/},{'match':/\\\S/,'relevance':0x0}]},_0x479dec={'scope':_0x255dcb(0x12ab),'begin':/#"/,'end':/"/,'contains':[_0x350ea8['BACKSLASH_ESCAPE']]},_0x505ade=_0x350ea8[_0x255dcb(0x4f2)](_0x350ea8[_0x255dcb(0x3c93)],{'illegal':null}),_0x2284c6={'scope':_0x255dcb(0x42e1),'match':/,/,'relevance':0x0},_0x1896ce=_0x350ea8['COMMENT'](';','$',{'relevance':0x0}),_0x5e5037={'className':'literal','begin':/\b(true|false|nil)\b/},_0x1ba1f1={'begin':_0x255dcb(0x483f)+_0x304f3c+')?\x5c{','end':_0x255dcb(0x998),'relevance':0x0},_0x4f504f={'className':'symbol','begin':_0x255dcb(0x21e5)+_0x304f3c},_0x2b105e={'begin':'\x5c(','end':'\x5c)'},_0x234ef2={'endsWithParent':!0x0,'relevance':0x0},_0x2c504e={'keywords':_0x1aaeac,'className':_0x255dcb(0x3d9d),'begin':_0x304f3c,'relevance':0x0,'starts':_0x234ef2},_0x1cc75f=[_0x2284c6,_0x2b105e,_0x5a9e43,_0x479dec,_0x505ade,_0x1896ce,_0x4f504f,_0x1ba1f1,_0x29c201,_0x5e5037,_0x326d44],_0x1d709e={'beginKeywords':_0x327547,'keywords':{'$pattern':_0x304f3c,'keyword':_0x327547},'end':_0x255dcb(0x2464),'contains':[{'className':_0x255dcb(0x5f1),'begin':_0x304f3c,'relevance':0x0,'excludeEnd':!0x0,'endsParent':!0x0}][_0x255dcb(0x41bf)](_0x1cc75f)};return _0x2b105e[_0x255dcb(0x160d)]=[_0x1d709e,_0x2c504e,_0x234ef2],_0x234ef2['contains']=_0x1cc75f,_0x1ba1f1['contains']=_0x1cc75f,{'name':_0x255dcb(0x32ae),'aliases':['clj','edn'],'illegal':/\S/,'contains':[_0x2284c6,_0x2b105e,_0x5a9e43,_0x479dec,_0x505ade,_0x1896ce,_0x4f504f,_0x1ba1f1,_0x29c201,_0x5e5037]};};},0x7d8:_0x255987=>{const _0x2365e4=a0_0x329b;_0x255987[_0x2365e4(0x15de)]=function(_0x4ce243){const _0x344066=_0x2365e4;return{'name':_0x344066(0xbd3),'aliases':[_0x344066(0x4cc5)],'case_insensitive':!0x0,'keywords':{'keyword':_0x344066(0xd07)},'contains':[{'className':'variable','begin':/\$\{/,'end':/\}/},_0x4ce243[_0x344066(0x274a)](/#\[\[/,/]]/),_0x4ce243[_0x344066(0x165c)],_0x4ce243[_0x344066(0x3c93)],_0x4ce243[_0x344066(0x1f70)]]};};},0x20ac:_0x4b636d=>{const _0x26b1de=a0_0x329b,_0x1004ad=['as','in','of','if',_0x26b1de(0x8f1),_0x26b1de(0x217b),_0x26b1de(0x292f),_0x26b1de(0x3c21),_0x26b1de(0x386e),_0x26b1de(0x3dfb),'do',_0x26b1de(0xf06),_0x26b1de(0x4004),'else',_0x26b1de(0x49c0),'catch','instanceof',_0x26b1de(0xa48),_0x26b1de(0x2b8d),_0x26b1de(0x1bf3),'default',_0x26b1de(0x47b4),_0x26b1de(0x68),_0x26b1de(0x495f),_0x26b1de(0x3445),_0x26b1de(0x450b),_0x26b1de(0x4647),_0x26b1de(0x25d6),_0x26b1de(0x27b),'class','debugger',_0x26b1de(0x11f8),_0x26b1de(0x34ed),_0x26b1de(0x2308),_0x26b1de(0x2c76),_0x26b1de(0xc81),_0x26b1de(0x5010),_0x26b1de(0x5048)],_0x549718=[_0x26b1de(0x23f6),_0x26b1de(0x3561),_0x26b1de(0x15f0),'undefined',_0x26b1de(0x46ea),_0x26b1de(0x2b62)],_0x73a021=[][_0x26b1de(0x41bf)]([_0x26b1de(0x2590),_0x26b1de(0x31d6),_0x26b1de(0x4711),_0x26b1de(0x3578),_0x26b1de(0x188),_0x26b1de(0x15de),'eval','isFinite','isNaN',_0x26b1de(0x148d),_0x26b1de(0xf2b),_0x26b1de(0x1e37),_0x26b1de(0xb99),'encodeURI',_0x26b1de(0x41fc),_0x26b1de(0x2828),'unescape'],[_0x26b1de(0x2503),_0x26b1de(0x1be9),_0x26b1de(0x14e6),_0x26b1de(0x48ca),_0x26b1de(0x135a),_0x26b1de(0x3c98),_0x26b1de(0x4cba),_0x26b1de(0x441f),_0x26b1de(0x2f8c),_0x26b1de(0x3057),_0x26b1de(0x2804),_0x26b1de(0x3829),_0x26b1de(0x3d4),_0x26b1de(0x2ddd),_0x26b1de(0x2b2d),_0x26b1de(0x3df5),_0x26b1de(0xd58),_0x26b1de(0x11b1),_0x26b1de(0xf8),_0x26b1de(0xbf8),_0x26b1de(0x34e2),_0x26b1de(0x3139),'Set',_0x26b1de(0x2ebc),_0x26b1de(0x3489),'WeakMap','ArrayBuffer',_0x26b1de(0x37ff),_0x26b1de(0x3a4b),'DataView',_0x26b1de(0x285f),_0x26b1de(0xee2),'Generator','GeneratorFunction','AsyncFunction',_0x26b1de(0x36ab),_0x26b1de(0x16f6),_0x26b1de(0x286d),_0x26b1de(0x854)],[_0x26b1de(0x3e38),'EvalError',_0x26b1de(0x80c),_0x26b1de(0x4663),_0x26b1de(0x21f8),_0x26b1de(0x3e4e),_0x26b1de(0x1c91),_0x26b1de(0x2b93)]);_0x4b636d[_0x26b1de(0x15de)]=function(_0x3920bc){const _0x179ef4=_0x26b1de,_0x14937e={'keyword':_0x1004ad[_0x179ef4(0x41bf)]([_0x179ef4(0x452b),_0x179ef4(0x4f02),'until',_0x179ef4(0x2ca7),'by',_0x179ef4(0x489c),'and','or','is',_0x179ef4(0x4b9d),_0x179ef4(0x4163)])['filter']((_0x191f5d=[_0x179ef4(0x3c21),_0x179ef4(0x27b),_0x179ef4(0x4647),'function','static'],_0x15af02=>!_0x191f5d[_0x179ef4(0x1fa2)](_0x15af02))),'literal':_0x549718[_0x179ef4(0x41bf)]([_0x179ef4(0x137f),'no','on','off']),'built_in':_0x73a021[_0x179ef4(0x41bf)]([_0x179ef4(0x1e54),'print'])};var _0x191f5d;const _0x28893a=_0x179ef4(0x38e8),_0x43c5ec={'className':_0x179ef4(0xfeb),'begin':/#\{/,'end':/\}/,'keywords':_0x14937e},_0x42e0ba=[_0x3920bc[_0x179ef4(0x30c0)],_0x3920bc['inherit'](_0x3920bc[_0x179ef4(0x3d6a)],{'starts':{'end':_0x179ef4(0xa5f),'relevance':0x0}}),{'className':_0x179ef4(0x4f7c),'variants':[{'begin':/'''/,'end':/'''/,'contains':[_0x3920bc[_0x179ef4(0x421a)]]},{'begin':/'/,'end':/'/,'contains':[_0x3920bc[_0x179ef4(0x421a)]]},{'begin':/"""/,'end':/"""/,'contains':[_0x3920bc['BACKSLASH_ESCAPE'],_0x43c5ec]},{'begin':/"/,'end':/"/,'contains':[_0x3920bc[_0x179ef4(0x421a)],_0x43c5ec]}]},{'className':_0x179ef4(0x27ae),'variants':[{'begin':'///','end':_0x179ef4(0xae7),'contains':[_0x43c5ec,_0x3920bc['HASH_COMMENT_MODE']]},{'begin':_0x179ef4(0x1094),'relevance':0x0},{'begin':/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{'begin':'@'+_0x28893a},{'subLanguage':'javascript','excludeBegin':!0x0,'excludeEnd':!0x0,'variants':[{'begin':_0x179ef4(0xc1e),'end':_0x179ef4(0xc1e)},{'begin':'`','end':'`'}]}];_0x43c5ec['contains']=_0x42e0ba;const _0x2dcc7d=_0x3920bc[_0x179ef4(0x4f2)](_0x3920bc[_0x179ef4(0x38c3)],{'begin':_0x28893a}),_0x231edd='(\x5c(.*\x5c)\x5cs*)?\x5cB[-=]>',_0x246d44={'className':_0x179ef4(0x4f24),'begin':'\x5c([^\x5c(]','returnBegin':!0x0,'contains':[{'begin':/\(/,'end':/\)/,'keywords':_0x14937e,'contains':[_0x179ef4(0x1001)][_0x179ef4(0x41bf)](_0x42e0ba)}]},_0x55c822={'variants':[{'match':[/class\s+/,_0x28893a,/\s+extends\s+/,_0x28893a]},{'match':[/class\s+/,_0x28893a]}],'scope':{0x2:_0x179ef4(0xc2f),0x4:'title.class.inherited'},'keywords':_0x14937e};return{'name':_0x179ef4(0x24c),'aliases':[_0x179ef4(0x27fc),_0x179ef4(0x11f6),'iced'],'keywords':_0x14937e,'illegal':/\/\*/,'contains':[..._0x42e0ba,_0x3920bc['COMMENT'](_0x179ef4(0xc7c),'###'),_0x3920bc[_0x179ef4(0x165c)],{'className':_0x179ef4(0x3dfb),'begin':_0x179ef4(0x1628)+_0x28893a+_0x179ef4(0x2270)+_0x231edd,'end':_0x179ef4(0x403b),'returnBegin':!0x0,'contains':[_0x2dcc7d,_0x246d44]},{'begin':/[:\(,=]\s*/,'relevance':0x0,'contains':[{'className':_0x179ef4(0x3dfb),'begin':_0x231edd,'end':_0x179ef4(0x403b),'returnBegin':!0x0,'contains':[_0x246d44]}]},_0x55c822,{'begin':_0x28893a+':','end':':','returnBegin':!0x0,'returnEnd':!0x0,'relevance':0x0}]};};},0x25fa:_0x18ab66=>{const _0x57ee34=a0_0x329b;_0x18ab66[_0x57ee34(0x15de)]=function(_0xf8a5b4){const _0x5d01c4=_0x57ee34;return{'name':_0x5d01c4(0x44c3),'keywords':{'keyword':[_0x5d01c4(0x2ec8),'as','at','cofix',_0x5d01c4(0x36f0),'end',_0x5d01c4(0x41b8),_0x5d01c4(0x361d),_0x5d01c4(0x184a),_0x5d01c4(0x8f1),'forall',_0x5d01c4(0x2d78),'if','IF','in',_0x5d01c4(0x4647),_0x5d01c4(0xdc0),_0x5d01c4(0x1b25),_0x5d01c4(0x11ad),_0x5d01c4(0xf06),'Set','then',_0x5d01c4(0x3a5),_0x5d01c4(0x19f9),_0x5d01c4(0x43c),_0x5d01c4(0xa48),'Abort',_0x5d01c4(0xc05),_0x5d01c4(0x3cf9),'Admit',_0x5d01c4(0x12e3),'All',_0x5d01c4(0x3e08),_0x5d01c4(0x1e4b),_0x5d01c4(0x1f31),_0x5d01c4(0x50df),_0x5d01c4(0x4366),_0x5d01c4(0x212e),_0x5d01c4(0xf65),_0x5d01c4(0x4eae),_0x5d01c4(0x4aa2),'Cd',_0x5d01c4(0x668),_0x5d01c4(0x3859),_0x5d01c4(0x2958),_0x5d01c4(0x3670),'Coercion',_0x5d01c4(0x1825),'CoFixpoint',_0x5d01c4(0x24c9),_0x5d01c4(0x669),_0x5d01c4(0x1bdd),_0x5d01c4(0x9d5),'Conjecture',_0x5d01c4(0x3100),_0x5d01c4(0x1f2a),_0x5d01c4(0x1218),'Constraint',_0x5d01c4(0x24f2),_0x5d01c4(0x2326),_0x5d01c4(0x2ca1),_0x5d01c4(0x1208),'Cut',_0x5d01c4(0x2f92),_0x5d01c4(0x1d13),_0x5d01c4(0x255a),'Delimit',_0x5d01c4(0x1bfa),'Dependent',_0x5d01c4(0x3575),_0x5d01c4(0x1a2f),'eauto',_0x5d01c4(0x1d92),_0x5d01c4(0x60c),'Eval','Example',_0x5d01c4(0x30a6),_0x5d01c4(0xdfa),_0x5d01c4(0x47c4),_0x5d01c4(0x4e87),_0x5d01c4(0x18ee),_0x5d01c4(0x428d),_0x5d01c4(0xe68),_0x5d01c4(0x50f9),_0x5d01c4(0xd4c),'Field',_0x5d01c4(0x3ddb),'File',_0x5d01c4(0xaa4),_0x5d01c4(0x3c49),_0x5d01c4(0x8f1),_0x5d01c4(0x1203),'Function',_0x5d01c4(0x2a1d),'Generalizable',_0x5d01c4(0x18d0),_0x5d01c4(0x3798),_0x5d01c4(0x24aa),'Grammar',_0x5d01c4(0xd32),'Guarded',_0x5d01c4(0x25af),_0x5d01c4(0x935),_0x5d01c4(0x388c),_0x5d01c4(0x1711),_0x5d01c4(0x3e8c),_0x5d01c4(0x4e74),_0x5d01c4(0x1e0d),_0x5d01c4(0x1c6b),'If','Immediate',_0x5d01c4(0x220f),_0x5d01c4(0x2ad8),_0x5d01c4(0xb36),'Inductive','Infix','Info',_0x5d01c4(0x417f),_0x5d01c4(0x4291),'Inspect',_0x5d01c4(0x1be6),_0x5d01c4(0x3b0c),'Intro',_0x5d01c4(0x3b6e),'Inversion',_0x5d01c4(0x4b56),_0x5d01c4(0x4eff),'Left',_0x5d01c4(0x3576),_0x5d01c4(0x1620),_0x5d01c4(0x14c),_0x5d01c4(0xdb7),_0x5d01c4(0x2263),_0x5d01c4(0x3a25),'Local',_0x5d01c4(0x4bc4),_0x5d01c4(0x2e57),'ML',_0x5d01c4(0x1c89),_0x5d01c4(0x3983),_0x5d01c4(0x3822),_0x5d01c4(0x520),'Morphism',_0x5d01c4(0xa6f),_0x5d01c4(0x26e4),_0x5d01c4(0x2c02),'Obligation',_0x5d01c4(0x2405),_0x5d01c4(0x3de2),_0x5d01c4(0x96c),_0x5d01c4(0xa7e),_0x5d01c4(0x20ef),_0x5d01c4(0x1973),'Parameters',_0x5d01c4(0x344e),_0x5d01c4(0x4f7e),_0x5d01c4(0x4866),_0x5d01c4(0x5094),'Polymorphic',_0x5d01c4(0x3409),_0x5d01c4(0x15e9),'Printing',_0x5d01c4(0x4f29),_0x5d01c4(0x33aa),_0x5d01c4(0xe75),_0x5d01c4(0x2079),_0x5d01c4(0x1e85),'Qed',_0x5d01c4(0x16c0),_0x5d01c4(0x3ca1),'Record',_0x5d01c4(0x4d21),'Redirect',_0x5d01c4(0x1dcf),_0x5d01c4(0x3873),'Remove',_0x5d01c4(0x1403),_0x5d01c4(0x2b22),_0x5d01c4(0x317a),_0x5d01c4(0x27e6),_0x5d01c4(0x364c),_0x5d01c4(0x1003),_0x5d01c4(0x57d),_0x5d01c4(0x1a7),_0x5d01c4(0x2537),_0x5d01c4(0x457),'Scheme',_0x5d01c4(0x423d),_0x5d01c4(0x33fb),'Script',_0x5d01c4(0x3965),_0x5d01c4(0x3e77),_0x5d01c4(0x50ff),_0x5d01c4(0x2322),_0x5d01c4(0x4af8),'Section',_0x5d01c4(0x4bb),'Set',_0x5d01c4(0x44b8),_0x5d01c4(0x246c),_0x5d01c4(0x1bed),'Sorted',_0x5d01c4(0x27d9),_0x5d01c4(0x48e2),'Strategy',_0x5d01c4(0x4dd8),_0x5d01c4(0x2fc2),_0x5d01c4(0x2a57),'Tables',_0x5d01c4(0x19cc),_0x5d01c4(0x483),_0x5d01c4(0x1599),_0x5d01c4(0x4c3c),'Time',_0x5d01c4(0x3212),_0x5d01c4(0x6fe),_0x5d01c4(0x3a5),_0x5d01c4(0xdef),_0x5d01c4(0x3cfe),_0x5d01c4(0x2f17),'Undo',_0x5d01c4(0x1a2c),_0x5d01c4(0x3dcb),_0x5d01c4(0x4e26),_0x5d01c4(0x3b3f),_0x5d01c4(0xa94),_0x5d01c4(0x1b5c),'Unshelve',_0x5d01c4(0x19f9),_0x5d01c4(0x1724),_0x5d01c4(0x154),_0x5d01c4(0x1a4d),_0x5d01c4(0x3461),_0x5d01c4(0x33a9),_0x5d01c4(0x43c),'with'],'built_in':[_0x5d01c4(0x3ba4),'absurd','admit',_0x5d01c4(0x1f69),_0x5d01c4(0x3138),'as','assert',_0x5d01c4(0x334d),'at','auto',_0x5d01c4(0x436),'autounfold','before',_0x5d01c4(0xaf9),_0x5d01c4(0x1b0d),'by',_0x5d01c4(0x1bf3),_0x5d01c4(0x2f58),_0x5d01c4(0xb49),_0x5d01c4(0x8a8),'change',_0x5d01c4(0xc5f),'classical_right',_0x5d01c4(0x30a1),_0x5d01c4(0x1fa),_0x5d01c4(0x43c5),_0x5d01c4(0x3b2a),'compute','congruence',_0x5d01c4(0xde),_0x5d01c4(0x31f6),_0x5d01c4(0x7f5),_0x5d01c4(0x34f3),_0x5d01c4(0x3e9b),'cutrewrite',_0x5d01c4(0x45f),_0x5d01c4(0x5049),'decompose',_0x5d01c4(0x37cb),_0x5d01c4(0x156b),_0x5d01c4(0x171f),'dintuition',_0x5d01c4(0x293e),_0x5d01c4(0x40d3),'do',_0x5d01c4(0x1038),_0x5d01c4(0x3569),_0x5d01c4(0x117c),'eassumption',_0x5d01c4(0x1682),_0x5d01c4(0x495b),_0x5d01c4(0x1507),'edestruct',_0x5d01c4(0x4025),_0x5d01c4(0x1f53),'eexact',_0x5d01c4(0x154d),_0x5d01c4(0x892),_0x5d01c4(0x3dae),_0x5d01c4(0x3f3a),_0x5d01c4(0x44ca),_0x5d01c4(0xd10),'enough',_0x5d01c4(0x3e7b),_0x5d01c4(0x64c),'eright','esimplify_eq',_0x5d01c4(0x2d4f),_0x5d01c4(0x131c),_0x5d01c4(0x2617),_0x5d01c4(0x4fb7),_0x5d01c4(0x2c0e),_0x5d01c4(0x41b8),_0x5d01c4(0x282b),_0x5d01c4(0x171a),_0x5d01c4(0x20f1),_0x5d01c4(0x337a),_0x5d01c4(0x5147),_0x5d01c4(0x509c),_0x5d01c4(0x17d4),'fix',_0x5d01c4(0x4fde),_0x5d01c4(0x1a64),_0x5d01c4(0x250d),_0x5d01c4(0x1640),_0x5d01c4(0xd80),_0x5d01c4(0x4100),_0x5d01c4(0x28d3),_0x5d01c4(0x1ad1),_0x5d01c4(0x3c84),'idtac','in','induction',_0x5d01c4(0x1614),_0x5d01c4(0x43d7),_0x5d01c4(0x44fb),'intro_pattern',_0x5d01c4(0x25c1),_0x5d01c4(0x95),_0x5d01c4(0x3596),_0x5d01c4(0xec2),_0x5d01c4(0x2825),'is_var',_0x5d01c4(0x4084),_0x5d01c4(0x4f2f),_0x5d01c4(0x24d0),_0x5d01c4(0x4f95),_0x5d01c4(0x4727),_0x5d01c4(0x470b),'native_compute','nia',_0x5d01c4(0x4427),'omega',_0x5d01c4(0x97b),_0x5d01c4(0x5094),_0x5d01c4(0x35ff),'progress','proof','psatz','quote',_0x5d01c4(0xf1d),_0x5d01c4(0x3219),_0x5d01c4(0xe8),_0x5d01c4(0x43e2),_0x5d01c4(0x5da),_0x5d01c4(0x15b7),'repeat',_0x5d01c4(0x1db7),_0x5d01c4(0x1ca2),_0x5d01c4(0x1ff2),_0x5d01c4(0x231c),_0x5d01c4(0x31f4),'right',_0x5d01c4(0xe8f),_0x5d01c4(0x4f70),'rtauto',_0x5d01c4(0x2d7e),_0x5d01c4(0x15e3),_0x5d01c4(0x3ad9),'setoid_rewrite',_0x5d01c4(0x1fe7),'setoid_transitivity','shelve',_0x5d01c4(0x2515),_0x5d01c4(0x4a48),'simple','simplify_eq',_0x5d01c4(0x2ac7),'specialize',_0x5d01c4(0x29d0),_0x5d01c4(0x4af3),_0x5d01c4(0x4bd6),_0x5d01c4(0xb33),_0x5d01c4(0x1dbc),_0x5d01c4(0xfeb),_0x5d01c4(0x510a),'swap',_0x5d01c4(0x1c90),_0x5d01c4(0x1ef4),'tauto',_0x5d01c4(0x4443),_0x5d01c4(0x17c0),'top',_0x5d01c4(0x928),'trivial',_0x5d01c4(0x47b4),_0x5d01c4(0x1887),_0x5d01c4(0x1558),'unify','until','using',_0x5d01c4(0x1769),_0x5d01c4(0xa48)]},'contains':[_0xf8a5b4[_0x5d01c4(0x3c93)],_0xf8a5b4['COMMENT']('\x5c(\x5c*',_0x5d01c4(0x47f6)),_0xf8a5b4[_0x5d01c4(0x3d6a)],{'className':'type','excludeBegin':!0x0,'begin':_0x5d01c4(0x4c9e),'end':_0x5d01c4(0x3bd6)},{'begin':/[-=]>/}]};};},0x2450:_0x502cf1=>{const _0x1453db=a0_0x329b;_0x502cf1[_0x1453db(0x15de)]=function(_0x3b403e){const _0xe711d2=_0x1453db;return{'name':'Caché\x20Object\x20Script','case_insensitive':!0x0,'aliases':[_0xe711d2(0x3b29)],'keywords':_0xe711d2(0xa52),'contains':[{'className':_0xe711d2(0x1ed7),'begin':'\x5cb(\x5cd+(\x5c.\x5cd*)?|\x5c.\x5cd+)','relevance':0x0},{'className':_0xe711d2(0x4f7c),'variants':[{'begin':'\x22','end':'\x22','contains':[{'begin':'\x22\x22','relevance':0x0}]}]},_0x3b403e['C_LINE_COMMENT_MODE'],_0x3b403e[_0xe711d2(0x1bbc)],{'className':_0xe711d2(0x43ca),'begin':/;/,'end':'$','relevance':0x0},{'className':'built_in','begin':/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{'className':'built_in','begin':/\$\$\$[a-zA-Z]+/},{'className':_0xe711d2(0x4853),'begin':/%[a-z]+(?:\.[a-z]+)*/},{'className':_0xe711d2(0x3148),'begin':/\^%?[a-zA-Z][\w]*/},{'className':_0xe711d2(0x2448),'begin':/##class|##super|#define|#dim/},{'begin':/&sql\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'subLanguage':_0xe711d2(0x24b4)},{'begin':/&(js|jscript|javascript)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'subLanguage':_0xe711d2(0x1269)},{'begin':/&html<\s*\s*>/,'subLanguage':'xml'}]};};},0x19aa:_0x576cdf=>{const _0x59bf7d=a0_0x329b;_0x576cdf[_0x59bf7d(0x15de)]=function(_0x525102){const _0x4e2866=_0x59bf7d,_0x3ece1d=_0x525102[_0x4e2866(0x12ab)],_0x30d01d=_0x525102[_0x4e2866(0x274a)]('//','$',{'contains':[{'begin':/\\\n/}]}),_0x1678c0='decltype\x5c(auto\x5c)',_0x4f222a=_0x4e2866(0x45e0),_0xb322c0='(?!struct)('+_0x1678c0+'|'+_0x3ece1d[_0x4e2866(0x180e)](_0x4f222a)+'[a-zA-Z_]\x5cw*'+_0x3ece1d[_0x4e2866(0x180e)]('<[^<>]+>')+')',_0x1bd498={'className':_0x4e2866(0x70a),'begin':'\x5cb[a-z\x5cd_]*_t\x5cb'},_0x4c43c7={'className':_0x4e2866(0x4f7c),'variants':[{'begin':'(u8?|U|L)?\x22','end':'\x22','illegal':'\x5cn','contains':[_0x525102[_0x4e2866(0x421a)]]},{'begin':_0x4e2866(0x1f19),'end':'\x27','illegal':'.'},_0x525102[_0x4e2866(0x138f)]({'begin':/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,'end':/\)([^()\\ ]{0,16})"/})]},_0x1c7247={'className':'number','variants':[{'begin':_0x4e2866(0x315a)},{'begin':_0x4e2866(0x4e9e)},{'begin':_0x4e2866(0x2c71)}],'relevance':0x0},_0x2ff99f={'className':_0x4e2866(0x482),'begin':/#\s*[a-z]+\b/,'end':/$/,'keywords':{'keyword':_0x4e2866(0x4277)},'contains':[{'begin':/\\\n/,'relevance':0x0},_0x525102[_0x4e2866(0x4f2)](_0x4c43c7,{'className':_0x4e2866(0x4f7c)}),{'className':'string','begin':/<.*?>/},_0x30d01d,_0x525102['C_BLOCK_COMMENT_MODE']]},_0x9d100f={'className':'title','begin':_0x3ece1d[_0x4e2866(0x180e)](_0x4f222a)+_0x525102[_0x4e2866(0x2cb)],'relevance':0x0},_0x243dbc=_0x3ece1d['optional'](_0x4f222a)+_0x525102[_0x4e2866(0x2cb)]+_0x4e2866(0x17b4),_0x458041={'type':[_0x4e2866(0x3618),_0x4e2866(0x4743),_0x4e2866(0x2803),_0x4e2866(0x335f),'char8_t','double','float','int',_0x4e2866(0x3c8d),_0x4e2866(0x4fd3),'void',_0x4e2866(0x1b10),_0x4e2866(0x282),_0x4e2866(0x3497),_0x4e2866(0x27b),_0x4e2866(0x2308)],'keyword':[_0x4e2866(0x3d1a),'alignof',_0x4e2866(0x43ea),_0x4e2866(0x3876),_0x4e2866(0x137d),_0x4e2866(0x45cd),'atomic_commit','atomic_noexcept','auto',_0x4e2866(0x4869),_0x4e2866(0x12bb),_0x4e2866(0x49c0),_0x4e2866(0x1bf3),'catch','class',_0x4e2866(0x1489),_0x4e2866(0x3628),_0x4e2866(0x307f),_0x4e2866(0x399d),_0x4e2866(0x33c1),_0x4e2866(0x1955),_0x4e2866(0x2739),'constexpr',_0x4e2866(0x4bcd),_0x4e2866(0x495f),_0x4e2866(0x1201),_0x4e2866(0x2fab),'delete','do','dynamic_cast|10',_0x4e2866(0x36f0),_0x4e2866(0x4afd),_0x4e2866(0x2b0a),_0x4e2866(0x5010),_0x4e2866(0x2d37),_0x4e2866(0x3561),_0x4e2866(0xac4),_0x4e2866(0x8f1),_0x4e2866(0x514),_0x4e2866(0x330f),'if',_0x4e2866(0x2c76),_0x4e2866(0x50d2),'module','mutable',_0x4e2866(0x3b86),_0x4e2866(0x386e),'noexcept',_0x4e2866(0x4163),'not_eq',_0x4e2866(0x1e8b),_0x4e2866(0x5d3),'or',_0x4e2866(0x1475),'override',_0x4e2866(0x276d),_0x4e2866(0x2638),_0x4e2866(0x1397),_0x4e2866(0x326b),'register',_0x4e2866(0x3341),'requires',_0x4e2866(0xf06),_0x4e2866(0x50c9),_0x4e2866(0x240b),'static_cast|10',_0x4e2866(0x2570),'switch',_0x4e2866(0x3c07),_0x4e2866(0x2db6),_0x4e2866(0x2d0d),_0x4e2866(0xe85),_0x4e2866(0x2b8d),_0x4e2866(0xd3f),_0x4e2866(0x32f0),_0x4e2866(0x23f6),'try',_0x4e2866(0x4947),'typeid',_0x4e2866(0x4c5a),_0x4e2866(0xcc),_0x4e2866(0x19f9),_0x4e2866(0xfec),_0x4e2866(0x2dab),'while',_0x4e2866(0x2bb8),_0x4e2866(0x31dd)],'literal':[_0x4e2866(0x3f1e),_0x4e2866(0x3561),_0x4e2866(0x695),_0x4e2866(0x1e8b),'true'],'built_in':['_Pragma'],'_type_hints':[_0x4e2866(0x4be7),_0x4e2866(0x65c),'barrier',_0x4e2866(0x310b),_0x4e2866(0x3d84),_0x4e2866(0x3602),_0x4e2866(0x9b2),_0x4e2866(0x4c96),_0x4e2866(0x4d1f),_0x4e2866(0x2ada),_0x4e2866(0x47b1),_0x4e2866(0x47d9),'imaginary','initializer_list',_0x4e2866(0x512d),_0x4e2866(0x307c),_0x4e2866(0x382a),_0x4e2866(0x1fb9),_0x4e2866(0x4ae7),_0x4e2866(0x20d8),_0x4e2866(0x49b4),'optional',_0x4e2866(0x2169),'packaged_task',_0x4e2866(0x3dc),'promise',_0x4e2866(0x19d0),_0x4e2866(0x2b48),_0x4e2866(0x44a5),_0x4e2866(0x331f),_0x4e2866(0x4028),_0x4e2866(0x2d7e),'shared_future',_0x4e2866(0x186b),_0x4e2866(0x2b9a),_0x4e2866(0xd2c),_0x4e2866(0x2b8b),_0x4e2866(0x323c),_0x4e2866(0x1e7f),_0x4e2866(0x439),_0x4e2866(0x100d),'thread',_0x4e2866(0x1f0a),_0x4e2866(0x1d4e),'unique_lock',_0x4e2866(0x3c09),'unordered_map',_0x4e2866(0x3854),_0x4e2866(0x4b27),_0x4e2866(0x4c84),_0x4e2866(0x1078),_0x4e2866(0x54a),_0x4e2866(0x28ab),_0x4e2866(0x4017),_0x4e2866(0x20b0)]},_0x9c7b7={'className':'function.dispatch','relevance':0x0,'keywords':{'_hint':[_0x4e2866(0x504b),_0x4e2866(0x444c),_0x4e2866(0x12fe),_0x4e2866(0x3138),'as_const',_0x4e2866(0x2fd0),_0x4e2866(0x4c11),_0x4e2866(0x2c6f),_0x4e2866(0x441c),'ceil',_0x4e2866(0xaf6),'cin',_0x4e2866(0x4195),_0x4e2866(0x2ad5),_0x4e2866(0x4a61),_0x4e2866(0x14e1),_0x4e2866(0x432b),_0x4e2866(0x40ec),_0x4e2866(0x227),_0x4e2866(0x3e3a),'exp',_0x4e2866(0x311d),_0x4e2866(0x4dbd),_0x4e2866(0x1b8b),_0x4e2866(0x4e69),_0x4e2866(0x4a64),'fputs',_0x4e2866(0x4eea),'frexp',_0x4e2866(0x1f9d),_0x4e2866(0x47d9),_0x4e2866(0x3d91),'isalnum',_0x4e2866(0x5cb),_0x4e2866(0x3e3c),'isdigit',_0x4e2866(0x1d53),_0x4e2866(0x3724),_0x4e2866(0x570),'ispunct',_0x4e2866(0x37d6),_0x4e2866(0xdb9),_0x4e2866(0x73f),_0x4e2866(0x4ac2),_0x4e2866(0x3691),_0x4e2866(0x1c10),'log',_0x4e2866(0x7a7),_0x4e2866(0x4389),_0x4e2866(0x1810),_0x4e2866(0x25bf),_0x4e2866(0x3f02),_0x4e2866(0x268b),_0x4e2866(0x8b2),_0x4e2866(0x3a9b),'memcmp',_0x4e2866(0x454d),_0x4e2866(0x205),_0x4e2866(0x13fa),_0x4e2866(0x470b),_0x4e2866(0xec3),_0x4e2866(0x18bf),_0x4e2866(0x2e22),_0x4e2866(0x3756),_0x4e2866(0x42ca),_0x4e2866(0x1106),'sin','sinh',_0x4e2866(0xde1),'sprintf',_0x4e2866(0x4b6d),_0x4e2866(0x4d78),'std','stderr','stdin','stdout',_0x4e2866(0x49a5),_0x4e2866(0x4f09),_0x4e2866(0x26e9),_0x4e2866(0x71f),_0x4e2866(0x1177),_0x4e2866(0x2652),'strncat',_0x4e2866(0x5012),_0x4e2866(0x4c28),_0x4e2866(0x1626),_0x4e2866(0x2f6e),'strspn','strstr',_0x4e2866(0x2df),_0x4e2866(0x356b),'tanh',_0x4e2866(0x1fda),_0x4e2866(0x4240),_0x4e2866(0x645),_0x4e2866(0x777),'vfprintf',_0x4e2866(0x4586),_0x4e2866(0x3d65),_0x4e2866(0x152f)]},'begin':_0x3ece1d[_0x4e2866(0x41bf)](/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,_0x525102['IDENT_RE'],_0x3ece1d[_0x4e2866(0x2901)](/(<[^<>]+>|)\s*\(/))},_0x171dca=[_0x9c7b7,_0x2ff99f,_0x1bd498,_0x30d01d,_0x525102[_0x4e2866(0x1bbc)],_0x1c7247,_0x4c43c7],_0x96fa62={'variants':[{'begin':/=/,'end':/;/},{'begin':/\(/,'end':/\)/},{'beginKeywords':_0x4e2866(0x19e7),'end':/;/}],'keywords':_0x458041,'contains':_0x171dca[_0x4e2866(0x41bf)]([{'begin':/\(/,'end':/\)/,'keywords':_0x458041,'contains':_0x171dca[_0x4e2866(0x41bf)]([_0x4e2866(0x1001)]),'relevance':0x0}]),'relevance':0x0},_0x44a8cc={'className':'function','begin':'('+_0xb322c0+'[\x5c*&\x5cs]+)+'+_0x243dbc,'returnBegin':!0x0,'end':/[{;=]/,'excludeEnd':!0x0,'keywords':_0x458041,'illegal':/[^\w\s\*&:<>.]/,'contains':[{'begin':_0x1678c0,'keywords':_0x458041,'relevance':0x0},{'begin':_0x243dbc,'returnBegin':!0x0,'contains':[_0x9d100f],'relevance':0x0},{'begin':/::/,'relevance':0x0},{'begin':/:/,'endsWithParent':!0x0,'contains':[_0x4c43c7,_0x1c7247]},{'relevance':0x0,'match':/,/},{'className':_0x4e2866(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0x458041,'relevance':0x0,'contains':[_0x30d01d,_0x525102[_0x4e2866(0x1bbc)],_0x4c43c7,_0x1c7247,_0x1bd498,{'begin':/\(/,'end':/\)/,'keywords':_0x458041,'relevance':0x0,'contains':[_0x4e2866(0x1001),_0x30d01d,_0x525102[_0x4e2866(0x1bbc)],_0x4c43c7,_0x1c7247,_0x1bd498]}]},_0x1bd498,_0x30d01d,_0x525102[_0x4e2866(0x1bbc)],_0x2ff99f]};return{'name':_0x4e2866(0x94d),'aliases':['cc',_0x4e2866(0x217c),_0x4e2866(0x189c),_0x4e2866(0x3d38),'hh',_0x4e2866(0x1e86),_0x4e2866(0x4f93)],'keywords':_0x458041,'illegal':'','keywords':_0x458041,'contains':[_0x4e2866(0x1001),_0x1bd498]},{'begin':_0x525102[_0x4e2866(0x2cb)]+'::','keywords':_0x458041},{'match':[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],'className':{0x1:_0x4e2866(0x2448),0x3:_0x4e2866(0xc2f)}}])};};},0x6dc:_0x5e674b=>{const _0x8e1dbb=a0_0x329b;_0x5e674b[_0x8e1dbb(0x15de)]=function(_0x169e41){const _0xe15563=_0x8e1dbb,_0x37c173=_0xe15563(0x4d2e);return{'name':_0xe15563(0x552),'aliases':[_0xe15563(0x22ae),'pcmk'],'case_insensitive':!0x0,'keywords':{'keyword':_0xe15563(0x4eca),'literal':_0xe15563(0x5035)},'contains':[_0x169e41['HASH_COMMENT_MODE'],{'beginKeywords':_0xe15563(0x3169),'starts':{'end':_0xe15563(0x1cde),'starts':{'className':_0xe15563(0x5f1),'end':_0xe15563(0x2f44)}}},{'beginKeywords':_0xe15563(0x24d7),'starts':{'className':_0xe15563(0x5f1),'end':_0xe15563(0x2f44),'starts':{'end':_0xe15563(0x4452)}}},{'begin':_0xe15563(0x3648)+_0x37c173[_0xe15563(0x29d0)]('\x20')[_0xe15563(0x379c)]('|')+_0xe15563(0x476f),'keywords':_0x37c173,'starts':{'className':_0xe15563(0x5f1),'end':'[\x5c$\x5cw_][\x5cw_-]*'}},{'beginKeywords':_0xe15563(0x2baa),'starts':{'className':_0xe15563(0x5f1),'end':_0xe15563(0x1cde)}},_0x169e41[_0xe15563(0x3c93)],{'className':_0xe15563(0x482),'begin':_0xe15563(0x2b6f),'relevance':0x0},{'className':'number','begin':_0xe15563(0x2072),'relevance':0x0},{'className':'literal','begin':_0xe15563(0xdcb),'relevance':0x0},{'className':_0xe15563(0x1875),'begin':/([A-Za-z$_#][\w_-]+)=/,'relevance':0x0},{'className':'tag','begin':_0xe15563(0x352),'end':_0xe15563(0x2ff4),'relevance':0x0}]};};},0x21d5:_0x3d17f=>{const _0x3ec31b=a0_0x329b;_0x3d17f[_0x3ec31b(0x15de)]=function(_0x1eba12){const _0x26d1db=_0x3ec31b,_0x1864ec=_0x26d1db(0x461a),_0x14780e=_0x26d1db(0x4a1d),_0x312b59=_0x26d1db(0x3047),_0x37838d={'$pattern':'[a-zA-Z_]\x5cw*[!?=]?','keyword':'abstract\x20alias\x20annotation\x20as\x20as?\x20asm\x20begin\x20break\x20case\x20class\x20def\x20do\x20else\x20elsif\x20end\x20ensure\x20enum\x20extend\x20for\x20fun\x20if\x20include\x20instance_sizeof\x20is_a?\x20lib\x20macro\x20module\x20next\x20nil?\x20of\x20out\x20pointerof\x20private\x20protected\x20rescue\x20responds_to?\x20return\x20require\x20select\x20self\x20sizeof\x20struct\x20super\x20then\x20type\x20typeof\x20union\x20uninitialized\x20unless\x20until\x20verbatim\x20when\x20while\x20with\x20yield\x20__DIR__\x20__END_LINE__\x20__FILE__\x20__LINE__','literal':_0x26d1db(0x46db)},_0x26e3e3={'className':_0x26d1db(0xfeb),'begin':/#\{/,'end':/\}/,'keywords':_0x37838d},_0x349bda={'className':_0x26d1db(0x4b3a),'begin':_0x26d1db(0x4390)},_0x2c04fa={'className':_0x26d1db(0x169d),'variants':[{'begin':_0x26d1db(0x2473),'end':_0x26d1db(0x37ed)},{'begin':'\x5c{%','end':'%\x5c}'}],'keywords':_0x37838d};function _0x3297c5(_0x27b375,_0xe19c21){const _0x40e3ac=_0x26d1db,_0x559e81=[{'begin':_0x27b375,'end':_0xe19c21}];return _0x559e81[0x0][_0x40e3ac(0x160d)]=_0x559e81,_0x559e81;}const _0xface24={'className':_0x26d1db(0x4f7c),'contains':[_0x1eba12[_0x26d1db(0x421a)],_0x26e3e3],'variants':[{'begin':/'/,'end':/'/},{'begin':/"/,'end':/"/},{'begin':/`/,'end':/`/},{'begin':'%[Qwi]?\x5c(','end':'\x5c)','contains':_0x3297c5('\x5c(','\x5c)')},{'begin':_0x26d1db(0x4c87),'end':'\x5c]','contains':_0x3297c5('\x5c[','\x5c]')},{'begin':_0x26d1db(0x40bd),'end':/\}/,'contains':_0x3297c5(/\{/,/\}/)},{'begin':'%[Qwi]?<','end':'>','contains':_0x3297c5('<','>')},{'begin':'%[Qwi]?\x5c|','end':'\x5c|'},{'begin':/<<-\w+$/,'end':/^\s*\w+$/}],'relevance':0x0},_0x1cdd3a={'className':_0x26d1db(0x4f7c),'variants':[{'begin':_0x26d1db(0x3eff),'end':'\x5c)','contains':_0x3297c5('\x5c(','\x5c)')},{'begin':_0x26d1db(0x1546),'end':'\x5c]','contains':_0x3297c5('\x5c[','\x5c]')},{'begin':_0x26d1db(0x3d3e),'end':/\}/,'contains':_0x3297c5(/\{/,/\}/)},{'begin':_0x26d1db(0x17c6),'end':'>','contains':_0x3297c5('<','>')},{'begin':_0x26d1db(0x374c),'end':'\x5c|'},{'begin':/<<-'\w+'$/,'end':/^\s*\w+$/}],'relevance':0x0},_0x52dd1e={'begin':'(?!%\x5c})('+_0x1eba12[_0x26d1db(0x5a3)]+_0x26d1db(0x3471),'keywords':'case\x20if\x20select\x20unless\x20until\x20when\x20while','contains':[{'className':_0x26d1db(0x27ae),'contains':[_0x1eba12[_0x26d1db(0x421a)],_0x26e3e3],'variants':[{'begin':_0x26d1db(0x24d),'relevance':0x0},{'begin':'/(?!\x5c/)','end':_0x26d1db(0x327f)}]}],'relevance':0x0},_0x265ba8=[_0x2c04fa,_0xface24,_0x1cdd3a,{'className':'regexp','contains':[_0x1eba12[_0x26d1db(0x421a)],_0x26e3e3],'variants':[{'begin':'%r\x5c(','end':'\x5c)','contains':_0x3297c5('\x5c(','\x5c)')},{'begin':_0x26d1db(0x480a),'end':'\x5c]','contains':_0x3297c5('\x5c[','\x5c]')},{'begin':_0x26d1db(0x16ed),'end':/\}/,'contains':_0x3297c5(/\{/,/\}/)},{'begin':'%r<','end':'>','contains':_0x3297c5('<','>')},{'begin':_0x26d1db(0x4c8c),'end':'\x5c|'}],'relevance':0x0},_0x52dd1e,{'className':_0x26d1db(0x482),'begin':_0x26d1db(0x275c),'end':'\x5c]','contains':[_0x1eba12[_0x26d1db(0x4f2)](_0x1eba12[_0x26d1db(0x3c93)],{'className':'string'})]},_0x349bda,_0x1eba12[_0x26d1db(0x165c)],{'className':_0x26d1db(0x42ec),'beginKeywords':_0x26d1db(0x4ad7),'end':_0x26d1db(0x29d1),'illegal':/=/,'contains':[_0x1eba12[_0x26d1db(0x165c)],_0x1eba12[_0x26d1db(0x4f2)](_0x1eba12[_0x26d1db(0x38c3)],{'begin':_0x312b59}),{'begin':'<'}]},{'className':'class','beginKeywords':_0x26d1db(0x143d),'end':_0x26d1db(0x29d1),'illegal':/=/,'contains':[_0x1eba12[_0x26d1db(0x165c)],_0x1eba12['inherit'](_0x1eba12[_0x26d1db(0x38c3)],{'begin':_0x312b59})]},{'beginKeywords':_0x26d1db(0x2af6),'end':_0x26d1db(0x29d1),'illegal':/=/,'contains':[_0x1eba12[_0x26d1db(0x165c)],_0x1eba12[_0x26d1db(0x4f2)](_0x1eba12[_0x26d1db(0x38c3)],{'begin':_0x312b59})],'relevance':0x2},{'className':_0x26d1db(0x3dfb),'beginKeywords':'def','end':/\B\b/,'contains':[_0x1eba12[_0x26d1db(0x4f2)](_0x1eba12[_0x26d1db(0x38c3)],{'begin':_0x14780e,'endsParent':!0x0})]},{'className':'function','beginKeywords':_0x26d1db(0xe0f),'end':/\B\b/,'contains':[_0x1eba12[_0x26d1db(0x4f2)](_0x1eba12[_0x26d1db(0x38c3)],{'begin':_0x14780e,'endsParent':!0x0})],'relevance':0x2},{'className':_0x26d1db(0x3148),'begin':_0x1eba12[_0x26d1db(0x2691)]+'(!|\x5c?)?:','relevance':0x0},{'className':'symbol','begin':':','contains':[_0xface24,{'begin':_0x14780e}],'relevance':0x0},{'className':_0x26d1db(0x1ed7),'variants':[{'begin':_0x26d1db(0x4128)+_0x1864ec},{'begin':'\x5cb0o([0-7_]+)'+_0x1864ec},{'begin':'\x5cb0x([A-Fa-f0-9_]+)'+_0x1864ec},{'begin':_0x26d1db(0x2d54)},{'begin':_0x26d1db(0x2990)+_0x1864ec}],'relevance':0x0}];return _0x26e3e3[_0x26d1db(0x160d)]=_0x265ba8,_0x2c04fa['contains']=_0x265ba8[_0x26d1db(0x428e)](0x1),{'name':_0x26d1db(0x3d72),'aliases':['cr'],'keywords':_0x37838d,'contains':_0x265ba8};};},0x1bd0:_0x48c18e=>{const _0x1936ba=a0_0x329b;_0x48c18e[_0x1936ba(0x15de)]=function(_0x29889d){const _0x2124aa=_0x1936ba,_0x2a5bf8={'keyword':[_0x2124aa(0x3ba4),'as',_0x2124aa(0x389b),_0x2124aa(0x49c0),'case',_0x2124aa(0x424a),_0x2124aa(0x42ec),_0x2124aa(0x27b),_0x2124aa(0x495f),'do',_0x2124aa(0x36f0),_0x2124aa(0x48b0),'explicit','extern',_0x2124aa(0x292f),_0x2124aa(0x2940),_0x2124aa(0x8f1),_0x2124aa(0x1a7f),_0x2124aa(0x330f),'if','implicit','in',_0x2124aa(0x1fc2),_0x2124aa(0x191a),'is','lock','namespace','new',_0x2124aa(0x5d3),_0x2124aa(0x4284),'override',_0x2124aa(0x4f24),'private',_0x2124aa(0x2638),'public','readonly',_0x2124aa(0xf1d),_0x2124aa(0x204d),_0x2124aa(0xf06),_0x2124aa(0x3374),_0x2124aa(0x45a),'sizeof','stackalloc','static',_0x2124aa(0x2570),_0x2124aa(0x68),_0x2124aa(0x2d0d),_0x2124aa(0x2b8d),'try',_0x2124aa(0x3445),_0x2124aa(0x457f),'unsafe','using','virtual','void',_0x2124aa(0x2dab),_0x2124aa(0x217b)][_0x2124aa(0x41bf)]([_0x2124aa(0x2fd8),'alias','and',_0x2124aa(0x19d6),_0x2124aa(0x11f8),_0x2124aa(0x34ed),'by','descending','equals',_0x2124aa(0xc81),'get',_0x2124aa(0x16d4),'group',_0x2124aa(0x243),_0x2124aa(0x214c),_0x2124aa(0x379c),_0x2124aa(0x4647),_0x2124aa(0x49e3),'not',_0x2124aa(0x1b76),'on','or','orderby',_0x2124aa(0x7d5),_0x2124aa(0x80a),_0x2124aa(0x477),_0x2124aa(0x2d7e),'unmanaged',_0x2124aa(0x4a28),_0x2124aa(0x3c21),_0x2124aa(0x489c),_0x2124aa(0x43c),_0x2124aa(0xa48),_0x2124aa(0x25d6)]),'built_in':[_0x2124aa(0x3618),_0x2124aa(0x18d4),'char',_0x2124aa(0xb4a),_0x2124aa(0x38e3),'double','dynamic','enum',_0x2124aa(0x3ff6),_0x2124aa(0x269f),_0x2124aa(0x3c8d),_0x2124aa(0x3b9),'nuint',_0x2124aa(0x2b58),'sbyte','short',_0x2124aa(0x4f7c),_0x2124aa(0x1abf),_0x2124aa(0x10fe),_0x2124aa(0x4783)],'literal':[_0x2124aa(0x2fab),_0x2124aa(0x3561),_0x2124aa(0x15f0),_0x2124aa(0x23f6)]},_0x3d457f=_0x29889d[_0x2124aa(0x4f2)](_0x29889d['TITLE_MODE'],{'begin':_0x2124aa(0x17f7)}),_0x4ba924={'className':_0x2124aa(0x1ed7),'variants':[{'begin':_0x2124aa(0x315a)},{'begin':'(-?)\x5cb([\x5cd\x27]+(\x5c.[\x5cd\x27]*)?|\x5c.[\x5cd\x27]+)(u|U|l|L|ul|UL|f|F|b|B)'},{'begin':'(-?)(\x5cb0[xX][a-fA-F0-9\x27]+|(\x5cb[\x5cd\x27]+(\x5c.[\x5cd\x27]*)?|\x5c.[\x5cd\x27]+)([eE][-+]?[\x5cd\x27]+)?)'}],'relevance':0x0},_0x1b7f7a={'className':'string','begin':'@\x22','end':'\x22','contains':[{'begin':'\x22\x22'}]},_0x408b55=_0x29889d[_0x2124aa(0x4f2)](_0x1b7f7a,{'illegal':/\n/}),_0x3fd59c={'className':_0x2124aa(0xfeb),'begin':/\{/,'end':/\}/,'keywords':_0x2a5bf8},_0x441507=_0x29889d[_0x2124aa(0x4f2)](_0x3fd59c,{'illegal':/\n/}),_0x5c33a8={'className':'string','begin':/\$"/,'end':'\x22','illegal':/\n/,'contains':[{'begin':/\{\{/},{'begin':/\}\}/},_0x29889d['BACKSLASH_ESCAPE'],_0x441507]},_0xbc58a6={'className':_0x2124aa(0x4f7c),'begin':/\$@"/,'end':'\x22','contains':[{'begin':/\{\{/},{'begin':/\}\}/},{'begin':'\x22\x22'},_0x3fd59c]},_0x287980=_0x29889d[_0x2124aa(0x4f2)](_0xbc58a6,{'illegal':/\n/,'contains':[{'begin':/\{\{/},{'begin':/\}\}/},{'begin':'\x22\x22'},_0x441507]});_0x3fd59c['contains']=[_0xbc58a6,_0x5c33a8,_0x1b7f7a,_0x29889d[_0x2124aa(0x36ec)],_0x29889d[_0x2124aa(0x3c93)],_0x4ba924,_0x29889d['C_BLOCK_COMMENT_MODE']],_0x441507[_0x2124aa(0x160d)]=[_0x287980,_0x5c33a8,_0x408b55,_0x29889d['APOS_STRING_MODE'],_0x29889d[_0x2124aa(0x3c93)],_0x4ba924,_0x29889d[_0x2124aa(0x4f2)](_0x29889d[_0x2124aa(0x1bbc)],{'illegal':/\n/})];const _0x5e06ba={'variants':[_0xbc58a6,_0x5c33a8,_0x1b7f7a,_0x29889d[_0x2124aa(0x36ec)],_0x29889d[_0x2124aa(0x3c93)]]},_0x4a69b4={'begin':'<','end':'>','contains':[{'beginKeywords':_0x2124aa(0x36fc)},_0x3d457f]},_0x2cb0ba=_0x29889d[_0x2124aa(0x2cb)]+'(<'+_0x29889d[_0x2124aa(0x2cb)]+_0x2124aa(0x45e3)+_0x29889d[_0x2124aa(0x2cb)]+_0x2124aa(0x1ada),_0x583f24={'begin':'@'+_0x29889d[_0x2124aa(0x2cb)],'relevance':0x0};return{'name':'C#','aliases':['cs','c#'],'keywords':_0x2a5bf8,'illegal':/::/,'contains':[_0x29889d[_0x2124aa(0x274a)](_0x2124aa(0xae7),'$',{'returnBegin':!0x0,'contains':[{'className':_0x2124aa(0x3d82),'variants':[{'begin':_0x2124aa(0xae7),'relevance':0x0},{'begin':_0x2124aa(0x2016)},{'begin':_0x2124aa(0x352),'end':'>'}]}]}),_0x29889d[_0x2124aa(0x4d7)],_0x29889d[_0x2124aa(0x1bbc)],{'className':_0x2124aa(0x482),'begin':'#','end':'$','keywords':{'keyword':_0x2124aa(0xea2)}},_0x5e06ba,_0x4ba924,{'beginKeywords':_0x2124aa(0x40cd),'relevance':0x0,'end':/[{;=]/,'illegal':/[^\s:,]/,'contains':[{'beginKeywords':_0x2124aa(0x11db)},_0x3d457f,_0x4a69b4,_0x29889d[_0x2124aa(0x4d7)],_0x29889d[_0x2124aa(0x1bbc)]]},{'beginKeywords':_0x2124aa(0x3b86),'relevance':0x0,'end':/[{;=]/,'illegal':/[^\s:]/,'contains':[_0x3d457f,_0x29889d[_0x2124aa(0x4d7)],_0x29889d[_0x2124aa(0x1bbc)]]},{'beginKeywords':_0x2124aa(0xf1d),'relevance':0x0,'end':/[{;=]/,'illegal':/[^\s:]/,'contains':[_0x3d457f,_0x4a69b4,_0x29889d[_0x2124aa(0x4d7)],_0x29889d[_0x2124aa(0x1bbc)]]},{'className':_0x2124aa(0x482),'begin':_0x2124aa(0x4b6b),'excludeBegin':!0x0,'end':'\x5c]','excludeEnd':!0x0,'contains':[{'className':_0x2124aa(0x4f7c),'begin':/"/,'end':/"/}]},{'beginKeywords':'new\x20return\x20throw\x20await\x20else','relevance':0x0},{'className':_0x2124aa(0x3dfb),'begin':'('+_0x2cb0ba+_0x2124aa(0x5e3)+_0x29889d[_0x2124aa(0x2cb)]+_0x2124aa(0x2be9),'returnBegin':!0x0,'end':/\s*[{;=]/,'excludeEnd':!0x0,'keywords':_0x2a5bf8,'contains':[{'beginKeywords':[_0x2124aa(0x1397),_0x2124aa(0x276d),'protected','static',_0x2124aa(0x191a),'protected',_0x2124aa(0x3ba4),'async','extern',_0x2124aa(0x1d76),_0x2124aa(0x1e34),'virtual',_0x2124aa(0x386e),_0x2124aa(0x45a),_0x2124aa(0x7d5)][_0x2124aa(0x379c)]('\x20'),'relevance':0x0},{'begin':_0x29889d[_0x2124aa(0x2cb)]+_0x2124aa(0x2be9),'returnBegin':!0x0,'contains':[_0x29889d[_0x2124aa(0x38c3)],_0x4a69b4],'relevance':0x0},{'match':/\(\)/},{'className':_0x2124aa(0x4f24),'begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'keywords':_0x2a5bf8,'relevance':0x0,'contains':[_0x5e06ba,_0x4ba924,_0x29889d[_0x2124aa(0x1bbc)]]},_0x29889d[_0x2124aa(0x4d7)],_0x29889d['C_BLOCK_COMMENT_MODE']]},_0x583f24]};};},0x1a9d:_0x21be4e=>{const _0x52ab5c=a0_0x329b;_0x21be4e[_0x52ab5c(0x15de)]=function(_0x36bc3d){const _0x3137fa=_0x52ab5c;return{'name':'CSP','case_insensitive':!0x1,'keywords':{'$pattern':'[a-zA-Z][a-zA-Z0-9_-]*','keyword':[_0x3137fa(0x50c7),_0x3137fa(0x9f5),'connect-src',_0x3137fa(0x4b6f),_0x3137fa(0x1d12),_0x3137fa(0x2f9f),_0x3137fa(0x321e),_0x3137fa(0x5062),_0x3137fa(0x4473),_0x3137fa(0x486b),_0x3137fa(0xa90),_0x3137fa(0x26e3),_0x3137fa(0x7b1),_0x3137fa(0x189),'sandbox',_0x3137fa(0x2730),'style-src',_0x3137fa(0x606),'unsafe-hashes',_0x3137fa(0x28d9)]},'contains':[{'className':_0x3137fa(0x4f7c),'begin':'\x27','end':'\x27'},{'className':_0x3137fa(0x47d5),'begin':_0x3137fa(0x31c0),'end':':','excludeEnd':!0x0}]};};},0x21a4:_0x1555ac=>{const _0x2bcd15=a0_0x329b,_0x2e656d=['a','abbr','address',_0x2bcd15(0x2df9),_0x2bcd15(0x3162),_0x2bcd15(0x351e),'b',_0x2bcd15(0x30ef),_0x2bcd15(0x3673),_0x2bcd15(0x1de1),_0x2bcd15(0x174c),_0x2bcd15(0x468a),_0x2bcd15(0x312f),'code','dd',_0x2bcd15(0xd6a),'details',_0x2bcd15(0x2f6d),'div','dl','dt','em','fieldset',_0x2bcd15(0x2f34),_0x2bcd15(0x35b0),'footer',_0x2bcd15(0x377b),'h1','h2','h3','h4','h5','h6',_0x2bcd15(0x164d),_0x2bcd15(0x38bc),_0x2bcd15(0x1978),'i',_0x2bcd15(0x742),'img',_0x2bcd15(0xe2d),'ins','kbd',_0x2bcd15(0x22d5),_0x2bcd15(0x4e9d),'li','main',_0x2bcd15(0x997),'menu',_0x2bcd15(0x37c5),_0x2bcd15(0x2b58),'ol','p','q','quote','samp','section','span',_0x2bcd15(0x2ca0),_0x2bcd15(0xe54),_0x2bcd15(0x4d65),'table','tbody','td',_0x2bcd15(0x7c3),_0x2bcd15(0x8e),'th',_0x2bcd15(0x1db3),_0x2bcd15(0x4443),'tr','ul','var',_0x2bcd15(0x1e11)],_0x163263=['any-hover','any-pointer',_0x2bcd15(0x2df3),_0x2bcd15(0x378f),'color-gamut','color-index','device-aspect-ratio',_0x2bcd15(0x7a0),_0x2bcd15(0xaf5),_0x2bcd15(0x244d),'forced-colors','grid',_0x2bcd15(0x349),'hover',_0x2bcd15(0x49e2),_0x2bcd15(0x1196),_0x2bcd15(0x56a),_0x2bcd15(0x16d7),'overflow-inline',_0x2bcd15(0x1d95),'prefers-color-scheme',_0x2bcd15(0x419f),_0x2bcd15(0x47c5),_0x2bcd15(0x3176),_0x2bcd15(0x295),'scan','scripting','update',_0x2bcd15(0x3879),_0x2bcd15(0x4cb5),_0x2bcd15(0xa10),_0x2bcd15(0x1d0c),_0x2bcd15(0x3d85)],_0x28a146=[_0x2bcd15(0x2d22),_0x2bcd15(0x25ea),_0x2bcd15(0x1a8),'checked',_0x2bcd15(0x7b4),_0x2bcd15(0x2fab),'defined',_0x2bcd15(0x1301),_0x2bcd15(0x882),_0x2bcd15(0x3d31),'empty',_0x2bcd15(0x841),_0x2bcd15(0x509c),_0x2bcd15(0x34a4),_0x2bcd15(0x1a2e),_0x2bcd15(0x50aa),_0x2bcd15(0x47d9),_0x2bcd15(0x356d),_0x2bcd15(0x13eb),_0x2bcd15(0x14f1),_0x2bcd15(0x5ec),_0x2bcd15(0x2e79),'host-context',_0x2bcd15(0x14d7),_0x2bcd15(0x39ea),_0x2bcd15(0x45e),_0x2bcd15(0x2a99),'is','lang',_0x2bcd15(0x39f6),_0x2bcd15(0x220e),_0x2bcd15(0x24d0),'link',_0x2bcd15(0x28d1),_0x2bcd15(0x4163),_0x2bcd15(0x3145),_0x2bcd15(0x47d4),_0x2bcd15(0x2d1a),_0x2bcd15(0x3e96),_0x2bcd15(0x4b49),'nth-of-type','only-child','only-of-type',_0x2bcd15(0x180e),_0x2bcd15(0x1a88),_0x2bcd15(0x231a),_0x2bcd15(0x273f),_0x2bcd15(0x25fb),_0x2bcd15(0x2975),'required',_0x2bcd15(0x11fd),_0x2bcd15(0xdf8),_0x2bcd15(0x2939),_0x2bcd15(0x1245),_0x2bcd15(0x3236),_0x2bcd15(0x3eb9),'valid',_0x2bcd15(0x49fa),_0x2bcd15(0x43c)],_0x4dd906=['after',_0x2bcd15(0x2554),_0x2bcd15(0x19f2),_0x2bcd15(0x3851),_0x2bcd15(0x4d39),_0x2bcd15(0x4c29),_0x2bcd15(0x21eb),_0x2bcd15(0x2e8a),'marker',_0x2bcd15(0x3e1),'placeholder','selection','slotted',_0x2bcd15(0x49a8)],_0x1ee566=[_0x2bcd15(0x18cb),_0x2bcd15(0x716),_0x2bcd15(0x4ce7),_0x2bcd15(0x1d1f),'animation',_0x2bcd15(0x4fd0),_0x2bcd15(0x1aa2),_0x2bcd15(0x29e4),_0x2bcd15(0x4bfa),_0x2bcd15(0x36ac),_0x2bcd15(0x362c),_0x2bcd15(0x3186),'animation-timing-function',_0x2bcd15(0x4313),_0x2bcd15(0x2d5),_0x2bcd15(0x99f),_0x2bcd15(0x4686),'background-clip',_0x2bcd15(0x33df),_0x2bcd15(0x1260),_0x2bcd15(0x46ef),_0x2bcd15(0x3850),_0x2bcd15(0x646),_0x2bcd15(0x3e72),_0x2bcd15(0x2323),_0x2bcd15(0x4604),_0x2bcd15(0x2727),_0x2bcd15(0x4c7d),_0x2bcd15(0x15ba),_0x2bcd15(0x2a23),'border-block-end-style',_0x2bcd15(0x47ce),_0x2bcd15(0x8d4),_0x2bcd15(0x3f49),_0x2bcd15(0x1502),'border-block-start-width','border-block-style','border-block-width',_0x2bcd15(0x2a15),_0x2bcd15(0x3411),_0x2bcd15(0x4003),_0x2bcd15(0x3d58),_0x2bcd15(0x4e13),'border-bottom-width',_0x2bcd15(0x372e),'border-color',_0x2bcd15(0x4ee1),_0x2bcd15(0x2860),'border-image-repeat',_0x2bcd15(0x4b31),_0x2bcd15(0x4560),_0x2bcd15(0x1b69),_0x2bcd15(0x3535),_0x2bcd15(0x2f06),_0x2bcd15(0x1ebd),_0x2bcd15(0x289c),'border-inline-end-style','border-inline-end-width',_0x2bcd15(0x3ec3),_0x2bcd15(0x602),_0x2bcd15(0x2721),'border-inline-start-width',_0x2bcd15(0x26e7),_0x2bcd15(0x13e4),_0x2bcd15(0x36b5),_0x2bcd15(0x2952),_0x2bcd15(0x20e7),'border-left-width','border-radius',_0x2bcd15(0x48b5),'border-right-color',_0x2bcd15(0x3764),_0x2bcd15(0x50e0),_0x2bcd15(0xd56),_0x2bcd15(0x32eb),'border-top',_0x2bcd15(0x421),_0x2bcd15(0xdc),'border-top-right-radius',_0x2bcd15(0x3a64),_0x2bcd15(0x4178),_0x2bcd15(0x1bcf),_0x2bcd15(0xaf9),_0x2bcd15(0xa0),_0x2bcd15(0x34d6),_0x2bcd15(0x392),_0x2bcd15(0x1dad),_0x2bcd15(0x1e20),'break-inside',_0x2bcd15(0x16ba),_0x2bcd15(0x2f05),'clear',_0x2bcd15(0x1dc1),_0x2bcd15(0x27ba),'clip-rule',_0x2bcd15(0x378f),_0x2bcd15(0x394e),'column-fill',_0x2bcd15(0x23a4),_0x2bcd15(0x17bd),'column-rule-color','column-rule-style',_0x2bcd15(0x1aa6),_0x2bcd15(0x20de),_0x2bcd15(0x24a7),_0x2bcd15(0x4e47),_0x2bcd15(0x186a),_0x2bcd15(0x498f),_0x2bcd15(0x1616),_0x2bcd15(0x2a3e),_0x2bcd15(0x2d5d),_0x2bcd15(0x3851),'cue-after','cue-before',_0x2bcd15(0x33bb),_0x2bcd15(0x1ee8),_0x2bcd15(0x254a),_0x2bcd15(0x1894),_0x2bcd15(0x295e),_0x2bcd15(0x3ac9),'flex-basis',_0x2bcd15(0x1c47),_0x2bcd15(0x13c6),_0x2bcd15(0x4775),'flex-shrink',_0x2bcd15(0x13e7),_0x2bcd15(0x3ff6),_0x2bcd15(0x1fc5),'font',_0x2bcd15(0x421e),_0x2bcd15(0x48f3),_0x2bcd15(0x1dd2),_0x2bcd15(0x154e),_0x2bcd15(0x1803),_0x2bcd15(0x2a30),_0x2bcd15(0xd73),_0x2bcd15(0x183d),_0x2bcd15(0x7b),'font-style',_0x2bcd15(0x37b5),'font-variant',_0x2bcd15(0x14a7),_0x2bcd15(0x376b),_0x2bcd15(0x3ffe),_0x2bcd15(0x1b8f),_0x2bcd15(0x37db),_0x2bcd15(0x2400),'font-weight',_0x2bcd15(0x13c8),_0x2bcd15(0x21e),_0x2bcd15(0x2508),'grid-area','grid-auto-columns',_0x2bcd15(0x94f),_0x2bcd15(0x191),_0x2bcd15(0x4296),'grid-column-end',_0x2bcd15(0x1635),_0x2bcd15(0x5084),_0x2bcd15(0x886),_0x2bcd15(0x42e4),'grid-row-start',_0x2bcd15(0x3fd7),_0x2bcd15(0x4660),'grid-template-columns',_0x2bcd15(0x38de),_0x2bcd15(0xc42),_0x2bcd15(0x349),_0x2bcd15(0x2e91),'icon','image-orientation',_0x2bcd15(0x3e56),_0x2bcd15(0x4cee),_0x2bcd15(0x1dec),_0x2bcd15(0x1dd3),_0x2bcd15(0x2625),_0x2bcd15(0x302d),'left',_0x2bcd15(0xd3a),_0x2bcd15(0x4dda),'line-height',_0x2bcd15(0x953),_0x2bcd15(0x45ea),_0x2bcd15(0x4d69),'list-style-type',_0x2bcd15(0xb0e),_0x2bcd15(0x678),'margin-block-end',_0x2bcd15(0x2966),_0x2bcd15(0x35fe),_0x2bcd15(0x2622),_0x2bcd15(0x8a),_0x2bcd15(0x71b),_0x2bcd15(0x21fc),'margin-right',_0x2bcd15(0x17e2),'marks',_0x2bcd15(0x50a7),_0x2bcd15(0x47c2),_0x2bcd15(0x3e67),'mask-border-outset',_0x2bcd15(0x1ed3),_0x2bcd15(0x4e3b),'mask-border-source',_0x2bcd15(0x1338),_0x2bcd15(0x887),_0x2bcd15(0x34a0),_0x2bcd15(0x50bf),_0x2bcd15(0x3e9d),_0x2bcd15(0x435b),_0x2bcd15(0xadd),_0x2bcd15(0x10dd),'mask-size',_0x2bcd15(0x4aae),_0x2bcd15(0x3630),_0x2bcd15(0x3d85),_0x2bcd15(0x117a),_0x2bcd15(0xa10),'min-block-size',_0x2bcd15(0x1d0c),_0x2bcd15(0x437f),_0x2bcd15(0x4cb5),'mix-blend-mode',_0x2bcd15(0x46b5),_0x2bcd15(0x2c23),'nav-left',_0x2bcd15(0x102e),_0x2bcd15(0x281c),_0x2bcd15(0x80b),'normal','object-fit',_0x2bcd15(0x196d),_0x2bcd15(0x159e),'order',_0x2bcd15(0x27ec),_0x2bcd15(0xd29),_0x2bcd15(0x7e),_0x2bcd15(0x1c51),_0x2bcd15(0x1d4c),_0x2bcd15(0x4dba),_0x2bcd15(0x1962),_0x2bcd15(0x45d1),_0x2bcd15(0x222e),_0x2bcd15(0x4aa0),'padding',_0x2bcd15(0x4009),_0x2bcd15(0x17b1),_0x2bcd15(0x179),_0x2bcd15(0x4749),_0x2bcd15(0x2101),'padding-inline-end',_0x2bcd15(0x4a8c),'padding-left',_0x2bcd15(0x4b94),_0x2bcd15(0x370),_0x2bcd15(0x4d0f),'page-break-before',_0x2bcd15(0x4b12),'pause','pause-after',_0x2bcd15(0xe32),_0x2bcd15(0xb44),_0x2bcd15(0x1e90),_0x2bcd15(0x1e84),_0x2bcd15(0x3a28),_0x2bcd15(0x3652),'resize',_0x2bcd15(0x4ae6),_0x2bcd15(0xf6d),_0x2bcd15(0xc3d),_0x2bcd15(0x11fd),_0x2bcd15(0x837),_0x2bcd15(0x4b21),'scroll-margin-block','scroll-margin-block-end',_0x2bcd15(0x23c0),_0x2bcd15(0xd7e),'scroll-margin-inline',_0x2bcd15(0x2385),_0x2bcd15(0x1a84),_0x2bcd15(0x401e),_0x2bcd15(0x3c95),_0x2bcd15(0x4114),_0x2bcd15(0x2e4b),_0x2bcd15(0x1c9e),'scroll-padding-block-end','scroll-padding-block-start',_0x2bcd15(0x48b8),_0x2bcd15(0x47b0),_0x2bcd15(0x4632),_0x2bcd15(0x2233),_0x2bcd15(0x3be9),'scroll-padding-right',_0x2bcd15(0x37e9),_0x2bcd15(0x30f9),_0x2bcd15(0x1e58),_0x2bcd15(0x3cd1),_0x2bcd15(0x310f),_0x2bcd15(0x155f),_0x2bcd15(0x2007),_0x2bcd15(0x4a6b),'shape-margin',_0x2bcd15(0x1d23),_0x2bcd15(0x1935),'speak-as',_0x2bcd15(0x1005),_0x2bcd15(0x3534),_0x2bcd15(0x20f0),_0x2bcd15(0x1f88),'text-align-all',_0x2bcd15(0x4c00),_0x2bcd15(0x222b),_0x2bcd15(0xb88),_0x2bcd15(0xf50),_0x2bcd15(0x1729),_0x2bcd15(0x397f),_0x2bcd15(0xe44),_0x2bcd15(0x1c2e),_0x2bcd15(0x38c1),'text-emphasis-style',_0x2bcd15(0x333f),_0x2bcd15(0x43cb),_0x2bcd15(0xa43),'text-overflow','text-rendering',_0x2bcd15(0x32bb),'text-transform',_0x2bcd15(0x1982),_0x2bcd15(0x139d),_0x2bcd15(0x560),_0x2bcd15(0x2e52),_0x2bcd15(0x35fd),_0x2bcd15(0x2e9f),_0x2bcd15(0x4b80),'transition-delay','transition-duration',_0x2bcd15(0x20eb),'transition-timing-function',_0x2bcd15(0x1e5d),'vertical-align',_0x2bcd15(0x4c99),_0x2bcd15(0x3a23),_0x2bcd15(0x432d),_0x2bcd15(0x1709),_0x2bcd15(0x3a6e),_0x2bcd15(0x488),_0x2bcd15(0x1d0f),_0x2bcd15(0x43cf),_0x2bcd15(0x1e8c),_0x2bcd15(0x62f),_0x2bcd15(0x38b8),_0x2bcd15(0x3879),_0x2bcd15(0x4ee2),'word-break',_0x2bcd15(0x3bdb),_0x2bcd15(0x402d),_0x2bcd15(0x4697),_0x2bcd15(0x2e8d)]['reverse']();_0x1555ac[_0x2bcd15(0x15de)]=function(_0x422a54){const _0x1e65fb=_0x2bcd15,_0x2f2857=_0x422a54['regex'],_0x45b7db=(_0x3dd8e8=>({'IMPORTANT':{'scope':_0x1e65fb(0x482),'begin':_0x1e65fb(0x1bd9)},'BLOCK_COMMENT':_0x3dd8e8[_0x1e65fb(0x1bbc)],'HEXCOLOR':{'scope':'number','begin':/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},'FUNCTION_DISPATCH':{'className':_0x1e65fb(0x4853),'begin':/[\w-]+(?=\()/},'ATTRIBUTE_SELECTOR_MODE':{'scope':_0x1e65fb(0x2a01),'begin':/\[/,'end':/\]/,'illegal':'$','contains':[_0x3dd8e8[_0x1e65fb(0x36ec)],_0x3dd8e8[_0x1e65fb(0x3c93)]]},'CSS_NUMBER_MODE':{'scope':_0x1e65fb(0x1ed7),'begin':_0x3dd8e8[_0x1e65fb(0x2d71)]+_0x1e65fb(0x1a15),'relevance':0x0},'CSS_VARIABLE':{'className':'attr','begin':/--[A-Za-z_][A-Za-z0-9_-]*/}}))(_0x422a54),_0x2e6715=[_0x422a54['APOS_STRING_MODE'],_0x422a54[_0x1e65fb(0x3c93)]];return{'name':_0x1e65fb(0x42c6),'case_insensitive':!0x0,'illegal':/[=|'\$]/,'keywords':{'keyframePosition':_0x1e65fb(0x2d3b)},'classNameAliases':{'keyframePosition':'selector-tag'},'contains':[_0x45b7db[_0x1e65fb(0x202b)],{'begin':/-(webkit|moz|ms|o)-(?=[a-z])/},_0x45b7db['CSS_NUMBER_MODE'],{'className':_0x1e65fb(0x434c),'begin':/#[A-Za-z0-9_-]+/,'relevance':0x0},{'className':_0x1e65fb(0x259),'begin':_0x1e65fb(0x29ef),'relevance':0x0},_0x45b7db[_0x1e65fb(0x3229)],{'className':_0x1e65fb(0x4a1c),'variants':[{'begin':':('+_0x28a146[_0x1e65fb(0x379c)]('|')+')'},{'begin':_0x1e65fb(0x277)+_0x4dd906[_0x1e65fb(0x379c)]('|')+')'}]},_0x45b7db[_0x1e65fb(0x37cc)],{'className':_0x1e65fb(0x47d5),'begin':_0x1e65fb(0x3648)+_0x1ee566[_0x1e65fb(0x379c)]('|')+_0x1e65fb(0x3ffc)},{'begin':/:/,'end':/[;}{]/,'contains':[_0x45b7db[_0x1e65fb(0x202b)],_0x45b7db['HEXCOLOR'],_0x45b7db[_0x1e65fb(0x14e)],_0x45b7db[_0x1e65fb(0x6ef)],..._0x2e6715,{'begin':/(url|data-uri)\(/,'end':/\)/,'relevance':0x0,'keywords':{'built_in':'url\x20data-uri'},'contains':[..._0x2e6715,{'className':_0x1e65fb(0x4f7c),'begin':/[^)]/,'endsWithParent':!0x0,'excludeEnd':!0x0}]},_0x45b7db['FUNCTION_DISPATCH']]},{'begin':_0x2f2857[_0x1e65fb(0x2901)](/@/),'end':'[{;]','relevance':0x0,'illegal':/:/,'contains':[{'className':'keyword','begin':/@-?\w[\w]*(-\w+)*/},{'begin':/\s/,'endsWithParent':!0x0,'excludeEnd':!0x0,'relevance':0x0,'keywords':{'$pattern':/[a-z-]+/,'keyword':_0x1e65fb(0x22b5),'attribute':_0x163263[_0x1e65fb(0x379c)]('\x20')},'contains':[{'begin':/[a-z-]+(?=:)/,'className':_0x1e65fb(0x47d5)},..._0x2e6715,_0x45b7db[_0x1e65fb(0x6ef)]]}]},{'className':_0x1e65fb(0x2b50),'begin':_0x1e65fb(0x3648)+_0x2e656d[_0x1e65fb(0x379c)]('|')+_0x1e65fb(0x3ffc)}]};};},0x1a1b:_0x360879=>{const _0x18930a=a0_0x329b;_0x360879[_0x18930a(0x15de)]=function(_0x2c07cc){const _0x1dc718=_0x18930a,_0xe5c687={'$pattern':_0x2c07cc['UNDERSCORE_IDENT_RE'],'keyword':_0x1dc718(0x4bd4),'built_in':_0x1dc718(0x45bc),'literal':_0x1dc718(0x2c6e)},_0x9921f4=_0x1dc718(0x4d8f),_0x1c8d5d=_0x1dc718(0x1be5),_0x4b9a47=_0x1dc718(0x2d3d),_0xcea61e=_0x1dc718(0x1ce6)+_0x1c8d5d+')',_0x16cd02='('+_0x9921f4+_0x1dc718(0x10ea)+(_0x1dc718(0x3084)+_0x4b9a47)+')',_0x47ffed=_0x1dc718(0x7e4),_0x4a02bc={'className':'number','begin':'\x5cb'+_0x16cd02+_0x1dc718(0xff7),'relevance':0x0},_0x33825a={'className':'number','begin':_0x1dc718(0x3648)+('('+(_0x1dc718(0x2f4f)+_0x4b9a47+'\x5c.'+_0x4b9a47+_0x1dc718(0x4e90)+_0x4b9a47+')[pP][+-]?'+_0x1c8d5d+')')+'|'+('('+_0x1c8d5d+'(\x5c.\x5cd*|'+_0xcea61e+_0x1dc718(0x33be)+_0x1c8d5d+'|\x5c.'+_0x9921f4+_0xcea61e+'?)')+')')+'([fF]|L|i|[fF]i|Li)?|'+_0x16cd02+_0x1dc718(0x3cc),'relevance':0x0},_0x28a79c={'className':'string','begin':'\x27('+_0x47ffed+_0x1dc718(0x1eae),'end':'\x27','illegal':'.'},_0x2cc382={'className':_0x1dc718(0x4f7c),'begin':'\x22','contains':[{'begin':_0x47ffed,'relevance':0x0}],'end':_0x1dc718(0x3656)},_0x4a30ef=_0x2c07cc['COMMENT'](_0x1dc718(0x3b39),_0x1dc718(0x6e1),{'contains':['self'],'relevance':0xa});return{'name':'D','keywords':_0xe5c687,'contains':[_0x2c07cc[_0x1dc718(0x4d7)],_0x2c07cc['C_BLOCK_COMMENT_MODE'],_0x4a30ef,{'className':_0x1dc718(0x4f7c),'begin':_0x1dc718(0x14ce),'relevance':0xa},_0x2cc382,{'className':_0x1dc718(0x4f7c),'begin':'[rq]\x22','end':'\x22[cwd]?','relevance':0x5},{'className':_0x1dc718(0x4f7c),'begin':'`','end':_0x1dc718(0x4054)},{'className':'string','begin':_0x1dc718(0x796),'end':_0x1dc718(0x2b6)},_0x33825a,_0x4a02bc,_0x28a79c,{'className':_0x1dc718(0x482),'begin':_0x1dc718(0x1335),'end':'$','relevance':0x5},{'className':_0x1dc718(0x482),'begin':'#(line)','end':'$','relevance':0x5},{'className':'keyword','begin':'@[a-zA-Z_][a-zA-Z_\x5cd]*'}]};};},0x8e2:_0x27600c=>{const _0x3db4be=a0_0x329b;_0x27600c[_0x3db4be(0x15de)]=function(_0x33c0c6){const _0x5bf91a=_0x3db4be,_0x292e5d={'className':_0x5bf91a(0xfeb),'variants':[{'begin':'\x5c$[A-Za-z0-9_]+'}]},_0x52ea4e={'className':_0x5bf91a(0xfeb),'variants':[{'begin':/\$\{/,'end':/\}/}],'keywords':_0x5bf91a(0x3c2f)},_0x549c5c={'className':_0x5bf91a(0x4f7c),'variants':[{'begin':_0x5bf91a(0xca6),'end':_0x5bf91a(0x36fe)},{'begin':_0x5bf91a(0x4471),'end':_0x5bf91a(0x3a07)},{'begin':'r\x27','end':'\x27','illegal':'\x5cn'},{'begin':'r\x22','end':'\x22','illegal':'\x5cn'},{'begin':'\x27\x27\x27','end':_0x5bf91a(0x36fe),'contains':[_0x33c0c6['BACKSLASH_ESCAPE'],_0x292e5d,_0x52ea4e]},{'begin':_0x5bf91a(0x3a07),'end':_0x5bf91a(0x3a07),'contains':[_0x33c0c6['BACKSLASH_ESCAPE'],_0x292e5d,_0x52ea4e]},{'begin':'\x27','end':'\x27','illegal':'\x5cn','contains':[_0x33c0c6[_0x5bf91a(0x421a)],_0x292e5d,_0x52ea4e]},{'begin':'\x22','end':'\x22','illegal':'\x5cn','contains':[_0x33c0c6['BACKSLASH_ESCAPE'],_0x292e5d,_0x52ea4e]}]};_0x52ea4e['contains']=[_0x33c0c6[_0x5bf91a(0x3d6a)],_0x549c5c];const _0x401889=[_0x5bf91a(0x2e8b),_0x5bf91a(0x19e9),_0x5bf91a(0xd28),_0x5bf91a(0x1be9),_0x5bf91a(0x3b77),_0x5bf91a(0x46a0),_0x5bf91a(0x1c99),'Map','Match',_0x5bf91a(0x2503),_0x5bf91a(0x2af8),'RegExp',_0x5bf91a(0x3c62),_0x5bf91a(0xf5e),_0x5bf91a(0x2f8c),_0x5bf91a(0xffc),_0x5bf91a(0x3c99),'Symbol',_0x5bf91a(0x3a5),_0x5bf91a(0x2af7),_0x5bf91a(0x3618),_0x5bf91a(0x1038),'int','num',_0x5bf91a(0x149d),_0x5bf91a(0x383f)],_0x37e856=_0x401889['map'](_0x5c7fc0=>_0x5c7fc0+'?');return{'name':_0x5bf91a(0x1f3b),'keywords':{'keyword':[_0x5bf91a(0x3ba4),'as',_0x5bf91a(0x79e),_0x5bf91a(0x11f8),_0x5bf91a(0x34ed),'base',_0x5bf91a(0x49c0),'case',_0x5bf91a(0x424a),_0x5bf91a(0x42ec),'const',_0x5bf91a(0x495f),_0x5bf91a(0x3841),_0x5bf91a(0x2fab),_0x5bf91a(0x45b),'do',_0x5bf91a(0x4dc8),_0x5bf91a(0x36f0),_0x5bf91a(0x4afd),_0x5bf91a(0x5010),_0x5bf91a(0x5048),_0x5bf91a(0x44d8),_0x5bf91a(0x509e),_0x5bf91a(0x415c),_0x5bf91a(0x3561),_0x5bf91a(0xac4),_0x5bf91a(0x292f),_0x5bf91a(0x8f1),'Function',_0x5bf91a(0x2685),'hide','if',_0x5bf91a(0xc32),'import','in',_0x5bf91a(0x1fc2),'is',_0x5bf91a(0x2e4f),'library',_0x5bf91a(0x2f63),_0x5bf91a(0x386e),'null','on',_0x5bf91a(0x5d3),_0x5bf91a(0x3e1),_0x5bf91a(0x2753),_0x5bf91a(0x4bb3),'return',_0x5bf91a(0x45a),_0x5bf91a(0x2d7e),_0x5bf91a(0x1eeb),'static',_0x5bf91a(0x4d6e),_0x5bf91a(0x68),_0x5bf91a(0xf9e),'this','throw',_0x5bf91a(0x23f6),_0x5bf91a(0x47b4),_0x5bf91a(0x4947),_0x5bf91a(0x3c21),_0x5bf91a(0x4004),'when',_0x5bf91a(0x217b),_0x5bf91a(0xa48),_0x5bf91a(0x25d6)],'built_in':_0x401889[_0x5bf91a(0x41bf)](_0x37e856)[_0x5bf91a(0x41bf)](['Never',_0x5bf91a(0x297f),_0x5bf91a(0x4dc8),_0x5bf91a(0x33d3),'document','querySelector',_0x5bf91a(0x44dc),_0x5bf91a(0x3837)]),'$pattern':/[A-Za-z][A-Za-z0-9_]*\??/},'contains':[_0x549c5c,_0x33c0c6[_0x5bf91a(0x274a)](/\/\*\*(?!\/)/,/\*\//,{'subLanguage':'markdown','relevance':0x0}),_0x33c0c6[_0x5bf91a(0x274a)](/\/{3,} ?/,/$/,{'contains':[{'subLanguage':_0x5bf91a(0x4f61),'begin':'.','end':'$','relevance':0x0}]}),_0x33c0c6[_0x5bf91a(0x4d7)],_0x33c0c6[_0x5bf91a(0x1bbc)],{'className':_0x5bf91a(0x42ec),'beginKeywords':_0x5bf91a(0x40cd),'end':/\{/,'excludeEnd':!0x0,'contains':[{'beginKeywords':'extends\x20implements'},_0x33c0c6[_0x5bf91a(0x469b)]]},_0x33c0c6['C_NUMBER_MODE'],{'className':_0x5bf91a(0x482),'begin':_0x5bf91a(0x144f)},{'begin':'=>'}]};};},0x20fb:_0x41db25=>{const _0x4c4db0=a0_0x329b;_0x41db25[_0x4c4db0(0x15de)]=function(_0x11d087){const _0x3fea02=_0x4c4db0,_0x199a57=[_0x3fea02(0x15de),_0x3fea02(0x3fa5),_0x3fea02(0x15ea),_0x3fea02(0x47bf),_0x3fea02(0x47f8),_0x3fea02(0xf1d),_0x3fea02(0x203c),_0x3fea02(0x8f1),'mod',_0x3fea02(0x217b),_0x3fea02(0x2d7e),_0x3fea02(0x3afa),_0x3fea02(0x22d5),_0x3fea02(0x48ac),_0x3fea02(0x4f8c),_0x3fea02(0x4163),_0x3fea02(0x1223),_0x3fea02(0x42ec),_0x3fea02(0x4e11),_0x3fea02(0x3c21),_0x3fea02(0x1fc2),'or','private',_0x3fea02(0x2308),'exit',_0x3fea02(0x1cf3),_0x3fea02(0x153d),'to',_0x3fea02(0x36f0),_0x3fea02(0x1ca),_0x3fea02(0x1d76),_0x3fea02(0x2d18),_0x3fea02(0x137d),_0x3fea02(0x2352),'resourcestring',_0x3fea02(0x1f3a),'packed',_0x3fea02(0xfec),_0x3fea02(0x4284),_0x3fea02(0x43ea),_0x3fea02(0x2638),_0x3fea02(0x3068),'do',_0x3fea02(0x3b1c),_0x3fea02(0x330f),_0x3fea02(0x2874),_0x3fea02(0x3dfb),_0x3fea02(0x721),_0x3fea02(0x257d),_0x3fea02(0x39c8),_0x3fea02(0x2b58),_0x3fea02(0x2c2e),_0x3fea02(0x1706),_0x3fea02(0x4f7c),'on',_0x3fea02(0x50d2),_0x3fea02(0x16da),_0x3fea02(0x46e8),_0x3fea02(0x16c9),'write',_0x3fea02(0x18ac),_0x3fea02(0x4891),_0x3fea02(0xa48),_0x3fea02(0x477e),_0x3fea02(0x2af9),_0x3fea02(0x172d),_0x3fea02(0x2fab),_0x3fea02(0x8b0),'if',_0x3fea02(0x1bf3),_0x3fea02(0x1fb8),'in','downto','threadvar','of',_0x3fea02(0x47b4),_0x3fea02(0x40f6),'const',_0x3fea02(0x509e),'constructor',_0x3fea02(0x70a),_0x3fea02(0x1397),_0x3fea02(0x452b),_0x3fea02(0x3e20),_0x3fea02(0x292f),'published','procedure',_0x3fea02(0x21e9),_0x3fea02(0x269d),_0x3fea02(0x5d3),'as','is',_0x3fea02(0x3ba4),_0x3fea02(0x1f89),_0x3fea02(0x25f9),'bitpacked',_0x3fea02(0x49c0),_0x3fea02(0x495f),_0x3fea02(0x3e14),_0x3fea02(0x3aa4),_0x3fea02(0x2ac6),_0x3fea02(0x157b),_0x3fea02(0x4211),_0x3fea02(0x2c06),_0x3fea02(0x2bcb),'dynamic',_0x3fea02(0x5010),_0x3fea02(0x4e7c),_0x3fea02(0x4e69),_0x3fea02(0xf11),_0x3fea02(0x19ed),_0x3fea02(0xc32),_0x3fea02(0x4688),_0x3fea02(0x3e48),_0x3fea02(0xef7),'name',_0x3fea02(0x45ce),'noreturn',_0x3fea02(0x1d45),_0x3fea02(0x18c9),_0x3fea02(0x3180),_0x3fea02(0x6e),'softfloat',_0x3fea02(0x4e01),_0x3fea02(0x3cf8),_0x3fea02(0x4eb2),_0x3fea02(0x3419)],_0x5e1a1f=[_0x11d087[_0x3fea02(0x4d7)],_0x11d087[_0x3fea02(0x274a)](/\{/,/\}/,{'relevance':0x0}),_0x11d087[_0x3fea02(0x274a)](/\(\*/,/\*\)/,{'relevance':0xa})],_0x1a3169={'className':'meta','variants':[{'begin':/\{\$/,'end':/\}/},{'begin':/\(\*\$/,'end':/\*\)/}]},_0x4e65fc={'className':_0x3fea02(0x4f7c),'begin':/'/,'end':/'/,'contains':[{'begin':/''/}]},_0x260115={'className':_0x3fea02(0x4f7c),'begin':/(#\d+)+/},_0x423a9f={'begin':_0x11d087[_0x3fea02(0x2cb)]+_0x3fea02(0x20a2),'returnBegin':!0x0,'contains':[_0x11d087['TITLE_MODE']]},_0x2d0d8f={'className':_0x3fea02(0x3dfb),'beginKeywords':_0x3fea02(0x50cc),'end':/[:;]/,'keywords':'function\x20constructor|10\x20destructor|10\x20procedure|10','contains':[_0x11d087[_0x3fea02(0x38c3)],{'className':'params','begin':/\(/,'end':/\)/,'keywords':_0x199a57,'contains':[_0x4e65fc,_0x260115,_0x1a3169][_0x3fea02(0x41bf)](_0x5e1a1f)},_0x1a3169]['concat'](_0x5e1a1f)};return{'name':_0x3fea02(0x465c),'aliases':[_0x3fea02(0xa83),_0x3fea02(0x2c26),_0x3fea02(0x4e5a),_0x3fea02(0x40f6)],'case_insensitive':!0x0,'keywords':_0x199a57,'illegal':/"|\$[G-Zg-z]|\/\*|<\/|\|/,'contains':[_0x4e65fc,_0x260115,_0x11d087[_0x3fea02(0x1f70)],{'className':_0x3fea02(0x1ed7),'relevance':0x0,'variants':[{'begin':_0x3fea02(0x2e50)},{'begin':'&[0-7]+'},{'begin':'%[01]+'}]},_0x423a9f,_0x2d0d8f,_0x1a3169][_0x3fea02(0x41bf)](_0x5e1a1f)};};},0x2194:_0x3c3414=>{const _0x119d67=a0_0x329b;_0x3c3414[_0x119d67(0x15de)]=function(_0x3d5643){const _0x36ac1e=_0x119d67,_0x4999b1=_0x3d5643[_0x36ac1e(0x12ab)];return{'name':_0x36ac1e(0x64e),'aliases':['patch'],'contains':[{'className':_0x36ac1e(0x482),'relevance':0xa,'match':_0x4999b1['either'](/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{'className':_0x36ac1e(0x43ca),'variants':[{'begin':_0x4999b1[_0x36ac1e(0x467b)](/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),'end':/$/},{'match':/^\*{15}$/}]},{'className':'addition','begin':/^\+/,'end':/$/},{'className':_0x36ac1e(0x38ff),'begin':/^-/,'end':/$/},{'className':_0x36ac1e(0x2412),'begin':/^!/,'end':/$/}]};};},0xda8:_0x1cdd4d=>{const _0x3d9e53=a0_0x329b;_0x1cdd4d[_0x3d9e53(0x15de)]=function(_0x3480f2){const _0x38af38=_0x3d9e53,_0x4b1f4={'begin':/\|[A-Za-z]+:?/,'keywords':{'name':'truncatewords\x20removetags\x20linebreaksbr\x20yesno\x20get_digit\x20timesince\x20random\x20striptags\x20filesizeformat\x20escape\x20linebreaks\x20length_is\x20ljust\x20rjust\x20cut\x20urlize\x20fix_ampersands\x20title\x20floatformat\x20capfirst\x20pprint\x20divisibleby\x20add\x20make_list\x20unordered_list\x20urlencode\x20timeuntil\x20urlizetrunc\x20wordcount\x20stringformat\x20linenumbers\x20slice\x20date\x20dictsort\x20dictsortreversed\x20default_if_none\x20pluralize\x20lower\x20join\x20center\x20default\x20truncatewords_html\x20upper\x20length\x20phone2numeric\x20wordwrap\x20time\x20addslashes\x20slugify\x20first\x20escapejs\x20force_escape\x20iriencode\x20last\x20safe\x20safeseq\x20truncatechars\x20localize\x20unlocalize\x20localtime\x20utc\x20timezone'},'contains':[_0x3480f2['QUOTE_STRING_MODE'],_0x3480f2[_0x38af38(0x36ec)]]};return{'name':_0x38af38(0x101e),'aliases':[_0x38af38(0x2f0d)],'case_insensitive':!0x0,'subLanguage':_0x38af38(0x2742),'contains':[_0x3480f2[_0x38af38(0x274a)](/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),_0x3480f2[_0x38af38(0x274a)](/\{#/,/#\}/),{'className':'template-tag','begin':/\{%/,'end':/%\}/,'contains':[{'className':'name','begin':/\w+/,'keywords':{'name':'comment\x20endcomment\x20load\x20templatetag\x20ifchanged\x20endifchanged\x20if\x20endif\x20firstof\x20for\x20endfor\x20ifnotequal\x20endifnotequal\x20widthratio\x20extends\x20include\x20spaceless\x20endspaceless\x20regroup\x20ifequal\x20endifequal\x20ssi\x20now\x20with\x20cycle\x20url\x20filter\x20endfilter\x20debug\x20block\x20endblock\x20else\x20autoescape\x20endautoescape\x20csrf_token\x20empty\x20elif\x20endwith\x20static\x20trans\x20blocktrans\x20endblocktrans\x20get_static_prefix\x20get_media_prefix\x20plural\x20get_current_language\x20language\x20get_available_languages\x20get_current_language_bidi\x20get_language_info\x20get_language_info_list\x20localize\x20endlocalize\x20localtime\x20endlocaltime\x20timezone\x20endtimezone\x20get_current_timezone\x20verbatim'},'starts':{'endsWithParent':!0x0,'keywords':_0x38af38(0x2a6),'contains':[_0x4b1f4],'relevance':0x0}}]},{'className':_0x38af38(0x169d),'begin':/\{\{/,'end':/\}\}/,'contains':[_0x4b1f4]}]};};},0x5dc:_0x5505ab=>{const _0x672329=a0_0x329b;_0x5505ab[_0x672329(0x15de)]=function(_0x5ad9e6){const _0x212011=_0x672329;return{'name':_0x212011(0x2de8),'aliases':[_0x212011(0xf0f),_0x212011(0x3bc3)],'keywords':['IN','A',_0x212011(0x2694),'AFSDB',_0x212011(0xc7f),_0x212011(0x4546),_0x212011(0x8e1),_0x212011(0x7d8),_0x212011(0x2d34),'CNAME','DHCID',_0x212011(0x3790),'DNAME',_0x212011(0x366a),'DS','HIP',_0x212011(0x1e4c),'KEY','KX','LOC','MX',_0x212011(0x2ba),'NS',_0x212011(0x237c),'NSEC3',_0x212011(0x30e9),_0x212011(0x10ff),_0x212011(0x5110),'RP',_0x212011(0x3a82),_0x212011(0x4d01),_0x212011(0x3365),_0x212011(0x4abb),'TA',_0x212011(0x3975),_0x212011(0x21ec),_0x212011(0x1588),_0x212011(0x3403)],'contains':[_0x5ad9e6['COMMENT'](';','$',{'relevance':0x0}),{'className':_0x212011(0x482),'begin':/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{'className':_0x212011(0x1ed7),'begin':_0x212011(0x747)},{'className':_0x212011(0x1ed7),'begin':_0x212011(0x338e)},_0x5ad9e6['inherit'](_0x5ad9e6[_0x212011(0x1f70)],{'begin':/\b\d+[dhwm]?/})]};};},0x23ed:_0xbd54d9=>{const _0xd138e8=a0_0x329b;_0xbd54d9[_0xd138e8(0x15de)]=function(_0x554c85){const _0xe4e1cf=_0xd138e8;return{'name':'Dockerfile','aliases':[_0xe4e1cf(0x49d5)],'case_insensitive':!0x0,'keywords':[_0xe4e1cf(0xc81),'maintainer',_0xe4e1cf(0x1911),_0xe4e1cf(0x2f9e),_0xe4e1cf(0x2a8b),'user',_0xe4e1cf(0x11c1),_0xe4e1cf(0x4a65)],'contains':[_0x554c85['HASH_COMMENT_MODE'],_0x554c85[_0xe4e1cf(0x36ec)],_0x554c85[_0xe4e1cf(0x3c93)],_0x554c85[_0xe4e1cf(0x1f70)],{'beginKeywords':_0xe4e1cf(0x1593),'starts':{'end':/[^\\]$/,'subLanguage':_0xe4e1cf(0x360d)}}],'illegal':'{const _0x13fc2a=a0_0x329b;_0x2f80a6[_0x13fc2a(0x15de)]=function(_0x51478b){const _0x3c1f34=_0x13fc2a,_0x4b7602=_0x51478b['COMMENT'](/^\s*@?rem\b/,/$/,{'relevance':0xa});return{'name':'Batch\x20file\x20(DOS)','aliases':[_0x3c1f34(0x38be),_0x3c1f34(0x902)],'case_insensitive':!0x0,'illegal':/\/\*/,'keywords':{'keyword':['if','else',_0x3c1f34(0x330f),_0x3c1f34(0x8f1),'in','do',_0x3c1f34(0x4c9d),_0x3c1f34(0x3e3a),_0x3c1f34(0x4163),_0x3c1f34(0xe4a),_0x3c1f34(0x30cf),'defined',_0x3c1f34(0x12f8),'neq','lss',_0x3c1f34(0x232d),_0x3c1f34(0x3a1e),_0x3c1f34(0x2f0c)],'built_in':[_0x3c1f34(0x3f94),_0x3c1f34(0x400d),_0x3c1f34(0x1141),_0x3c1f34(0x46af),_0x3c1f34(0x37ac),'con','com4','com3','com2',_0x3c1f34(0x4239),_0x3c1f34(0x3e76),_0x3c1f34(0x13fc),'cd','dir','echo',_0x3c1f34(0x3733),_0x3c1f34(0x4816),_0x3c1f34(0x2d7e),_0x3c1f34(0x142),_0x3c1f34(0x4bb5),_0x3c1f34(0x180a),'assoc','at',_0x3c1f34(0x1c30),'break',_0x3c1f34(0x385c),'cd',_0x3c1f34(0x33ee),_0x3c1f34(0x3962),_0x3c1f34(0x43fd),'chkntfs',_0x3c1f34(0x3b29),_0x3c1f34(0x902),'color',_0x3c1f34(0x246),_0x3c1f34(0x4935),_0x3c1f34(0x1700),_0x3c1f34(0x576),_0x3c1f34(0x1301),_0x3c1f34(0x37a9),_0x3c1f34(0x22a),'doskey',_0x3c1f34(0x1cd0),'fs',_0x3c1f34(0x12b9),_0x3c1f34(0x4505),_0x3c1f34(0x3d03),_0x3c1f34(0x2802),_0x3c1f34(0x4385),_0x3c1f34(0x33b4),_0x3c1f34(0x4bf4),_0x3c1f34(0x22d5),'md',_0x3c1f34(0x44c7),_0x3c1f34(0x3ed1),'more','move',_0x3c1f34(0x4157),'pause','print',_0x3c1f34(0x923),_0x3c1f34(0xf21),_0x3c1f34(0x1f00),'rd',_0x3c1f34(0xbc2),'rem',_0x3c1f34(0x15b7),_0x3c1f34(0x1db7),_0x3c1f34(0x3dd9),_0x3c1f34(0x1f0c),_0x3c1f34(0x13fc),'sort',_0x3c1f34(0x1698),_0x3c1f34(0xfeb),_0x3c1f34(0x4443),_0x3c1f34(0x5f1),'tree','type',_0x3c1f34(0x22f5),_0x3c1f34(0x4922),_0x3c1f34(0x29ee),'ping','net','ipconfig',_0x3c1f34(0x488c),_0x3c1f34(0x4392),_0x3c1f34(0x413b),_0x3c1f34(0xd6a)]},'contains':[{'className':_0x3c1f34(0x4b3a),'begin':/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{'className':'function','begin':_0x3c1f34(0xe0d),'end':'goto:eof','contains':[_0x51478b[_0x3c1f34(0x4f2)](_0x51478b['TITLE_MODE'],{'begin':_0x3c1f34(0x124d)}),_0x4b7602]},{'className':_0x3c1f34(0x1ed7),'begin':_0x3c1f34(0x3f00),'relevance':0x0},_0x4b7602]};};},0x205c:_0x2a6d48=>{const _0x4947a7=a0_0x329b;_0x2a6d48[_0x4947a7(0x15de)]=function(_0x278afb){const _0x1e2c25=_0x4947a7;return{'keywords':'dsconfig','contains':[{'className':_0x1e2c25(0x2448),'begin':'^dsconfig','end':/\s/,'excludeEnd':!0x0,'relevance':0xa},{'className':'built_in','begin':/(list|create|get|set|delete)-(\w+)/,'end':/\s/,'excludeEnd':!0x0,'illegal':_0x1e2c25(0x24ee),'relevance':0xa},{'className':_0x1e2c25(0x4853),'begin':/--(\w+)/,'end':/\s/,'excludeEnd':!0x0},{'className':_0x1e2c25(0x4f7c),'begin':/"/,'end':/"/},{'className':_0x1e2c25(0x4f7c),'begin':/'/,'end':/'/},{'className':_0x1e2c25(0x4f7c),'begin':/[\w\-?]+:\w+/,'end':/\W/,'relevance':0x0},{'className':_0x1e2c25(0x4f7c),'begin':/\w+(\-\w+)*/,'end':/(?=\W)/,'relevance':0x0},_0x278afb[_0x1e2c25(0x165c)]]};};},0xa0a:_0x20c43c=>{const _0x4f594f=a0_0x329b;_0x20c43c[_0x4f594f(0x15de)]=function(_0x362467){const _0x212442=_0x4f594f,_0x4445a6={'className':'string','variants':[_0x362467[_0x212442(0x4f2)](_0x362467['QUOTE_STRING_MODE'],{'begin':_0x212442(0x3f52)}),{'begin':_0x212442(0x32a2),'end':'\x22','contains':[_0x362467[_0x212442(0x421a)]]},{'begin':_0x212442(0x2f46),'end':'\x27','illegal':'.'}]},_0x167cf1={'className':'number','variants':[{'begin':_0x212442(0x496a)},{'begin':_0x362467['C_NUMBER_RE']}],'relevance':0x0},_0x4fa6a1={'className':_0x212442(0x482),'begin':'#','end':'$','keywords':{'keyword':_0x212442(0x3249)},'contains':[{'begin':/\\\n/,'relevance':0x0},{'beginKeywords':_0x212442(0x3354),'end':'$','keywords':{'keyword':_0x212442(0x3354)},'contains':[_0x362467[_0x212442(0x4f2)](_0x4445a6,{'className':'string'}),{'className':_0x212442(0x4f7c),'begin':'<','end':'>','illegal':'\x5cn'}]},_0x4445a6,_0x362467[_0x212442(0x4d7)],_0x362467[_0x212442(0x1bbc)]]},_0xae586d={'className':'variable','begin':/&[a-z\d_]*\b/};return{'name':'Device\x20Tree','contains':[{'className':_0x212442(0xc2f),'begin':/^\/(?=\s*\{)/,'relevance':0xa},_0xae586d,{'className':_0x212442(0x2448),'begin':_0x212442(0xce6)},{'className':_0x212442(0x3148),'begin':_0x212442(0xdc9)},{'className':_0x212442(0xc2f),'begin':/[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,'relevance':0.2},{'relevance':0x0,'match':[/[a-z][a-z-,]+/,/\s*/,/=/],'scope':{0x1:_0x212442(0x1875),0x3:_0x212442(0x5d3)}},{'match':/[a-z][a-z-,]+(?=;)/,'relevance':0x0,'scope':_0x212442(0x1875)},{'className':_0x212442(0x4f24),'relevance':0x0,'begin':'<','end':'>','contains':[_0x167cf1,_0xae586d]},_0x362467[_0x212442(0x4d7)],_0x362467[_0x212442(0x1bbc)],_0x167cf1,_0x4445a6,_0x4fa6a1,{'scope':_0x212442(0x42e1),'relevance':0x0,'match':/\};|[;{}]/},{'begin':_0x362467[_0x212442(0x2cb)]+'::','keywords':''}]};};},0x25fb:_0x5862fa=>{_0x5862fa['exports']=function(_0x2a6b56){const _0x55df07=a0_0x329b;return{'name':_0x55df07(0x3135),'aliases':[_0x55df07(0x3294)],'case_insensitive':!0x0,'subLanguage':'xml','contains':[{'className':_0x55df07(0x29da),'begin':/\{[#\/]/,'end':/\}/,'illegal':/;/,'contains':[{'className':_0x55df07(0x3d9d),'begin':/[a-zA-Z\.-]+/,'starts':{'endsWithParent':!0x0,'relevance':0x0,'contains':[_0x2a6b56[_0x55df07(0x3c93)]]}}]},{'className':_0x55df07(0x169d),'begin':/\{/,'end':/\}/,'illegal':/;/,'keywords':_0x55df07(0x23dd)}]};};},0x2094:_0x3078f5=>{const _0x3ec882=a0_0x329b;_0x3078f5[_0x3ec882(0x15de)]=function(_0xc65217){const _0x560779=_0x3ec882,_0x3da90e=_0xc65217[_0x560779(0x274a)](/\(\*/,/\*\)/);return{'name':_0x560779(0x4d41),'illegal':/\S/,'contains':[_0x3da90e,{'className':_0x560779(0x47d5),'begin':/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{'begin':/=/,'end':/[.;]/,'contains':[_0x3da90e,{'className':_0x560779(0x482),'begin':/\?.*\?/},{'className':_0x560779(0x4f7c),'variants':[_0xc65217[_0x560779(0x36ec)],_0xc65217[_0x560779(0x3c93)],{'begin':'`','end':'`'}]}]}]};};},0x25a0:_0x193f62=>{_0x193f62['exports']=function(_0x3e1641){const _0x51021f=a0_0x329b,_0x44b3ff=_0x3e1641[_0x51021f(0x12ab)],_0x56979c='[a-zA-Z_][a-zA-Z0-9_.]*(!|\x5c?)?',_0x19b24e={'$pattern':_0x56979c,'keyword':['after',_0x51021f(0x1f89),_0x51021f(0x43ea),_0x51021f(0x1bf3),_0x51021f(0x424a),_0x51021f(0x1801),_0x51021f(0x14d1),_0x51021f(0x1067),'do','else',_0x51021f(0x721),'fn',_0x51021f(0x8f1),'if',_0x51021f(0x2c76),'in','not','or','quote',_0x51021f(0x4f8c),'receive',_0x51021f(0x188),_0x51021f(0x28f2),_0x51021f(0x4988),_0x51021f(0x47b4),'unless',_0x51021f(0x278e),'unquote_splicing','use',_0x51021f(0x489c),_0x51021f(0x575)],'literal':[_0x51021f(0x3561),_0x51021f(0x8b0),_0x51021f(0x23f6)]},_0x2dd0a7={'className':'subst','begin':/#\{/,'end':/\}/,'keywords':_0x19b24e},_0x55279f={'match':/\\[\s\S]/,'scope':_0x51021f(0x2962),'relevance':0x0},_0x4a97f2=_0x51021f(0x2a28),_0x2bb011=[{'begin':/"/,'end':/"/},{'begin':/'/,'end':/'/},{'begin':/\//,'end':/\//},{'begin':/\|/,'end':/\|/},{'begin':/\(/,'end':/\)/},{'begin':/\[/,'end':/\]/},{'begin':/\{/,'end':/\}/},{'begin'://}],_0x33af1f=_0x429fb2=>({'scope':_0x51021f(0x2962),'begin':_0x44b3ff[_0x51021f(0x41bf)](/\\/,_0x429fb2),'relevance':0x0}),_0x4a3a14={'className':_0x51021f(0x4f7c),'begin':_0x51021f(0x3f65)+_0x4a97f2+')','contains':_0x2bb011[_0x51021f(0x2c94)](_0x50f10e=>_0x3e1641[_0x51021f(0x4f2)](_0x50f10e,{'contains':[_0x33af1f(_0x50f10e['end']),_0x55279f,_0x2dd0a7]}))},_0x432723={'className':'string','begin':_0x51021f(0x456)+_0x4a97f2+')','contains':_0x2bb011[_0x51021f(0x2c94)](_0x2a8f61=>_0x3e1641[_0x51021f(0x4f2)](_0x2a8f61,{'contains':[_0x33af1f(_0x2a8f61[_0x51021f(0x721)])]}))},_0x220e04={'className':_0x51021f(0x12ab),'variants':[{'begin':'~r(?='+_0x4a97f2+')','contains':_0x2bb011[_0x51021f(0x2c94)](_0x70135=>_0x3e1641['inherit'](_0x70135,{'end':_0x44b3ff['concat'](_0x70135[_0x51021f(0x721)],/[uismxfU]{0,7}/),'contains':[_0x33af1f(_0x70135[_0x51021f(0x721)]),_0x55279f,_0x2dd0a7]}))},{'begin':_0x51021f(0x1099)+_0x4a97f2+')','contains':_0x2bb011['map'](_0x170fda=>_0x3e1641['inherit'](_0x170fda,{'end':_0x44b3ff[_0x51021f(0x41bf)](_0x170fda['end'],/[uismxfU]{0,7}/),'contains':[_0x33af1f(_0x170fda[_0x51021f(0x721)])]}))}]},_0x300992={'className':_0x51021f(0x4f7c),'contains':[_0x3e1641[_0x51021f(0x421a)],_0x2dd0a7],'variants':[{'begin':/"""/,'end':/"""/},{'begin':/'''/,'end':/'''/},{'begin':/~S"""/,'end':/"""/,'contains':[]},{'begin':/~S"/,'end':/"/,'contains':[]},{'begin':/~S'''/,'end':/'''/,'contains':[]},{'begin':/~S'/,'end':/'/,'contains':[]},{'begin':/'/,'end':/'/},{'begin':/"/,'end':/"/}]},_0x3462da={'className':'function','beginKeywords':'def\x20defp\x20defmacro\x20defmacrop','end':/\B\b/,'contains':[_0x3e1641[_0x51021f(0x4f2)](_0x3e1641[_0x51021f(0x38c3)],{'begin':_0x56979c,'endsParent':!0x0})]},_0x56e409=_0x3e1641[_0x51021f(0x4f2)](_0x3462da,{'className':_0x51021f(0x42ec),'beginKeywords':'defimpl\x20defmodule\x20defprotocol\x20defrecord','end':/\bdo\b|$|;/}),_0x1ca756=[_0x300992,_0x220e04,_0x432723,_0x4a3a14,_0x3e1641[_0x51021f(0x165c)],_0x56e409,_0x3462da,{'begin':'::'},{'className':_0x51021f(0x3148),'begin':_0x51021f(0x44cc),'contains':[_0x300992,{'begin':_0x51021f(0x395b)}],'relevance':0x0},{'className':_0x51021f(0x3148),'begin':_0x56979c+':(?!:)','relevance':0x0},{'className':_0x51021f(0xc2f),'begin':/(\b[A-Z][a-zA-Z0-9_]+)/,'relevance':0x0},{'className':_0x51021f(0x1ed7),'begin':_0x51021f(0x3171),'relevance':0x0},{'className':_0x51021f(0x4b3a),'begin':_0x51021f(0x34ea)}];return _0x2dd0a7[_0x51021f(0x160d)]=_0x1ca756,{'name':'Elixir','aliases':['ex',_0x51021f(0x6a5)],'keywords':_0x19b24e,'contains':_0x1ca756};};},0x1fdb:_0x1c6ac6=>{const _0x71be6b=a0_0x329b;_0x1c6ac6[_0x71be6b(0x15de)]=function(_0x43356b){const _0x5a4892=_0x71be6b,_0xc98fa={'variants':[_0x43356b[_0x5a4892(0x274a)]('--','$'),_0x43356b[_0x5a4892(0x274a)](/\{-/,/-\}/,{'contains':[_0x5a4892(0x1001)]})]},_0x35c7dd={'className':_0x5a4892(0x70a),'begin':_0x5a4892(0x2616),'relevance':0x0},_0x33547f={'begin':'\x5c(','end':'\x5c)','illegal':'\x22','contains':[{'className':_0x5a4892(0x70a),'begin':_0x5a4892(0x228c)},_0xc98fa]};return{'name':_0x5a4892(0xb53),'keywords':['let','in','if','then','else',_0x5a4892(0x1bf3),'of',_0x5a4892(0x43c),_0x5a4892(0x2d36),_0x5a4892(0x2c76),_0x5a4892(0x226e),_0x5a4892(0x70a),_0x5a4892(0x1f89),'as','infix',_0x5a4892(0x181e),_0x5a4892(0x3122),_0x5a4892(0x3a08),_0x5a4892(0x403c),_0x5a4892(0xd8c),_0x5a4892(0xb60)],'contains':[{'beginKeywords':_0x5a4892(0x16d5),'end':_0x5a4892(0x226e),'keywords':_0x5a4892(0x3178),'contains':[_0x33547f,_0xc98fa],'illegal':_0x5a4892(0xedb)},{'begin':'import','end':'$','keywords':_0x5a4892(0x1cbe),'contains':[_0x33547f,_0xc98fa],'illegal':_0x5a4892(0xedb)},{'begin':_0x5a4892(0x70a),'end':'$','keywords':'type\x20alias','contains':[_0x35c7dd,_0x33547f,{'begin':/\{/,'end':/\}/,'contains':_0x33547f[_0x5a4892(0x160d)]},_0xc98fa]},{'beginKeywords':_0x5a4892(0x3fba),'end':'$','contains':[_0x43356b[_0x5a4892(0x3d6a)],_0xc98fa]},{'begin':_0x5a4892(0x3a08),'end':'$','keywords':_0x5a4892(0x3a08),'contains':[_0xc98fa]},{'className':_0x5a4892(0x4f7c),'begin':_0x5a4892(0x2f46),'end':'\x27','illegal':'.'},_0x43356b[_0x5a4892(0x3c93)],_0x43356b[_0x5a4892(0x3d6a)],_0x35c7dd,_0x43356b[_0x5a4892(0x4f2)](_0x43356b[_0x5a4892(0x38c3)],{'begin':_0x5a4892(0x4720)}),_0xc98fa,{'begin':_0x5a4892(0x510c)}],'illegal':/;/};};},0x1104:_0x5a4e7f=>{const _0x519e1a=a0_0x329b;_0x5a4e7f[_0x519e1a(0x15de)]=function(_0x6c31b2){const _0x3f7d2f=_0x519e1a;return{'name':_0x3f7d2f(0x411f),'subLanguage':_0x3f7d2f(0x2742),'contains':[_0x6c31b2['COMMENT'](_0x3f7d2f(0x128a),'%>'),{'begin':_0x3f7d2f(0x35f8),'end':_0x3f7d2f(0x10a9),'subLanguage':_0x3f7d2f(0x1dc6),'excludeBegin':!0x0,'excludeEnd':!0x0}]};};},0x1d94:_0x416893=>{const _0x13b253=a0_0x329b;_0x416893[_0x13b253(0x15de)]=function(_0x2e3b2a){const _0x212305=_0x13b253,_0x2b7cf6=_0x2e3b2a[_0x212305(0x12ab)];return{'name':_0x212305(0x4e80),'keywords':{'built_in':'spawn\x20spawn_link\x20self','keyword':_0x212305(0x3727)},'contains':[{'className':_0x212305(0x2149),'begin':_0x212305(0x143c),'relevance':0xa},_0x2e3b2a['COMMENT']('%','$'),{'className':'number','begin':_0x212305(0xe8a),'relevance':0x0},_0x2e3b2a[_0x212305(0x36ec)],_0x2e3b2a[_0x212305(0x3c93)],{'begin':_0x2b7cf6[_0x212305(0x41bf)](/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{'begin':'->'},{'begin':'ok'},{'begin':'!'},{'begin':_0x212305(0x3e5e),'relevance':0x0},{'begin':_0x212305(0x2524),'relevance':0x0}]};};},0x1ffc:_0x25e4db=>{const _0x54eb4b=a0_0x329b;_0x25e4db[_0x54eb4b(0x15de)]=function(_0xb0b4b8){const _0x36a728=_0x54eb4b,_0x349980=_0x36a728(0x10b9),_0x195067='('+_0x349980+':'+_0x349980+'|'+_0x349980+')',_0x5ad569={'keyword':'after\x20and\x20andalso|10\x20band\x20begin\x20bnot\x20bor\x20bsl\x20bzr\x20bxor\x20case\x20catch\x20cond\x20div\x20end\x20fun\x20if\x20let\x20not\x20of\x20orelse|10\x20query\x20receive\x20rem\x20try\x20when\x20xor','literal':_0x36a728(0x3570)},_0x44eed2=_0xb0b4b8['COMMENT']('%','$'),_0x56dc65={'className':_0x36a728(0x1ed7),'begin':_0x36a728(0xe8a),'relevance':0x0},_0x53386={'begin':'fun\x5cs+'+_0x349980+_0x36a728(0x297e)},_0x482bc8={'begin':_0x195067+'\x5c(','end':'\x5c)','returnBegin':!0x0,'relevance':0x0,'contains':[{'begin':_0x195067,'relevance':0x0},{'begin':'\x5c(','end':'\x5c)','endsWithParent':!0x0,'returnEnd':!0x0,'relevance':0x0}]},_0x45d015={'begin':/\{/,'end':/\}/,'relevance':0x0},_0x120d77={'begin':'\x5cb_([A-Z][A-Za-z0-9_]*)?','relevance':0x0},_0x4a481b={'begin':_0x36a728(0x4888),'relevance':0x0},_0x315d6d={'begin':'#'+_0xb0b4b8['UNDERSCORE_IDENT_RE'],'relevance':0x0,'returnBegin':!0x0,'contains':[{'begin':'#'+_0xb0b4b8[_0x36a728(0x2691)],'relevance':0x0},{'begin':/\{/,'end':/\}/,'relevance':0x0}]},_0x187639={'beginKeywords':_0x36a728(0x37bb),'end':_0x36a728(0x721),'keywords':_0x5ad569};_0x187639['contains']=[_0x44eed2,_0x53386,_0xb0b4b8[_0x36a728(0x4f2)](_0xb0b4b8[_0x36a728(0x36ec)],{'className':''}),_0x187639,_0x482bc8,_0xb0b4b8[_0x36a728(0x3c93)],_0x56dc65,_0x45d015,_0x120d77,_0x4a481b,_0x315d6d];const _0x585c9c=[_0x44eed2,_0x53386,_0x187639,_0x482bc8,_0xb0b4b8['QUOTE_STRING_MODE'],_0x56dc65,_0x45d015,_0x120d77,_0x4a481b,_0x315d6d];_0x482bc8['contains'][0x1][_0x36a728(0x160d)]=_0x585c9c,_0x45d015['contains']=_0x585c9c,_0x315d6d[_0x36a728(0x160d)][0x1][_0x36a728(0x160d)]=_0x585c9c;const _0x2961bd={'className':_0x36a728(0x4f24),'begin':'\x5c(','end':'\x5c)','contains':_0x585c9c};return{'name':'Erlang','aliases':[_0x36a728(0x595)],'keywords':_0x5ad569,'illegal':_0x36a728(0x45fb),'contains':[{'className':_0x36a728(0x3dfb),'begin':'^'+_0x349980+_0x36a728(0x17b4),'end':'->','returnBegin':!0x0,'illegal':_0x36a728(0x1224),'contains':[_0x2961bd,_0xb0b4b8['inherit'](_0xb0b4b8[_0x36a728(0x38c3)],{'begin':_0x349980})],'starts':{'end':_0x36a728(0x3f3c),'keywords':_0x5ad569,'contains':_0x585c9c}},_0x44eed2,{'begin':'^-','end':'\x5c.','relevance':0x0,'excludeEnd':!0x0,'returnBegin':!0x0,'keywords':{'$pattern':'-'+_0xb0b4b8[_0x36a728(0x2cb)],'keyword':[_0x36a728(0x3314),_0x36a728(0x3c74),'-undef',_0x36a728(0xc08),'-ifdef',_0x36a728(0x3ffa),'-author',_0x36a728(0x75),_0x36a728(0x3b43),_0x36a728(0x4db0),_0x36a728(0x3b3c),_0x36a728(0x24f7),_0x36a728(0x772),_0x36a728(0x3e27),_0x36a728(0x1416),_0x36a728(0x13f6),'-endif',_0x36a728(0x968),_0x36a728(0x75e),_0x36a728(0x4a0c),'-spec'][_0x36a728(0x2c94)](_0x3840ba=>_0x3840ba+_0x36a728(0x3c4c))[_0x36a728(0x379c)]('\x20')},'contains':[_0x2961bd]},_0x56dc65,_0xb0b4b8['QUOTE_STRING_MODE'],_0x315d6d,_0x120d77,_0x4a481b,_0x45d015,{'begin':/\.$/}]};};},0x1c78:_0x4a3151=>{_0x4a3151['exports']=function(_0x136461){const _0x10b6d6=a0_0x329b;return{'name':_0x10b6d6(0x3d0d),'aliases':[_0x10b6d6(0x4eac),_0x10b6d6(0xb6a)],'case_insensitive':!0x0,'keywords':{'$pattern':/[a-zA-Z][\w\.]*/,'built_in':['ABS',_0x10b6d6(0x259b),_0x10b6d6(0x463b),_0x10b6d6(0x4261),_0x10b6d6(0xe9a),_0x10b6d6(0x414b),_0x10b6d6(0xc65),_0x10b6d6(0x2e8e),_0x10b6d6(0x274e),_0x10b6d6(0x1540),_0x10b6d6(0x5075),'AND',_0x10b6d6(0x35a3),_0x10b6d6(0x1480),'ASC',_0x10b6d6(0x454b),'ASINH',_0x10b6d6(0x3b2),_0x10b6d6(0x3942),_0x10b6d6(0x4349),_0x10b6d6(0x2829),_0x10b6d6(0x3f30),_0x10b6d6(0x1c13),'AVERAGEIF',_0x10b6d6(0x37f9),_0x10b6d6(0x2755),'BASE','BESSELI',_0x10b6d6(0x3635),'BESSELK','BESSELY',_0x10b6d6(0x311f),_0x10b6d6(0x1716),_0x10b6d6(0x112),_0x10b6d6(0x1fdc),_0x10b6d6(0x4d60),_0x10b6d6(0x1e1d),'BIN2OCT',_0x10b6d6(0x41a9),_0x10b6d6(0x241b),_0x10b6d6(0x1133),_0x10b6d6(0x5d8),'BITAND','BITLSHIFT',_0x10b6d6(0x1dcc),_0x10b6d6(0x15d7),'BITXOR',_0x10b6d6(0x1268),_0x10b6d6(0x729),'CEILING.MATH',_0x10b6d6(0x3d5f),_0x10b6d6(0x21b5),_0x10b6d6(0x2c1),_0x10b6d6(0xe87),_0x10b6d6(0x4141),_0x10b6d6(0x132),_0x10b6d6(0xfa8),_0x10b6d6(0x355b),_0x10b6d6(0x4fff),'CHISQ.INV.RT',_0x10b6d6(0xbd1),_0x10b6d6(0x1ac9),_0x10b6d6(0x36b4),_0x10b6d6(0x3599),_0x10b6d6(0xc56),_0x10b6d6(0x3be0),_0x10b6d6(0x1790),_0x10b6d6(0x4306),'COMPLEX',_0x10b6d6(0x4ed9),_0x10b6d6(0x37a3),'CONFIDENCE','CONFIDENCE.NORM',_0x10b6d6(0x152e),_0x10b6d6(0x130),_0x10b6d6(0x21cc),_0x10b6d6(0x1657),_0x10b6d6(0x858),_0x10b6d6(0x4bf),_0x10b6d6(0x3bef),_0x10b6d6(0x10e4),'COUNTA','COUNTBLANK',_0x10b6d6(0x4b38),'COUNTIFS',_0x10b6d6(0x4f28),'COUPDAYS',_0x10b6d6(0x4d8c),'COUPNCD',_0x10b6d6(0x32d2),'COUPPCD',_0x10b6d6(0x6e5),_0x10b6d6(0x86),'COVARIANCE.S',_0x10b6d6(0x37e5),_0x10b6d6(0x2a4b),_0x10b6d6(0x7be),'CUBEKPIMEMBER','CUBEMEMBER',_0x10b6d6(0x4d6),'CUBERANKEDMEMBER',_0x10b6d6(0x340e),_0x10b6d6(0x4eaa),_0x10b6d6(0x4493),_0x10b6d6(0x34ce),_0x10b6d6(0x420c),_0x10b6d6(0x4b95),_0x10b6d6(0x43d0),_0x10b6d6(0x303d),'DAVERAGE',_0x10b6d6(0xacb),_0x10b6d6(0x1c87),_0x10b6d6(0x2f69),'DB',_0x10b6d6(0x4ee9),_0x10b6d6(0x1382),_0x10b6d6(0x151b),_0x10b6d6(0x49ae),_0x10b6d6(0x1458),_0x10b6d6(0x36b0),_0x10b6d6(0x77f),_0x10b6d6(0x3d2f),'DEGREES','DELTA',_0x10b6d6(0x2115),_0x10b6d6(0x4558),_0x10b6d6(0x19c8),_0x10b6d6(0x50ee),_0x10b6d6(0x3d0f),_0x10b6d6(0x787),_0x10b6d6(0x49b6),_0x10b6d6(0x2dfd),_0x10b6d6(0x273b),_0x10b6d6(0x1a44),'DSTDEVP',_0x10b6d6(0x4b1d),_0x10b6d6(0x1755),_0x10b6d6(0x2595),_0x10b6d6(0x138d),_0x10b6d6(0x6ec),'EFFECT',_0x10b6d6(0x388b),_0x10b6d6(0x2333),'ERF',_0x10b6d6(0x26ae),'ERFC','ERFC.PRECISE',_0x10b6d6(0x1009),_0x10b6d6(0x370f),_0x10b6d6(0x465a),_0x10b6d6(0x1307),_0x10b6d6(0x30a2),_0x10b6d6(0x18df),_0x10b6d6(0x12a5),_0x10b6d6(0x7c8),_0x10b6d6(0x373e),_0x10b6d6(0x2717),_0x10b6d6(0x210c),_0x10b6d6(0x1a12),'F.DIST.RT','FILTERXML',_0x10b6d6(0xa2d),_0x10b6d6(0x3333),'F.INV',_0x10b6d6(0x4713),_0x10b6d6(0x3e79),_0x10b6d6(0x1b4e),_0x10b6d6(0x32d9),_0x10b6d6(0xebb),_0x10b6d6(0x3bf5),_0x10b6d6(0x10a5),_0x10b6d6(0xf8a),_0x10b6d6(0x3eb),_0x10b6d6(0x40e),'FORECAST.ETS.CONFINT','FORECAST.ETS.SEASONALITY',_0x10b6d6(0x42ba),_0x10b6d6(0x2f08),_0x10b6d6(0x1f1b),_0x10b6d6(0x11de),_0x10b6d6(0x3980),_0x10b6d6(0x87f),'FV',_0x10b6d6(0xef1),'GAMMA',_0x10b6d6(0x1bb5),_0x10b6d6(0x3f76),_0x10b6d6(0x1e74),_0x10b6d6(0x3267),_0x10b6d6(0x1828),'GAMMALN.PRECISE',_0x10b6d6(0x4532),'GCD',_0x10b6d6(0x401c),_0x10b6d6(0x23f9),_0x10b6d6(0x1a24),_0x10b6d6(0x472b),_0x10b6d6(0x19f4),_0x10b6d6(0xd81),_0x10b6d6(0x2604),_0x10b6d6(0x1ee1),'HLOOKUP',_0x10b6d6(0x4deb),_0x10b6d6(0x2db1),_0x10b6d6(0x3222),_0x10b6d6(0xb91),'IF','IFERROR','IFNA',_0x10b6d6(0x4812),'IMABS',_0x10b6d6(0x4c26),_0x10b6d6(0x1b28),'IMCONJUGATE','IMCOS','IMCOSH',_0x10b6d6(0xdb6),_0x10b6d6(0x2bed),_0x10b6d6(0x2fc3),_0x10b6d6(0x36be),'IMEXP',_0x10b6d6(0x34ee),_0x10b6d6(0x35ed),_0x10b6d6(0x1866),'IMPOWER',_0x10b6d6(0x2a59),_0x10b6d6(0x173b),'IMSEC',_0x10b6d6(0x2b99),_0x10b6d6(0x4130),_0x10b6d6(0x3bee),_0x10b6d6(0x5118),_0x10b6d6(0x1b1e),_0x10b6d6(0x3d3d),_0x10b6d6(0x6b8),_0x10b6d6(0xdcd),_0x10b6d6(0x4d77),_0x10b6d6(0x2002),_0x10b6d6(0x3e12),_0x10b6d6(0x30ab),'INTRATE','IPMT',_0x10b6d6(0x1897),'ISBLANK','ISERR',_0x10b6d6(0x406d),'ISEVEN',_0x10b6d6(0xa4c),'ISLOGICAL','ISNA',_0x10b6d6(0x1915),_0x10b6d6(0x20a),_0x10b6d6(0x209c),'ISREF',_0x10b6d6(0x23ce),'ISO.CEILING',_0x10b6d6(0xdff),_0x10b6d6(0x16c3),_0x10b6d6(0x29f5),'KURT','LARGE',_0x10b6d6(0x110c),'LEFT',_0x10b6d6(0x94c),_0x10b6d6(0x2b3d),'LENB',_0x10b6d6(0xfce),'LN','LOG',_0x10b6d6(0x10b1),_0x10b6d6(0xe48),_0x10b6d6(0x1934),_0x10b6d6(0x3aa7),_0x10b6d6(0x2773),'LOGNORM.INV',_0x10b6d6(0x4e72),'LOWER',_0x10b6d6(0xf7a),_0x10b6d6(0x2349),'MAXA','MAXIFS',_0x10b6d6(0x502b),'MDURATION',_0x10b6d6(0x134a),'MID',_0x10b6d6(0x486),_0x10b6d6(0x253d),_0x10b6d6(0x463d),_0x10b6d6(0x31c),_0x10b6d6(0x405),_0x10b6d6(0x32e4),_0x10b6d6(0x3425),_0x10b6d6(0x6c),_0x10b6d6(0x18f9),_0x10b6d6(0x2ac8),_0x10b6d6(0x29a6),_0x10b6d6(0x2982),_0x10b6d6(0x3336),_0x10b6d6(0x1e43),_0x10b6d6(0x292e),_0x10b6d6(0x2347),'N','NA',_0x10b6d6(0x345f),_0x10b6d6(0x92f),_0x10b6d6(0x2e66),_0x10b6d6(0x243e),'NOMINAL','NORM.DIST','NORMDIST','NORMINV',_0x10b6d6(0x159b),_0x10b6d6(0x1b64),_0x10b6d6(0x2aca),'NORM.S.INV',_0x10b6d6(0x2f0),_0x10b6d6(0x20aa),_0x10b6d6(0xc23),_0x10b6d6(0x3e09),_0x10b6d6(0x2d32),'NUMBERVALUE',_0x10b6d6(0xe2b),_0x10b6d6(0x1b7e),_0x10b6d6(0xe01),_0x10b6d6(0x2e3a),_0x10b6d6(0x2ee7),_0x10b6d6(0x1570),'ODDLPRICE','ODDLYIELD','OFFSET','OR',_0x10b6d6(0xa4a),'PEARSON','PERCENTILE.EXC','PERCENTILE.INC',_0x10b6d6(0x40a2),_0x10b6d6(0x1980),'PERCENTRANK.INC',_0x10b6d6(0x259d),_0x10b6d6(0x3437),'PERMUTATIONA',_0x10b6d6(0x1b36),_0x10b6d6(0xb4e),'PI',_0x10b6d6(0x41fe),_0x10b6d6(0x50e5),_0x10b6d6(0x3e4c),_0x10b6d6(0x401d),'PPMT',_0x10b6d6(0x1533),_0x10b6d6(0x2b54),_0x10b6d6(0x1e8d),_0x10b6d6(0x379f),'PRODUCT',_0x10b6d6(0x31b1),'PV',_0x10b6d6(0x2b8f),'QUARTILE.EXC',_0x10b6d6(0x34fc),'QUOTIENT','RADIANS',_0x10b6d6(0x553),_0x10b6d6(0x13a),_0x10b6d6(0x226),'RANK.EQ','RANK',_0x10b6d6(0xf22),_0x10b6d6(0x3ff1),'REGISTER.ID',_0x10b6d6(0x23a1),_0x10b6d6(0x9cf),_0x10b6d6(0x3f8),_0x10b6d6(0x112e),'RIGHTB','ROMAN',_0x10b6d6(0x30b1),'ROUNDDOWN',_0x10b6d6(0x3f69),_0x10b6d6(0x49f6),_0x10b6d6(0x7a5),_0x10b6d6(0x637),_0x10b6d6(0x2076),_0x10b6d6(0x24ad),_0x10b6d6(0x1f38),_0x10b6d6(0x4ee),_0x10b6d6(0x27a0),'SECH','SECOND',_0x10b6d6(0x129b),_0x10b6d6(0x1a6b),_0x10b6d6(0x2cea),'SIGN',_0x10b6d6(0x1ff1),_0x10b6d6(0x111d),_0x10b6d6(0xbcc),_0x10b6d6(0x2418),_0x10b6d6(0x2ffb),'SLOPE','SMALL','SQL.REQUEST',_0x10b6d6(0x1fe5),'SQRTPI',_0x10b6d6(0x2ccd),'STDEV','STDEV.P',_0x10b6d6(0x2415),_0x10b6d6(0x393c),_0x10b6d6(0x3d3b),_0x10b6d6(0x4673),_0x10b6d6(0x391b),'SUBSTITUTE',_0x10b6d6(0x1556),_0x10b6d6(0x16b0),_0x10b6d6(0x3a2c),'SUMIFS',_0x10b6d6(0xdf2),_0x10b6d6(0x3908),_0x10b6d6(0x4d83),_0x10b6d6(0x1d7d),_0x10b6d6(0x2e24),_0x10b6d6(0x154a),_0x10b6d6(0x34f),'T',_0x10b6d6(0xcfd),_0x10b6d6(0x41bd),_0x10b6d6(0x2df5),_0x10b6d6(0x3ae3),_0x10b6d6(0x4ed2),_0x10b6d6(0x1b47),_0x10b6d6(0x2830),_0x10b6d6(0x2fa),_0x10b6d6(0xa11),'TEXT','TEXTJOIN',_0x10b6d6(0x39c4),_0x10b6d6(0x4b86),_0x10b6d6(0xeb),_0x10b6d6(0x2221),_0x10b6d6(0x26a0),_0x10b6d6(0x4bde),_0x10b6d6(0x3e23),_0x10b6d6(0x2683),_0x10b6d6(0xf26),_0x10b6d6(0xeb6),_0x10b6d6(0x4aa6),_0x10b6d6(0x45d9),_0x10b6d6(0x4835),_0x10b6d6(0xbf6),'TYPE',_0x10b6d6(0x323),_0x10b6d6(0x1b6),_0x10b6d6(0x3346),_0x10b6d6(0x1d67),_0x10b6d6(0x3d32),_0x10b6d6(0x694),_0x10b6d6(0x131e),_0x10b6d6(0x9f6),_0x10b6d6(0x46ed),_0x10b6d6(0x2b70),_0x10b6d6(0x3f51),_0x10b6d6(0x37c0),_0x10b6d6(0x4a94),'WEEKDAY',_0x10b6d6(0x248c),_0x10b6d6(0xe41),_0x10b6d6(0xeda),'WORKDAY',_0x10b6d6(0x438d),_0x10b6d6(0x30d3),_0x10b6d6(0x1af3),_0x10b6d6(0x10e8),'YEAR',_0x10b6d6(0x2ff5),'YIELD',_0x10b6d6(0x2d14),_0x10b6d6(0x74b),_0x10b6d6(0x39a2),_0x10b6d6(0x15f5)]},'contains':[{'begin':/^=/,'end':/[^=]/,'returnEnd':!0x0,'illegal':/=/,'relevance':0xa},{'className':_0x10b6d6(0x3148),'begin':/\b[A-Z]{1,2}\d+\b/,'end':/[^\d]/,'excludeEnd':!0x0,'relevance':0x0},{'className':'symbol','begin':/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,'relevance':0x0},_0x136461[_0x10b6d6(0x421a)],_0x136461['QUOTE_STRING_MODE'],{'className':'number','begin':_0x136461[_0x10b6d6(0x2d71)]+_0x10b6d6(0x26c4),'relevance':0x0},_0x136461[_0x10b6d6(0x274a)](/\bN\(/,/\)/,{'excludeBegin':!0x0,'excludeEnd':!0x0,'illegal':/\n/})]};};},0x1f48:_0x35e26e=>{const _0x2c57f4=a0_0x329b;_0x35e26e[_0x2c57f4(0x15de)]=function(_0x2d36b2){const _0x2fb100=_0x2c57f4;return{'name':_0x2fb100(0x4d9a),'contains':[{'begin':/[^\u2401\u0001]+/,'end':/[\u2401\u0001]/,'excludeEnd':!0x0,'returnBegin':!0x0,'returnEnd':!0x1,'contains':[{'begin':/([^\u2401\u0001=]+)/,'end':/=([^\u2401\u0001=]+)/,'returnEnd':!0x0,'returnBegin':!0x1,'className':'attr'},{'begin':/=/,'end':/([\u2401\u0001])/,'excludeEnd':!0x0,'excludeBegin':!0x0,'className':_0x2fb100(0x4f7c)}]}],'case_insensitive':!0x0};};},0x2610:_0x6e8d3d=>{_0x6e8d3d['exports']=function(_0x315f51){const _0x9256e1=a0_0x329b,_0x12ee4f={'className':'function','beginKeywords':'def','end':/[:={\[(\n;]/,'excludeEnd':!0x0,'contains':[{'className':_0x9256e1(0x5f1),'relevance':0x0,'begin':/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]};return{'name':_0x9256e1(0x1a77),'keywords':{'keyword':[_0x9256e1(0x1bf3),_0x9256e1(0x42ec),'def',_0x9256e1(0x36f0),_0x9256e1(0x4afd),'if',_0x9256e1(0x260f),_0x9256e1(0x2c76),'in',_0x9256e1(0x20cb),_0x9256e1(0x1f9e),_0x9256e1(0x1cf3),_0x9256e1(0x4647),_0x9256e1(0xdc0),'namespace',_0x9256e1(0x68),'type',_0x9256e1(0x25d6),_0x9256e1(0xa48)],'literal':[_0x9256e1(0x23f6),'false']},'contains':[_0x315f51['C_LINE_COMMENT_MODE'],_0x315f51[_0x9256e1(0x1bbc)],{'className':_0x9256e1(0x4f7c),'begin':/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{'className':_0x9256e1(0x4f7c),'variants':[{'begin':'\x22','end':'\x22'}]},_0x12ee4f,_0x315f51[_0x9256e1(0x3d6a)]]};};},0x4a5:_0x11d486=>{const _0x10cd4d=a0_0x329b;_0x11d486[_0x10cd4d(0x15de)]=function(_0x229590){const _0x5ea119=_0x10cd4d,_0x2e230b=_0x229590[_0x5ea119(0x12ab)],_0x5553fb={'variants':[_0x229590[_0x5ea119(0x274a)]('!','$',{'relevance':0x0}),_0x229590[_0x5ea119(0x274a)](_0x5ea119(0x49b0),'$',{'relevance':0x0}),_0x229590[_0x5ea119(0x274a)](_0x5ea119(0x40f2),'$',{'relevance':0x0})]},_0x42fd9c=/(_[a-z_\d]+)?/,_0x511ad1=/([de][+-]?\d+)?/,_0x593c86={'className':_0x5ea119(0x1ed7),'variants':[{'begin':_0x2e230b[_0x5ea119(0x41bf)](/\b\d+/,/\.(\d*)/,_0x511ad1,_0x42fd9c)},{'begin':_0x2e230b['concat'](/\b\d+/,_0x511ad1,_0x42fd9c)},{'begin':_0x2e230b[_0x5ea119(0x41bf)](/\.\d+/,_0x511ad1,_0x42fd9c)}],'relevance':0x0},_0x3dbc0d={'className':'function','beginKeywords':_0x5ea119(0x3275),'illegal':_0x5ea119(0xa60),'contains':[_0x229590['UNDERSCORE_TITLE_MODE'],{'className':_0x5ea119(0x4f24),'begin':'\x5c(','end':'\x5c)'}]};return{'name':_0x5ea119(0x2127),'case_insensitive':!0x0,'aliases':[_0x5ea119(0x47ff),_0x5ea119(0x1aa4)],'keywords':{'keyword':[_0x5ea119(0x3be8),'do',_0x5ea119(0x4e56),_0x5ea119(0xef7),_0x5ea119(0x186),'while',_0x5ea119(0x276d),_0x5ea119(0x4c9d),_0x5ea119(0xd0c),'where',_0x5ea119(0x2817),_0x5ea119(0x70a),_0x5ea119(0x3548),_0x5ea119(0x718),'endselect','endinterface','end',_0x5ea119(0x42c0),_0x5ea119(0x22b0),'if','forall',_0x5ea119(0x4d4e),'only','contains',_0x5ea119(0x2fab),_0x5ea119(0xf06),_0x5ea119(0x1c58),_0x5ea119(0x452b),_0x5ea119(0x3eab),_0x5ea119(0x3c1f),_0x5ea119(0x26ee),_0x5ea119(0x1397),_0x5ea119(0x25e1),_0x5ea119(0x3dfb),_0x5ea119(0x4891),_0x5ea119(0x14f3),_0x5ea119(0x4a0b),'.not.','.le.',_0x5ea119(0x470f),'.ge.',_0x5ea119(0x4df8),_0x5ea119(0x22a4),_0x5ea119(0x330f),'save',_0x5ea119(0x36f0),_0x5ea119(0x3903),'module','select',_0x5ea119(0x1bf3),_0x5ea119(0x4401),_0x5ea119(0x1a8),_0x5ea119(0x1388),_0x5ea119(0xe4a),'file',_0x5ea119(0x49dc),_0x5ea119(0x377b),_0x5ea119(0x2e2a),'iostat',_0x5ea119(0x3d9d),_0x5ea119(0x2bce),'nextrec',_0x5ea119(0x1ed7),_0x5ea119(0x4b5a),_0x5ea119(0x1a1a),_0x5ea119(0x539),_0x5ea119(0x3359),_0x5ea119(0x33de),_0x5ea119(0xbee),'unit',_0x5ea119(0x495f),_0x5ea119(0x3d03),'pause','cycle',_0x5ea119(0x3e3a),_0x5ea119(0x3c3e),_0x5ea119(0x16e0),_0x5ea119(0x360a),_0x5ea119(0x1c48),_0x5ea119(0x573),_0x5ea119(0x4adf),_0x5ea119(0xb4a),_0x5ea119(0x4d0c),_0x5ea119(0xcda),'synchronous',_0x5ea119(0x3cf1),_0x5ea119(0x4788),_0x5ea119(0x281b),_0x5ea119(0x2638),_0x5ea119(0x2dab),_0x5ea119(0x3ba4),_0x5ea119(0x5048),_0x5ea119(0x2c76),_0x5ea119(0x1b6c),_0x5ea119(0x1827),_0x5ea119(0x45b),_0x5ea119(0xf11),_0x5ea119(0xac4),_0x5ea119(0x2ac6),_0x5ea119(0x42ec),_0x5ea119(0x229e),_0x5ea119(0xf0f),_0x5ea119(0x4afd),_0x5ea119(0x160e),_0x5ea119(0x2369),_0x5ea119(0x2dde),'c_long_long',_0x5ea119(0x2b08),_0x5ea119(0x4305),_0x5ea119(0x2c74),_0x5ea119(0x2a65),_0x5ea119(0x45a4),_0x5ea119(0x2a8e),_0x5ea119(0xda),_0x5ea119(0x3cc6),'c_int_least32_t',_0x5ea119(0x601),_0x5ea119(0x1292),_0x5ea119(0x185a),_0x5ea119(0x97),_0x5ea119(0x3d7e),_0x5ea119(0x4af5),_0x5ea119(0x4ed7),_0x5ea119(0x1ec4),_0x5ea119(0x3115),_0x5ea119(0xdf4),_0x5ea119(0x45f9),_0x5ea119(0xfed),_0x5ea119(0x444),_0x5ea119(0x3aaf),_0x5ea119(0x35fc),_0x5ea119(0x4104),_0x5ea119(0x238d),_0x5ea119(0x275),'c_carriage_return','c_horizontal_tab','c_vertical_tab',_0x5ea119(0x353b),_0x5ea119(0x46cf),_0x5ea119(0x4a6f),_0x5ea119(0x32c5),_0x5ea119(0x3102),_0x5ea119(0x35a5),_0x5ea119(0x454f),_0x5ea119(0xf6),_0x5ea119(0x158),'error_unit','file_storage_size',_0x5ea119(0x50f5),'iostat_end','iostat_eor','numeric_storage_size',_0x5ea119(0x2211),_0x5ea119(0x4244),_0x5ea119(0xd63),_0x5ea119(0xcd1),_0x5ea119(0x487f),_0x5ea119(0x1a09),'newunit',_0x5ea119(0x29b9),'recursive','pad','position',_0x5ea119(0x1a0d),_0x5ea119(0x3547),_0x5ea119(0x2eca),'eor',_0x5ea119(0x1d4d),'nml',_0x5ea119(0x1fc2),_0x5ea119(0x1a4b),'namelist',_0x5ea119(0x3354),'sequence',_0x5ea119(0x309c),_0x5ea119(0x2ddb),_0x5ea119(0x4cb8),_0x5ea119(0x22b1),_0x5ea119(0x3746),_0x5ea119(0x4962),_0x5ea119(0x3602),_0x5ea119(0x3c63),_0x5ea119(0xa1c),'dimension',_0x5ea119(0x193e),_0x5ea119(0x1738),_0x5ea119(0x509e),'implicit|10',_0x5ea119(0x80b),'double',_0x5ea119(0x82b),_0x5ea119(0x11e8),_0x5ea119(0x4dcf),'optional',_0x5ea119(0x1d95),_0x5ea119(0x1245),'in',_0x5ea119(0x4284),_0x5ea119(0x4732),'equivalence','data'],'literal':[_0x5ea119(0x4cc7),_0x5ea119(0x31e7)],'built_in':[_0x5ea119(0x19c1),_0x5ea119(0xdfd),_0x5ea119(0x1f87),_0x5ea119(0x3919),_0x5ea119(0x228e),'amin1',_0x5ea119(0x48c2),_0x5ea119(0x445c),'ccos','cexp',_0x5ea119(0x4195),_0x5ea119(0x6a1),_0x5ea119(0xf8c),_0x5ea119(0x93c),_0x5ea119(0x2037),_0x5ea119(0x2f79),_0x5ea119(0x41b3),_0x5ea119(0xf3e),_0x5ea119(0x215f),_0x5ea119(0x316e),_0x5ea119(0xf1b),_0x5ea119(0x3865),_0x5ea119(0x3bd0),_0x5ea119(0x1a5b),_0x5ea119(0x2a25),_0x5ea119(0x39f4),_0x5ea119(0x1b5a),_0x5ea119(0x4bc7),_0x5ea119(0x39ee),_0x5ea119(0x23c),_0x5ea119(0x1217),_0x5ea119(0x355d),'dsqrt',_0x5ea119(0x30ea),_0x5ea119(0x457e),_0x5ea119(0x3ff6),_0x5ea119(0x1215),_0x5ea119(0x25f4),_0x5ea119(0x3143),_0x5ea119(0x2f76),_0x5ea119(0x1f09),_0x5ea119(0xca5),_0x5ea119(0x2d0c),_0x5ea119(0x3aa8),_0x5ea119(0x3513),'min1',_0x5ea119(0x2b74),_0x5ea119(0x386f),_0x5ea119(0x2a07),_0x5ea119(0x3f96),_0x5ea119(0x56b),'cdlog','cdsin',_0x5ea119(0x507d),_0x5ea119(0x298),_0x5ea119(0x27e8),'cqexp','cqlog',_0x5ea119(0x261b),_0x5ea119(0x4f37),_0x5ea119(0x2c17),'dconjg',_0x5ea119(0x3857),_0x5ea119(0x1440),_0x5ea119(0x1cb3),'dgamma',_0x5ea119(0x1841),_0x5ea119(0x2f0a),_0x5ea119(0xea0),_0x5ea119(0x361),_0x5ea119(0x20c5),'qasin',_0x5ea119(0x2534),_0x5ea119(0x25d9),'qcmplx',_0x5ea119(0x42ae),_0x5ea119(0x284d),_0x5ea119(0x3c6),'qdim',_0x5ea119(0x219c),'qerfc','qexp',_0x5ea119(0xae),'qimag',_0x5ea119(0x197),_0x5ea119(0x25cf),_0x5ea119(0x26b1),'qmax1','qmin1',_0x5ea119(0x1d7b),_0x5ea119(0x916),_0x5ea119(0x351b),'qsin','qsinh',_0x5ea119(0x39b7),_0x5ea119(0x24a9),_0x5ea119(0x2a36),'abs',_0x5ea119(0x12fe),_0x5ea119(0x36f1),_0x5ea119(0x284f),_0x5ea119(0x3d2e),'asin',_0x5ea119(0x4c11),_0x5ea119(0x2c6f),_0x5ea119(0x4743),_0x5ea119(0x9e3),_0x5ea119(0x3414),_0x5ea119(0x2ad5),_0x5ea119(0x4a61),_0x5ea119(0x3904),'ichar',_0x5ea119(0x1cf3),_0x5ea119(0x269f),_0x5ea119(0x11bf),_0x5ea119(0x7a7),_0x5ea119(0x28c),_0x5ea119(0x12f9),'nint',_0x5ea119(0x173),_0x5ea119(0x423c),_0x5ea119(0x5095),'sqrt',_0x5ea119(0x356b),_0x5ea119(0xdc2),_0x5ea119(0x33d3),'write','dim',_0x5ea119(0x7b9),_0x5ea119(0x275a),_0x5ea119(0x434f),'llt',_0x5ea119(0x1b25),'nullify',_0x5ea119(0x1f9),_0x5ea119(0x279),_0x5ea119(0x2021),'adjustr','all','allocated',_0x5ea119(0x4be7),'associated',_0x5ea119(0xb52),_0x5ea119(0x193a),_0x5ea119(0x418f),_0x5ea119(0x4d47),_0x5ea119(0xd51),'date_and_time','digits',_0x5ea119(0x21e1),_0x5ea119(0x266e),'epsilon',_0x5ea119(0x410e),'floor',_0x5ea119(0x4a9f),_0x5ea119(0x404d),_0x5ea119(0x3f91),_0x5ea119(0x3121),_0x5ea119(0x2dac),_0x5ea119(0x5148),'ieor',_0x5ea119(0x4bb6),_0x5ea119(0x478a),'ishftc',_0x5ea119(0x1f52),_0x5ea119(0x150b),_0x5ea119(0x345),'maxexponent','maxloc','maxval',_0x5ea119(0x345e),_0x5ea119(0x3634),_0x5ea119(0xade),_0x5ea119(0x3c80),'modulo','mvbits',_0x5ea119(0x4093),_0x5ea119(0x3d15),_0x5ea119(0x448a),'product',_0x5ea119(0x3034),'random_number',_0x5ea119(0x14c0),_0x5ea119(0x3cf6),'repeat',_0x5ea119(0x2709),_0x5ea119(0x3bfb),_0x5ea119(0x30f5),_0x5ea119(0x155e),_0x5ea119(0xe0),_0x5ea119(0x32f2),_0x5ea119(0x1db0),'shape',_0x5ea119(0x3b53),_0x5ea119(0xee1),'spread',_0x5ea119(0x510a),_0x5ea119(0xb87),_0x5ea119(0x24e4),_0x5ea119(0xd50),_0x5ea119(0x1d0e),'ubound',_0x5ea119(0x40ba),_0x5ea119(0x4922),_0x5ea119(0x25ab),_0x5ea119(0x62b),'transfer','dble',_0x5ea119(0xc44),_0x5ea119(0x337e),_0x5ea119(0x4023),_0x5ea119(0x62c),'get_command',_0x5ea119(0x1377),'get_environment_variable',_0x5ea119(0x95a),_0x5ea119(0xd63),_0x5ea119(0xcd1),_0x5ea119(0x487f),'ieee_set_underflow_mode',_0x5ea119(0x65d),_0x5ea119(0x2de9),_0x5ea119(0x26af),'selected_char_kind','same_type_as',_0x5ea119(0x2adc),'acosh','asinh','atanh',_0x5ea119(0xd9f),_0x5ea119(0x1976),_0x5ea119(0x2ce3),_0x5ea119(0x425d),_0x5ea119(0x4347),_0x5ea119(0x4f30),'erf',_0x5ea119(0x2577),'erfc_scaled',_0x5ea119(0x3b17),_0x5ea119(0x221e),'hypot',_0x5ea119(0x5137),_0x5ea119(0x241a),_0x5ea119(0x24dd),_0x5ea119(0xf76),_0x5ea119(0x4f68),_0x5ea119(0x64a),_0x5ea119(0x364b),_0x5ea119(0x4263),_0x5ea119(0x4d07),_0x5ea119(0x1b30),_0x5ea119(0x1c6a),_0x5ea119(0x3d27),_0x5ea119(0x260),_0x5ea119(0xf04),_0x5ea119(0x1124),_0x5ea119(0x4b2a),_0x5ea119(0x2d47),_0x5ea119(0x3d8d),_0x5ea119(0xdd8),_0x5ea119(0xb42),'ucobound',_0x5ea119(0xccd),_0x5ea119(0x3089),_0x5ea119(0x2cc0),_0x5ea119(0x153b),_0x5ea119(0x2194),_0x5ea119(0x1ecd),_0x5ea119(0x1762),_0x5ea119(0x2a50),_0x5ea119(0x49ff),'this_image',_0x5ea119(0xf9e),_0x5ea119(0x2f77),_0x5ea119(0x1b52),_0x5ea119(0x12df),'co_max',_0x5ea119(0x357),_0x5ea119(0x2654),_0x5ea119(0x24e0)]},'illegal':/\/\*/,'contains':[{'className':_0x5ea119(0x4f7c),'relevance':0x0,'variants':[_0x229590[_0x5ea119(0x36ec)],_0x229590[_0x5ea119(0x3c93)]]},_0x3dbc0d,{'begin':/^C\s*=(?!=)/,'relevance':0x0},_0x5553fb,_0x593c86]};};},0x2455:_0x829fe=>{const _0x3177fd=a0_0x329b;function _0x4b2149(_0x4fcb96){const _0x23f8d8=a0_0x329b;return new RegExp(_0x4fcb96['replace'](/[-/\\^$*+?.()|[\]{}]/g,_0x23f8d8(0x510f)),'m');}function _0x1e4875(_0xd79db9){const _0x1317c9=a0_0x329b;return _0xd79db9?'string'==typeof _0xd79db9?_0xd79db9:_0xd79db9[_0x1317c9(0x3b28)]:null;}function _0x9bf543(_0x3c89be){const _0x2f1a1a=a0_0x329b;return _0x13abd8(_0x2f1a1a(0x5b0),_0x3c89be,')');}function _0x13abd8(..._0x478c98){return _0x478c98['map'](_0x747d75=>_0x1e4875(_0x747d75))['join']('');}function _0x4a701d(..._0x3d0df6){const _0x85652=a0_0x329b,_0x4dbf29=function(_0x58352c){const _0x6b0160=a0_0x329b,_0x52c134=_0x58352c[_0x58352c[_0x6b0160(0x205b)]-0x1];return'object'==typeof _0x52c134&&_0x52c134[_0x6b0160(0x31f6)]===Object?(_0x58352c['splice'](_0x58352c['length']-0x1,0x1),_0x52c134):{};}(_0x3d0df6);return'('+(_0x4dbf29[_0x85652(0x46d0)]?'':'?:')+_0x3d0df6[_0x85652(0x2c94)](_0x4998f5=>_0x1e4875(_0x4998f5))[_0x85652(0x379c)]('|')+')';}_0x829fe[_0x3177fd(0x15de)]=function(_0x456fa6){const _0xb4e750=_0x3177fd,_0x153a29={'scope':'keyword','match':/\b(yield|return|let|do|match|use)!/},_0x276e93=[_0xb4e750(0x3618),_0xb4e750(0x18d4),_0xb4e750(0x319b),_0xb4e750(0x1252),_0xb4e750(0x3bae),'int32',_0xb4e750(0x1aff),_0xb4e750(0x15bb),_0xb4e750(0x1708),_0xb4e750(0x269f),'uint',_0xb4e750(0x117f),_0xb4e750(0xf5a),_0xb4e750(0x3c89),_0xb4e750(0x4d8b),_0xb4e750(0xb4a),'float',_0xb4e750(0x1038),_0xb4e750(0x2602),_0xb4e750(0x480b),_0xb4e750(0x4743),_0xb4e750(0x4f7c),'unit',_0xb4e750(0x447c),_0xb4e750(0x15f4),'voption','list','array','seq',_0xb4e750(0xd90),'exn',_0xb4e750(0x143b),'nativeptr',_0xb4e750(0x3379),_0xb4e750(0x1379),_0xb4e750(0x1be0),'Result'],_0x140492={'keyword':['abstract','and','as',_0xb4e750(0x79e),'base','begin',_0xb4e750(0x42ec),'default',_0xb4e750(0x38e3),'do','done','downcast',_0xb4e750(0x4386),_0xb4e750(0x344b),_0xb4e750(0x36f0),_0xb4e750(0x721),_0xb4e750(0x5089),_0xb4e750(0x2d37),_0xb4e750(0x292f),_0xb4e750(0x2940),_0xb4e750(0x8f1),_0xb4e750(0x2d78),_0xb4e750(0x3dfb),_0xb4e750(0x16d4),'if','in',_0xb4e750(0x4f2),_0xb4e750(0x50d2),_0xb4e750(0x1fc2),_0xb4e750(0x191a),_0xb4e750(0x4f2f),_0xb4e750(0x4647),_0xb4e750(0xdc0),'member','module',_0xb4e750(0x31dc),_0xb4e750(0x3b86),_0xb4e750(0x386e),'of',_0xb4e750(0x36fa),'or',_0xb4e750(0x1d76),_0xb4e750(0x276d),_0xb4e750(0x1397),_0xb4e750(0x1a1a),_0xb4e750(0xf06),'static',_0xb4e750(0x2570),_0xb4e750(0x452b),'to',_0xb4e750(0x47b4),_0xb4e750(0x70a),_0xb4e750(0x3245),_0xb4e750(0x3903),_0xb4e750(0x1c04),_0xb4e750(0x4004),_0xb4e750(0x489c),_0xb4e750(0x217b),_0xb4e750(0xa48),_0xb4e750(0x25d6)],'literal':[_0xb4e750(0x23f6),_0xb4e750(0x3561),_0xb4e750(0x15f0),_0xb4e750(0x1863),'None','Ok',_0xb4e750(0x3e38),_0xb4e750(0x77d),'infinityf',_0xb4e750(0x3f88),_0xb4e750(0x2c4a)],'built_in':[_0xb4e750(0x4163),_0xb4e750(0x204d),_0xb4e750(0x4f8c),_0xb4e750(0x28f2),_0xb4e750(0xa6e),'readOnlyDict',_0xb4e750(0x2d7e),_0xb4e750(0x2685),_0xb4e750(0x4afd),_0xb4e750(0x50c9),_0xb4e750(0x3445),'typedefof',_0xb4e750(0x49e3),'nullArg','invalidArg',_0xb4e750(0x4060),'id',_0xb4e750(0x484),'snd',_0xb4e750(0x20b5),_0xb4e750(0x907),_0xb4e750(0x19f9),_0xb4e750(0x437d),_0xb4e750(0x2c45),_0xb4e750(0x458a),_0xb4e750(0x18bf),_0xb4e750(0x280f),_0xb4e750(0x23bc),_0xb4e750(0x3200),'eprintfn','fprintf','fprintfn',_0xb4e750(0xc03),_0xb4e750(0x4d5e)],'variable.constant':[_0xb4e750(0x39fc),_0xb4e750(0x32bf),_0xb4e750(0x512a)]},_0x45500f={'variants':[_0x456fa6[_0xb4e750(0x274a)](/\(\*(?!\))/,/\*\)/,{'contains':['self']}),_0x456fa6[_0xb4e750(0x4d7)]]},_0x204716={'scope':'variable','begin':/``/,'end':/``/},_0x88763c=/\B('|\^)/,_0x26cd27={'scope':_0xb4e750(0x3148),'variants':[{'match':_0x13abd8(_0x88763c,/``.*?``/)},{'match':_0x13abd8(_0x88763c,_0x456fa6['UNDERSCORE_IDENT_RE'])}],'relevance':0x0},_0x878c91=function({includeEqual:_0xefda04}){const _0x51fc62=_0xb4e750;let _0x3d66f9;_0x3d66f9=_0xefda04?_0x51fc62(0x309d):_0x51fc62(0xc8a);const _0x2f9c05=_0x13abd8('[',...Array[_0x51fc62(0xc81)](_0x3d66f9)['map'](_0x4b2149),']'),_0x2c0d96=_0x4a701d(_0x2f9c05,/\./),_0x2d0418=_0x13abd8(_0x2c0d96,_0x9bf543(_0x2c0d96)),_0x25f929=_0x4a701d(_0x13abd8(_0x2d0418,_0x2c0d96,'*'),_0x13abd8(_0x2f9c05,'+'));return{'scope':_0x51fc62(0x5d3),'match':_0x4a701d(_0x25f929,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),'relevance':0x0};},_0x3928c3=_0x878c91({'includeEqual':!0x0}),_0x21c1c8=_0x878c91({'includeEqual':!0x1}),_0x1a840b=function(_0x2034aa,_0x590beb){const _0x243714=_0xb4e750;return{'begin':_0x13abd8(_0x2034aa,_0x9bf543(_0x13abd8(/\s*/,_0x4a701d(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),'beginScope':_0x590beb,'end':_0x9bf543(_0x4a701d(/\n/,/=/)),'relevance':0x0,'keywords':_0x456fa6[_0x243714(0x4f2)](_0x140492,{'type':_0x276e93}),'contains':[_0x45500f,_0x26cd27,_0x456fa6['inherit'](_0x204716,{'scope':null}),_0x21c1c8]};},_0x4beb56=_0x1a840b(/:/,'operator'),_0x47c072=_0x1a840b(/\bof\b/,_0xb4e750(0x2448)),_0x237a2b={'begin':[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],'beginScope':{0x2:'keyword',0x4:_0xb4e750(0xc2f)},'end':_0x9bf543(/\(|=|$/),'keywords':_0x140492,'contains':[_0x45500f,_0x456fa6[_0xb4e750(0x4f2)](_0x204716,{'scope':null}),_0x26cd27,{'scope':_0xb4e750(0x5d3),'match':/<|>/},_0x4beb56]},_0x3b540b={'scope':_0xb4e750(0x4521),'match':/\b[_a-z]\w*(?=\s*\{)/},_0x3bfb9b={'begin':[/^\s*/,_0x13abd8(/#/,_0x4a701d('if','else','endif',_0xb4e750(0x3dde),_0xb4e750(0x23fa),_0xb4e750(0x4b8f),'r','i','I',_0xb4e750(0x21c4),'time','help',_0xb4e750(0x1a98))),/\b/],'beginScope':{0x2:_0xb4e750(0x482)},'end':_0x9bf543(/\s|$/)},_0xab7c28={'variants':[_0x456fa6[_0xb4e750(0x30c0)],_0x456fa6[_0xb4e750(0x3d6a)]]},_0x1bddf7={'scope':_0xb4e750(0x4f7c),'begin':/"/,'end':/"/,'contains':[_0x456fa6[_0xb4e750(0x421a)]]},_0x2a07f6={'scope':_0xb4e750(0x4f7c),'begin':/@"/,'end':/"/,'contains':[{'match':/""/},_0x456fa6[_0xb4e750(0x421a)]]},_0x9af6a7={'scope':'string','begin':/"""/,'end':/"""/,'relevance':0x2},_0x3901ef={'scope':_0xb4e750(0xfeb),'begin':/\{/,'end':/\}/,'keywords':_0x140492},_0x1f345b={'scope':_0xb4e750(0x4f7c),'begin':/\$"/,'end':/"/,'contains':[{'match':/\{\{/},{'match':/\}\}/},_0x456fa6[_0xb4e750(0x421a)],_0x3901ef]},_0x4227ad={'scope':_0xb4e750(0x4f7c),'begin':/(\$@|@\$)"/,'end':/"/,'contains':[{'match':/\{\{/},{'match':/\}\}/},{'match':/""/},_0x456fa6[_0xb4e750(0x421a)],_0x3901ef]},_0x45ac85={'scope':_0xb4e750(0x4f7c),'begin':/\$"""/,'end':/"""/,'contains':[{'match':/\{\{/},{'match':/\}\}/},_0x3901ef],'relevance':0x2},_0x2b9e66={'scope':_0xb4e750(0x4f7c),'match':_0x13abd8(/'/,_0x4a701d(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return _0x3901ef[_0xb4e750(0x160d)]=[_0x4227ad,_0x1f345b,_0x2a07f6,_0x1bddf7,_0x2b9e66,_0x153a29,_0x45500f,_0x204716,_0x4beb56,_0x3b540b,_0x3bfb9b,_0xab7c28,_0x26cd27,_0x3928c3],{'name':'F#','aliases':['fs','f#'],'keywords':_0x140492,'illegal':/\/\*/,'classNameAliases':{'computation-expression':_0xb4e750(0x2448)},'contains':[_0x153a29,{'variants':[_0x45ac85,_0x4227ad,_0x1f345b,_0x9af6a7,_0x2a07f6,_0x1bddf7,_0x2b9e66]},_0x45500f,_0x204716,_0x237a2b,{'scope':'meta','begin':/\[\]/,'relevance':0x2,'contains':[_0x204716,_0x9af6a7,_0x2a07f6,_0x1bddf7,_0x2b9e66,_0xab7c28]},_0x47c072,_0x4beb56,_0x3b540b,_0x3bfb9b,_0xab7c28,_0x26cd27,_0x3928c3]};};},0x1d47:_0x448da7=>{const _0x5acadf=a0_0x329b;_0x448da7[_0x5acadf(0x15de)]=function(_0x3ecf9f){const _0x28fbef=_0x5acadf,_0x4614ae=_0x3ecf9f['regex'],_0x509142={'keyword':'abort\x20acronym\x20acronyms\x20alias\x20all\x20and\x20assign\x20binary\x20card\x20diag\x20display\x20else\x20eq\x20file\x20files\x20for\x20free\x20ge\x20gt\x20if\x20integer\x20le\x20loop\x20lt\x20maximizing\x20minimizing\x20model\x20models\x20ne\x20negative\x20no\x20not\x20option\x20options\x20or\x20ord\x20positive\x20prod\x20put\x20putpage\x20puttl\x20repeat\x20sameas\x20semicont\x20semiint\x20smax\x20smin\x20solve\x20sos1\x20sos2\x20sum\x20system\x20table\x20then\x20until\x20using\x20while\x20xor\x20yes','literal':'eps\x20inf\x20na','built_in':_0x28fbef(0x47fb)},_0x48176c={'className':'symbol','variants':[{'begin':/=[lgenxc]=/},{'begin':/\$/}]},_0x567496={'className':_0x28fbef(0x43ca),'variants':[{'begin':'\x27','end':'\x27'},{'begin':'\x22','end':'\x22'}],'illegal':'\x5cn','contains':[_0x3ecf9f[_0x28fbef(0x421a)]]},_0x5ed29e={'begin':'/','end':'/','keywords':_0x509142,'contains':[_0x567496,_0x3ecf9f[_0x28fbef(0x4d7)],_0x3ecf9f[_0x28fbef(0x1bbc)],_0x3ecf9f['QUOTE_STRING_MODE'],_0x3ecf9f[_0x28fbef(0x36ec)],_0x3ecf9f[_0x28fbef(0x3d6a)]]},_0x3081c0=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,_0x492849={'begin':/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,'excludeBegin':!0x0,'end':'$','endsWithParent':!0x0,'contains':[_0x567496,_0x5ed29e,{'className':_0x28fbef(0x43ca),'begin':_0x4614ae['concat'](_0x3081c0,_0x4614ae[_0x28fbef(0x481c)](_0x4614ae[_0x28fbef(0x41bf)](/[ ]+/,_0x3081c0))),'relevance':0x0}]};return{'name':_0x28fbef(0x43c2),'aliases':[_0x28fbef(0x2a4e)],'case_insensitive':!0x0,'keywords':_0x509142,'contains':[_0x3ecf9f[_0x28fbef(0x274a)](/^\$ontext/,/^\$offtext/),{'className':_0x28fbef(0x482),'begin':_0x28fbef(0x15d5),'end':'$','returnBegin':!0x0,'contains':[{'className':_0x28fbef(0x2448),'begin':'^\x5c$[a-z0-9]+'}]},_0x3ecf9f[_0x28fbef(0x274a)]('^\x5c*','$'),_0x3ecf9f[_0x28fbef(0x4d7)],_0x3ecf9f[_0x28fbef(0x1bbc)],_0x3ecf9f[_0x28fbef(0x3c93)],_0x3ecf9f[_0x28fbef(0x36ec)],{'beginKeywords':'set\x20sets\x20parameter\x20parameters\x20variable\x20variables\x20scalar\x20scalars\x20equation\x20equations','end':';','contains':[_0x3ecf9f[_0x28fbef(0x274a)](_0x28fbef(0x48f5),'$'),_0x3ecf9f['C_LINE_COMMENT_MODE'],_0x3ecf9f[_0x28fbef(0x1bbc)],_0x3ecf9f[_0x28fbef(0x3c93)],_0x3ecf9f[_0x28fbef(0x36ec)],_0x5ed29e,_0x492849]},{'beginKeywords':_0x28fbef(0x14b9),'end':';','returnBegin':!0x0,'contains':[{'beginKeywords':_0x28fbef(0x14b9),'end':'$','contains':[_0x492849]},_0x3ecf9f['COMMENT'](_0x28fbef(0x48f5),'$'),_0x3ecf9f['C_LINE_COMMENT_MODE'],_0x3ecf9f[_0x28fbef(0x1bbc)],_0x3ecf9f[_0x28fbef(0x3c93)],_0x3ecf9f['APOS_STRING_MODE'],_0x3ecf9f[_0x28fbef(0x3d6a)]]},{'className':_0x28fbef(0x3dfb),'begin':/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,'returnBegin':!0x0,'contains':[{'className':_0x28fbef(0x5f1),'begin':/^[a-z0-9_]+/},{'className':'params','begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0},_0x48176c]},_0x3ecf9f['C_NUMBER_MODE'],_0x48176c]};};},0xeba:_0x3818cf=>{const _0xfe3ffc=a0_0x329b;_0x3818cf[_0xfe3ffc(0x15de)]=function(_0xfaeebd){const _0x116c9c=_0xfe3ffc,_0x25b7b1={'keyword':'bool\x20break\x20call\x20callexe\x20checkinterrupt\x20clear\x20clearg\x20closeall\x20cls\x20comlog\x20compile\x20continue\x20create\x20debug\x20declare\x20delete\x20disable\x20dlibrary\x20dllcall\x20do\x20dos\x20ed\x20edit\x20else\x20elseif\x20enable\x20end\x20endfor\x20endif\x20endp\x20endo\x20errorlog\x20errorlogat\x20expr\x20external\x20fn\x20for\x20format\x20goto\x20gosub\x20graph\x20if\x20keyword\x20let\x20lib\x20library\x20line\x20load\x20loadarray\x20loadexe\x20loadf\x20loadk\x20loadm\x20loadp\x20loads\x20loadx\x20local\x20locate\x20loopnextindex\x20lprint\x20lpwidth\x20lshow\x20matrix\x20msym\x20ndpclex\x20new\x20open\x20output\x20outwidth\x20plot\x20plotsym\x20pop\x20prcsn\x20print\x20printdos\x20proc\x20push\x20retp\x20return\x20rndcon\x20rndmod\x20rndmult\x20rndseed\x20run\x20save\x20saveall\x20screen\x20scroll\x20setarray\x20show\x20sparse\x20stop\x20string\x20struct\x20system\x20trace\x20trap\x20threadfor\x20threadendfor\x20threadbegin\x20threadjoin\x20threadstat\x20threadend\x20until\x20use\x20while\x20winprint\x20ne\x20ge\x20le\x20gt\x20lt\x20and\x20xor\x20or\x20not\x20eq\x20eqv','built_in':_0x116c9c(0x2b68),'literal':_0x116c9c(0x183b)},_0x230abd=_0xfaeebd['COMMENT']('@','@'),_0x7adfc0={'className':_0x116c9c(0x482),'begin':'#','end':'$','keywords':{'keyword':_0x116c9c(0x36b2)},'contains':[{'begin':/\\\n/,'relevance':0x0},{'beginKeywords':_0x116c9c(0x3354),'end':'$','keywords':{'keyword':_0x116c9c(0x3354)},'contains':[{'className':'string','begin':'\x22','end':'\x22','illegal':'\x5cn'}]},_0xfaeebd[_0x116c9c(0x4d7)],_0xfaeebd[_0x116c9c(0x1bbc)],_0x230abd]},_0x43255d={'begin':/\bstruct\s+/,'end':/\s/,'keywords':_0x116c9c(0x2570),'contains':[{'className':_0x116c9c(0x70a),'begin':_0xfaeebd[_0x116c9c(0x2691)],'relevance':0x0}]},_0x3254ad=[{'className':'params','begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'endsWithParent':!0x0,'relevance':0x0,'contains':[{'className':_0x116c9c(0x14b),'begin':/\.\.\./},_0xfaeebd[_0x116c9c(0x3d6a)],_0xfaeebd['C_BLOCK_COMMENT_MODE'],_0x230abd,_0x43255d]}],_0xd1c02d={'className':_0x116c9c(0x5f1),'begin':_0xfaeebd[_0x116c9c(0x2691)],'relevance':0x0},_0x3c3b3c=function(_0x2a9959,_0x45e325,_0x1d5232){const _0x1aa6cb=_0x116c9c,_0x28d0d8=_0xfaeebd[_0x1aa6cb(0x4f2)]({'className':_0x1aa6cb(0x3dfb),'beginKeywords':_0x2a9959,'end':_0x45e325,'excludeEnd':!0x0,'contains':[]['concat'](_0x3254ad)},_0x1d5232||{});return _0x28d0d8[_0x1aa6cb(0x160d)][_0x1aa6cb(0x4131)](_0xd1c02d),_0x28d0d8[_0x1aa6cb(0x160d)][_0x1aa6cb(0x4131)](_0xfaeebd[_0x1aa6cb(0x3d6a)]),_0x28d0d8['contains'][_0x1aa6cb(0x4131)](_0xfaeebd[_0x1aa6cb(0x1bbc)]),_0x28d0d8[_0x1aa6cb(0x160d)][_0x1aa6cb(0x4131)](_0x230abd),_0x28d0d8;},_0x344af8={'className':_0x116c9c(0x4853),'begin':'\x5cb('+_0x25b7b1['built_in'][_0x116c9c(0x29d0)]('\x20')[_0x116c9c(0x379c)]('|')+_0x116c9c(0x3ffc)},_0x50e79a={'className':_0x116c9c(0x4f7c),'begin':'\x22','end':'\x22','contains':[_0xfaeebd[_0x116c9c(0x421a)]],'relevance':0x0},_0x386fa3={'begin':_0xfaeebd[_0x116c9c(0x2691)]+_0x116c9c(0x17b4),'returnBegin':!0x0,'keywords':_0x25b7b1,'relevance':0x0,'contains':[{'beginKeywords':_0x25b7b1[_0x116c9c(0x2448)]},_0x344af8,{'className':_0x116c9c(0x4853),'begin':_0xfaeebd[_0x116c9c(0x2691)],'relevance':0x0}]},_0x54ae4c={'begin':/\(/,'end':/\)/,'relevance':0x0,'keywords':{'built_in':_0x25b7b1['built_in'],'literal':_0x25b7b1['literal']},'contains':[_0xfaeebd['C_NUMBER_MODE'],_0xfaeebd[_0x116c9c(0x1bbc)],_0x230abd,_0x344af8,_0x386fa3,_0x50e79a,_0x116c9c(0x1001)]};return _0x386fa3[_0x116c9c(0x160d)][_0x116c9c(0x4131)](_0x54ae4c),{'name':_0x116c9c(0x4532),'aliases':['gss'],'case_insensitive':!0x0,'keywords':_0x25b7b1,'illegal':/(\{[%#]|[%#]\}| <- )/,'contains':[_0xfaeebd[_0x116c9c(0x3d6a)],_0xfaeebd[_0x116c9c(0x4d7)],_0xfaeebd['C_BLOCK_COMMENT_MODE'],_0x230abd,_0x50e79a,_0x7adfc0,{'className':_0x116c9c(0x2448),'begin':/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/},_0x3c3b3c('proc\x20keyword',';'),_0x3c3b3c('fn','='),{'beginKeywords':'for\x20threadfor','end':/;/,'relevance':0x0,'contains':[_0xfaeebd[_0x116c9c(0x1bbc)],_0x230abd,_0x54ae4c]},{'variants':[{'begin':_0xfaeebd['UNDERSCORE_IDENT_RE']+'\x5c.'+_0xfaeebd[_0x116c9c(0x2691)]},{'begin':_0xfaeebd[_0x116c9c(0x2691)]+'\x5cs*='}],'relevance':0x0},_0x386fa3,_0x43255d]};};},0x212b:_0x2b4a0a=>{const _0x290a70=a0_0x329b;_0x2b4a0a[_0x290a70(0x15de)]=function(_0x5651db){const _0xc94b34=_0x290a70,_0x50313a={'$pattern':_0xc94b34(0x1161),'keyword':_0xc94b34(0x177c)},_0x17dcfc=_0x5651db[_0xc94b34(0x4f2)](_0x5651db['C_NUMBER_MODE'],{'begin':'([-+]?((\x5c.\x5cd+)|(\x5cd+)(\x5c.\x5cd*)?))|'+_0x5651db[_0xc94b34(0x2627)]}),_0x30a698=[_0x5651db[_0xc94b34(0x4d7)],_0x5651db['C_BLOCK_COMMENT_MODE'],_0x5651db[_0xc94b34(0x274a)](/\(/,/\)/),_0x17dcfc,_0x5651db['inherit'](_0x5651db['APOS_STRING_MODE'],{'illegal':null}),_0x5651db[_0xc94b34(0x4f2)](_0x5651db[_0xc94b34(0x3c93)],{'illegal':null}),{'className':_0xc94b34(0x3d9d),'begin':_0xc94b34(0x2e0)},{'className':_0xc94b34(0x3d9d),'begin':_0xc94b34(0x48db)},{'className':_0xc94b34(0x1875),'begin':_0xc94b34(0x4625),'end':'(\x5cd+)'},{'className':_0xc94b34(0x1875),'begin':'(VZOFX|VZOFY|VZOFZ)'},{'className':_0xc94b34(0x4853),'begin':_0xc94b34(0x437c),'contains':[_0x17dcfc],'end':'\x5c]'},{'className':_0xc94b34(0x3148),'variants':[{'begin':'N','end':_0xc94b34(0x2291),'illegal':'\x5cW'}]}];return{'name':_0xc94b34(0x4671),'aliases':['nc'],'case_insensitive':!0x0,'keywords':_0x50313a,'contains':[{'className':_0xc94b34(0x482),'begin':'%'},{'className':_0xc94b34(0x482),'begin':'([O])([0-9]+)'}][_0xc94b34(0x41bf)](_0x30a698)};};},0xce1:_0x4c7b6b=>{const _0x478801=a0_0x329b;_0x4c7b6b[_0x478801(0x15de)]=function(_0x1e3ae4){const _0x372c48=_0x478801;return{'name':'Gherkin','aliases':['feature'],'keywords':_0x372c48(0x43b0),'contains':[{'className':_0x372c48(0x3148),'begin':'\x5c*','relevance':0x0},{'className':_0x372c48(0x482),'begin':_0x372c48(0x41dd)},{'begin':'\x5c|','end':_0x372c48(0x1e2c),'contains':[{'className':_0x372c48(0x4f7c),'begin':_0x372c48(0x2229)}]},{'className':'variable','begin':'<','end':'>'},_0x1e3ae4['HASH_COMMENT_MODE'],{'className':_0x372c48(0x4f7c),'begin':_0x372c48(0x3a07),'end':_0x372c48(0x3a07)},_0x1e3ae4[_0x372c48(0x3c93)]]};};},0xec3:_0x56cc5f=>{const _0x41f128=a0_0x329b;_0x56cc5f[_0x41f128(0x15de)]=function(_0x43aadd){const _0x4bc0f5=_0x41f128;return{'name':_0x4bc0f5(0x15b8),'keywords':{'keyword':_0x4bc0f5(0x16f4),'type':_0x4bc0f5(0x2695),'built_in':_0x4bc0f5(0x2c8),'literal':_0x4bc0f5(0x9b6)},'illegal':'\x22','contains':[_0x43aadd[_0x4bc0f5(0x4d7)],_0x43aadd[_0x4bc0f5(0x1bbc)],_0x43aadd['C_NUMBER_MODE'],{'className':_0x4bc0f5(0x482),'begin':'#','end':'$'}]};};},0x4ab:_0x469ffa=>{const _0x53685b=a0_0x329b;_0x469ffa[_0x53685b(0x15de)]=function(_0x1e1b38){const _0x4bbbb7=_0x53685b;return{'name':_0x4bbbb7(0x4c3a),'case_insensitive':!0x1,'keywords':{'keyword':['#endregion','#macro','#region',_0x4bbbb7(0x43ea),_0x4bbbb7(0x1706),_0x4bbbb7(0x49c0),_0x4bbbb7(0x1bf3),_0x4bbbb7(0x31f6),_0x4bbbb7(0x495f),'default',_0x4bbbb7(0x450b),_0x4bbbb7(0x257d),'do',_0x4bbbb7(0x36f0),_0x4bbbb7(0x721),_0x4bbbb7(0x4afd),_0x4bbbb7(0x3e3a),'for',_0x4bbbb7(0x3dfb),_0x4bbbb7(0x2c1a),'if','mod',_0x4bbbb7(0x4163),'or',_0x4bbbb7(0x16da),_0x4bbbb7(0xf06),_0x4bbbb7(0x68),_0x4bbbb7(0x452b),'until',_0x4bbbb7(0x3c21),_0x4bbbb7(0x217b),'with',_0x4bbbb7(0x2bb8)],'built_in':[_0x4bbbb7(0x444c),_0x4bbbb7(0x2a88),_0x4bbbb7(0x4ff5),'achievement_get_challenges',_0x4bbbb7(0x1af9),_0x4bbbb7(0x1cbd),_0x4bbbb7(0xbae),_0x4bbbb7(0x3003),_0x4bbbb7(0x3fb1),_0x4bbbb7(0x2ad3),_0x4bbbb7(0x4192),_0x4bbbb7(0x179b),'achievement_logout',_0x4bbbb7(0x41e0),_0x4bbbb7(0x16cc),_0x4bbbb7(0x47b3),'achievement_send_challenge',_0x4bbbb7(0x354c),_0x4bbbb7(0x8c3),_0x4bbbb7(0x2bfc),_0x4bbbb7(0x45d5),'action_inherited','action_kill_object','ads_disable',_0x4bbbb7(0x4bd5),_0x4bbbb7(0x2419),_0x4bbbb7(0x1830),'ads_engagement_launch',_0x4bbbb7(0x400e),'ads_event_preload','ads_get_display_height',_0x4bbbb7(0x2d7c),_0x4bbbb7(0x3754),_0x4bbbb7(0x5019),_0x4bbbb7(0x1ef),_0x4bbbb7(0x1619),_0x4bbbb7(0x1779),_0x4bbbb7(0x416e),_0x4bbbb7(0x5126),_0x4bbbb7(0x1e89),_0x4bbbb7(0x37de),_0x4bbbb7(0x30d),'ansi_char','application_get_position',_0x4bbbb7(0x2bd0),'application_surface_enable',_0x4bbbb7(0x4c0f),_0x4bbbb7(0x1eed),_0x4bbbb7(0x2d60),'arctan',_0x4bbbb7(0x2791),_0x4bbbb7(0x2529),_0x4bbbb7(0x4518),'array_delete','array_equals',_0x4bbbb7(0x8c8),_0x4bbbb7(0x4d45),_0x4bbbb7(0x3d95),'array_length_1d',_0x4bbbb7(0x400c),_0x4bbbb7(0x22c),_0x4bbbb7(0x3227),_0x4bbbb7(0x2d63),_0x4bbbb7(0x61d),'asset_get_index',_0x4bbbb7(0x2c3c),_0x4bbbb7(0x1603),'audio_create_buffer_sound','audio_create_play_queue',_0x4bbbb7(0x2a55),'audio_create_sync_group',_0x4bbbb7(0x4a81),_0x4bbbb7(0x3240),_0x4bbbb7(0x1bf9),'audio_emitter_create','audio_emitter_exists','audio_emitter_falloff',_0x4bbbb7(0x419d),_0x4bbbb7(0x49b7),_0x4bbbb7(0x4c15),_0x4bbbb7(0x1044),'audio_emitter_get_pitch','audio_emitter_get_vx',_0x4bbbb7(0x39e9),'audio_emitter_get_vz',_0x4bbbb7(0x1b6b),_0x4bbbb7(0x311),'audio_emitter_get_z',_0x4bbbb7(0x3e9),'audio_emitter_position',_0x4bbbb7(0x1e6b),_0x4bbbb7(0x1c2b),_0x4bbbb7(0x2f37),_0x4bbbb7(0x414f),_0x4bbbb7(0x36ff),'audio_free_play_queue',_0x4bbbb7(0x1ca4),_0x4bbbb7(0x1bf2),_0x4bbbb7(0x469f),'audio_get_master_gain',_0x4bbbb7(0x2ca4),_0x4bbbb7(0x5096),'audio_get_recorder_info',_0x4bbbb7(0x71e),_0x4bbbb7(0x1afd),'audio_group_load','audio_group_load_progress',_0x4bbbb7(0x32b9),'audio_group_set_gain',_0x4bbbb7(0x3a39),_0x4bbbb7(0xeed),_0x4bbbb7(0x2d1f),_0x4bbbb7(0x3ff),_0x4bbbb7(0x2d12),'audio_listener_orientation','audio_listener_position',_0x4bbbb7(0x3447),'audio_listener_set_position',_0x4bbbb7(0x67f),'audio_listener_velocity',_0x4bbbb7(0x150f),_0x4bbbb7(0xc6f),_0x4bbbb7(0x4406),_0x4bbbb7(0x899),_0x4bbbb7(0x9ef),_0x4bbbb7(0x33c3),_0x4bbbb7(0xa32),_0x4bbbb7(0x3df1),'audio_play_music',_0x4bbbb7(0x42cb),_0x4bbbb7(0x1468),_0x4bbbb7(0x17e),_0x4bbbb7(0x423),_0x4bbbb7(0xe91),_0x4bbbb7(0x3ad7),_0x4bbbb7(0x5068),_0x4bbbb7(0xc5d),_0x4bbbb7(0x1bb2),_0x4bbbb7(0x23b0),_0x4bbbb7(0x28d8),'audio_sound_get_gain',_0x4bbbb7(0x500f),'audio_sound_get_pitch',_0x4bbbb7(0xdf9),'audio_sound_length',_0x4bbbb7(0x33c6),_0x4bbbb7(0x267c),'audio_sound_set_track_position',_0x4bbbb7(0x1329),_0x4bbbb7(0x37f3),_0x4bbbb7(0x2d9e),'audio_stop_music',_0x4bbbb7(0x2ba0),_0x4bbbb7(0x41a4),'audio_stop_sync_group',_0x4bbbb7(0x47e4),_0x4bbbb7(0x2f6c),_0x4bbbb7(0x132f),'audio_system',_0x4bbbb7(0xfea),_0x4bbbb7(0x2c25),'base64_decode','base64_encode',_0x4bbbb7(0x3a62),_0x4bbbb7(0x3a5f),_0x4bbbb7(0x4a41),_0x4bbbb7(0x3e73),_0x4bbbb7(0x210a),_0x4bbbb7(0xfd6),_0x4bbbb7(0x5fd),_0x4bbbb7(0x213f),'buffer_copy_from_vertex_buffer',_0x4bbbb7(0xeab),_0x4bbbb7(0x793),'buffer_create_from_vertex_buffer_ext',_0x4bbbb7(0x3202),_0x4bbbb7(0x352f),'buffer_fill',_0x4bbbb7(0x517),_0x4bbbb7(0x447d),_0x4bbbb7(0x4769),_0x4bbbb7(0x4eb9),'buffer_get_type',_0x4bbbb7(0x4636),_0x4bbbb7(0x4e61),'buffer_load_ext',_0x4bbbb7(0x4487),'buffer_md5',_0x4bbbb7(0x2483),'buffer_poke',_0x4bbbb7(0x2be),_0x4bbbb7(0x2bfa),_0x4bbbb7(0xd19),_0x4bbbb7(0x831),'buffer_save_ext',_0x4bbbb7(0x1ede),'buffer_set_surface',_0x4bbbb7(0x3b5a),_0x4bbbb7(0x3e2c),_0x4bbbb7(0x245d),_0x4bbbb7(0x4df),_0x4bbbb7(0x3a19),_0x4bbbb7(0x81f),_0x4bbbb7(0x3ba3),'camera_destroy','camera_get_active','camera_get_begin_script','camera_get_default',_0x4bbbb7(0x30ce),_0x4bbbb7(0x77a),_0x4bbbb7(0x6a9),'camera_get_view_angle',_0x4bbbb7(0x42fd),_0x4bbbb7(0x142f),_0x4bbbb7(0x2d2),_0x4bbbb7(0x2130),_0x4bbbb7(0x3de8),'camera_get_view_speed_y','camera_get_view_target',_0x4bbbb7(0xc17),'camera_get_view_x',_0x4bbbb7(0x48af),_0x4bbbb7(0x1da4),_0x4bbbb7(0x26d1),'camera_set_end_script','camera_set_proj_mat','camera_set_update_script','camera_set_view_angle','camera_set_view_border','camera_set_view_mat',_0x4bbbb7(0x4137),'camera_set_view_size','camera_set_view_speed','camera_set_view_target',_0x4bbbb7(0xd3),_0x4bbbb7(0x22c6),_0x4bbbb7(0x1901),_0x4bbbb7(0x3d04),_0x4bbbb7(0x4db8),'clickable_add_ext',_0x4bbbb7(0x1d35),_0x4bbbb7(0x2fc5),_0x4bbbb7(0x155c),'clickable_exists','clickable_set_style','clipboard_get_text',_0x4bbbb7(0x8bb),'clipboard_set_text',_0x4bbbb7(0x3cb4),'cloud_string_save',_0x4bbbb7(0x50ce),'code_is_compiled','collision_circle',_0x4bbbb7(0x5013),_0x4bbbb7(0x170e),_0x4bbbb7(0x3b70),_0x4bbbb7(0x31d7),_0x4bbbb7(0x463e),'collision_point','collision_point_list','collision_rectangle',_0x4bbbb7(0x4a88),_0x4bbbb7(0x8a6),_0x4bbbb7(0x1534),_0x4bbbb7(0x1b83),'color_get_red',_0x4bbbb7(0x4543),_0x4bbbb7(0x1a3f),_0x4bbbb7(0x28ff),_0x4bbbb7(0x2c39),_0x4bbbb7(0x912),_0x4bbbb7(0x2ba6),_0x4bbbb7(0x1dc5),_0x4bbbb7(0x326e),_0x4bbbb7(0x2ad5),_0x4bbbb7(0xc9e),_0x4bbbb7(0x4201),_0x4bbbb7(0x23f),_0x4bbbb7(0x48a5),_0x4bbbb7(0x1fd6),_0x4bbbb7(0xb10),'date_compare_time','date_create_datetime',_0x4bbbb7(0x2f62),_0x4bbbb7(0x9fc),_0x4bbbb7(0x18a8),_0x4bbbb7(0x1d43),_0x4bbbb7(0x4cce),'date_days_in_month',_0x4bbbb7(0x2a3c),_0x4bbbb7(0x39e1),_0x4bbbb7(0x2745),_0x4bbbb7(0x1498),_0x4bbbb7(0x2d2b),_0x4bbbb7(0x1a75),_0x4bbbb7(0x1e25),'date_get_month','date_get_second','date_get_second_of_year',_0x4bbbb7(0x2eb2),_0x4bbbb7(0x4b63),'date_get_weekday',_0x4bbbb7(0x49dd),_0x4bbbb7(0x4155),_0x4bbbb7(0x4c62),_0x4bbbb7(0xd64),'date_inc_minute','date_inc_month',_0x4bbbb7(0x27f3),'date_inc_week',_0x4bbbb7(0x1826),'date_is_today',_0x4bbbb7(0x30dd),_0x4bbbb7(0x2131),_0x4bbbb7(0x352a),_0x4bbbb7(0x2cd5),'date_set_timezone',_0x4bbbb7(0x492b),_0x4bbbb7(0x9e7),'date_valid_datetime',_0x4bbbb7(0x4b68),_0x4bbbb7(0x2634),_0x4bbbb7(0x215f),_0x4bbbb7(0x26bc),_0x4bbbb7(0x1508),_0x4bbbb7(0xf0c),_0x4bbbb7(0x1d11),_0x4bbbb7(0x1d9),_0x4bbbb7(0x4d40),'device_is_keypad_open',_0x4bbbb7(0x2564),_0x4bbbb7(0x3d1e),'device_mouse_check_button_released','device_mouse_dbclick_enable',_0x4bbbb7(0x4eb3),_0x4bbbb7(0x4681),_0x4bbbb7(0xd46),_0x4bbbb7(0x15e0),_0x4bbbb7(0x1073),_0x4bbbb7(0x2ca9),'directory_create',_0x4bbbb7(0x3781),_0x4bbbb7(0x42bc),'display_get_dpi_x',_0x4bbbb7(0x28d4),_0x4bbbb7(0x1d9a),'display_get_gui_width',_0x4bbbb7(0x162b),_0x4bbbb7(0xf18),_0x4bbbb7(0x7a2),'display_get_timing_method',_0x4bbbb7(0x169a),_0x4bbbb7(0x2ffc),_0x4bbbb7(0x2ac1),_0x4bbbb7(0x2792),_0x4bbbb7(0x426d),_0x4bbbb7(0x1159),'display_set_gui_maximize',_0x4bbbb7(0x2f2e),_0x4bbbb7(0x522),_0x4bbbb7(0x2833),_0x4bbbb7(0x4c61),_0x4bbbb7(0x1ce1),'distance_to_point',_0x4bbbb7(0x21e1),'dot_product_3d',_0x4bbbb7(0x4553),_0x4bbbb7(0x464f),_0x4bbbb7(0x4fa0),_0x4bbbb7(0xc68),'draw_arrow',_0x4bbbb7(0xc90),_0x4bbbb7(0x1dc8),_0x4bbbb7(0x32ce),'draw_background_tiled',_0x4bbbb7(0xa3d),_0x4bbbb7(0x2514),_0x4bbbb7(0x2a6a),_0x4bbbb7(0x3a6c),_0x4bbbb7(0x6ea),_0x4bbbb7(0x2676),_0x4bbbb7(0x403a),'draw_ellipse_color',_0x4bbbb7(0x16fb),_0x4bbbb7(0x4046),_0x4bbbb7(0x129f),'draw_enable_swf_aa',_0x4bbbb7(0x3f2c),_0x4bbbb7(0x46ac),_0x4bbbb7(0x88f),_0x4bbbb7(0x12c4),_0x4bbbb7(0x3737),'draw_get_swf_aa_level',_0x4bbbb7(0x35b5),_0x4bbbb7(0x247c),_0x4bbbb7(0x473c),_0x4bbbb7(0x1bf5),_0x4bbbb7(0x1154),_0x4bbbb7(0x362),_0x4bbbb7(0x3d97),_0x4bbbb7(0x1423),_0x4bbbb7(0x42b),_0x4bbbb7(0x441b),_0x4bbbb7(0x631),_0x4bbbb7(0x2ab3),_0x4bbbb7(0x1a04),_0x4bbbb7(0x3fdb),_0x4bbbb7(0x314),_0x4bbbb7(0x7db),_0x4bbbb7(0x2e5),'draw_point',_0x4bbbb7(0x1e42),_0x4bbbb7(0xa77),_0x4bbbb7(0x1618),_0x4bbbb7(0x42cc),_0x4bbbb7(0x3aeb),_0x4bbbb7(0x4a3f),_0x4bbbb7(0x3d94),_0x4bbbb7(0xef6),'draw_roundrect',_0x4bbbb7(0x4e7f),_0x4bbbb7(0x3960),_0x4bbbb7(0x66f),'draw_roundrect_colour_ext',_0x4bbbb7(0x378e),_0x4bbbb7(0x39c5),_0x4bbbb7(0x4af2),_0x4bbbb7(0x47ea),_0x4bbbb7(0x30c6),'draw_set_blend_mode',_0x4bbbb7(0x3bb5),_0x4bbbb7(0x1fa4),_0x4bbbb7(0x4746),_0x4bbbb7(0x19a9),_0x4bbbb7(0x866),_0x4bbbb7(0x428a),_0x4bbbb7(0x2a0f),'draw_set_lighting',_0x4bbbb7(0x3be),_0x4bbbb7(0x900),_0x4bbbb7(0x442c),_0x4bbbb7(0x35da),'draw_skeleton_instance',_0x4bbbb7(0x2915),_0x4bbbb7(0x50e6),'draw_sprite_ext',_0x4bbbb7(0x32a7),_0x4bbbb7(0x1c03),_0x4bbbb7(0x3d40),'draw_sprite_pos','draw_sprite_stretched',_0x4bbbb7(0x2b0d),_0x4bbbb7(0x277e),_0x4bbbb7(0x33b2),_0x4bbbb7(0x1ba8),'draw_surface_ext',_0x4bbbb7(0x4235),_0x4bbbb7(0x506),_0x4bbbb7(0x402),'draw_surface_stretched','draw_surface_stretched_ext',_0x4bbbb7(0x281f),_0x4bbbb7(0x3cd0),_0x4bbbb7(0x38d9),_0x4bbbb7(0x32fd),'draw_text_colour',_0x4bbbb7(0x1596),_0x4bbbb7(0x121a),_0x4bbbb7(0x1bc4),_0x4bbbb7(0x519),_0x4bbbb7(0x46de),_0x4bbbb7(0x290a),_0x4bbbb7(0x1bd1),'draw_text_transformed_color',_0x4bbbb7(0x1d14),_0x4bbbb7(0x1c1f),_0x4bbbb7(0x43e8),_0x4bbbb7(0x2a92),_0x4bbbb7(0x2c34),_0x4bbbb7(0x3d9f),'draw_triangle_colour',_0x4bbbb7(0x31ec),_0x4bbbb7(0x1410),'draw_vertex_colour',_0x4bbbb7(0x1d3e),_0x4bbbb7(0x1285),'draw_vertex_texture_colour',_0x4bbbb7(0x4915),_0x4bbbb7(0x4a5a),'ds_grid_add_disk',_0x4bbbb7(0x2f36),_0x4bbbb7(0x2df6),'ds_grid_clear','ds_grid_copy',_0x4bbbb7(0x2fdc),_0x4bbbb7(0x3d4b),_0x4bbbb7(0x17c),_0x4bbbb7(0x27f8),'ds_grid_get_disk_mean',_0x4bbbb7(0x395e),_0x4bbbb7(0x50b6),'ds_grid_get_max','ds_grid_get_mean',_0x4bbbb7(0x5114),_0x4bbbb7(0x1f37),_0x4bbbb7(0x2f1a),'ds_grid_multiply',_0x4bbbb7(0x4700),_0x4bbbb7(0x1421),_0x4bbbb7(0xf00),'ds_grid_read',_0x4bbbb7(0x17bb),_0x4bbbb7(0x13d5),'ds_grid_set_disk',_0x4bbbb7(0x1274),_0x4bbbb7(0x3899),'ds_grid_shuffle',_0x4bbbb7(0x1328),_0x4bbbb7(0x158f),_0x4bbbb7(0x1255),_0x4bbbb7(0x3fdc),'ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y',_0x4bbbb7(0x369b),_0x4bbbb7(0x4021),_0x4bbbb7(0x338b),_0x4bbbb7(0xdc4),'ds_list_copy','ds_list_create',_0x4bbbb7(0x5077),_0x4bbbb7(0x297c),_0x4bbbb7(0xa6b),'ds_list_find_index',_0x4bbbb7(0x4061),'ds_list_insert',_0x4bbbb7(0xb2e),_0x4bbbb7(0x4d7b),'ds_list_read',_0x4bbbb7(0x31b9),_0x4bbbb7(0x4e2e),'ds_list_shuffle',_0x4bbbb7(0xc9f),_0x4bbbb7(0x7bf),_0x4bbbb7(0x1392),_0x4bbbb7(0xfca),_0x4bbbb7(0x2977),_0x4bbbb7(0x2765),'ds_map_clear',_0x4bbbb7(0x4ebf),'ds_map_create',_0x4bbbb7(0x3a4e),_0x4bbbb7(0x43e4),_0x4bbbb7(0xef0),'ds_map_exists','ds_map_find_first',_0x4bbbb7(0x1f90),_0x4bbbb7(0x3acf),_0x4bbbb7(0x9ad),_0x4bbbb7(0x11eb),_0x4bbbb7(0x234b),'ds_map_replace',_0x4bbbb7(0x71c),_0x4bbbb7(0x2df2),_0x4bbbb7(0x140b),_0x4bbbb7(0x4b85),_0x4bbbb7(0x35c3),_0x4bbbb7(0x4c1f),'ds_map_set',_0x4bbbb7(0xee8),_0x4bbbb7(0x3cb8),_0x4bbbb7(0x2cc9),_0x4bbbb7(0x255d),_0x4bbbb7(0xd30),'ds_priority_copy',_0x4bbbb7(0x4ba8),_0x4bbbb7(0x42d8),_0x4bbbb7(0x46d1),_0x4bbbb7(0x3c44),_0x4bbbb7(0xe8c),_0x4bbbb7(0x425e),_0x4bbbb7(0x2532),'ds_priority_find_min',_0x4bbbb7(0x1f0d),_0x4bbbb7(0x3620),_0x4bbbb7(0xa55),_0x4bbbb7(0x3f06),_0x4bbbb7(0x493a),'ds_queue_copy',_0x4bbbb7(0xf61),_0x4bbbb7(0x2eaa),_0x4bbbb7(0xce0),_0x4bbbb7(0x3c0b),_0x4bbbb7(0x3774),_0x4bbbb7(0x38f1),_0x4bbbb7(0x159c),'ds_queue_size',_0x4bbbb7(0x3b9c),_0x4bbbb7(0x1312),_0x4bbbb7(0x5c0),'ds_stack_clear',_0x4bbbb7(0xf15),_0x4bbbb7(0x46f7),_0x4bbbb7(0x5124),'ds_stack_empty',_0x4bbbb7(0x3dee),_0x4bbbb7(0x330d),_0x4bbbb7(0x2c80),_0x4bbbb7(0x1675),_0x4bbbb7(0x6d1),_0x4bbbb7(0x368c),_0x4bbbb7(0x1217),_0x4bbbb7(0x30ea),_0x4bbbb7(0x2e58),_0x4bbbb7(0x4aa8),'effect_create_below',_0x4bbbb7(0x2eb5),_0x4bbbb7(0x3a2),_0x4bbbb7(0xbe1),'event_perform_object',_0x4bbbb7(0x456a),'exp','external_call',_0x4bbbb7(0x4253),'external_free',_0x4bbbb7(0x2f1),_0x4bbbb7(0x212f),_0x4bbbb7(0x45a9),_0x4bbbb7(0x6d9),'facebook_init',_0x4bbbb7(0x150c),_0x4bbbb7(0x4f15),_0x4bbbb7(0x3fd9),'facebook_post_message',_0x4bbbb7(0x201d),_0x4bbbb7(0xbc4),_0x4bbbb7(0x428f),_0x4bbbb7(0x3614),'facebook_user_id',_0x4bbbb7(0x2ad4),_0x4bbbb7(0x3b4),_0x4bbbb7(0x240e),_0x4bbbb7(0x482d),_0x4bbbb7(0x2a05),_0x4bbbb7(0x3db8),_0x4bbbb7(0x345b),_0x4bbbb7(0x2d03),_0x4bbbb7(0xe61),'file_copy','file_delete',_0x4bbbb7(0x3210),_0x4bbbb7(0x1e9c),_0x4bbbb7(0x2a24),_0x4bbbb7(0x3b99),'file_rename',_0x4bbbb7(0x3c1d),_0x4bbbb7(0x6a),_0x4bbbb7(0x48f9),_0x4bbbb7(0x4963),_0x4bbbb7(0x898),_0x4bbbb7(0x30b5),_0x4bbbb7(0x2880),_0x4bbbb7(0x1f84),_0x4bbbb7(0x4bfb),_0x4bbbb7(0x11a2),_0x4bbbb7(0x4547),_0x4bbbb7(0x26ef),'file_text_writeln',_0x4bbbb7(0x16c6),'filename_dir',_0x4bbbb7(0x458e),_0x4bbbb7(0x5039),_0x4bbbb7(0x1f7),_0x4bbbb7(0x366),_0x4bbbb7(0x4dbd),'font_add',_0x4bbbb7(0x212c),_0x4bbbb7(0x1ed0),_0x4bbbb7(0x34df),_0x4bbbb7(0x21a3),_0x4bbbb7(0x38d1),_0x4bbbb7(0x4f40),'font_get_bold','font_get_first','font_get_fontname',_0x4bbbb7(0x397e),_0x4bbbb7(0x34a2),_0x4bbbb7(0x8cf),'font_get_size','font_get_texture','font_get_uvs','font_replace','font_replace_sprite','font_replace_sprite_ext',_0x4bbbb7(0x1138),_0x4bbbb7(0x42b8),'frac',_0x4bbbb7(0x236b),'game_get_speed',_0x4bbbb7(0x2bf0),'game_load_buffer',_0x4bbbb7(0x499c),_0x4bbbb7(0x2d75),_0x4bbbb7(0x3424),_0x4bbbb7(0x182c),_0x4bbbb7(0x3daf),'gamepad_axis_value',_0x4bbbb7(0x497d),_0x4bbbb7(0x4078),_0x4bbbb7(0x3db7),'gamepad_button_count','gamepad_button_value','gamepad_get_axis_deadzone',_0x4bbbb7(0x1fd3),_0x4bbbb7(0x199e),_0x4bbbb7(0x372a),_0x4bbbb7(0x42fe),_0x4bbbb7(0x775),_0x4bbbb7(0x102f),_0x4bbbb7(0x9c0),_0x4bbbb7(0x2bd9),_0x4bbbb7(0x759),_0x4bbbb7(0x3750),_0x4bbbb7(0x3d34),'gesture_double_tap_time',_0x4bbbb7(0x2c9d),_0x4bbbb7(0x507b),_0x4bbbb7(0x48ba),_0x4bbbb7(0x182b),_0x4bbbb7(0x1c1b),_0x4bbbb7(0x2e76),_0x4bbbb7(0x300c),_0x4bbbb7(0x4dd3),'gesture_get_pinch_angle_away',_0x4bbbb7(0x50ca),_0x4bbbb7(0x1a66),_0x4bbbb7(0x408e),_0x4bbbb7(0x5093),_0x4bbbb7(0x267b),_0x4bbbb7(0x2522),_0x4bbbb7(0x1cdc),_0x4bbbb7(0x25bc),'gesture_rotate_angle',_0x4bbbb7(0x1c81),_0x4bbbb7(0x3f4f),_0x4bbbb7(0x4ecf),_0x4bbbb7(0x3deb),_0x4bbbb7(0x2d94),_0x4bbbb7(0x3410),_0x4bbbb7(0x2584),_0x4bbbb7(0x4ad2),'get_save_filename_ext',_0x4bbbb7(0x2d26),_0x4bbbb7(0x47da),_0x4bbbb7(0x3a78),_0x4bbbb7(0x35f9),_0x4bbbb7(0x39c7),_0x4bbbb7(0x3696),_0x4bbbb7(0x2342),_0x4bbbb7(0x3af9),_0x4bbbb7(0x304d),_0x4bbbb7(0x2f22),'gpu_get_blendmode_dest',_0x4bbbb7(0x5c6),_0x4bbbb7(0x2d2c),'gpu_get_blendmode_ext_sepalpha',_0x4bbbb7(0x825),_0x4bbbb7(0x5c8),_0x4bbbb7(0x3476),_0x4bbbb7(0x34f2),'gpu_get_cullmode','gpu_get_fog',_0x4bbbb7(0x17b),_0x4bbbb7(0x4c97),_0x4bbbb7(0x4d98),'gpu_get_tex_filter_ext',_0x4bbbb7(0x437e),'gpu_get_tex_max_aniso_ext',_0x4bbbb7(0x1325),_0x4bbbb7(0xbcd),_0x4bbbb7(0x3290),'gpu_get_tex_min_mip_ext',_0x4bbbb7(0x1ba3),_0x4bbbb7(0x46f3),_0x4bbbb7(0x15ac),'gpu_get_tex_mip_enable_ext',_0x4bbbb7(0x1c6e),_0x4bbbb7(0xd76),'gpu_get_tex_repeat',_0x4bbbb7(0x4889),'gpu_get_texfilter',_0x4bbbb7(0x1de),_0x4bbbb7(0x3d77),'gpu_get_texrepeat_ext',_0x4bbbb7(0x4159),_0x4bbbb7(0x17df),'gpu_get_zwriteenable',_0x4bbbb7(0x21f1),_0x4bbbb7(0x7c6),'gpu_set_alphatestenable',_0x4bbbb7(0xb79),_0x4bbbb7(0x1752),'gpu_set_blendenable','gpu_set_blendmode',_0x4bbbb7(0x2e0b),_0x4bbbb7(0x2085),_0x4bbbb7(0x3078),_0x4bbbb7(0xcf2),'gpu_set_cullmode',_0x4bbbb7(0xd93),_0x4bbbb7(0x2da7),_0x4bbbb7(0x17ce),_0x4bbbb7(0x1a48),_0x4bbbb7(0x4062),_0x4bbbb7(0x2f83),_0x4bbbb7(0x1697),_0x4bbbb7(0x138a),_0x4bbbb7(0x12d9),_0x4bbbb7(0x13b8),_0x4bbbb7(0x4b9f),_0x4bbbb7(0x2acd),_0x4bbbb7(0x13c),'gpu_set_tex_mip_enable',_0x4bbbb7(0x5020),_0x4bbbb7(0xcd2),'gpu_set_tex_mip_filter_ext',_0x4bbbb7(0x193),_0x4bbbb7(0x134c),'gpu_set_texfilter',_0x4bbbb7(0x216c),_0x4bbbb7(0x1541),'gpu_set_texrepeat_ext','gpu_set_zfunc',_0x4bbbb7(0x12a0),_0x4bbbb7(0xaf2),_0x4bbbb7(0x4524),_0x4bbbb7(0x23c8),_0x4bbbb7(0x1e82),'highscore_value',_0x4bbbb7(0x4373),_0x4bbbb7(0x38c4),_0x4bbbb7(0x46c9),'http_request',_0x4bbbb7(0x3a5a),_0x4bbbb7(0x2659),_0x4bbbb7(0x3e26),_0x4bbbb7(0x246f),_0x4bbbb7(0x1ee4),_0x4bbbb7(0x64d),_0x4bbbb7(0x47f9),_0x4bbbb7(0x4e78),'ini_close',_0x4bbbb7(0xa71),_0x4bbbb7(0x28b6),_0x4bbbb7(0x31da),'ini_open_from_string',_0x4bbbb7(0x5f4),_0x4bbbb7(0xb09),'ini_section_delete',_0x4bbbb7(0x4b81),_0x4bbbb7(0x640),_0x4bbbb7(0x23f8),_0x4bbbb7(0x1f9f),'instance_activate_layer',_0x4bbbb7(0x4675),_0x4bbbb7(0x187b),_0x4bbbb7(0x10ce),_0x4bbbb7(0x200d),_0x4bbbb7(0x107),'instance_create_depth','instance_create_layer',_0x4bbbb7(0x16fd),_0x4bbbb7(0x1998),_0x4bbbb7(0x465d),_0x4bbbb7(0x3d43),_0x4bbbb7(0x1ec6),_0x4bbbb7(0x284b),'instance_find',_0x4bbbb7(0x115c),_0x4bbbb7(0x45c5),'instance_nearest',_0x4bbbb7(0x2ef0),_0x4bbbb7(0xb22),'instance_place_list',_0x4bbbb7(0x4a47),_0x4bbbb7(0x4def),_0x4bbbb7(0x117f),_0x4bbbb7(0x26f8),_0x4bbbb7(0x48e1),_0x4bbbb7(0x1493),'is_array',_0x4bbbb7(0x30c8),_0x4bbbb7(0x110a),_0x4bbbb7(0x43c0),_0x4bbbb7(0x46b3),_0x4bbbb7(0x4fdd),_0x4bbbb7(0x1db1),'is_nan',_0x4bbbb7(0x1db4),'is_ptr',_0x4bbbb7(0x33b5),_0x4bbbb7(0xb8f),_0x4bbbb7(0x4ac),_0x4bbbb7(0x3ea3),'is_vec3',_0x4bbbb7(0x4399),'json_decode',_0x4bbbb7(0x1d22),'keyboard_check',_0x4bbbb7(0x104e),_0x4bbbb7(0x44c6),_0x4bbbb7(0x354b),'keyboard_clear',_0x4bbbb7(0x2a0a),_0x4bbbb7(0x1e50),_0x4bbbb7(0x10cf),_0x4bbbb7(0x353f),'keyboard_set_map',_0x4bbbb7(0x2571),'keyboard_unset_map',_0x4bbbb7(0x28ae),_0x4bbbb7(0xde7),_0x4bbbb7(0x27bd),_0x4bbbb7(0x1ffb),_0x4bbbb7(0x3224),_0x4bbbb7(0x151a),_0x4bbbb7(0x813),_0x4bbbb7(0x11a8),'layer_background_create',_0x4bbbb7(0x19f6),_0x4bbbb7(0x1e1c),_0x4bbbb7(0x23ae),_0x4bbbb7(0x1b71),'layer_background_get_htiled',_0x4bbbb7(0x3e2f),'layer_background_get_index',_0x4bbbb7(0x163d),_0x4bbbb7(0x116a),_0x4bbbb7(0x1aba),_0x4bbbb7(0x22ac),_0x4bbbb7(0x5ee),'layer_background_get_xscale',_0x4bbbb7(0x2b71),'layer_background_htiled',_0x4bbbb7(0x3c05),_0x4bbbb7(0x10a8),_0x4bbbb7(0x105f),_0x4bbbb7(0x3f73),'layer_background_visible',_0x4bbbb7(0x4d64),_0x4bbbb7(0x1d73),'layer_background_yscale',_0x4bbbb7(0x3563),_0x4bbbb7(0x2839),_0x4bbbb7(0x418e),_0x4bbbb7(0x36c8),_0x4bbbb7(0x26d2),'layer_exists',_0x4bbbb7(0x2e4d),_0x4bbbb7(0x146f),_0x4bbbb7(0xa21),'layer_get_depth',_0x4bbbb7(0x29c),_0x4bbbb7(0x95b),'layer_get_forced_depth',_0x4bbbb7(0x12a),_0x4bbbb7(0x1f1d),_0x4bbbb7(0xc54),'layer_get_name',_0x4bbbb7(0x2a72),_0x4bbbb7(0x414c),_0x4bbbb7(0xcaa),'layer_get_target_room',_0x4bbbb7(0x2bc7),_0x4bbbb7(0x503b),_0x4bbbb7(0x2ecf),_0x4bbbb7(0x4cc8),_0x4bbbb7(0x1272),_0x4bbbb7(0x2715),_0x4bbbb7(0xf62),'layer_is_draw_depth_forced',_0x4bbbb7(0x1040),_0x4bbbb7(0x21aa),_0x4bbbb7(0x365e),_0x4bbbb7(0x499),_0x4bbbb7(0xcad),_0x4bbbb7(0x1ac2),'layer_sprite_alpha','layer_sprite_angle','layer_sprite_blend',_0x4bbbb7(0x2aeb),_0x4bbbb7(0x3504),_0x4bbbb7(0x4a5c),_0x4bbbb7(0x1332),_0x4bbbb7(0x3b7b),'layer_sprite_get_angle',_0x4bbbb7(0x331e),_0x4bbbb7(0xcfc),'layer_sprite_get_index','layer_sprite_get_speed',_0x4bbbb7(0x4c4e),'layer_sprite_get_x','layer_sprite_get_xscale',_0x4bbbb7(0x630),_0x4bbbb7(0x43d2),_0x4bbbb7(0x3907),_0x4bbbb7(0x47a3),_0x4bbbb7(0x417),_0x4bbbb7(0x3048),'layer_sprite_y',_0x4bbbb7(0x17fc),_0x4bbbb7(0x2f1f),_0x4bbbb7(0x2994),_0x4bbbb7(0x90e),_0x4bbbb7(0x1186),_0x4bbbb7(0x4f55),_0x4bbbb7(0x4c7a),_0x4bbbb7(0x4742),_0x4bbbb7(0xc8f),_0x4bbbb7(0x1222),_0x4bbbb7(0x1944),_0x4bbbb7(0x23b3),_0x4bbbb7(0x44bd),_0x4bbbb7(0x3a46),_0x4bbbb7(0x3990),_0x4bbbb7(0x4a57),'layer_tile_region',_0x4bbbb7(0xd40),_0x4bbbb7(0x3a65),_0x4bbbb7(0xef2),_0x4bbbb7(0x27dd),_0x4bbbb7(0x2c5a),_0x4bbbb7(0x350f),_0x4bbbb7(0x930),_0x4bbbb7(0x2338),_0x4bbbb7(0x1f40),_0x4bbbb7(0x230d),_0x4bbbb7(0x324b),_0x4bbbb7(0x713),'lengthdir_x',_0x4bbbb7(0x41c),'lerp','ln','load_csv',_0x4bbbb7(0x7a7),_0x4bbbb7(0x12cb),_0x4bbbb7(0x36d1),_0x4bbbb7(0x84e),_0x4bbbb7(0x2271),'make_colour_hsv',_0x4bbbb7(0x478d),'math_get_epsilon',_0x4bbbb7(0x289f),_0x4bbbb7(0x42ad),_0x4bbbb7(0x2b1a),_0x4bbbb7(0x4e2d),_0x4bbbb7(0x23e2),_0x4bbbb7(0x4770),'matrix_build_projection_perspective_fov','matrix_get',_0x4bbbb7(0x347b),_0x4bbbb7(0x4ed5),_0x4bbbb7(0x43b5),'matrix_stack_is_empty',_0x4bbbb7(0x2f10),_0x4bbbb7(0x4249),'matrix_stack_push',_0x4bbbb7(0x2aba),_0x4bbbb7(0xf40),_0x4bbbb7(0x4793),_0x4bbbb7(0x28c),_0x4bbbb7(0x406e),_0x4bbbb7(0xc75),_0x4bbbb7(0x3819),_0x4bbbb7(0x370b),_0x4bbbb7(0x164e),_0x4bbbb7(0x337d),_0x4bbbb7(0x290d),_0x4bbbb7(0x12f9),_0x4bbbb7(0xaec),_0x4bbbb7(0x3f4),_0x4bbbb7(0x4918),'mouse_check_button_pressed',_0x4bbbb7(0x4aee),_0x4bbbb7(0x3060),_0x4bbbb7(0x2758),_0x4bbbb7(0x73d),'move_bounce_all','move_bounce_solid','move_contact_all',_0x4bbbb7(0x3c4a),_0x4bbbb7(0x4997),_0x4bbbb7(0x258a),_0x4bbbb7(0x4351),_0x4bbbb7(0x146a),_0x4bbbb7(0x2c59),_0x4bbbb7(0x511),_0x4bbbb7(0x3c1c),'mp_grid_add_instances',_0x4bbbb7(0x3672),_0x4bbbb7(0x2bff),_0x4bbbb7(0x104b),_0x4bbbb7(0x965),_0x4bbbb7(0x3da6),_0x4bbbb7(0x21f7),_0x4bbbb7(0x3401),_0x4bbbb7(0x2c9b),_0x4bbbb7(0x458f),_0x4bbbb7(0x13bc),_0x4bbbb7(0xa26),_0x4bbbb7(0x2cb7),_0x4bbbb7(0x3540),_0x4bbbb7(0x326c),_0x4bbbb7(0x83c),_0x4bbbb7(0x942),'mp_potential_settings',_0x4bbbb7(0x2bb1),_0x4bbbb7(0x5120),_0x4bbbb7(0x350e),_0x4bbbb7(0x3638),_0x4bbbb7(0x163a),_0x4bbbb7(0x160a),_0x4bbbb7(0x50a5),_0x4bbbb7(0x4325),_0x4bbbb7(0x1858),_0x4bbbb7(0x23d0),_0x4bbbb7(0x264c),_0x4bbbb7(0x3e44),_0x4bbbb7(0x2119),_0x4bbbb7(0x25ee),_0x4bbbb7(0x1f11),'network_set_config',_0x4bbbb7(0x2092),_0x4bbbb7(0x1ae5),_0x4bbbb7(0x1721),_0x4bbbb7(0x1b9f),'object_get_name',_0x4bbbb7(0x3e03),'object_get_persistent',_0x4bbbb7(0x50eb),_0x4bbbb7(0x4fed),_0x4bbbb7(0x1beb),'object_get_visible',_0x4bbbb7(0xd6d),_0x4bbbb7(0xec1),'object_set_persistent','object_set_solid',_0x4bbbb7(0x26cc),_0x4bbbb7(0x3c48),_0x4bbbb7(0x256e),_0x4bbbb7(0x2c07),_0x4bbbb7(0x41ae),_0x4bbbb7(0x2790),_0x4bbbb7(0x2c4f),'os_is_network_connected','os_is_paused','os_lock_orientation',_0x4bbbb7(0x1b48),_0x4bbbb7(0x8bf),_0x4bbbb7(0x1e03),_0x4bbbb7(0x4de8),_0x4bbbb7(0x389c),_0x4bbbb7(0x4268),_0x4bbbb7(0x2f4),_0x4bbbb7(0x5009),_0x4bbbb7(0x4ead),'part_emitter_region',_0x4bbbb7(0x462f),'part_particles_clear',_0x4bbbb7(0x13f4),_0x4bbbb7(0x4c21),_0x4bbbb7(0x18e4),'part_particles_create_colour',_0x4bbbb7(0x767),_0x4bbbb7(0x2621),'part_system_clear',_0x4bbbb7(0x45c3),_0x4bbbb7(0x4c9),'part_system_depth',_0x4bbbb7(0x235e),_0x4bbbb7(0xee4),_0x4bbbb7(0x102b),_0x4bbbb7(0x3525),_0x4bbbb7(0x3243),'part_system_layer',_0x4bbbb7(0x13b7),_0x4bbbb7(0xf39),'part_type_alpha1',_0x4bbbb7(0x3f16),_0x4bbbb7(0xeac),_0x4bbbb7(0x37a0),'part_type_clear',_0x4bbbb7(0xeaf),'part_type_color2','part_type_color3',_0x4bbbb7(0x394c),_0x4bbbb7(0x4571),_0x4bbbb7(0x3c8f),_0x4bbbb7(0x4460),_0x4bbbb7(0x1cd2),_0x4bbbb7(0x4166),_0x4bbbb7(0x3bf9),_0x4bbbb7(0x2def),'part_type_colour_rgb',_0x4bbbb7(0xef4),_0x4bbbb7(0xde3),_0x4bbbb7(0x50a6),_0x4bbbb7(0x744),_0x4bbbb7(0x1a86),_0x4bbbb7(0x3669),'part_type_life',_0x4bbbb7(0x926),_0x4bbbb7(0x2401),_0x4bbbb7(0x3b27),_0x4bbbb7(0x3bac),_0x4bbbb7(0x1fe1),_0x4bbbb7(0x383),_0x4bbbb7(0x909),_0x4bbbb7(0x2e0e),_0x4bbbb7(0x15b1),'path_append',_0x4bbbb7(0x1d77),'path_change_point',_0x4bbbb7(0x42de),_0x4bbbb7(0x3bd5),'path_delete_point',_0x4bbbb7(0x2256),_0x4bbbb7(0x36f9),'path_exists',_0x4bbbb7(0x4a55),_0x4bbbb7(0x18a1),_0x4bbbb7(0x3f35),_0x4bbbb7(0x43a2),_0x4bbbb7(0x50de),_0x4bbbb7(0x3fb4),_0x4bbbb7(0x85a),_0x4bbbb7(0x2477),_0x4bbbb7(0x4467),_0x4bbbb7(0x1d25),_0x4bbbb7(0xc21),_0x4bbbb7(0x47f1),_0x4bbbb7(0x2ee4),_0x4bbbb7(0x3b0),'path_insert_point',_0x4bbbb7(0xd11),_0x4bbbb7(0x429b),_0x4bbbb7(0x1e96),_0x4bbbb7(0x4aca),'path_set_closed',_0x4bbbb7(0x604),_0x4bbbb7(0x166c),_0x4bbbb7(0x1f4c),_0x4bbbb7(0x341c),_0x4bbbb7(0xa0b),_0x4bbbb7(0x2d8c),'physics_apply_impulse','physics_apply_local_force','physics_apply_local_impulse',_0x4bbbb7(0x4a05),_0x4bbbb7(0xe2c),_0x4bbbb7(0xa2),_0x4bbbb7(0x1dc),_0x4bbbb7(0x1c56),_0x4bbbb7(0x34b1),_0x4bbbb7(0x7b8),_0x4bbbb7(0x244e),'physics_fixture_set_awake','physics_fixture_set_box_shape',_0x4bbbb7(0x119e),_0x4bbbb7(0x305d),_0x4bbbb7(0x49f7),_0x4bbbb7(0x2e83),_0x4bbbb7(0x3988),_0x4bbbb7(0xc34),_0x4bbbb7(0x4e7),_0x4bbbb7(0x4515),_0x4bbbb7(0x31ef),_0x4bbbb7(0x34d5),_0x4bbbb7(0x3d0a),_0x4bbbb7(0x3a17),_0x4bbbb7(0x2dd),_0x4bbbb7(0x4daa),'physics_joint_delete',_0x4bbbb7(0x1b13),_0x4bbbb7(0x32e),_0x4bbbb7(0x3700),_0x4bbbb7(0x810),_0x4bbbb7(0x334f),'physics_joint_prismatic_create',_0x4bbbb7(0x2738),'physics_joint_revolute_create',_0x4bbbb7(0x2fed),_0x4bbbb7(0x4e1c),'physics_joint_weld_create',_0x4bbbb7(0xc3b),'physics_mass_properties',_0x4bbbb7(0x1eb2),'physics_particle_create',_0x4bbbb7(0x4b2),_0x4bbbb7(0x2798),_0x4bbbb7(0x3f8d),_0x4bbbb7(0x40f4),_0x4bbbb7(0x5ed),_0x4bbbb7(0x3149),'physics_particle_get_damping','physics_particle_get_data',_0x4bbbb7(0xff6),'physics_particle_get_density',_0x4bbbb7(0x3c2d),_0x4bbbb7(0x28b2),_0x4bbbb7(0x4b99),_0x4bbbb7(0x3af5),_0x4bbbb7(0x2ed4),_0x4bbbb7(0x40b3),_0x4bbbb7(0xffa),_0x4bbbb7(0x317),_0x4bbbb7(0x3d90),_0x4bbbb7(0x49c7),_0x4bbbb7(0xb32),_0x4bbbb7(0xb54),_0x4bbbb7(0x11aa),_0x4bbbb7(0x46be),_0x4bbbb7(0x2a5f),'physics_particle_group_get_data',_0x4bbbb7(0x4ff),_0x4bbbb7(0x4e19),'physics_particle_group_get_vel_x','physics_particle_group_get_vel_y',_0x4bbbb7(0x1c50),_0x4bbbb7(0x3db1),_0x4bbbb7(0xbc7),_0x4bbbb7(0x16b5),_0x4bbbb7(0x3004),_0x4bbbb7(0x19c3),_0x4bbbb7(0xc4e),_0x4bbbb7(0x4b05),'physics_particle_set_gravity_scale','physics_particle_set_group_flags','physics_particle_set_max_count',_0x4bbbb7(0xb1a),_0x4bbbb7(0x1e57),_0x4bbbb7(0xdf),_0x4bbbb7(0xf68),'physics_set_friction',_0x4bbbb7(0x4b6c),_0x4bbbb7(0x43dd),_0x4bbbb7(0x2fb7),'physics_world_draw_debug','physics_world_gravity',_0x4bbbb7(0x220c),'physics_world_update_speed',_0x4bbbb7(0x36b1),'place_free',_0x4bbbb7(0x43be),_0x4bbbb7(0x1ad2),_0x4bbbb7(0x44b7),'point_distance',_0x4bbbb7(0xe06),_0x4bbbb7(0x4b01),_0x4bbbb7(0x17f4),_0x4bbbb7(0x1231),_0x4bbbb7(0x1636),_0x4bbbb7(0x3773),_0x4bbbb7(0x10bb),_0x4bbbb7(0x2821),'power',_0x4bbbb7(0x1051),_0x4bbbb7(0x47fa),_0x4bbbb7(0x22c4),'push_get_next_local_notification',_0x4bbbb7(0x459d),_0x4bbbb7(0x1ccf),'random',_0x4bbbb7(0x2633),'random_range',_0x4bbbb7(0x30b8),_0x4bbbb7(0x48b2),_0x4bbbb7(0x1c43),'real',_0x4bbbb7(0x3d46),_0x4bbbb7(0x67c),'rectangle_in_triangle',_0x4bbbb7(0x4d5b),_0x4bbbb7(0x70b),_0x4bbbb7(0x957),'room_exists',_0x4bbbb7(0x2c44),'room_get_name',_0x4bbbb7(0x3209),_0x4bbbb7(0x179a),'room_goto_next','room_goto_previous',_0x4bbbb7(0x1125),_0x4bbbb7(0x4bdd),_0x4bbbb7(0x18b6),_0x4bbbb7(0x2871),'room_restart',_0x4bbbb7(0x2a7d),_0x4bbbb7(0x48c1),_0x4bbbb7(0x1bec),_0x4bbbb7(0x754),_0x4bbbb7(0x4999),_0x4bbbb7(0xccb),_0x4bbbb7(0x2a7a),_0x4bbbb7(0x5a7),_0x4bbbb7(0x4acc),_0x4bbbb7(0x4d0c),_0x4bbbb7(0x3238),'screen_save_part',_0x4bbbb7(0x21f0),_0x4bbbb7(0x2ebe),'script_get_name',_0x4bbbb7(0x4e75),_0x4bbbb7(0x16fc),_0x4bbbb7(0x1214),_0x4bbbb7(0x306f),_0x4bbbb7(0x3da7),_0x4bbbb7(0xf59),'shader_get_sampler_index','shader_get_uniform',_0x4bbbb7(0x2c7e),'shader_reset',_0x4bbbb7(0x2d88),_0x4bbbb7(0x228),_0x4bbbb7(0x4e2b),'shader_set_uniform_i',_0x4bbbb7(0x354d),_0x4bbbb7(0x3c1e),_0x4bbbb7(0x1135),_0x4bbbb7(0x3f33),_0x4bbbb7(0x28e),'show_debug_message',_0x4bbbb7(0x2850),_0x4bbbb7(0x19d2),_0x4bbbb7(0x920),_0x4bbbb7(0xdc7),_0x4bbbb7(0x4145),_0x4bbbb7(0x5099),_0x4bbbb7(0x173),_0x4bbbb7(0x423c),'skeleton_animation_clear',_0x4bbbb7(0x690),_0x4bbbb7(0x28a4),_0x4bbbb7(0x41e3),_0x4bbbb7(0x1751),'skeleton_animation_get_frames','skeleton_animation_list',_0x4bbbb7(0x98c),'skeleton_animation_set','skeleton_animation_set_ext',_0x4bbbb7(0xd7),_0x4bbbb7(0x2a53),_0x4bbbb7(0x3b7d),'skeleton_attachment_set','skeleton_bone_data_get',_0x4bbbb7(0xfac),_0x4bbbb7(0x3db6),_0x4bbbb7(0x2bc2),'skeleton_collision_draw_set',_0x4bbbb7(0x4dbc),_0x4bbbb7(0x31e2),_0x4bbbb7(0x4ddc),_0x4bbbb7(0x225a),_0x4bbbb7(0x2a91),_0x4bbbb7(0x3bdd),_0x4bbbb7(0x4022),_0x4bbbb7(0x484a),_0x4bbbb7(0x9fe),_0x4bbbb7(0x49e5),_0x4bbbb7(0x2b1e),_0x4bbbb7(0x3dd1),'sprite_delete',_0x4bbbb7(0x2d00),_0x4bbbb7(0x171b),'sprite_flush',_0x4bbbb7(0x1921),_0x4bbbb7(0x79d),_0x4bbbb7(0x21a4),'sprite_get_bbox_right',_0x4bbbb7(0x4e2f),'sprite_get_height',_0x4bbbb7(0x191e),'sprite_get_number',_0x4bbbb7(0x1965),'sprite_get_speed_type',_0x4bbbb7(0xe78),_0x4bbbb7(0x18ea),_0x4bbbb7(0xc1),_0x4bbbb7(0x2593),_0x4bbbb7(0x1d7c),_0x4bbbb7(0x1da8),_0x4bbbb7(0x4281),_0x4bbbb7(0x1fc3),'sprite_prefetch_multi',_0x4bbbb7(0x2b66),_0x4bbbb7(0x4c38),_0x4bbbb7(0x476a),_0x4bbbb7(0x339a),_0x4bbbb7(0x34e1),_0x4bbbb7(0x342e),_0x4bbbb7(0x1dda),'sprite_set_speed','sqr',_0x4bbbb7(0x4b6d),_0x4bbbb7(0x4cc),'steam_activate_overlay_browser',_0x4bbbb7(0x3466),_0x4bbbb7(0x2dfe),_0x4bbbb7(0x4f12),_0x4bbbb7(0x46da),'steam_create_leaderboard',_0x4bbbb7(0x4f36),'steam_download_friends_scores',_0x4bbbb7(0x190a),_0x4bbbb7(0x3133),_0x4bbbb7(0xc27),_0x4bbbb7(0x1d4a),_0x4bbbb7(0x9ba),_0x4bbbb7(0x1a9c),_0x4bbbb7(0x3595),_0x4bbbb7(0x4b26),_0x4bbbb7(0x1bea),_0x4bbbb7(0x4340),_0x4bbbb7(0x1e32),_0x4bbbb7(0x442e),_0x4bbbb7(0x491a),_0x4bbbb7(0x4ebd),_0x4bbbb7(0xdfb),_0x4bbbb7(0x5060),_0x4bbbb7(0x3685),_0x4bbbb7(0x1985),_0x4bbbb7(0x46e3),_0x4bbbb7(0x34da),_0x4bbbb7(0x2314),_0x4bbbb7(0x273d),'steam_is_cloud_enabled_for_account',_0x4bbbb7(0x3a8f),'steam_is_overlay_activated','steam_is_overlay_enabled',_0x4bbbb7(0x1f17),_0x4bbbb7(0x4afb),_0x4bbbb7(0x493c),_0x4bbbb7(0x4a3d),_0x4bbbb7(0xcd4),_0x4bbbb7(0x3840),_0x4bbbb7(0x41a0),_0x4bbbb7(0x1583),_0x4bbbb7(0x38d6),_0x4bbbb7(0x4f91),_0x4bbbb7(0x3e18),_0x4bbbb7(0x115f),_0x4bbbb7(0x2c9f),_0x4bbbb7(0x3852),_0x4bbbb7(0xa5b),_0x4bbbb7(0x4422),_0x4bbbb7(0xcb2),_0x4bbbb7(0xe47),'steam_ugc_get_item_update_progress','steam_ugc_get_subscribed_items',_0x4bbbb7(0x1a1),'steam_ugc_query_add_excluded_tag',_0x4bbbb7(0x2a2e),'steam_ugc_query_set_allow_cached_response','steam_ugc_query_set_cloud_filename_filter',_0x4bbbb7(0x2f4d),_0x4bbbb7(0x251f),_0x4bbbb7(0x301a),_0x4bbbb7(0xa0c),_0x4bbbb7(0x282c),_0x4bbbb7(0x325d),_0x4bbbb7(0x9d6),_0x4bbbb7(0x4784),_0x4bbbb7(0x490a),_0x4bbbb7(0x3a8b),_0x4bbbb7(0x35b4),'steam_ugc_set_item_title','steam_ugc_set_item_visibility',_0x4bbbb7(0x401b),_0x4bbbb7(0x1110),_0x4bbbb7(0x2d30),_0x4bbbb7(0x1b0f),_0x4bbbb7(0x1151),'steam_upload_score_buffer',_0x4bbbb7(0x2972),'steam_upload_score_ext',_0x4bbbb7(0x4d2),_0x4bbbb7(0xa20),_0x4bbbb7(0x4f7c),_0x4bbbb7(0x92c),_0x4bbbb7(0x4b1e),_0x4bbbb7(0x1524),_0x4bbbb7(0x4df7),_0x4bbbb7(0x3d4f),'string_delete',_0x4bbbb7(0x383d),_0x4bbbb7(0x2456),_0x4bbbb7(0x18ce),_0x4bbbb7(0xec4),_0x4bbbb7(0x14eb),_0x4bbbb7(0x3007),_0x4bbbb7(0x27f4),'string_letters',_0x4bbbb7(0x2b82),_0x4bbbb7(0x4efe),_0x4bbbb7(0x28df),_0x4bbbb7(0x11cd),_0x4bbbb7(0x48c8),'string_replace',_0x4bbbb7(0x2752),'string_set_byte_at','string_upper',_0x4bbbb7(0x5036),_0x4bbbb7(0x32be),'surface_copy',_0x4bbbb7(0x44a7),_0x4bbbb7(0x2cab),_0x4bbbb7(0xdcf),_0x4bbbb7(0x40a3),_0x4bbbb7(0x11a0),_0x4bbbb7(0x273a),'surface_get_depth_disable','surface_get_height','surface_get_texture',_0x4bbbb7(0x321f),_0x4bbbb7(0x37d9),_0x4bbbb7(0x2632),_0x4bbbb7(0x2688),_0x4bbbb7(0x16d8),'surface_save',_0x4bbbb7(0x2486),'surface_set_target',_0x4bbbb7(0x3042),'tan','texture_get_height',_0x4bbbb7(0xf88),_0x4bbbb7(0x15d9),'texture_get_uvs','texture_get_width','texture_global_scale','texture_set_stage',_0x4bbbb7(0x4112),_0x4bbbb7(0x367f),'tile_get_index','tile_get_mirror',_0x4bbbb7(0x48cf),'tile_set_empty',_0x4bbbb7(0x404),'tile_set_index',_0x4bbbb7(0x4868),'tile_set_rotate',_0x4bbbb7(0xb9c),'tilemap_get',_0x4bbbb7(0x457a),_0x4bbbb7(0x2974),_0x4bbbb7(0x1dc0),'tilemap_get_frame','tilemap_get_global_mask',_0x4bbbb7(0x37a6),_0x4bbbb7(0x9c2),'tilemap_get_tile_height','tilemap_get_tile_width','tilemap_get_tileset',_0x4bbbb7(0x1823),_0x4bbbb7(0x23c5),'tilemap_get_y','tilemap_set',_0x4bbbb7(0x2b6d),_0x4bbbb7(0x25b),_0x4bbbb7(0x2882),_0x4bbbb7(0x608),'tilemap_x',_0x4bbbb7(0x4583),'timeline_add',_0x4bbbb7(0x274d),_0x4bbbb7(0x3f6f),'timeline_exists','timeline_get_name',_0x4bbbb7(0x26b5),_0x4bbbb7(0x17f3),'timeline_moment_clear',_0x4bbbb7(0x41fb),_0x4bbbb7(0x3445),_0x4bbbb7(0x3b8b),_0x4bbbb7(0x1cc2),_0x4bbbb7(0x362b),_0x4bbbb7(0x2f49),_0x4bbbb7(0x3cc4),_0x4bbbb7(0x4c98),_0x4bbbb7(0x2e19),_0x4bbbb7(0x5098),_0x4bbbb7(0x1048),_0x4bbbb7(0x1093),_0x4bbbb7(0x50ad),_0x4bbbb7(0x3331),_0x4bbbb7(0x37a2),_0x4bbbb7(0x387),_0x4bbbb7(0x49ed),_0x4bbbb7(0x4730),_0x4bbbb7(0xfe2),'vertex_argb',_0x4bbbb7(0x27b7),_0x4bbbb7(0x301b),'vertex_colour',_0x4bbbb7(0x2453),'vertex_create_buffer_ext',_0x4bbbb7(0x2411),_0x4bbbb7(0x4aff),_0x4bbbb7(0x3d49),_0x4bbbb7(0x4dd0),_0x4bbbb7(0x40f3),_0x4bbbb7(0xf3f),_0x4bbbb7(0x434a),_0x4bbbb7(0x3cc5),_0x4bbbb7(0xcd3),_0x4bbbb7(0x409b),_0x4bbbb7(0x2426),_0x4bbbb7(0x2ed0),_0x4bbbb7(0x9e6),_0x4bbbb7(0x4e4e),_0x4bbbb7(0x21c9),_0x4bbbb7(0x1867),'vertex_format_begin',_0x4bbbb7(0x251e),'vertex_format_end',_0x4bbbb7(0x1633),_0x4bbbb7(0x125e),_0x4bbbb7(0x38ba),'vertex_normal','vertex_position','vertex_position_3d',_0x4bbbb7(0x85b),_0x4bbbb7(0x405e),_0x4bbbb7(0x1c3a),'view_get_camera','view_get_hport',_0x4bbbb7(0x287c),_0x4bbbb7(0x305c),_0x4bbbb7(0x2a31),_0x4bbbb7(0x27c1),_0x4bbbb7(0x2ff3),_0x4bbbb7(0x3c3c),_0x4bbbb7(0x512f),_0x4bbbb7(0x3235),_0x4bbbb7(0x48f0),_0x4bbbb7(0x2a1f),_0x4bbbb7(0x20a8),_0x4bbbb7(0x98b),_0x4bbbb7(0x353),_0x4bbbb7(0x4624),_0x4bbbb7(0xec9),_0x4bbbb7(0x4faa),_0x4bbbb7(0x31e3),_0x4bbbb7(0x473b),_0x4bbbb7(0x3cac),_0x4bbbb7(0x261e),_0x4bbbb7(0x2883),'win8_license_trial_version',_0x4bbbb7(0x32c2),'win8_livetile_badge_notification',_0x4bbbb7(0x37c7),_0x4bbbb7(0x3f89),'win8_livetile_notification_expiry','win8_livetile_notification_image_add','win8_livetile_notification_secondary_begin',_0x4bbbb7(0x48eb),_0x4bbbb7(0x3c17),_0x4bbbb7(0x43c3),'win8_livetile_tile_clear',_0x4bbbb7(0x46ec),_0x4bbbb7(0x2fd1),'win8_search_disable',_0x4bbbb7(0x4928),_0x4bbbb7(0x31d5),_0x4bbbb7(0x4f16),_0x4bbbb7(0x3077),'win8_settingscharm_add_entry',_0x4bbbb7(0x99a),'win8_settingscharm_add_xaml_entry',_0x4bbbb7(0x323a),_0x4bbbb7(0x4828),_0x4bbbb7(0x48fd),_0x4bbbb7(0x3520),_0x4bbbb7(0x32e8),_0x4bbbb7(0x1457),_0x4bbbb7(0x28f6),'win8_share_url',_0x4bbbb7(0x2edc),_0x4bbbb7(0x217),'window_get_caption',_0x4bbbb7(0x3319),_0x4bbbb7(0x4a1),_0x4bbbb7(0x1c78),_0x4bbbb7(0x3bc9),_0x4bbbb7(0x2393),_0x4bbbb7(0xd77),_0x4bbbb7(0x20ab),_0x4bbbb7(0x1ae0),_0x4bbbb7(0x1ae1),_0x4bbbb7(0x2ab1),_0x4bbbb7(0x42db),_0x4bbbb7(0x969),'window_mouse_get_y','window_mouse_set',_0x4bbbb7(0x3470),'window_set_color',_0x4bbbb7(0x202),_0x4bbbb7(0x31ac),_0x4bbbb7(0x3189),_0x4bbbb7(0x2c8c),_0x4bbbb7(0x3bcf),_0x4bbbb7(0x3317),_0x4bbbb7(0x4d9e),_0x4bbbb7(0x1cf5),_0x4bbbb7(0x3a9f),_0x4bbbb7(0x3e32),_0x4bbbb7(0x3e0a),'window_view_mouse_get_y',_0x4bbbb7(0xf1e),_0x4bbbb7(0x6e6),'winphone_license_trial_version',_0x4bbbb7(0x11f),_0x4bbbb7(0x2f07),'winphone_tile_back_image',_0x4bbbb7(0x2da1),_0x4bbbb7(0x37ca),'winphone_tile_background_color',_0x4bbbb7(0x1115),_0x4bbbb7(0x2929),_0x4bbbb7(0x4a8),'winphone_tile_front_image',_0x4bbbb7(0x1a73),_0x4bbbb7(0x4ada),'winphone_tile_icon_image',_0x4bbbb7(0x1646),_0x4bbbb7(0xfad),_0x4bbbb7(0x1cea),_0x4bbbb7(0x11e6),_0x4bbbb7(0x1bb4)],'literal':['all','false','noone',_0x4bbbb7(0x5cd),_0x4bbbb7(0x280),'true','undefined'],'symbol':[_0x4bbbb7(0x2da2),_0x4bbbb7(0x1c28),_0x4bbbb7(0x2893),_0x4bbbb7(0xad5),'DEFAULT_CHARSET',_0x4bbbb7(0x1eb6),'GB2312_CHARSET',_0x4bbbb7(0x3255),_0x4bbbb7(0x1b43),_0x4bbbb7(0x36e2),_0x4bbbb7(0x4355),_0x4bbbb7(0x3433),_0x4bbbb7(0x4050),_0x4bbbb7(0x21e8),_0x4bbbb7(0x2af5),_0x4bbbb7(0x30e5),_0x4bbbb7(0x1305),_0x4bbbb7(0x233c),_0x4bbbb7(0x4654),_0x4bbbb7(0x2264),'TURKISH_CHARSET',_0x4bbbb7(0x2672),_0x4bbbb7(0x511f),_0x4bbbb7(0x2e36),_0x4bbbb7(0x4ac5),_0x4bbbb7(0x350d),'achievement_friends_info',_0x4bbbb7(0x2da0),_0x4bbbb7(0x24b2),_0x4bbbb7(0x21e7),_0x4bbbb7(0x25dd),_0x4bbbb7(0x3a11),'achievement_show_friend_picker',_0x4bbbb7(0x2a77),_0x4bbbb7(0x407d),'achievement_show_purchase_prompt',_0x4bbbb7(0x508),_0x4bbbb7(0x1c5c),'achievement_type_score_challenge',_0x4bbbb7(0xb4f),_0x4bbbb7(0x4a32),_0x4bbbb7(0x1f9b),_0x4bbbb7(0x4a46),_0x4bbbb7(0x265f),_0x4bbbb7(0x2078),'asset_sound',_0x4bbbb7(0x3d89),_0x4bbbb7(0x45b2),'asset_timeline',_0x4bbbb7(0x4bef),_0x4bbbb7(0x2fb4),_0x4bbbb7(0x40d1),_0x4bbbb7(0x3cb3),_0x4bbbb7(0x5014),'audio_falloff_inverse_distance_clamped','audio_falloff_linear_distance',_0x4bbbb7(0x3a21),_0x4bbbb7(0x2d84),'audio_mono',_0x4bbbb7(0x4168),_0x4bbbb7(0x9b8),_0x4bbbb7(0x178a),_0x4bbbb7(0x1cef),_0x4bbbb7(0x1474),'bm_dest_alpha',_0x4bbbb7(0x2f90),'bm_dest_colour',_0x4bbbb7(0x5b7),_0x4bbbb7(0x233a),_0x4bbbb7(0x3360),'bm_inv_src_alpha',_0x4bbbb7(0x956),_0x4bbbb7(0x76),_0x4bbbb7(0x125b),_0x4bbbb7(0x2671),_0x4bbbb7(0x5028),'bm_src_alpha',_0x4bbbb7(0x43f),_0x4bbbb7(0x5050),_0x4bbbb7(0x3efe),_0x4bbbb7(0x4fc1),_0x4bbbb7(0x2806),'browser_chrome',_0x4bbbb7(0x4295),_0x4bbbb7(0x46e0),_0x4bbbb7(0x1f56),'browser_ie_mobile',_0x4bbbb7(0x1805),_0x4bbbb7(0xe5f),'browser_safari','browser_safari_mobile',_0x4bbbb7(0x3446),_0x4bbbb7(0x491c),_0x4bbbb7(0x2ec3),_0x4bbbb7(0x4973),_0x4bbbb7(0xaea),_0x4bbbb7(0x3814),_0x4bbbb7(0xf29),_0x4bbbb7(0x3a8),'buffer_fixed',_0x4bbbb7(0x3e05),'buffer_grow',_0x4bbbb7(0x14b3),'buffer_network',_0x4bbbb7(0x10f2),_0x4bbbb7(0x2a6b),_0x4bbbb7(0x15c7),_0x4bbbb7(0x4175),_0x4bbbb7(0x142c),_0x4bbbb7(0x9cd),_0x4bbbb7(0x3ed6),_0x4bbbb7(0x30ff),_0x4bbbb7(0x4f1a),_0x4bbbb7(0x1195),'buffer_text',_0x4bbbb7(0x45d7),_0x4bbbb7(0x2064),_0x4bbbb7(0x2f41),_0x4bbbb7(0x27d4),'buffer_vbuffer',_0x4bbbb7(0x4199),'button_type',_0x4bbbb7(0x49de),'c_black','c_blue',_0x4bbbb7(0x37ad),_0x4bbbb7(0x3d53),_0x4bbbb7(0x453d),_0x4bbbb7(0xca4),'c_lime',_0x4bbbb7(0x39e7),'c_maroon','c_navy',_0x4bbbb7(0x307e),_0x4bbbb7(0x3def),_0x4bbbb7(0x4514),'c_red',_0x4bbbb7(0x188c),_0x4bbbb7(0x4f71),_0x4bbbb7(0x2d04),_0x4bbbb7(0x1a43),'cmpfunc_always',_0x4bbbb7(0x3462),'cmpfunc_greater',_0x4bbbb7(0x2500),_0x4bbbb7(0x1b5e),_0x4bbbb7(0x409a),_0x4bbbb7(0x4327),_0x4bbbb7(0x1fc7),_0x4bbbb7(0x2bca),_0x4bbbb7(0x11a6),_0x4bbbb7(0x2d0f),_0x4bbbb7(0x4265),'cr_default',_0x4bbbb7(0x2e2b),_0x4bbbb7(0x33ec),_0x4bbbb7(0x3f22),_0x4bbbb7(0x28fa),_0x4bbbb7(0x472d),_0x4bbbb7(0x4ff9),'cr_size_ns',_0x4bbbb7(0x12b8),'cr_size_we',_0x4bbbb7(0xfb9),_0x4bbbb7(0x9be),'cull_counterclockwise',_0x4bbbb7(0x1fba),'device_emulator',_0x4bbbb7(0x1c8b),_0x4bbbb7(0x1c55),_0x4bbbb7(0xd22),'device_ios_iphone5','device_ios_iphone6',_0x4bbbb7(0x1aa5),_0x4bbbb7(0x72f),'device_ios_unknown','device_tablet',_0x4bbbb7(0x1954),_0x4bbbb7(0x47e7),_0x4bbbb7(0x3957),_0x4bbbb7(0x4f1e),_0x4bbbb7(0x33d4),_0x4bbbb7(0x21ea),'ds_type_grid',_0x4bbbb7(0x279e),_0x4bbbb7(0xea7),_0x4bbbb7(0x37bf),_0x4bbbb7(0x4e6f),_0x4bbbb7(0x3b9d),'ef_cloud',_0x4bbbb7(0x31d),_0x4bbbb7(0x23ff),_0x4bbbb7(0x465b),_0x4bbbb7(0x3d9b),'ef_rain',_0x4bbbb7(0x4722),'ef_smoke',_0x4bbbb7(0x22f2),_0x4bbbb7(0x3572),_0x4bbbb7(0x889),_0x4bbbb7(0x15e6),_0x4bbbb7(0x2e04),_0x4bbbb7(0x3f79),_0x4bbbb7(0x390d),_0x4bbbb7(0x2289),_0x4bbbb7(0xbf4),_0x4bbbb7(0x2e60),_0x4bbbb7(0x16de),_0x4bbbb7(0x25c8),'ev_draw','ev_draw_begin','ev_draw_end',_0x4bbbb7(0xbce),_0x4bbbb7(0x1b40),_0x4bbbb7(0x1cec),'ev_game_end',_0x4bbbb7(0x3ce7),_0x4bbbb7(0x11ae),'ev_gesture_double_tap',_0x4bbbb7(0x4c5d),_0x4bbbb7(0x3772),_0x4bbbb7(0x460c),_0x4bbbb7(0x1d8c),_0x4bbbb7(0x3856),'ev_gesture_pinch_in',_0x4bbbb7(0x127f),_0x4bbbb7(0x18b8),'ev_gesture_rotate_end',_0x4bbbb7(0xfda),'ev_gesture_rotating',_0x4bbbb7(0xf2c),_0x4bbbb7(0x4c73),_0x4bbbb7(0x3a43),_0x4bbbb7(0x634),_0x4bbbb7(0x2b00),_0x4bbbb7(0x3ce9),_0x4bbbb7(0xefe),_0x4bbbb7(0xe20),_0x4bbbb7(0x1e71),_0x4bbbb7(0xb26),'ev_global_gesture_rotate_end',_0x4bbbb7(0x27fb),_0x4bbbb7(0x4fab),_0x4bbbb7(0x3699),_0x4bbbb7(0x1af4),'ev_global_left_press',_0x4bbbb7(0x468c),_0x4bbbb7(0x2238),_0x4bbbb7(0x1b94),_0x4bbbb7(0x309),_0x4bbbb7(0x3434),'ev_global_right_press','ev_global_right_release','ev_gui',_0x4bbbb7(0x337b),_0x4bbbb7(0x3583),_0x4bbbb7(0x19dc),_0x4bbbb7(0x4a2),_0x4bbbb7(0x42d1),_0x4bbbb7(0x467f),_0x4bbbb7(0x319e),_0x4bbbb7(0xb1e),_0x4bbbb7(0x46c0),'ev_joystick1_button8','ev_joystick1_down',_0x4bbbb7(0x26d),_0x4bbbb7(0x4f19),_0x4bbbb7(0x3536),_0x4bbbb7(0x2552),'ev_joystick2_button2',_0x4bbbb7(0x4615),_0x4bbbb7(0x322e),_0x4bbbb7(0x4d3f),_0x4bbbb7(0x3bfd),_0x4bbbb7(0xac7),_0x4bbbb7(0x1792),_0x4bbbb7(0x1e56),_0x4bbbb7(0x50c1),_0x4bbbb7(0x24f9),_0x4bbbb7(0x49f3),_0x4bbbb7(0x3541),_0x4bbbb7(0x4930),'ev_keyrelease',_0x4bbbb7(0x4c2c),_0x4bbbb7(0x3d26),_0x4bbbb7(0x28e6),_0x4bbbb7(0xabb),_0x4bbbb7(0x135d),_0x4bbbb7(0x3590),'ev_mouse',_0x4bbbb7(0x2005),_0x4bbbb7(0x4642),_0x4bbbb7(0x2643),_0x4bbbb7(0xbf9),'ev_no_button','ev_no_more_health',_0x4bbbb7(0x3ea),_0x4bbbb7(0x4405),'ev_outside','ev_right_button','ev_right_press','ev_right_release',_0x4bbbb7(0x1283),_0x4bbbb7(0x3bfc),'ev_step',_0x4bbbb7(0x107e),_0x4bbbb7(0x468),_0x4bbbb7(0x3021),_0x4bbbb7(0xada),_0x4bbbb7(0x4ed8),_0x4bbbb7(0x1949),_0x4bbbb7(0x411c),_0x4bbbb7(0x10c3),_0x4bbbb7(0x5116),_0x4bbbb7(0x40ea),_0x4bbbb7(0x390),_0x4bbbb7(0x3db3),'ev_user8',_0x4bbbb7(0x2549),_0x4bbbb7(0x4092),_0x4bbbb7(0x1661),_0x4bbbb7(0x2e0a),_0x4bbbb7(0x165b),'ev_user14','ev_user15',_0x4bbbb7(0x1144),_0x4bbbb7(0x429f),_0x4bbbb7(0x993),_0x4bbbb7(0x5067),_0x4bbbb7(0x10a0),_0x4bbbb7(0x363e),'fa_middle',_0x4bbbb7(0x48e3),'fa_right',_0x4bbbb7(0x3d96),'fa_top',_0x4bbbb7(0x18e8),_0x4bbbb7(0x4601),_0x4bbbb7(0x4c04),_0x4bbbb7(0x2812),_0x4bbbb7(0x1d41),'fb_login_no_fallback_to_webview',_0x4bbbb7(0x2b6a),_0x4bbbb7(0x2397),_0x4bbbb7(0x3ad4),_0x4bbbb7(0xab1),_0x4bbbb7(0x16d4),_0x4bbbb7(0x25bb),_0x4bbbb7(0x1fc4),_0x4bbbb7(0x2ef8),_0x4bbbb7(0x33f1),'gp_face1',_0x4bbbb7(0x1e75),_0x4bbbb7(0x1606),'gp_face4',_0x4bbbb7(0x3045),_0x4bbbb7(0x5061),'gp_padr',_0x4bbbb7(0x3b51),'gp_select','gp_shoulderl',_0x4bbbb7(0x371e),_0x4bbbb7(0x87a),_0x4bbbb7(0xa08),_0x4bbbb7(0x4beb),_0x4bbbb7(0x1fbc),'gp_stickr',_0x4bbbb7(0x3f13),'iap_canceled',_0x4bbbb7(0x185),_0x4bbbb7(0x253e),_0x4bbbb7(0x437),'iap_ev_restore',_0x4bbbb7(0x46ae),_0x4bbbb7(0x33cf),_0x4bbbb7(0x2c9e),'iap_refunded',_0x4bbbb7(0x2e7c),_0x4bbbb7(0x37cf),_0x4bbbb7(0x1f0),_0x4bbbb7(0x242d),_0x4bbbb7(0x820),_0x4bbbb7(0x4e4b),_0x4bbbb7(0x2ee2),'iap_storeload_ok',_0x4bbbb7(0x48e),_0x4bbbb7(0x1d9b),_0x4bbbb7(0x1e2a),'kbv_autocapitalize_none',_0x4bbbb7(0x2b9),_0x4bbbb7(0x1b6e),_0x4bbbb7(0x93e),_0x4bbbb7(0x2479),_0x4bbbb7(0x373),_0x4bbbb7(0x40b0),'kbv_returnkey_go',_0x4bbbb7(0x3377),_0x4bbbb7(0x26b6),'kbv_returnkey_next',_0x4bbbb7(0xc47),'kbv_returnkey_search','kbv_returnkey_send',_0x4bbbb7(0x1969),'kbv_type_ascii',_0x4bbbb7(0x4882),_0x4bbbb7(0x18a9),_0x4bbbb7(0x4760),_0x4bbbb7(0x4fb5),_0x4bbbb7(0x285e),_0x4bbbb7(0x768),_0x4bbbb7(0x3a05),_0x4bbbb7(0xc41),'layerelementtype_oldtilemap',_0x4bbbb7(0x23de),'layerelementtype_sprite',_0x4bbbb7(0x144),'layerelementtype_tilemap',_0x4bbbb7(0x3926),'lb_disp_none',_0x4bbbb7(0x49bc),'lb_disp_time_ms','lb_disp_time_sec',_0x4bbbb7(0x3aa5),_0x4bbbb7(0x1f1f),_0x4bbbb7(0x681),_0x4bbbb7(0x4f11),'leaderboard_type_time_mins_secs','lighttype_dir',_0x4bbbb7(0x3ef7),'local',_0x4bbbb7(0x1281),_0x4bbbb7(0x278f),_0x4bbbb7(0x25dc),_0x4bbbb7(0x4a97),_0x4bbbb7(0x4da6),_0x4bbbb7(0x23c7),'mb_none',_0x4bbbb7(0x3a3d),_0x4bbbb7(0x35d4),_0x4bbbb7(0x47a9),_0x4bbbb7(0x18b7),_0x4bbbb7(0xf07),_0x4bbbb7(0x45ac),'network_config_enable_reliable_udp',_0x4bbbb7(0x3621),_0x4bbbb7(0x36d2),_0x4bbbb7(0x3d08),'network_socket_udp',_0x4bbbb7(0x441),_0x4bbbb7(0x46f2),'network_type_disconnect','network_type_non_blocking_connect',_0x4bbbb7(0x3a5e),'of_challenge_tie',_0x4bbbb7(0x292c),'os_3ds',_0x4bbbb7(0x1dbd),_0x4bbbb7(0xae3),_0x4bbbb7(0x4311),'os_linux',_0x4bbbb7(0x15c8),_0x4bbbb7(0x1be1),_0x4bbbb7(0x3326),_0x4bbbb7(0xab5),_0x4bbbb7(0x2976),'os_symbian','os_tizen',_0x4bbbb7(0xcab),'os_unknown','os_uwp',_0x4bbbb7(0x2592),_0x4bbbb7(0x4077),_0x4bbbb7(0x2922),_0x4bbbb7(0x3167),_0x4bbbb7(0xeb4),_0x4bbbb7(0x883),_0x4bbbb7(0x202f),_0x4bbbb7(0x269a),_0x4bbbb7(0x35f6),'ov_community','ov_friends','ov_gamegroup',_0x4bbbb7(0x1c69),_0x4bbbb7(0x26ba),_0x4bbbb7(0x2b8e),'path_action_restart',_0x4bbbb7(0x1fb4),_0x4bbbb7(0x1a34),_0x4bbbb7(0x348),_0x4bbbb7(0x4f32),'phy_debug_render_coms',_0x4bbbb7(0x135b),_0x4bbbb7(0x4d7e),_0x4bbbb7(0x20e8),_0x4bbbb7(0x373f),_0x4bbbb7(0x360c),_0x4bbbb7(0xbaf),_0x4bbbb7(0x370a),_0x4bbbb7(0x2774),_0x4bbbb7(0x35b2),_0x4bbbb7(0x2ac0),_0x4bbbb7(0x223c),_0x4bbbb7(0xba8),_0x4bbbb7(0x48fc),_0x4bbbb7(0x16db),'phy_joint_lower_angle_limit','phy_joint_max_force',_0x4bbbb7(0x508e),'phy_joint_max_motor_force',_0x4bbbb7(0x3fd6),'phy_joint_max_torque','phy_joint_motor_force',_0x4bbbb7(0x10ec),_0x4bbbb7(0x4a76),_0x4bbbb7(0x41d0),_0x4bbbb7(0x1525),_0x4bbbb7(0x3394),_0x4bbbb7(0x3890),_0x4bbbb7(0x31ab),_0x4bbbb7(0x40e9),_0x4bbbb7(0x19f3),_0x4bbbb7(0x4438),_0x4bbbb7(0x302e),'phy_particle_data_flag_position',_0x4bbbb7(0x49f),'phy_particle_data_flag_velocity',_0x4bbbb7(0x26a9),_0x4bbbb7(0xcca),_0x4bbbb7(0x32c),_0x4bbbb7(0x30fc),_0x4bbbb7(0x46eb),_0x4bbbb7(0x2436),'phy_particle_flag_viscous',_0x4bbbb7(0xdbd),_0x4bbbb7(0x1c98),_0x4bbbb7(0x1a7e),_0x4bbbb7(0x12c6),_0x4bbbb7(0x210e),'pi',_0x4bbbb7(0x1676),_0x4bbbb7(0x27a9),'pr_pointlist',_0x4bbbb7(0x1c4a),_0x4bbbb7(0x3546),_0x4bbbb7(0x137e),'ps_distr_gaussian',_0x4bbbb7(0xccc),_0x4bbbb7(0x4233),_0x4bbbb7(0x1b73),_0x4bbbb7(0x22e2),_0x4bbbb7(0x323f),_0x4bbbb7(0x2336),_0x4bbbb7(0x31ad),_0x4bbbb7(0x26a2),'pt_shape_disk',_0x4bbbb7(0x109),_0x4bbbb7(0x3a6),_0x4bbbb7(0x7ce),_0x4bbbb7(0x183),_0x4bbbb7(0x76b),_0x4bbbb7(0x34c3),_0x4bbbb7(0x2da9),'pt_shape_spark',_0x4bbbb7(0x260b),_0x4bbbb7(0x353a),_0x4bbbb7(0xe49),'spritespeed_framespergameframe',_0x4bbbb7(0x49fc),'text_type',_0x4bbbb7(0x6da),_0x4bbbb7(0x4c2f),_0x4bbbb7(0x1437),_0x4bbbb7(0x3b65),_0x4bbbb7(0x461d),_0x4bbbb7(0x4503),_0x4bbbb7(0x96f),'timezone_local','timezone_utc',_0x4bbbb7(0x3d0b),_0x4bbbb7(0x52d),'ty_real',_0x4bbbb7(0x1f45),'ugc_filetype_community','ugc_filetype_microtrans',_0x4bbbb7(0x59b),_0x4bbbb7(0x1063),_0x4bbbb7(0xdb8),'ugc_list_Subscribed',_0x4bbbb7(0x15f3),_0x4bbbb7(0x380c),_0x4bbbb7(0x12ec),_0x4bbbb7(0x4a2d),_0x4bbbb7(0x1101),_0x4bbbb7(0x4664),'ugc_match_Artwork',_0x4bbbb7(0x27e0),_0x4bbbb7(0xaef),_0x4bbbb7(0x414d),_0x4bbbb7(0x1797),_0x4bbbb7(0x3fcd),'ugc_match_Items_ReadyToUse',_0x4bbbb7(0x4a03),_0x4bbbb7(0x3901),_0x4bbbb7(0x2536),_0x4bbbb7(0x25e6),_0x4bbbb7(0x3b4a),_0x4bbbb7(0x475a),_0x4bbbb7(0x2b31),'ugc_query_FavoritedByFriendsRankedByPublicationDate',_0x4bbbb7(0x49e1),'ugc_query_RankedByNumTimesReported','ugc_query_RankedByPublicationDate',_0x4bbbb7(0x18bd),_0x4bbbb7(0xe2a),_0x4bbbb7(0x4c47),_0x4bbbb7(0x1e0e),_0x4bbbb7(0x3369),_0x4bbbb7(0x15ec),'ugc_sortorder_CreationOrderAsc','ugc_sortorder_CreationOrderDesc',_0x4bbbb7(0x310),'ugc_sortorder_LastUpdatedDesc',_0x4bbbb7(0x32f),'ugc_sortorder_TitleAsc',_0x4bbbb7(0x228a),_0x4bbbb7(0xace),_0x4bbbb7(0x44e0),_0x4bbbb7(0x7e7),_0x4bbbb7(0x22a0),_0x4bbbb7(0x4f14),_0x4bbbb7(0x4b8),_0x4bbbb7(0xa51),'vertex_type_float3',_0x4bbbb7(0x3ef2),_0x4bbbb7(0x3499),'vertex_usage_binormal','vertex_usage_blendindices','vertex_usage_blendweight',_0x4bbbb7(0xcc1),_0x4bbbb7(0xe1),_0x4bbbb7(0x2e35),'vertex_usage_fog','vertex_usage_normal',_0x4bbbb7(0x838),'vertex_usage_psize',_0x4bbbb7(0xa4b),_0x4bbbb7(0xdab),'vertex_usage_texcoord',_0x4bbbb7(0x24b3),'vk_add',_0x4bbbb7(0x4047),_0x4bbbb7(0x32fa),_0x4bbbb7(0x3cbf),_0x4bbbb7(0x4051),_0x4bbbb7(0x30cd),_0x4bbbb7(0x3080),_0x4bbbb7(0x194b),_0x4bbbb7(0x6c0),_0x4bbbb7(0x2af2),_0x4bbbb7(0x1c25),_0x4bbbb7(0x2fa5),_0x4bbbb7(0x206c),'vk_f2',_0x4bbbb7(0x2fd2),_0x4bbbb7(0x2465),'vk_f5',_0x4bbbb7(0x422e),_0x4bbbb7(0x3ea6),_0x4bbbb7(0x14bb),_0x4bbbb7(0x504),_0x4bbbb7(0x2f00),_0x4bbbb7(0x17d2),_0x4bbbb7(0x464e),_0x4bbbb7(0x3532),_0x4bbbb7(0x3cb5),_0x4bbbb7(0x4abf),_0x4bbbb7(0x34d8),'vk_left',_0x4bbbb7(0x4e6),_0x4bbbb7(0x4a25),_0x4bbbb7(0x10df),_0x4bbbb7(0x4a10),_0x4bbbb7(0x19e2),'vk_numpad2',_0x4bbbb7(0x3956),'vk_numpad4','vk_numpad5',_0x4bbbb7(0x4ed),_0x4bbbb7(0x4e0d),_0x4bbbb7(0x2c0f),'vk_numpad9',_0x4bbbb7(0x460a),_0x4bbbb7(0xaf),_0x4bbbb7(0x8d7),_0x4bbbb7(0x17a1),_0x4bbbb7(0x2ae2),_0x4bbbb7(0x3bc5),_0x4bbbb7(0x2f60),_0x4bbbb7(0x2b60),_0x4bbbb7(0x3c0),_0x4bbbb7(0x1c65),_0x4bbbb7(0x3eda),_0x4bbbb7(0x4f8e),'vk_tab',_0x4bbbb7(0x3022)],'variable.language':[_0x4bbbb7(0x3300),_0x4bbbb7(0x3a10),_0x4bbbb7(0x145),'argument0',_0x4bbbb7(0xa23),_0x4bbbb7(0x26bb),_0x4bbbb7(0x45c0),'argument4','argument5',_0x4bbbb7(0x1a62),'argument7',_0x4bbbb7(0x2fa1),_0x4bbbb7(0x1a72),_0x4bbbb7(0x786),_0x4bbbb7(0x4bf6),_0x4bbbb7(0x200f),_0x4bbbb7(0x1744),_0x4bbbb7(0x28da),_0x4bbbb7(0x47af),'argument_count',_0x4bbbb7(0xbf),_0x4bbbb7(0x3c5e),_0x4bbbb7(0x2bc6),_0x4bbbb7(0x870),_0x4bbbb7(0x45d3),_0x4bbbb7(0x343c),'bbox_bottom',_0x4bbbb7(0x3a8c),_0x4bbbb7(0x296),_0x4bbbb7(0x1028),'browser_height','browser_width',_0x4bbbb7(0x1535),_0x4bbbb7(0x41c7),_0x4bbbb7(0x4e91),_0x4bbbb7(0x1c39),'current_hour',_0x4bbbb7(0x178d),'current_month',_0x4bbbb7(0xcfe),_0x4bbbb7(0x2f1c),_0x4bbbb7(0x4d56),'current_year',_0x4bbbb7(0x3191),'debug_mode',_0x4bbbb7(0x2620),_0x4bbbb7(0x4f77),_0x4bbbb7(0x1ee8),_0x4bbbb7(0x49a4),_0x4bbbb7(0x2870),_0x4bbbb7(0x1991),_0x4bbbb7(0x1ae7),_0x4bbbb7(0x3104),_0x4bbbb7(0x5030),_0x4bbbb7(0x959),_0x4bbbb7(0x2779),_0x4bbbb7(0x152d),_0x4bbbb7(0x492),_0x4bbbb7(0x47e2),_0x4bbbb7(0x27ad),_0x4bbbb7(0x70c),'game_project_name',_0x4bbbb7(0x3a31),_0x4bbbb7(0x704),'gamemaker_registered',_0x4bbbb7(0x14aa),_0x4bbbb7(0x43f2),_0x4bbbb7(0x3663),_0x4bbbb7(0x2855),_0x4bbbb7(0x159d),_0x4bbbb7(0x2d4),_0x4bbbb7(0x249c),_0x4bbbb7(0x41c2),_0x4bbbb7(0x5042),_0x4bbbb7(0x31a7),_0x4bbbb7(0xdd8),_0x4bbbb7(0xe08),_0x4bbbb7(0x47db),_0x4bbbb7(0x2d17),_0x4bbbb7(0x3dcf),_0x4bbbb7(0x50ec),_0x4bbbb7(0x348c),_0x4bbbb7(0x302c),'keyboard_lastchar',_0x4bbbb7(0x33d8),_0x4bbbb7(0x4b1f),_0x4bbbb7(0x3206),_0x4bbbb7(0x298d),_0x4bbbb7(0x3e16),_0x4bbbb7(0x4e92),_0x4bbbb7(0x3593),_0x4bbbb7(0x334c),_0x4bbbb7(0x3e62),_0x4bbbb7(0x4191),'os_browser',_0x4bbbb7(0x1369),_0x4bbbb7(0x4d27),_0x4bbbb7(0x10d2),_0x4bbbb7(0x2331),_0x4bbbb7(0x578),_0x4bbbb7(0x2f15),_0x4bbbb7(0x4880),_0x4bbbb7(0x3b6),'path_scale','path_speed',_0x4bbbb7(0x25c4),'phy_active',_0x4bbbb7(0x393d),'phy_angular_velocity',_0x4bbbb7(0x46c6),_0x4bbbb7(0x4fc2),_0x4bbbb7(0x2b57),'phy_collision_points',_0x4bbbb7(0x293c),'phy_collision_y','phy_com_x',_0x4bbbb7(0x17ac),'phy_dynamic',_0x4bbbb7(0x1d8f),_0x4bbbb7(0x808),'phy_kinematic',_0x4bbbb7(0x150a),'phy_linear_velocity_x','phy_linear_velocity_y',_0x4bbbb7(0x3512),_0x4bbbb7(0x83),_0x4bbbb7(0x2835),'phy_position_y','phy_position_yprevious',_0x4bbbb7(0x190c),'phy_sleeping',_0x4bbbb7(0x3702),'phy_speed_x',_0x4bbbb7(0x4a21),_0x4bbbb7(0x407c),_0x4bbbb7(0x281a),'room_caption',_0x4bbbb7(0x4825),'room_height',_0x4bbbb7(0x158b),_0x4bbbb7(0xb5a),_0x4bbbb7(0x2462),_0x4bbbb7(0x400),_0x4bbbb7(0x1198),_0x4bbbb7(0x1001),_0x4bbbb7(0x382e),_0x4bbbb7(0x4a2f),_0x4bbbb7(0x2168),_0x4bbbb7(0x1246),_0x4bbbb7(0x2d7f),_0x4bbbb7(0x4b54),'sprite_index',_0x4bbbb7(0x1a21),_0x4bbbb7(0x776),'sprite_yoffset',_0x4bbbb7(0x3639),_0x4bbbb7(0x25a5),_0x4bbbb7(0x291a),'timeline_position',_0x4bbbb7(0x1766),_0x4bbbb7(0x10de),'view_angle',_0x4bbbb7(0x1308),_0x4bbbb7(0x3e0e),'view_enabled','view_hborder',_0x4bbbb7(0x617),_0x4bbbb7(0x4982),_0x4bbbb7(0x2c14),_0x4bbbb7(0x2baf),_0x4bbbb7(0x2c7),_0x4bbbb7(0x2e89),'view_visible',_0x4bbbb7(0x1523),_0x4bbbb7(0x506b),_0x4bbbb7(0x1e87),_0x4bbbb7(0x2d5b),_0x4bbbb7(0x3755),_0x4bbbb7(0x4b79),_0x4bbbb7(0x4f52),'visible',_0x4bbbb7(0x36e5),_0x4bbbb7(0x29e0),'working_directory','xprevious',_0x4bbbb7(0x2abd),_0x4bbbb7(0xe60),_0x4bbbb7(0x1518),'ystart','y|0']},'contains':[_0x1e1b38[_0x4bbbb7(0x4d7)],_0x1e1b38[_0x4bbbb7(0x1bbc)],_0x1e1b38['APOS_STRING_MODE'],_0x1e1b38['QUOTE_STRING_MODE'],_0x1e1b38[_0x4bbbb7(0x3d6a)]]};};},0x2631:_0x539b3f=>{const _0x2e1be8=a0_0x329b;_0x539b3f[_0x2e1be8(0x15de)]=function(_0x144bc7){const _0xc89cf9=_0x2e1be8,_0x4dfb29={'keyword':[_0xc89cf9(0x49c0),'case',_0xc89cf9(0x3230),'const',_0xc89cf9(0x495f),_0xc89cf9(0x2fab),_0xc89cf9(0x985),_0xc89cf9(0x36f0),_0xc89cf9(0x412),_0xc89cf9(0x8f1),_0xc89cf9(0x23d2),'go',_0xc89cf9(0x330f),'if',_0xc89cf9(0x2c76),'interface','map','package',_0xc89cf9(0x3cf6),_0xc89cf9(0xf06),'select',_0xc89cf9(0x2570),_0xc89cf9(0x68),_0xc89cf9(0x70a),_0xc89cf9(0x3c21)],'type':[_0xc89cf9(0x3618),_0xc89cf9(0x18d4),'complex64',_0xc89cf9(0x1639),_0xc89cf9(0x4b47),_0xc89cf9(0x2602),'float64',_0xc89cf9(0x1252),'int16',_0xc89cf9(0x3ae6),'int64',_0xc89cf9(0x4f7c),'uint8','uint16',_0xc89cf9(0x1708),_0xc89cf9(0xf5a),_0xc89cf9(0x269f),_0xc89cf9(0x10fe),_0xc89cf9(0xf3b),_0xc89cf9(0x24d9)],'literal':[_0xc89cf9(0x23f6),_0xc89cf9(0x3561),_0xc89cf9(0x4bc9),_0xc89cf9(0x8b0)],'built_in':[_0xc89cf9(0x180a),_0xc89cf9(0x3609),_0xc89cf9(0x1c79),'complex',_0xc89cf9(0x4bb5),_0xc89cf9(0x36a),_0xc89cf9(0x3fc6),_0xc89cf9(0x2728),_0xc89cf9(0x386e),'panic',_0xc89cf9(0x33d3),_0xc89cf9(0x1903),_0xc89cf9(0x3746),_0xc89cf9(0xbc2),_0xc89cf9(0x450b)]};return{'name':'Go','aliases':[_0xc89cf9(0x4aa5)],'keywords':_0x4dfb29,'illegal':'{const _0x549f00=a0_0x329b;_0xbe33b5[_0x549f00(0x15de)]=function(_0x2a5b05){const _0x528079=_0x549f00;return{'name':_0x528079(0x1fb6),'keywords':{'keyword':[_0x528079(0x1903),_0x528079(0x46a9),_0x528079(0x33d3),'import',_0x528079(0x2d36),_0x528079(0x3dfb),'local',_0x528079(0xf06),'let',_0x528079(0x3c21),_0x528079(0x217b),_0x528079(0x8f1),_0x528079(0x1a7f),_0x528079(0xbef),'in','case',_0x528079(0x489c),_0x528079(0xdc0),_0x528079(0xa48),'break',_0x528079(0x495f),_0x528079(0x2e39),_0x528079(0x2441),_0x528079(0x21c8),_0x528079(0x12b9),_0x528079(0x295e),_0x528079(0xf33),'if',_0x528079(0x452b),_0x528079(0x36f0),_0x528079(0x3180),'try',_0x528079(0x424a),_0x528079(0x292f),_0x528079(0x4f8c),_0x528079(0x2b8d),_0x528079(0x1f34),_0x528079(0x29fe),'DynamicVariable',_0x528079(0x2570),_0x528079(0x2128),_0x528079(0x2c94),'set',_0x528079(0x54a),_0x528079(0x20cf),_0x528079(0x47f8)],'literal':[_0x528079(0x23f6),_0x528079(0x3561),'null']},'contains':[_0x2a5b05[_0x528079(0x165c)],_0x2a5b05[_0x528079(0x3c93)],_0x2a5b05[_0x528079(0x3d6a)],{'className':_0x528079(0x482),'begin':'@[A-Za-z]+'}]};};},0x598:_0x3db948=>{const _0x27e818=a0_0x329b;_0x3db948[_0x27e818(0x15de)]=function(_0x4630bc){const _0x275730=_0x27e818;return{'name':_0x275730(0x13f9),'case_insensitive':!0x0,'keywords':[_0x275730(0x49c9),'project','allprojects',_0x275730(0x31e),_0x275730(0xdc6),_0x275730(0xddd),_0x275730(0x63a),_0x275730(0x830),'repositories',_0x275730(0x8c7),_0x275730(0x3f1a),_0x275730(0x450b),_0x275730(0xc81),_0x275730(0x214c),'include',_0x275730(0x4027),_0x275730(0x3b28),_0x275730(0x41b0),_0x275730(0x4ac4),_0x275730(0x1fa2),'options',_0x275730(0x1757),_0x275730(0x3eaa),'group',_0x275730(0x102),_0x275730(0x2545),_0x275730(0x3287),_0x275730(0x290b),'todir',_0x275730(0x2c20),_0x275730(0x2d19),_0x275730(0x2dee),'abstract',_0x275730(0x49c0),_0x275730(0x1bf3),_0x275730(0x424a),_0x275730(0x495f),_0x275730(0x2fab),'do',_0x275730(0x36f0),_0x275730(0x5048),_0x275730(0xac4),_0x275730(0x292f),_0x275730(0x8f1),'if',_0x275730(0xc32),_0x275730(0x39fe),'native','new',_0x275730(0x276d),_0x275730(0x2638),_0x275730(0x1397),'return',_0x275730(0x2308),_0x275730(0x68),_0x275730(0x3c07),'throw',_0x275730(0x4c65),_0x275730(0x1f50),_0x275730(0x47b4),'volatile','while','strictfp',_0x275730(0x4574),_0x275730(0x2c76),_0x275730(0x3561),_0x275730(0x15f0),_0x275730(0x4d6e),_0x275730(0x2d0d),'true',_0x275730(0x78b),'checkstyle',_0x275730(0x3591),'copy','boolean',_0x275730(0x18d4),_0x275730(0x4743),_0x275730(0x42ec),_0x275730(0x1038),'float',_0x275730(0x269f),_0x275730(0x1fc2),_0x275730(0x3c8d),_0x275730(0x4fd3),_0x275730(0x4004),_0x275730(0x39c),_0x275730(0x3848),_0x275730(0x15ea),_0x275730(0x3b33),_0x275730(0x444c),_0x275730(0x4be7),'append',_0x275730(0x11d6),_0x275730(0x33ae),_0x275730(0x4c9d),'collect','compareTo',_0x275730(0x4d47),_0x275730(0x257d),_0x275730(0x22fd),_0x275730(0x21c8),_0x275730(0x4e1e),_0x275730(0x47f0),'eachLine',_0x275730(0x464d),_0x275730(0x12b9),'findAll',_0x275730(0x290b),_0x275730(0x18ef),_0x275730(0xa3b),'getIn',_0x275730(0x2c1f),_0x275730(0x43bd),_0x275730(0x198c),'immutable','inject',_0x275730(0x408d),_0x275730(0x162),_0x275730(0x3bff),_0x275730(0x22b6),_0x275730(0x379c),_0x275730(0x6e3),_0x275730(0x2491),_0x275730(0x343),_0x275730(0x682),_0x275730(0x4262),_0x275730(0x3b5d),_0x275730(0x1fb5),_0x275730(0x3e47),_0x275730(0x1aec),_0x275730(0x1ddd),'pop','power',_0x275730(0x4d30),_0x275730(0x33d3),_0x275730(0x1903),_0x275730(0x4131),_0x275730(0x4cfe),'read',_0x275730(0x2dd1),_0x275730(0x3d8e),'reverse',_0x275730(0x361a),'round',_0x275730(0x3b53),_0x275730(0x509),_0x275730(0x2e00),_0x275730(0x427d),_0x275730(0x4f21),_0x275730(0xbef),_0x275730(0x932),'toList',_0x275730(0x44f9),'upto',_0x275730(0x197e),_0x275730(0x2268),_0x275730(0xe11),_0x275730(0x40c4),_0x275730(0x689),_0x275730(0x294),_0x275730(0xe9),_0x275730(0x1da9)],'contains':[_0x4630bc[_0x275730(0x4d7)],_0x4630bc[_0x275730(0x1bbc)],_0x4630bc['APOS_STRING_MODE'],_0x4630bc[_0x275730(0x3c93)],_0x4630bc[_0x275730(0x1f70)],_0x4630bc[_0x275730(0xdfc)]]};};},0x1d32:_0x423c4f=>{const _0x4a97b9=a0_0x329b;_0x423c4f[_0x4a97b9(0x15de)]=function(_0x528df2){const _0x3df37a=_0x4a97b9,_0x52d2f6=_0x528df2[_0x3df37a(0x12ab)];return{'name':_0x3df37a(0xcc3),'aliases':['gql'],'case_insensitive':!0x0,'disableAutodetect':!0x1,'keywords':{'keyword':[_0x3df37a(0x9a2),'mutation',_0x3df37a(0xb60),_0x3df37a(0x70a),_0x3df37a(0xe2d),_0x3df37a(0x39e8),'directive',_0x3df37a(0x1fc2),'union',_0x3df37a(0x1400),'fragment',_0x3df37a(0x4afd),'on'],'literal':[_0x3df37a(0x23f6),_0x3df37a(0x3561),'null']},'contains':[_0x528df2[_0x3df37a(0x165c)],_0x528df2[_0x3df37a(0x3c93)],_0x528df2[_0x3df37a(0x1f70)],{'scope':'punctuation','match':/[.]{3}/,'relevance':0x0},{'scope':_0x3df37a(0x42e1),'begin':/[\!\(\)\:\=\[\]\{\|\}]{1}/,'relevance':0x0},{'scope':_0x3df37a(0x4b3a),'begin':/\$/,'end':/\W/,'excludeEnd':!0x0,'relevance':0x0},{'scope':_0x3df37a(0x482),'match':/@\w+/,'excludeEnd':!0x0},{'scope':_0x3df37a(0x3148),'begin':_0x52d2f6[_0x3df37a(0x41bf)](/[_A-Za-z][_0-9A-Za-z]*/,_0x52d2f6[_0x3df37a(0x2901)](/\s*:/)),'relevance':0x0}],'illegal':[/[;<']/,/BEGIN/]};};},0xfd:_0x4771a5=>{const _0x38194c=a0_0x329b;function _0x2c76b8(_0xef87b9,_0x19ed62={}){const _0x3afb5d=a0_0x329b;return _0x19ed62[_0x3afb5d(0x2d95)]=_0xef87b9,_0x19ed62;}_0x4771a5[_0x38194c(0x15de)]=function(_0x49b32a){const _0x531b2d=_0x38194c,_0x5dd7a1=_0x49b32a[_0x531b2d(0x12ab)],_0x2d2251=_0x531b2d(0x1d3d),_0x3c1dc1=_0x2c76b8([_0x49b32a[_0x531b2d(0x4d7)],_0x49b32a[_0x531b2d(0x1bbc)],_0x49b32a[_0x531b2d(0x274a)](_0x531b2d(0x182a),'\x5c*/',{'relevance':0x0,'contains':[{'begin':/\w+@/,'relevance':0x0},{'className':_0x531b2d(0x3d82),'begin':'@[A-Za-z]+'}]})]),_0x22af0a={'className':_0x531b2d(0x27ae),'begin':/~?\/[^\/\n]+\//,'contains':[_0x49b32a[_0x531b2d(0x421a)]]},_0x12b2cc=_0x2c76b8([_0x49b32a['BINARY_NUMBER_MODE'],_0x49b32a[_0x531b2d(0x3d6a)]]),_0x1e2490=_0x2c76b8([{'begin':/"""/,'end':/"""/},{'begin':/'''/,'end':/'''/},{'begin':_0x531b2d(0x4684),'end':'/\x5c$','relevance':0xa},_0x49b32a[_0x531b2d(0x36ec)],_0x49b32a[_0x531b2d(0x3c93)]],{'className':_0x531b2d(0x4f7c)}),_0x38f066={'match':[/(class|interface|trait|enum|record|extends|implements)/,/\s+/,_0x49b32a[_0x531b2d(0x2691)]],'scope':{0x1:_0x531b2d(0x2448),0x3:_0x531b2d(0xc2f)}};return{'name':_0x531b2d(0x11c5),'keywords':{'variable.language':_0x531b2d(0x1000),'literal':_0x531b2d(0x25e2),'type':['byte',_0x531b2d(0x4fd3),_0x531b2d(0x4743),_0x531b2d(0x269f),_0x531b2d(0x3c8d),'boolean',_0x531b2d(0x3ff6),_0x531b2d(0x1038),_0x531b2d(0x4004)],'keyword':[_0x531b2d(0x2dee),'as','in','assert',_0x531b2d(0x2032),_0x531b2d(0x3ba4),_0x531b2d(0x2308),_0x531b2d(0x2dab),_0x531b2d(0x1f50),_0x531b2d(0x1397),_0x531b2d(0x276d),_0x531b2d(0x2638),_0x531b2d(0x3c07),_0x531b2d(0xac4),_0x531b2d(0x42ec),'interface',_0x531b2d(0x4afd),'if',_0x531b2d(0x36f0),'for',_0x531b2d(0x217b),_0x531b2d(0x68),'case','break',_0x531b2d(0x2fab),_0x531b2d(0x495f),_0x531b2d(0x2b8d),_0x531b2d(0x4c65),'try',_0x531b2d(0x424a),_0x531b2d(0x292f),_0x531b2d(0xc32),_0x531b2d(0x5048),'new','import',_0x531b2d(0x4574),_0x531b2d(0xf06),_0x531b2d(0x39fe),_0x531b2d(0x3c21)]},'contains':[_0x49b32a[_0x531b2d(0x5e9)]({'binary':_0x531b2d(0x4699),'relevance':0xa}),_0x3c1dc1,_0x1e2490,_0x22af0a,_0x12b2cc,_0x38f066,{'className':'meta','begin':_0x531b2d(0x144f),'relevance':0x0},{'className':_0x531b2d(0x1875),'begin':_0x2d2251+_0x531b2d(0x39b1),'relevance':0x0},{'begin':/\?/,'end':/:/,'relevance':0x0,'contains':[_0x3c1dc1,_0x1e2490,_0x22af0a,_0x12b2cc,_0x531b2d(0x1001)]},{'className':_0x531b2d(0x3148),'begin':_0x531b2d(0x46b)+_0x5dd7a1[_0x531b2d(0x2901)](_0x2d2251+':'),'excludeBegin':!0x0,'end':_0x2d2251+':','relevance':0x0}],'illegal':/#|<\//};};},0x11a5:_0x55eb80=>{_0x55eb80['exports']=function(_0x51238){const _0xf4e657=a0_0x329b;return{'name':_0xf4e657(0x1d91),'case_insensitive':!0x0,'contains':[{'className':_0xf4e657(0x482),'begin':_0xf4e657(0x18c5),'relevance':0xa},_0x51238[_0xf4e657(0x274a)]('^\x5cs*(!=#|=#|-#|/).*$',null,{'relevance':0x0}),{'begin':_0xf4e657(0x4cef),'end':/$/,'subLanguage':_0xf4e657(0x1dc6),'excludeBegin':!0x0,'excludeEnd':!0x0},{'className':_0xf4e657(0x17a2),'begin':'^\x5cs*%','contains':[{'className':'selector-tag','begin':_0xf4e657(0x3bd6)},{'className':_0xf4e657(0x434c),'begin':_0xf4e657(0x440c)},{'className':_0xf4e657(0x259),'begin':'\x5c.[\x5cw-]+'},{'begin':/\{\s*/,'end':/\s*\}/,'contains':[{'begin':_0xf4e657(0x2458),'end':_0xf4e657(0x1775),'returnBegin':!0x0,'endsWithParent':!0x0,'contains':[{'className':'attr','begin':':\x5cw+'},_0x51238[_0xf4e657(0x36ec)],_0x51238[_0xf4e657(0x3c93)],{'begin':_0xf4e657(0x3bd6),'relevance':0x0}]}]},{'begin':_0xf4e657(0x24af),'end':_0xf4e657(0x1cc6),'excludeEnd':!0x0,'contains':[{'begin':'\x5cw+\x5cs*=','end':_0xf4e657(0x8a0),'returnBegin':!0x0,'endsWithParent':!0x0,'contains':[{'className':_0xf4e657(0x1875),'begin':_0xf4e657(0x3bd6),'relevance':0x0},_0x51238[_0xf4e657(0x36ec)],_0x51238[_0xf4e657(0x3c93)],{'begin':'\x5cw+','relevance':0x0}]}]}]},{'begin':_0xf4e657(0x3b58)},{'begin':/#\{/,'end':/\}/,'subLanguage':_0xf4e657(0x1dc6),'excludeBegin':!0x0,'excludeEnd':!0x0}]};};},0xc73:_0x51444d=>{const _0x243141=a0_0x329b;_0x51444d[_0x243141(0x15de)]=function(_0x9135d2){const _0x499639=_0x243141,_0xef72bd=_0x9135d2[_0x499639(0x12ab)],_0x2ffc7e={'$pattern':/[\w.\/]+/,'built_in':[_0x499639(0x1a0d),_0x499639(0x4247),'collection',_0x499639(0x37e),_0x499639(0x41bf),_0x499639(0x7d0),_0x499639(0x21c8),_0x499639(0x2934),_0x499639(0x2685),_0x499639(0x37e1),'if','in','input','link-to',_0x499639(0x709),_0x499639(0x11bf),_0x499639(0x4bad),_0x499639(0x14a3),_0x499639(0x169f),_0x499639(0x7d5),_0x499639(0x3723),_0x499639(0x4662),_0x499639(0x2db6),'textarea',_0x499639(0x4499),_0x499639(0x4f02),_0x499639(0x21af),_0x499639(0xa48),_0x499639(0x25d6)]},_0x374bd1=/\[\]|\[[^\]]+\]/,_0x108d53=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,_0x1310c0=_0xef72bd[_0x499639(0x467b)](/""|"[^"]+"/,/''|'[^']+'/,_0x374bd1,_0x108d53),_0xe01db9=_0xef72bd[_0x499639(0x41bf)](_0xef72bd[_0x499639(0x180e)](/\.|\.\/|\//),_0x1310c0,_0xef72bd[_0x499639(0x481c)](_0xef72bd[_0x499639(0x41bf)](/(\.|\/)/,_0x1310c0))),_0x190abb=_0xef72bd[_0x499639(0x41bf)]('(',_0x374bd1,'|',_0x108d53,_0x499639(0x11d4)),_0x1c8156={'begin':_0xe01db9},_0x33375c=_0x9135d2[_0x499639(0x4f2)](_0x1c8156,{'keywords':{'$pattern':/[\w.\/]+/,'literal':[_0x499639(0x23f6),_0x499639(0x3561),_0x499639(0x2c3),_0x499639(0x15f0)]}}),_0x592847={'begin':/\(/,'end':/\)/},_0x32df5d={'className':_0x499639(0x1875),'begin':_0x190abb,'relevance':0x0,'starts':{'begin':/=/,'end':/=/,'starts':{'contains':[_0x9135d2[_0x499639(0x1f70)],_0x9135d2[_0x499639(0x3c93)],_0x9135d2[_0x499639(0x36ec)],_0x33375c,_0x592847]}}},_0x11ea57={'contains':[_0x9135d2['NUMBER_MODE'],_0x9135d2[_0x499639(0x3c93)],_0x9135d2['APOS_STRING_MODE'],{'begin':/as\s+\|/,'keywords':{'keyword':'as'},'end':/\|/,'contains':[{'begin':/\w+/}]},_0x32df5d,_0x33375c,_0x592847],'returnEnd':!0x0},_0x548d99=_0x9135d2['inherit'](_0x1c8156,{'className':_0x499639(0x3d9d),'keywords':_0x2ffc7e,'starts':_0x9135d2[_0x499639(0x4f2)](_0x11ea57,{'end':/\)/})});_0x592847[_0x499639(0x160d)]=[_0x548d99];const _0x3130c9=_0x9135d2[_0x499639(0x4f2)](_0x1c8156,{'keywords':_0x2ffc7e,'className':_0x499639(0x3d9d),'starts':_0x9135d2[_0x499639(0x4f2)](_0x11ea57,{'end':/\}\}/})}),_0x338138=_0x9135d2[_0x499639(0x4f2)](_0x1c8156,{'keywords':_0x2ffc7e,'className':'name'}),_0x3c1b1c=_0x9135d2[_0x499639(0x4f2)](_0x1c8156,{'className':_0x499639(0x3d9d),'keywords':_0x2ffc7e,'starts':_0x9135d2[_0x499639(0x4f2)](_0x11ea57,{'end':/\}\}/})});return{'name':_0x499639(0x429e),'aliases':[_0x499639(0x2195),_0x499639(0xdca),_0x499639(0x161c),_0x499639(0x258b)],'case_insensitive':!0x0,'subLanguage':'xml','contains':[{'begin':/\\\{\{/,'skip':!0x0},{'begin':/\\\\(?=\{\{)/,'skip':!0x0},_0x9135d2[_0x499639(0x274a)](/\{\{!--/,/--\}\}/),_0x9135d2[_0x499639(0x274a)](/\{\{!/,/\}\}/),{'className':_0x499639(0x29da),'begin':/\{\{\{\{(?!\/)/,'end':/\}\}\}\}/,'contains':[_0x3130c9],'starts':{'end':/\{\{\{\{\//,'returnEnd':!0x0,'subLanguage':_0x499639(0x2742)}},{'className':_0x499639(0x29da),'begin':/\{\{\{\{\//,'end':/\}\}\}\}/,'contains':[_0x338138]},{'className':_0x499639(0x29da),'begin':/\{\{#/,'end':/\}\}/,'contains':[_0x3130c9]},{'className':'template-tag','begin':/\{\{(?=else\}\})/,'end':/\}\}/,'keywords':_0x499639(0x36f0)},{'className':_0x499639(0x29da),'begin':/\{\{(?=else if)/,'end':/\}\}/,'keywords':_0x499639(0x39a)},{'className':_0x499639(0x29da),'begin':/\{\{\//,'end':/\}\}/,'contains':[_0x338138]},{'className':_0x499639(0x169d),'begin':/\{\{\{/,'end':/\}\}\}/,'contains':[_0x3c1b1c]},{'className':_0x499639(0x169d),'begin':/\{\{/,'end':/\}\}/,'contains':[_0x3c1b1c]}]};};},0x17b:_0x59b620=>{const _0x465889=a0_0x329b;_0x59b620[_0x465889(0x15de)]=function(_0x5e3f58){const _0x56aad6=_0x465889,_0x351063='([0-9]_*)+',_0x4156bc='([0-9a-fA-F]_*)+',_0x53edfb=_0x56aad6(0x1ac6),_0x177297={'variants':[_0x5e3f58[_0x56aad6(0x274a)]('--+','$'),_0x5e3f58[_0x56aad6(0x274a)](/\{-/,/-\}/,{'contains':[_0x56aad6(0x1001)]})]},_0x4b630b={'className':_0x56aad6(0x482),'begin':/\{-#/,'end':/#-\}/},_0x38fbd5={'className':_0x56aad6(0x482),'begin':'^#','end':'$'},_0x411985={'className':'type','begin':'\x5cb[A-Z][\x5cw\x27]*','relevance':0x0},_0x2a76a4={'begin':'\x5c(','end':'\x5c)','illegal':'\x22','contains':[_0x4b630b,_0x38fbd5,{'className':_0x56aad6(0x70a),'begin':'\x5cb[A-Z][\x5cw]*(\x5c((\x5c.\x5c.|,|\x5cw+)\x5c))?'},_0x5e3f58[_0x56aad6(0x4f2)](_0x5e3f58[_0x56aad6(0x38c3)],{'begin':_0x56aad6(0x395f)}),_0x177297]},_0x385c93={'className':_0x56aad6(0x1ed7),'relevance':0x0,'variants':[{'match':_0x56aad6(0x3648)+_0x351063+_0x56aad6(0x4c02)+_0x351063+_0x56aad6(0x2aa2)+_0x351063+'))?\x5cb'},{'match':'\x5cb0[xX]_*('+_0x4156bc+_0x56aad6(0x4c02)+_0x4156bc+'))?([pP][+-]?('+_0x351063+'))?\x5cb'},{'match':_0x56aad6(0x2051)},{'match':_0x56aad6(0x224e)}]};return{'name':_0x56aad6(0x3a9c),'aliases':['hs'],'keywords':_0x56aad6(0x2075),'unicodeRegex':!0x0,'contains':[{'beginKeywords':_0x56aad6(0x2d36),'end':_0x56aad6(0x43c),'keywords':_0x56aad6(0x4cda),'contains':[_0x2a76a4,_0x177297],'illegal':_0x56aad6(0xedb)},{'begin':'\x5cbimport\x5cb','end':'$','keywords':_0x56aad6(0x2e3b),'contains':[_0x2a76a4,_0x177297],'illegal':'\x5cW\x5c.|;'},{'className':_0x56aad6(0x42ec),'begin':_0x56aad6(0x282d),'end':'where','keywords':'class\x20family\x20instance\x20where','contains':[_0x411985,_0x2a76a4,_0x177297]},{'className':_0x56aad6(0x42ec),'begin':_0x56aad6(0x1b16),'end':'$','keywords':_0x56aad6(0x28a2),'contains':[_0x4b630b,_0x411985,_0x2a76a4,{'begin':/\{/,'end':/\}/,'contains':_0x2a76a4['contains']},_0x177297]},{'beginKeywords':'default','end':'$','contains':[_0x411985,_0x2a76a4,_0x177297]},{'beginKeywords':_0x56aad6(0x3fba),'end':'$','contains':[_0x5e3f58[_0x56aad6(0x3d6a)],_0x177297]},{'begin':_0x56aad6(0x16ca),'end':'$','keywords':_0x56aad6(0x2dd3),'contains':[_0x411985,_0x5e3f58[_0x56aad6(0x3c93)],_0x177297]},{'className':_0x56aad6(0x482),'begin':_0x56aad6(0x32c0),'end':'$'},_0x4b630b,_0x38fbd5,{'scope':'string','begin':/'(?=\\?.')/,'end':/'/,'contains':[{'scope':_0x56aad6(0x2962),'match':/\\./}]},_0x5e3f58[_0x56aad6(0x3c93)],_0x385c93,_0x411985,_0x5e3f58[_0x56aad6(0x4f2)](_0x5e3f58[_0x56aad6(0x38c3)],{'begin':'^[_a-z][\x5cw\x27]*'}),{'begin':_0x56aad6(0x3dc7)+_0x53edfb+_0x56aad6(0x3cbe)+_0x53edfb},_0x177297,{'begin':_0x56aad6(0x510c)}]};};},0x102b:_0xc4e41f=>{_0xc4e41f['exports']=function(_0x40de2c){const _0x5e7fe1=a0_0x329b;return{'name':_0x5e7fe1(0x346d),'aliases':['hx'],'keywords':{'keyword':'abstract\x20break\x20case\x20cast\x20catch\x20continue\x20default\x20do\x20dynamic\x20else\x20enum\x20extern\x20final\x20for\x20function\x20here\x20if\x20import\x20in\x20inline\x20is\x20macro\x20never\x20new\x20override\x20package\x20private\x20get\x20set\x20public\x20return\x20static\x20super\x20switch\x20this\x20throw\x20trace\x20try\x20typedef\x20untyped\x20using\x20var\x20while\x20Int\x20Float\x20String\x20Bool\x20Dynamic\x20Void\x20Array\x20','built_in':_0x5e7fe1(0x18e1),'literal':_0x5e7fe1(0x1a67)},'contains':[{'className':_0x5e7fe1(0x4f7c),'begin':'\x27','end':'\x27','contains':[_0x40de2c[_0x5e7fe1(0x421a)],{'className':_0x5e7fe1(0xfeb),'begin':/\$\{/,'end':/\}/},{'className':'subst','begin':/\$/,'end':/\W\}/}]},_0x40de2c[_0x5e7fe1(0x3c93)],_0x40de2c['C_LINE_COMMENT_MODE'],_0x40de2c[_0x5e7fe1(0x1bbc)],{'className':_0x5e7fe1(0x1ed7),'begin':/(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/,'relevance':0x0},{'className':_0x5e7fe1(0x4b3a),'begin':_0x5e7fe1(0x1586)},{'className':'meta','begin':/@:?/,'end':/\(|$/,'excludeEnd':!0x0},{'className':_0x5e7fe1(0x482),'begin':'#','end':'$','keywords':{'keyword':_0x5e7fe1(0x2038)}},{'className':'type','begin':/:[ \t]*/,'end':/[^A-Za-z0-9_ \t\->]/,'excludeBegin':!0x0,'excludeEnd':!0x0,'relevance':0x0},{'className':_0x5e7fe1(0x70a),'begin':/:[ \t]*/,'end':/\W/,'excludeBegin':!0x0,'excludeEnd':!0x0},{'className':_0x5e7fe1(0x70a),'begin':/new */,'end':/\W/,'excludeBegin':!0x0,'excludeEnd':!0x0},{'className':_0x5e7fe1(0xc2f),'beginKeywords':_0x5e7fe1(0x4afd),'end':/\{/,'contains':[_0x40de2c[_0x5e7fe1(0x38c3)]]},{'className':_0x5e7fe1(0xc2f),'begin':_0x5e7fe1(0x1130)+_0x40de2c[_0x5e7fe1(0x2cb)]+_0x5e7fe1(0x4ca6),'end':/[\{$]/,'contains':[{'className':_0x5e7fe1(0x70a),'begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0},{'className':_0x5e7fe1(0x70a),'begin':/from +/,'end':/\W/,'excludeBegin':!0x0,'excludeEnd':!0x0},{'className':_0x5e7fe1(0x70a),'begin':/to +/,'end':/\W/,'excludeBegin':!0x0,'excludeEnd':!0x0},_0x40de2c['TITLE_MODE']],'keywords':{'keyword':_0x5e7fe1(0x3d5d)}},{'className':_0x5e7fe1(0xc2f),'begin':/\b(class|interface) +/,'end':/[\{$]/,'excludeEnd':!0x0,'keywords':_0x5e7fe1(0x40cd),'contains':[{'className':_0x5e7fe1(0x2448),'begin':/\b(extends|implements) +/,'keywords':_0x5e7fe1(0xf91),'contains':[{'className':_0x5e7fe1(0x70a),'begin':_0x40de2c[_0x5e7fe1(0x2cb)],'relevance':0x0}]},_0x40de2c[_0x5e7fe1(0x38c3)]]},{'className':_0x5e7fe1(0x326a),'beginKeywords':_0x5e7fe1(0x3dfb),'end':/\(/,'excludeEnd':!0x0,'illegal':/\S/,'contains':[_0x40de2c['TITLE_MODE']]}],'illegal':/<\//};};},0xfa8:_0x372dec=>{_0x372dec['exports']=function(_0x16e70e){const _0x23e82c=a0_0x329b;return{'name':_0x23e82c(0x234),'case_insensitive':!0x0,'keywords':{'$pattern':/[\w._]+/,'keyword':_0x23e82c(0x3ea9)},'contains':[_0x16e70e['C_LINE_COMMENT_MODE'],_0x16e70e['C_BLOCK_COMMENT_MODE'],_0x16e70e[_0x23e82c(0x3c93)],_0x16e70e[_0x23e82c(0x36ec)],{'className':_0x23e82c(0x4f7c),'begin':/\{"/,'end':/"\}/,'contains':[_0x16e70e[_0x23e82c(0x421a)]]},_0x16e70e[_0x23e82c(0x274a)](';','$',{'relevance':0x0}),{'className':_0x23e82c(0x482),'begin':'#','end':'$','keywords':{'keyword':'addion\x20cfunc\x20cmd\x20cmpopt\x20comfunc\x20const\x20defcfunc\x20deffunc\x20define\x20else\x20endif\x20enum\x20epack\x20func\x20global\x20if\x20ifdef\x20ifndef\x20include\x20modcfunc\x20modfunc\x20modinit\x20modterm\x20module\x20pack\x20packopt\x20regcmd\x20runtime\x20undef\x20usecom\x20uselib'},'contains':[_0x16e70e[_0x23e82c(0x4f2)](_0x16e70e[_0x23e82c(0x3c93)],{'className':'string'}),_0x16e70e[_0x23e82c(0x1f70)],_0x16e70e[_0x23e82c(0x3d6a)],_0x16e70e['C_LINE_COMMENT_MODE'],_0x16e70e['C_BLOCK_COMMENT_MODE']]},{'className':'symbol','begin':_0x23e82c(0x3d2a)},_0x16e70e[_0x23e82c(0x1f70)],_0x16e70e['C_NUMBER_MODE']]};};},0xd37:_0xf030d1=>{const _0x4f1966=a0_0x329b;_0xf030d1[_0x4f1966(0x15de)]=function(_0x3f5793){const _0x8c1be4=_0x4f1966,_0x57c6b2=_0x8c1be4(0x1a8f),_0x2e2e40={'className':'attribute','begin':_0x3f5793[_0x8c1be4(0x12ab)][_0x8c1be4(0x41bf)]('^',/[A-Za-z][A-Za-z0-9-]*/,_0x8c1be4(0x6f0)),'starts':{'contains':[{'className':'punctuation','begin':/: /,'relevance':0x0,'starts':{'end':'$','relevance':0x0}}]}},_0x325d92=[_0x2e2e40,{'begin':'\x5cn\x5cn','starts':{'subLanguage':[],'endsWithParent':!0x0}}];return{'name':'HTTP','aliases':[_0x8c1be4(0x2841)],'illegal':/\S/,'contains':[{'begin':_0x8c1be4(0x53a)+_0x57c6b2+'\x20\x5cd{3})','end':/$/,'contains':[{'className':_0x8c1be4(0x482),'begin':_0x57c6b2},{'className':'number','begin':'\x5cb\x5cd{3}\x5cb'}],'starts':{'end':/\b\B/,'illegal':/\S/,'contains':_0x325d92}},{'begin':'(?=^[A-Z]+\x20(.*?)\x20'+_0x57c6b2+'$)','end':/$/,'contains':[{'className':'string','begin':'\x20','end':'\x20','excludeBegin':!0x0,'excludeEnd':!0x0},{'className':'meta','begin':_0x57c6b2},{'className':'keyword','begin':'[A-Z]+'}],'starts':{'end':/\b\B/,'illegal':/\S/,'contains':_0x325d92}},_0x3f5793['inherit'](_0x2e2e40,{'relevance':0x0})]};};},0x1250:_0x44bcb2=>{_0x44bcb2['exports']=function(_0x22c3eb){const _0x34e172=a0_0x329b,_0x37d00d=_0x34e172(0x1a87),_0x2caf91='['+_0x37d00d+']['+_0x37d00d+_0x34e172(0x3a22),_0x171093={'$pattern':_0x2caf91,'built_in':_0x34e172(0x4af7)},_0x50fd82={'begin':_0x2caf91,'relevance':0x0},_0x1c1f0f={'className':'number','begin':_0x34e172(0xa12),'relevance':0x0},_0xa498c9=_0x22c3eb['inherit'](_0x22c3eb[_0x34e172(0x3c93)],{'illegal':null}),_0x3f6cff=_0x22c3eb[_0x34e172(0x274a)](';','$',{'relevance':0x0}),_0x69582e={'className':_0x34e172(0x14b),'begin':/\b([Tt]rue|[Ff]alse|nil|None)\b/},_0x5f3254={'begin':'[\x5c[\x5c{]','end':_0x34e172(0x998),'relevance':0x0},_0x1c1beb={'className':_0x34e172(0x43ca),'begin':'\x5c^'+_0x2caf91},_0x3dc35c=_0x22c3eb[_0x34e172(0x274a)](_0x34e172(0x2040),'\x5c}'),_0xb717f5={'className':_0x34e172(0x3148),'begin':_0x34e172(0x21e5)+_0x2caf91},_0x50261b={'begin':'\x5c(','end':'\x5c)'},_0x3ef947={'endsWithParent':!0x0,'relevance':0x0},_0x201edf={'className':_0x34e172(0x3d9d),'relevance':0x0,'keywords':_0x171093,'begin':_0x2caf91,'starts':_0x3ef947},_0x4c7dbb=[_0x50261b,_0xa498c9,_0x1c1beb,_0x3dc35c,_0x3f6cff,_0xb717f5,_0x5f3254,_0x1c1f0f,_0x69582e,_0x50fd82];return _0x50261b['contains']=[_0x22c3eb[_0x34e172(0x274a)]('comment',''),_0x201edf,_0x3ef947],_0x3ef947[_0x34e172(0x160d)]=_0x4c7dbb,_0x5f3254[_0x34e172(0x160d)]=_0x4c7dbb,{'name':'Hy','aliases':[_0x34e172(0x242)],'illegal':/\S/,'contains':[_0x22c3eb[_0x34e172(0x5e9)](),_0x50261b,_0xa498c9,_0x1c1beb,_0x3dc35c,_0x3f6cff,_0xb717f5,_0x5f3254,_0x1c1f0f,_0x69582e]};};},0x1b39:_0x325ab2=>{_0x325ab2['exports']=function(_0x16ed8f){const _0x4f45a6=a0_0x329b;return{'name':_0x4f45a6(0x3949),'aliases':['i7'],'case_insensitive':!0x0,'keywords':{'keyword':_0x4f45a6(0x18aa)},'contains':[{'className':_0x4f45a6(0x4f7c),'begin':'\x22','end':'\x22','relevance':0x0,'contains':[{'className':_0x4f45a6(0xfeb),'begin':'\x5c[','end':'\x5c]'}]},{'className':_0x4f45a6(0x386b),'begin':/^(Volume|Book|Part|Chapter|Section|Table)\b/,'end':'$'},{'begin':/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,'end':':','contains':[{'begin':_0x4f45a6(0x4c0e),'end':'\x5c)'}]},{'className':_0x4f45a6(0x43ca),'begin':'\x5c[','end':'\x5c]','contains':[_0x4f45a6(0x1001)]}]};};},0x5fd:_0x2f8928=>{const _0x51b772=a0_0x329b;_0x2f8928[_0x51b772(0x15de)]=function(_0x150e5c){const _0x349312=_0x51b772,_0x18aee4=_0x150e5c[_0x349312(0x12ab)],_0x1f9372={'className':_0x349312(0x1ed7),'relevance':0x0,'variants':[{'begin':/([+-]+)?[\d]+_[\d_]+/},{'begin':_0x150e5c['NUMBER_RE']}]},_0x8b0172=_0x150e5c[_0x349312(0x274a)]();_0x8b0172['variants']=[{'begin':/;/,'end':/$/},{'begin':/#/,'end':/$/}];const _0x5ee844={'className':'variable','variants':[{'begin':/\$[\w\d"][\w\d_]*/},{'begin':/\$\{(.*?)\}/}]},_0x553f22={'className':_0x349312(0x14b),'begin':/\bon|off|true|false|yes|no\b/},_0x1ce490={'className':_0x349312(0x4f7c),'contains':[_0x150e5c[_0x349312(0x421a)]],'variants':[{'begin':_0x349312(0x36fe),'end':_0x349312(0x36fe),'relevance':0xa},{'begin':_0x349312(0x3a07),'end':'\x22\x22\x22','relevance':0xa},{'begin':'\x22','end':'\x22'},{'begin':'\x27','end':'\x27'}]},_0x3735a3={'begin':/\[/,'end':/\]/,'contains':[_0x8b0172,_0x553f22,_0x5ee844,_0x1ce490,_0x1f9372,_0x349312(0x1001)],'relevance':0x0},_0xb9b05f=_0x18aee4['either'](/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{'name':_0x349312(0x4e20),'aliases':[_0x349312(0x1520)],'case_insensitive':!0x0,'illegal':/\S/,'contains':[_0x8b0172,{'className':'section','begin':/\[+/,'end':/\]+/},{'begin':_0x18aee4[_0x349312(0x41bf)](_0xb9b05f,'(\x5cs*\x5c.\x5cs*',_0xb9b05f,')*',_0x18aee4[_0x349312(0x2901)](/\s*=\s*[^#\s]/)),'className':_0x349312(0x1875),'starts':{'end':/$/,'contains':[_0x8b0172,_0x3735a3,_0x553f22,_0x5ee844,_0x1ce490,_0x1f9372]}}]};};},0x1193:_0x2bc479=>{const _0x3672bd=a0_0x329b;_0x2bc479[_0x3672bd(0x15de)]=function(_0x3b3f6e){const _0x1b79d6=_0x3672bd,_0x374156=_0x3b3f6e['regex'],_0x3c8f99=/(_[a-z_\d]+)?/,_0x191d40=/([de][+-]?\d+)?/,_0x43de4b={'className':_0x1b79d6(0x1ed7),'variants':[{'begin':_0x374156[_0x1b79d6(0x41bf)](/\b\d+/,/\.(\d*)/,_0x191d40,_0x3c8f99)},{'begin':_0x374156[_0x1b79d6(0x41bf)](/\b\d+/,_0x191d40,_0x3c8f99)},{'begin':_0x374156[_0x1b79d6(0x41bf)](/\.\d+/,_0x191d40,_0x3c8f99)}],'relevance':0x0};return{'name':_0x1b79d6(0xe76),'case_insensitive':!0x0,'keywords':{'literal':_0x1b79d6(0x4437),'keyword':_0x1b79d6(0xa87),'built_in':_0x1b79d6(0x74)},'illegal':/\/\*/,'contains':[_0x3b3f6e[_0x1b79d6(0x4f2)](_0x3b3f6e[_0x1b79d6(0x36ec)],{'className':_0x1b79d6(0x4f7c),'relevance':0x0}),_0x3b3f6e[_0x1b79d6(0x4f2)](_0x3b3f6e[_0x1b79d6(0x3c93)],{'className':_0x1b79d6(0x4f7c),'relevance':0x0}),{'className':'function','beginKeywords':_0x1b79d6(0x3275),'illegal':'[${=\x5cn]','contains':[_0x3b3f6e['UNDERSCORE_TITLE_MODE'],{'className':_0x1b79d6(0x4f24),'begin':'\x5c(','end':'\x5c)'}]},_0x3b3f6e[_0x1b79d6(0x274a)]('!','$',{'relevance':0x0}),_0x3b3f6e[_0x1b79d6(0x274a)]('begin_doc',_0x1b79d6(0x1e29),{'relevance':0xa}),_0x43de4b]};};},0x1621:_0x772bd1=>{const _0x23781a=a0_0x329b;_0x772bd1[_0x23781a(0x15de)]=function(_0x2da31e){const _0x4c7b12=_0x23781a,_0x56e859=_0x4c7b12(0x5029),_0x10f88b={'className':_0x4c7b12(0x1ed7),'begin':_0x2da31e[_0x4c7b12(0x2d71)],'relevance':0x0},_0x3f0313={'className':_0x4c7b12(0x4f7c),'variants':[{'begin':'\x22','end':'\x22'},{'begin':'\x27','end':'\x27'}]},_0xf75af4={'className':_0x4c7b12(0x3d82),'begin':_0x4c7b12(0x44ab),'relevance':0x0},_0x3c2164={'variants':[{'className':_0x4c7b12(0x43ca),'begin':'//','end':'$','relevance':0x0,'contains':[_0x2da31e[_0x4c7b12(0x3f7e)],_0xf75af4]},{'className':_0x4c7b12(0x43ca),'begin':'/\x5c*','end':_0x4c7b12(0x507f),'relevance':0x0,'contains':[_0x2da31e[_0x4c7b12(0x3f7e)],_0xf75af4]}]},_0x54a27f={'$pattern':_0x56e859,'keyword':'and\x20и\x20else\x20иначе\x20endexcept\x20endfinally\x20endforeach\x20конецвсе\x20endif\x20конецесли\x20endwhile\x20конецпока\x20except\x20exitfor\x20finally\x20foreach\x20все\x20if\x20если\x20in\x20в\x20not\x20не\x20or\x20или\x20try\x20while\x20пока\x20','built_in':_0x4c7b12(0xce9),'class':_0x4c7b12(0xafd),'literal':_0x4c7b12(0x1482)},_0x36dacf={'begin':_0x4c7b12(0x28bd)+_0x2da31e[_0x4c7b12(0x2691)],'keywords':_0x54a27f,'relevance':0x0},_0x38fc7b={'className':_0x4c7b12(0x70a),'begin':':[\x20\x5ct]*('+_0x4c7b12(0x3eb6)[_0x4c7b12(0x1d0e)]()[_0x4c7b12(0x1db7)](/\s/g,'|')+')','end':_0x4c7b12(0x6cc),'excludeEnd':!0x0},_0x2d6e92={'className':'variable','keywords':_0x54a27f,'begin':_0x56e859,'relevance':0x0,'contains':[_0x38fc7b,_0x36dacf]},_0x2c3cf8='[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*\x5c(';return{'name':_0x4c7b12(0x108),'case_insensitive':!0x0,'keywords':_0x54a27f,'illegal':'\x5c$|\x5c?|%|,|;$|~|#|@|{const _0x54c49a=a0_0x329b;var _0x1623cd='[0-9](_*[0-9])*',_0x2e9df9=_0x54c49a(0x3ebc)+_0x1623cd+')',_0x3bae82=_0x54c49a(0x4b66),_0x545abf={'className':_0x54c49a(0x1ed7),'variants':[{'begin':_0x54c49a(0x15fa)+_0x1623cd+_0x54c49a(0x1443)+_0x2e9df9+')|\x5c.)?|('+_0x2e9df9+'))[eE][+-]?('+_0x1623cd+_0x54c49a(0x3a8a)},{'begin':_0x54c49a(0x3648)+_0x1623cd+_0x54c49a(0x1443)+_0x2e9df9+')[fFdD]?\x5cb|\x5c.([fFdD]\x5cb)?)'},{'begin':'('+_0x2e9df9+')[fFdD]?\x5cb'},{'begin':_0x54c49a(0x3648)+_0x1623cd+')[fFdD]\x5cb'},{'begin':'\x5cb0[xX](('+_0x3bae82+_0x54c49a(0x4506)+_0x3bae82+')?\x5c.('+_0x3bae82+_0x54c49a(0x3ca3)+_0x1623cd+')[fFdD]?\x5cb'},{'begin':'\x5cb(0|[1-9](_*[0-9])*)[lL]?\x5cb'},{'begin':_0x54c49a(0x170d)+_0x3bae82+_0x54c49a(0x9f)},{'begin':_0x54c49a(0x2c47)},{'begin':_0x54c49a(0x3d78)}],'relevance':0x0};function _0x417757(_0x34807f,_0x86d075,_0x5c9ae9){const _0x5f574b=_0x54c49a;return-0x1===_0x5c9ae9?'':_0x34807f[_0x5f574b(0x1db7)](_0x86d075,_0x15c3da=>_0x417757(_0x34807f,_0x86d075,_0x5c9ae9-0x1));}_0x52093e[_0x54c49a(0x15de)]=function(_0x41de29){const _0x28787a=_0x54c49a,_0x1fa47e=_0x41de29['regex'],_0x19604c=_0x28787a(0x450d),_0xc90908=_0x19604c+_0x417757(_0x28787a(0x4115)+_0x19604c+_0x28787a(0x49d8)+_0x19604c+'~~~)*>)?',/~~~/g,0x2),_0x1a897a={'keyword':['synchronized',_0x28787a(0x3ba4),_0x28787a(0x276d),_0x28787a(0x3c21),_0x28787a(0x2308),'if',_0x28787a(0xde2),'for',_0x28787a(0x217b),'strictfp',_0x28787a(0x292f),'protected',_0x28787a(0x2c76),_0x28787a(0x4341),_0x28787a(0xac4),_0x28787a(0x4004),'enum',_0x28787a(0x36f0),'break',_0x28787a(0x1f50),_0x28787a(0x424a),_0x28787a(0x39fe),_0x28787a(0x2dab),'case',_0x28787a(0x79e),_0x28787a(0x4574),_0x28787a(0x2fab),_0x28787a(0x1397),_0x28787a(0x47b4),_0x28787a(0x68),_0x28787a(0x495f),_0x28787a(0x4c65),_0x28787a(0x2638),_0x28787a(0x1397),_0x28787a(0x276d),_0x28787a(0x2d36),'requires','exports','do','sealed',_0x28787a(0x25d6),'permits'],'literal':[_0x28787a(0x3561),_0x28787a(0x23f6),_0x28787a(0x15f0)],'type':['char','boolean',_0x28787a(0x3c8d),_0x28787a(0x3ff6),_0x28787a(0x269f),'byte',_0x28787a(0x4fd3),'double'],'built_in':['super',_0x28787a(0x2d0d)]},_0x539c10={'className':_0x28787a(0x482),'begin':'@'+_0x19604c,'contains':[{'begin':/\(/,'end':/\)/,'contains':[_0x28787a(0x1001)]}]},_0x4df75e={'className':'params','begin':/\(/,'end':/\)/,'keywords':_0x1a897a,'relevance':0x0,'contains':[_0x41de29['C_BLOCK_COMMENT_MODE']],'endsParent':!0x0};return{'name':_0x28787a(0x4ac1),'aliases':['jsp'],'keywords':_0x1a897a,'illegal':/<\/|#/,'contains':[_0x41de29[_0x28787a(0x274a)]('/\x5c*\x5c*',_0x28787a(0x507f),{'relevance':0x0,'contains':[{'begin':/\w+@/,'relevance':0x0},{'className':_0x28787a(0x3d82),'begin':_0x28787a(0x144f)}]}),{'begin':/import java\.[a-z]+\./,'keywords':_0x28787a(0x2c76),'relevance':0x2},_0x41de29[_0x28787a(0x4d7)],_0x41de29[_0x28787a(0x1bbc)],{'begin':/"""/,'end':/"""/,'className':_0x28787a(0x4f7c),'contains':[_0x41de29[_0x28787a(0x421a)]]},_0x41de29['APOS_STRING_MODE'],_0x41de29[_0x28787a(0x3c93)],{'match':[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,_0x19604c],'className':{0x1:_0x28787a(0x2448),0x3:_0x28787a(0xc2f)}},{'match':/non-sealed/,'scope':_0x28787a(0x2448)},{'begin':[_0x1fa47e[_0x28787a(0x41bf)](/(?!else)/,_0x19604c),/\s+/,_0x19604c,/\s+/,/=(?!=)/],'className':{0x1:'type',0x3:_0x28787a(0x4b3a),0x5:'operator'}},{'begin':[/record/,/\s+/,_0x19604c],'className':{0x1:_0x28787a(0x2448),0x3:_0x28787a(0xc2f)},'contains':[_0x4df75e,_0x41de29['C_LINE_COMMENT_MODE'],_0x41de29[_0x28787a(0x1bbc)]]},{'beginKeywords':_0x28787a(0x19e7),'relevance':0x0},{'begin':['(?:'+_0xc90908+_0x28787a(0x38b6),_0x41de29['UNDERSCORE_IDENT_RE'],/\s*(?=\()/],'className':{0x2:_0x28787a(0x326a)},'keywords':_0x1a897a,'contains':[{'className':_0x28787a(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0x1a897a,'relevance':0x0,'contains':[_0x539c10,_0x41de29[_0x28787a(0x36ec)],_0x41de29[_0x28787a(0x3c93)],_0x545abf,_0x41de29[_0x28787a(0x1bbc)]]},_0x41de29[_0x28787a(0x4d7)],_0x41de29['C_BLOCK_COMMENT_MODE']]},_0x545abf,_0x539c10]};};},0x1793:_0x3e0c3b=>{const _0x479a05=a0_0x329b,_0x491743=_0x479a05(0x38e8),_0x541b3f=['as','in','of','if',_0x479a05(0x8f1),_0x479a05(0x217b),_0x479a05(0x292f),_0x479a05(0x3c21),_0x479a05(0x386e),_0x479a05(0x3dfb),'do',_0x479a05(0xf06),_0x479a05(0x4004),_0x479a05(0x36f0),_0x479a05(0x49c0),'catch',_0x479a05(0x39fe),_0x479a05(0xa48),_0x479a05(0x2b8d),'case',_0x479a05(0x2fab),_0x479a05(0x47b4),_0x479a05(0x68),'continue',_0x479a05(0x3445),'delete',_0x479a05(0x4647),_0x479a05(0x25d6),_0x479a05(0x27b),_0x479a05(0x42ec),_0x479a05(0x7d0),'async',_0x479a05(0x34ed),_0x479a05(0x2308),_0x479a05(0x2c76),'from',_0x479a05(0x5010),_0x479a05(0x5048)],_0x28b7ef=[_0x479a05(0x23f6),'false','null',_0x479a05(0x2c3),_0x479a05(0x46ea),_0x479a05(0x2b62)],_0x2a9f01=[_0x479a05(0x2503),'Function',_0x479a05(0x14e6),'Symbol',_0x479a05(0x135a),_0x479a05(0x3c98),'Number',_0x479a05(0x441f),_0x479a05(0x2f8c),_0x479a05(0x3057),'Array',_0x479a05(0x3829),_0x479a05(0x3d4),'Int8Array',_0x479a05(0x2b2d),_0x479a05(0x3df5),'Int16Array','Int32Array',_0x479a05(0xf8),_0x479a05(0xbf8),_0x479a05(0x34e2),'BigUint64Array','Set',_0x479a05(0x2ebc),_0x479a05(0x3489),'WeakMap','ArrayBuffer',_0x479a05(0x37ff),_0x479a05(0x3a4b),_0x479a05(0x79),'JSON',_0x479a05(0xee2),'Generator',_0x479a05(0x11f1),_0x479a05(0x9ee),'Reflect',_0x479a05(0x16f6),'Intl','WebAssembly'],_0x26a5d9=[_0x479a05(0x3e38),'EvalError',_0x479a05(0x80c),_0x479a05(0x4663),_0x479a05(0x21f8),_0x479a05(0x3e4e),_0x479a05(0x1c91),_0x479a05(0x2b93)],_0x381b22=['setInterval',_0x479a05(0x31d6),_0x479a05(0x4711),_0x479a05(0x3578),'require',_0x479a05(0x15de),_0x479a05(0xb3e),_0x479a05(0x4981),_0x479a05(0x384b),'parseFloat',_0x479a05(0xf2b),_0x479a05(0x1e37),_0x479a05(0xb99),_0x479a05(0x3097),_0x479a05(0x41fc),_0x479a05(0x2828),_0x479a05(0x2db)],_0x169215=[_0x479a05(0x1559),_0x479a05(0x2d0d),'super',_0x479a05(0xb50),_0x479a05(0x3837),_0x479a05(0x46d9),_0x479a05(0x712),_0x479a05(0x4053),_0x479a05(0x2d36),'global'],_0x36b715=[][_0x479a05(0x41bf)](_0x381b22,_0x2a9f01,_0x26a5d9);_0x3e0c3b[_0x479a05(0x15de)]=function(_0x1ada08){const _0x2f18ab=_0x479a05,_0x34d2ad=_0x1ada08[_0x2f18ab(0x12ab)],_0x40396c=_0x491743,_0x4007ca='<>',_0x298e10=_0x2f18ab(0x1401),_0x4208d9={'begin':/<[A-Za-z0-9\\._:-]+/,'end':/\/[A-Za-z0-9\\._:-]+>|\/>/,'isTrulyOpeningTag':(_0x2fd017,_0x2855ce)=>{const _0x5bdbb1=_0x2f18ab,_0x502533=_0x2fd017[0x0][_0x5bdbb1(0x205b)]+_0x2fd017[_0x5bdbb1(0x1cf3)],_0x3b9c18=_0x2fd017[_0x5bdbb1(0xe2d)][_0x502533];if('<'===_0x3b9c18||','===_0x3b9c18)return void _0x2855ce[_0x5bdbb1(0x240f)]();let _0x5ad6bf;'>'===_0x3b9c18&&(((_0x2292f1,{after:_0x235f4a})=>{const _0x421c7d='','contains':[{'className':'params','variants':[{'begin':_0x1ada08['UNDERSCORE_IDENT_RE'],'relevance':0x0},{'className':null,'begin':/\(\s*\)/,'skip':!0x0},{'begin':/\(/,'end':/\)/,'excludeBegin':!0x0,'excludeEnd':!0x0,'keywords':_0x2ce9a6,'contains':_0x3f9413}]}]},{'begin':/,/,'relevance':0x0},{'match':/\s+/,'relevance':0x0},{'variants':[{'begin':_0x4007ca,'end':_0x298e10},{'match':/<[A-Za-z0-9\\._:-]+\s*\/>/},{'begin':_0x4208d9['begin'],'on:begin':_0x4208d9['isTrulyOpeningTag'],'end':_0x4208d9[_0x2f18ab(0x721)]}],'subLanguage':_0x2f18ab(0x2742),'contains':[{'begin':_0x4208d9['begin'],'end':_0x4208d9['end'],'skip':!0x0,'contains':[_0x2f18ab(0x1001)]}]}]},_0x5dffe7,{'beginKeywords':_0x2f18ab(0x3565)},{'begin':'\x5cb(?!function)'+_0x1ada08[_0x2f18ab(0x2691)]+_0x2f18ab(0x2cb5),'returnBegin':!0x0,'label':_0x2f18ab(0x1560),'contains':[_0x3b57e5,_0x1ada08[_0x2f18ab(0x4f2)](_0x1ada08[_0x2f18ab(0x38c3)],{'begin':_0x40396c,'className':_0x2f18ab(0x326a)})]},{'match':/\.\.\./,'relevance':0x0},_0x5effe4,{'match':'\x5c$'+_0x40396c,'relevance':0x0},{'match':[/\bconstructor(?=\s*\()/],'className':{0x1:_0x2f18ab(0x326a)},'contains':[_0x3b57e5]},_0x21d762,{'relevance':0x0,'match':/\b[A-Z][A-Z_0-9]+\b/,'className':_0x2f18ab(0xfcb)},_0x373915,_0x475980,{'match':/\$[(.]/}]};};},0x15f7:_0x35c01d=>{const _0x186734=a0_0x329b;_0x35c01d[_0x186734(0x15de)]=function(_0x5854c2){const _0x54798a=_0x186734,_0x462266={'className':_0x54798a(0x4f24),'begin':/\(/,'end':/\)/,'contains':[{'begin':/[\w-]+ *=/,'returnBegin':!0x0,'relevance':0x0,'contains':[{'className':_0x54798a(0x1875),'begin':/[\w-]+/}]}],'relevance':0x0};return{'name':_0x54798a(0x1748),'aliases':[_0x54798a(0x13d7)],'keywords':{'$pattern':_0x54798a(0x735),'keyword':_0x54798a(0x492f),'literal':_0x54798a(0x9b6)},'contains':[_0x5854c2[_0x54798a(0x165c)],_0x5854c2[_0x54798a(0x3c93)],{'className':_0x54798a(0x4f24),'begin':/--[\w\-=\/]+/},{'className':_0x54798a(0x3dfb),'begin':/:[\w\-.]+/,'relevance':0x0},{'className':_0x54798a(0x4f7c),'begin':/\B([\/.])[\w\-.\/=]+/},_0x462266]};};},0x26d:_0x1f43b9=>{const _0xf46852=a0_0x329b;_0x1f43b9[_0xf46852(0x15de)]=function(_0x7f39b6){const _0xca828=_0xf46852,_0x4876ae=[_0xca828(0x23f6),_0xca828(0x3561),_0xca828(0x15f0)],_0x26660e={'scope':_0xca828(0x14b),'beginKeywords':_0x4876ae['join']('\x20')};return{'name':_0xca828(0x285f),'keywords':{'literal':_0x4876ae},'contains':[{'className':_0xca828(0x1875),'begin':/"(\\.|[^\\"\r\n])*"(?=\s*:)/,'relevance':1.01},{'match':/[{}[\],:]/,'className':'punctuation','relevance':0x0},_0x7f39b6[_0xca828(0x3c93)],_0x26660e,_0x7f39b6[_0xca828(0x3d6a)],_0x7f39b6[_0xca828(0x4d7)],_0x7f39b6[_0xca828(0x1bbc)]],'illegal':'\x5cS'};};},0x2142:_0x44bb7b=>{const _0x4205fc=a0_0x329b;_0x44bb7b[_0x4205fc(0x15de)]=function(_0x2c7db2){const _0x1b04a7=_0x4205fc;return{'name':'Julia\x20REPL','contains':[{'className':_0x1b04a7(0x2149),'begin':/^julia>/,'relevance':0xa,'starts':{'end':/^(?![ ]{6})/,'subLanguage':_0x1b04a7(0x11bb)}}],'aliases':[_0x1b04a7(0x30c7)]};};},0x22aa:_0x2f3829=>{const _0x59c78b=a0_0x329b;_0x2f3829[_0x59c78b(0x15de)]=function(_0x188f37){const _0x1cf56c=_0x59c78b,_0xbf1af1=_0x1cf56c(0x44f4),_0x5dc701={'$pattern':_0xbf1af1,'keyword':[_0x1cf56c(0x26aa),_0x1cf56c(0x1706),_0x1cf56c(0x49c0),_0x1cf56c(0x424a),'ccall',_0x1cf56c(0x27b),_0x1cf56c(0x495f),'do','else',_0x1cf56c(0x7cd),'end','export',_0x1cf56c(0x3561),_0x1cf56c(0x292f),'for','function','global','if',_0x1cf56c(0x2c76),'in',_0x1cf56c(0x2f30),_0x1cf56c(0x4647),_0x1cf56c(0xef7),_0x1cf56c(0x5128),'module',_0x1cf56c(0x5a8),_0x1cf56c(0xf06),_0x1cf56c(0x23f6),_0x1cf56c(0x47b4),_0x1cf56c(0x19f9),'where',_0x1cf56c(0x217b)],'literal':['ARGS',_0x1cf56c(0x4bce),_0x1cf56c(0x1548),_0x1cf56c(0x3aab),_0x1cf56c(0x2217),_0x1cf56c(0x173a),'Inf16',_0x1cf56c(0xc02),'Inf64',_0x1cf56c(0x1bc5),_0x1cf56c(0x1611),'MergeSort','NaN',_0x1cf56c(0x2bb),'NaN32',_0x1cf56c(0x20f2),_0x1cf56c(0xc2),'QuickSort',_0x1cf56c(0x4f7a),'RoundFromZero',_0x1cf56c(0x4e12),_0x1cf56c(0x885),_0x1cf56c(0x443c),_0x1cf56c(0x2b25),_0x1cf56c(0x4bbf),_0x1cf56c(0x3fbb),_0x1cf56c(0x3279),_0x1cf56c(0x3561),'im',_0x1cf56c(0x420e),_0x1cf56c(0x30a5),'pi',_0x1cf56c(0x3cb0),_0x1cf56c(0x785),'stdout',_0x1cf56c(0x23f6),_0x1cf56c(0x702),'π','ℯ'],'built_in':[_0x1cf56c(0xbdb),_0x1cf56c(0x3f31),_0x1cf56c(0x2be2),_0x1cf56c(0x1fe0),_0x1cf56c(0x2335),_0x1cf56c(0x4048),_0x1cf56c(0x3b7a),_0x1cf56c(0x20bc),'AbstractRange',_0x1cf56c(0x44d3),'AbstractString','AbstractUnitRange',_0x1cf56c(0x3e21),_0x1cf56c(0x2b0c),'Any','ArgumentError','Array',_0x1cf56c(0xfb),_0x1cf56c(0x40ce),_0x1cf56c(0x441f),_0x1cf56c(0x3ef3),'BitMatrix',_0x1cf56c(0x25e0),'BitVector',_0x1cf56c(0x427e),_0x1cf56c(0x3739),_0x1cf56c(0x4273),_0x1cf56c(0x4609),'CartesianIndices',_0x1cf56c(0x28b4),_0x1cf56c(0x2146),_0x1cf56c(0x427c),'Channel','Char',_0x1cf56c(0x3e2d),'Cintmax_t',_0x1cf56c(0x46b1),_0x1cf56c(0xbad),_0x1cf56c(0x4d31),_0x1cf56c(0x287f),_0x1cf56c(0x2797),_0x1cf56c(0x2702),_0x1cf56c(0x4b3c),_0x1cf56c(0x2b51),_0x1cf56c(0x42c1),_0x1cf56c(0x2451),'Cptrdiff_t',_0x1cf56c(0x3ece),_0x1cf56c(0x400f),_0x1cf56c(0x34ad),_0x1cf56c(0x2b23),_0x1cf56c(0xd41),_0x1cf56c(0xba7),_0x1cf56c(0x328f),_0x1cf56c(0x2b33),_0x1cf56c(0x4ad9),_0x1cf56c(0x295f),_0x1cf56c(0x2c28),_0x1cf56c(0x3fca),_0x1cf56c(0x474f),_0x1cf56c(0x10b3),_0x1cf56c(0x2941),_0x1cf56c(0x1100),_0x1cf56c(0x3174),_0x1cf56c(0x2292),'Dict',_0x1cf56c(0xc71),'Dims',_0x1cf56c(0x25a7),'DomainError','EOFError',_0x1cf56c(0x2dc),_0x1cf56c(0x27c3),_0x1cf56c(0x252a),_0x1cf56c(0x7f3),_0x1cf56c(0x3aea),_0x1cf56c(0x490b),_0x1cf56c(0x34d7),_0x1cf56c(0x3f9b),_0x1cf56c(0x1be9),_0x1cf56c(0x47d6),_0x1cf56c(0x413e),'IO','IOBuffer','IOContext','IOStream',_0x1cf56c(0x41fa),'IndexCartesian',_0x1cf56c(0x1e5c),_0x1cf56c(0x22b),_0x1cf56c(0x1979),'InitError',_0x1cf56c(0x119d),'Int128',_0x1cf56c(0x1e0c),_0x1cf56c(0x337f),_0x1cf56c(0x126f),_0x1cf56c(0x37f8),'Integer',_0x1cf56c(0x1b2d),'InvalidStateException',_0x1cf56c(0x27fa),'KeyError',_0x1cf56c(0x4a7a),_0x1cf56c(0x90a),_0x1cf56c(0xe81),_0x1cf56c(0x249b),_0x1cf56c(0xe1b),_0x1cf56c(0x4666),_0x1cf56c(0x4610),'MethodError',_0x1cf56c(0x34a3),_0x1cf56c(0x45ef),_0x1cf56c(0x3983),'NTuple',_0x1cf56c(0x317c),_0x1cf56c(0x2f2c),_0x1cf56c(0x4cba),_0x1cf56c(0xe3),_0x1cf56c(0x3d51),'OverflowError','Pair','PartialQuickSort',_0x1cf56c(0x4b48),_0x1cf56c(0x36c3),_0x1cf56c(0x4ae8),_0x1cf56c(0x3fd),_0x1cf56c(0x22ec),'Rational',_0x1cf56c(0x3496),_0x1cf56c(0x17cb),'Real',_0x1cf56c(0x455e),'Ref',_0x1cf56c(0x5ef),_0x1cf56c(0x3b55),_0x1cf56c(0x495),_0x1cf56c(0x20bf),_0x1cf56c(0x3c62),_0x1cf56c(0x32b3),_0x1cf56c(0x1863),_0x1cf56c(0x132d),_0x1cf56c(0x4572),_0x1cf56c(0x1ade),_0x1cf56c(0x582),_0x1cf56c(0x2139),_0x1cf56c(0x28db),_0x1cf56c(0xa58),_0x1cf56c(0x2f8c),_0x1cf56c(0x34b4),'SubArray',_0x1cf56c(0x1c20),_0x1cf56c(0xb95),'Symbol',_0x1cf56c(0x308a),'Task',_0x1cf56c(0x3114),_0x1cf56c(0x839),_0x1cf56c(0x32e7),_0x1cf56c(0x4088),_0x1cf56c(0x3693),_0x1cf56c(0x3a5),_0x1cf56c(0x1c91),_0x1cf56c(0x172e),_0x1cf56c(0x49bd),_0x1cf56c(0x1e2e),'UInt16',_0x1cf56c(0x4585),_0x1cf56c(0x323e),'UInt8','UndefInitializer',_0x1cf56c(0x3284),_0x1cf56c(0x36d4),_0x1cf56c(0x1796),_0x1cf56c(0x4aa3),'UnionAll',_0x1cf56c(0x4e3),_0x1cf56c(0x227b),_0x1cf56c(0x1d20),_0x1cf56c(0x133e),_0x1cf56c(0x3a4d),_0x1cf56c(0x39cb),'Vector',_0x1cf56c(0x2428),_0x1cf56c(0x450),_0x1cf56c(0x3482)]},_0x2b0b3e={'keywords':_0x5dc701,'illegal':/<\//},_0x3f7776={'className':'subst','begin':/\$\(/,'end':/\)/,'keywords':_0x5dc701},_0x1af590={'className':_0x1cf56c(0x4b3a),'begin':'\x5c$'+_0xbf1af1},_0x46ce49={'className':_0x1cf56c(0x4f7c),'contains':[_0x188f37[_0x1cf56c(0x421a)],_0x3f7776,_0x1af590],'variants':[{'begin':/\w*"""/,'end':/"""\w*/,'relevance':0xa},{'begin':/\w*"/,'end':/"\w*/}]},_0x50f143={'className':_0x1cf56c(0x4f7c),'contains':[_0x188f37[_0x1cf56c(0x421a)],_0x3f7776,_0x1af590],'begin':'`','end':'`'},_0x3614ea={'className':_0x1cf56c(0x482),'begin':'@'+_0xbf1af1};return _0x2b0b3e[_0x1cf56c(0x3d9d)]='Julia',_0x2b0b3e[_0x1cf56c(0x160d)]=[{'className':_0x1cf56c(0x1ed7),'begin':/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,'relevance':0x0},{'className':'string','begin':/'(.|\\[xXuU][a-zA-Z0-9]+)'/},_0x46ce49,_0x50f143,_0x3614ea,{'className':_0x1cf56c(0x43ca),'variants':[{'begin':'#=','end':'=#','relevance':0xa},{'begin':'#','end':'$'}]},_0x188f37[_0x1cf56c(0x165c)],{'className':_0x1cf56c(0x2448),'begin':'\x5cb(((abstract|primitive)\x5cs+)type|(mutable\x5cs+)?struct)\x5cb'},{'begin':/<:/}],_0x3f7776[_0x1cf56c(0x160d)]=_0x2b0b3e['contains'],_0x2b0b3e;};},0xb16:_0x2b32fa=>{const _0x5781fe=a0_0x329b;var _0x20f81d='[0-9](_*[0-9])*',_0x5d92d4='\x5c.('+_0x20f81d+')',_0x139380=_0x5781fe(0x4b66),_0x22b643={'className':'number','variants':[{'begin':_0x5781fe(0x15fa)+_0x20f81d+_0x5781fe(0x1443)+_0x5d92d4+_0x5781fe(0x40d9)+_0x5d92d4+_0x5781fe(0x313)+_0x20f81d+')[fFdD]?\x5cb'},{'begin':_0x5781fe(0x3648)+_0x20f81d+_0x5781fe(0x1443)+_0x5d92d4+_0x5781fe(0x336)},{'begin':'('+_0x5d92d4+_0x5781fe(0x3a8a)},{'begin':_0x5781fe(0x3648)+_0x20f81d+')[fFdD]\x5cb'},{'begin':'\x5cb0[xX](('+_0x139380+_0x5781fe(0x4506)+_0x139380+_0x5781fe(0x9ab)+_0x139380+_0x5781fe(0x3ca3)+_0x20f81d+')[fFdD]?\x5cb'},{'begin':_0x5781fe(0x3509)},{'begin':_0x5781fe(0x170d)+_0x139380+_0x5781fe(0x9f)},{'begin':_0x5781fe(0x2c47)},{'begin':_0x5781fe(0x3d78)}],'relevance':0x0};_0x2b32fa[_0x5781fe(0x15de)]=function(_0x2f353b){const _0x558f22=_0x5781fe,_0x40f384={'keyword':_0x558f22(0xd4b),'built_in':_0x558f22(0x2084),'literal':_0x558f22(0x25e2)},_0x274f77={'className':'symbol','begin':_0x2f353b[_0x558f22(0x2691)]+'@'},_0x1767a3={'className':'subst','begin':/\$\{/,'end':/\}/,'contains':[_0x2f353b[_0x558f22(0x3d6a)]]},_0xfe77b0={'className':_0x558f22(0x4b3a),'begin':'\x5c$'+_0x2f353b[_0x558f22(0x2691)]},_0x4cd1ba={'className':_0x558f22(0x4f7c),'variants':[{'begin':_0x558f22(0x3a07),'end':_0x558f22(0x1c31),'contains':[_0xfe77b0,_0x1767a3]},{'begin':'\x27','end':'\x27','illegal':/\n/,'contains':[_0x2f353b['BACKSLASH_ESCAPE']]},{'begin':'\x22','end':'\x22','illegal':/\n/,'contains':[_0x2f353b['BACKSLASH_ESCAPE'],_0xfe77b0,_0x1767a3]}]};_0x1767a3['contains'][_0x558f22(0x4131)](_0x4cd1ba);const _0x3ac029={'className':'meta','begin':_0x558f22(0xa61)+_0x2f353b[_0x558f22(0x2691)]+')?'},_0x500f11={'className':'meta','begin':'@'+_0x2f353b['UNDERSCORE_IDENT_RE'],'contains':[{'begin':/\(/,'end':/\)/,'contains':[_0x2f353b[_0x558f22(0x4f2)](_0x4cd1ba,{'className':_0x558f22(0x4f7c)}),'self']}]},_0x2c57c3=_0x22b643,_0x4a90a1=_0x2f353b[_0x558f22(0x274a)]('/\x5c*',_0x558f22(0x507f),{'contains':[_0x2f353b['C_BLOCK_COMMENT_MODE']]}),_0x1d2700={'variants':[{'className':_0x558f22(0x70a),'begin':_0x2f353b['UNDERSCORE_IDENT_RE']},{'begin':/\(/,'end':/\)/,'contains':[]}]},_0x80e107=_0x1d2700;return _0x80e107[_0x558f22(0x2d95)][0x1][_0x558f22(0x160d)]=[_0x1d2700],_0x1d2700[_0x558f22(0x2d95)][0x1][_0x558f22(0x160d)]=[_0x80e107],{'name':_0x558f22(0xc89),'aliases':['kt',_0x558f22(0x128f)],'keywords':_0x40f384,'contains':[_0x2f353b['COMMENT']('/\x5c*\x5c*',_0x558f22(0x507f),{'relevance':0x0,'contains':[{'className':'doctag','begin':_0x558f22(0x144f)}]}),_0x2f353b[_0x558f22(0x4d7)],_0x4a90a1,{'className':_0x558f22(0x2448),'begin':/\b(break|continue|return|this)\b/,'starts':{'contains':[{'className':'symbol','begin':/@\w+/}]}},_0x274f77,_0x3ac029,_0x500f11,{'className':'function','beginKeywords':_0x558f22(0x2d78),'end':_0x558f22(0x47d2),'returnBegin':!0x0,'excludeEnd':!0x0,'keywords':_0x40f384,'relevance':0x5,'contains':[{'begin':_0x2f353b[_0x558f22(0x2691)]+_0x558f22(0x17b4),'returnBegin':!0x0,'relevance':0x0,'contains':[_0x2f353b[_0x558f22(0x469b)]]},{'className':_0x558f22(0x70a),'begin'://,'keywords':_0x558f22(0x1439),'relevance':0x0},{'className':_0x558f22(0x4f24),'begin':/\(/,'end':/\)/,'endsParent':!0x0,'keywords':_0x40f384,'relevance':0x0,'contains':[{'begin':/:/,'end':/[=,\/]/,'endsWithParent':!0x0,'contains':[_0x1d2700,_0x2f353b[_0x558f22(0x4d7)],_0x4a90a1],'relevance':0x0},_0x2f353b[_0x558f22(0x4d7)],_0x4a90a1,_0x3ac029,_0x500f11,_0x4cd1ba,_0x2f353b[_0x558f22(0x3d6a)]]},_0x4a90a1]},{'begin':[/class|interface|trait/,/\s+/,_0x2f353b[_0x558f22(0x2691)]],'beginScope':{0x3:_0x558f22(0xc2f)},'keywords':_0x558f22(0x2919),'end':/[:\{(]|$/,'excludeEnd':!0x0,'illegal':_0x558f22(0xf91),'contains':[{'beginKeywords':_0x558f22(0x4e3a)},_0x2f353b['UNDERSCORE_TITLE_MODE'],{'className':'type','begin'://,'excludeBegin':!0x0,'excludeEnd':!0x0,'relevance':0x0},{'className':'type','begin':/[,:]\s*/,'end':/[<\(,){\s]|$/,'excludeBegin':!0x0,'returnEnd':!0x0},_0x3ac029,_0x500f11]},_0x4cd1ba,{'className':_0x558f22(0x482),'begin':_0x558f22(0x32aa),'end':'$','illegal':'\x0a'},_0x2c57c3]};};},0x17c9:_0x30a5ff=>{_0x30a5ff['exports']=function(_0x524589){const _0x33903e=a0_0x329b,_0x4d4c0d='[a-zA-Z_][\x5cw.]*',_0x208e13=_0x33903e(0x5037),_0x500c9e='\x5c]|\x5c?>',_0x56a4d9={'$pattern':_0x4d4c0d+_0x33903e(0x100e),'literal':'true\x20false\x20none\x20minimal\x20full\x20all\x20void\x20and\x20or\x20not\x20bw\x20nbw\x20ew\x20new\x20cn\x20ncn\x20lt\x20lte\x20gt\x20gte\x20eq\x20neq\x20rx\x20nrx\x20ft','built_in':_0x33903e(0x2123),'keyword':_0x33903e(0x2eab)},_0x6f4460=_0x524589[_0x33903e(0x274a)]('/,{'relevance':0xa}),{'begin'://,'relevance':0xa},_0x9a9eb5,{'className':_0x297226(0x482),'end':/\?>/,'variants':[{'begin':/<\?xml/,'relevance':0xa,'contains':[_0x36e98a]},{'begin':/<\?[a-z][a-z0-9]+/}]},{'className':_0x297226(0x17a2),'begin':/)/,'end':/>/,'keywords':{'name':_0x297226(0x3098)},'contains':[_0x2240d3],'starts':{'end':/<\/style>/,'returnEnd':!0x0,'subLanguage':[_0x297226(0x26d6),_0x297226(0x2742)]}},{'className':_0x297226(0x17a2),'begin':/)/,'end':/>/,'keywords':{'name':'script'},'contains':[_0x2240d3],'starts':{'end':/<\/script>/,'returnEnd':!0x0,'subLanguage':[_0x297226(0x1269),_0x297226(0x660),_0x297226(0x2742)]}},{'className':_0x297226(0x17a2),'begin':/<>|<\/>/},{'className':_0x297226(0x17a2),'begin':_0x11f582[_0x297226(0x41bf)](//,/>/,/\s/)))),'end':/\/?>/,'contains':[{'className':_0x297226(0x3d9d),'begin':_0x484ec6,'relevance':0x0,'starts':_0x2240d3}]},{'className':'tag','begin':_0x11f582[_0x297226(0x41bf)](/<\//,_0x11f582['lookahead'](_0x11f582[_0x297226(0x41bf)](_0x484ec6,/>/))),'contains':[{'className':_0x297226(0x3d9d),'begin':_0x484ec6,'relevance':0x0},{'begin':/>/,'relevance':0x0,'endsParent':!0x0}]}]};};},0xbeb:_0x5cf7b0=>{const _0x4d32e2=a0_0x329b;_0x5cf7b0[_0x4d32e2(0x15de)]=function(_0x39eb18){const _0xebcc3e=_0x4d32e2;return{'name':_0xebcc3e(0x732),'aliases':[_0xebcc3e(0x983),'xq','xqm'],'case_insensitive':!0x1,'illegal':/(proc)|(abstract)|(extends)|(until)|(#)/,'keywords':{'$pattern':/[a-zA-Z$][a-zA-Z0-9_:-]*/,'keyword':[_0xebcc3e(0x2d36),'schema',_0xebcc3e(0x3b86),'boundary-space',_0xebcc3e(0xec8),_0xebcc3e(0x81),'strip',_0xebcc3e(0x2fab),_0xebcc3e(0x1ce8),'base-uri',_0xebcc3e(0x416b),_0xebcc3e(0x4cb0),_0xebcc3e(0x250b),_0xebcc3e(0x4c6c),'copy-namespaces',_0xebcc3e(0x130f),_0xebcc3e(0x172d),_0xebcc3e(0x47c6),'external',_0xebcc3e(0x32f3),_0xebcc3e(0x4f2),'no-inherit',_0xebcc3e(0xf4b),_0xebcc3e(0x1276),_0xebcc3e(0x2a74),_0xebcc3e(0x2dcb),_0xebcc3e(0x417e),_0xebcc3e(0x28e8),_0xebcc3e(0x3cf8),_0xebcc3e(0x25eb),'zero-digit',_0xebcc3e(0x2c65),_0xebcc3e(0x2c76),_0xebcc3e(0x15f4),_0xebcc3e(0x3dfb),_0xebcc3e(0x44e4),_0xebcc3e(0x4b3a),_0xebcc3e(0x8f1),'at','in',_0xebcc3e(0x4647),_0xebcc3e(0x43c),_0xebcc3e(0x921),_0xebcc3e(0x4941),'by',_0xebcc3e(0xf06),'if',_0xebcc3e(0x452b),'else','tumbling','sliding',_0xebcc3e(0x3837),'start',_0xebcc3e(0x489c),_0xebcc3e(0x502c),_0xebcc3e(0x721),_0xebcc3e(0x4d30),_0xebcc3e(0x1aec),'stable',_0xebcc3e(0x19d6),'descending',_0xebcc3e(0x198b),_0xebcc3e(0x440d),_0xebcc3e(0x9a4),'least',_0xebcc3e(0x3f5f),_0xebcc3e(0x464d),_0xebcc3e(0x1fcc),_0xebcc3e(0x68),_0xebcc3e(0x1bf3),_0xebcc3e(0x24e8),_0xebcc3e(0x47b4),_0xebcc3e(0x424a),'and','or','to','union',_0xebcc3e(0x162),_0xebcc3e(0x274),'of',_0xebcc3e(0x14c4),'as',_0xebcc3e(0x2bac),_0xebcc3e(0x1759),_0xebcc3e(0x2c94),'array',_0xebcc3e(0x450b),_0xebcc3e(0x2e3f),'into','replace',_0xebcc3e(0x1827),_0xebcc3e(0x15b7),'copy','modify',_0xebcc3e(0xf93)],'type':[_0xebcc3e(0x24f4),_0xebcc3e(0x27b1),_0xebcc3e(0x3169),'attribute',_0xebcc3e(0x46d9),_0xebcc3e(0x35c0),_0xebcc3e(0x43ca),'namespace',_0xebcc3e(0x4152),_0xebcc3e(0x1c61),_0xebcc3e(0x2f35),'construction',_0xebcc3e(0x6e7),_0xebcc3e(0x15f1),'xs:duration',_0xebcc3e(0x9c7),'xs:decimal',_0xebcc3e(0x3747),_0xebcc3e(0x20fa),_0xebcc3e(0x22d4),_0xebcc3e(0x2ceb),'xs:gMonthDay',_0xebcc3e(0x1aa1),_0xebcc3e(0x26e5),'xs:boolean','xs:base64Binary','xs:hexBinary',_0xebcc3e(0x1318),_0xebcc3e(0x196b),_0xebcc3e(0xd87),_0xebcc3e(0x4a72),_0xebcc3e(0x3455),_0xebcc3e(0x2606),_0xebcc3e(0x3882),'xs:normalizedString','xs:token',_0xebcc3e(0x43c9),_0xebcc3e(0x3c2b),'xs:Name',_0xebcc3e(0x13b3),_0xebcc3e(0x24f5),_0xebcc3e(0x4900),_0xebcc3e(0x4b7c),_0xebcc3e(0xb21),_0xebcc3e(0x47d8),_0xebcc3e(0x3931),_0xebcc3e(0xb6f),_0xebcc3e(0x3027),_0xebcc3e(0x29b0),_0xebcc3e(0x3d73),_0xebcc3e(0xea3),_0xebcc3e(0x4ba9),'xs:unsignedInt',_0xebcc3e(0x4219),_0xebcc3e(0x22e7),_0xebcc3e(0x90b),'xs:yearMonthDuration',_0xebcc3e(0x1c5b)],'literal':['eq','ne','lt','le','gt','ge','is',_0xebcc3e(0x436f),_0xebcc3e(0x2db3),'descendant::',_0xebcc3e(0x4a4b),_0xebcc3e(0x39c6),_0xebcc3e(0x36b3),'following-sibling::','parent::','ancestor::','ancestor-or-self::','preceding::',_0xebcc3e(0x472a),_0xebcc3e(0x46ea)]},'contains':[{'className':_0xebcc3e(0x4b3a),'begin':/[$][\w\-:]+/},{'className':'built_in','variants':[{'begin':/\barray:/,'end':/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{'begin':/\bmap:/,'end':/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{'begin':/\bmath:/,'end':/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{'begin':/\bop:/,'end':/\(/,'excludeEnd':!0x0},{'begin':/\bfn:/,'end':/\(/,'excludeEnd':!0x0},{'begin':/[^/,'end':/(\/[\w._:-]+>)/,'subLanguage':'xml','contains':[{'begin':/\{/,'end':/\}/,'subLanguage':_0xebcc3e(0x40dd)},_0xebcc3e(0x1001)]}]};};},0x15d4:_0x3d305b=>{const _0x4b595b=a0_0x329b;_0x3d305b[_0x4b595b(0x15de)]=function(_0x519610){const _0x48b6dc=_0x4b595b,_0x51285b='true\x20false\x20yes\x20no\x20null',_0x4cac8f='[\x5cw#;/?:@&=+$,.~*\x27()[\x5c]]+',_0x24a166={'className':'string','relevance':0x0,'variants':[{'begin':/'/,'end':/'/},{'begin':/"/,'end':/"/},{'begin':/\S+/}],'contains':[_0x519610['BACKSLASH_ESCAPE'],{'className':_0x48b6dc(0x169d),'variants':[{'begin':/\{\{/,'end':/\}\}/},{'begin':/%\{/,'end':/\}/}]}]},_0x5c114e=_0x519610[_0x48b6dc(0x4f2)](_0x24a166,{'variants':[{'begin':/'/,'end':/'/},{'begin':/"/,'end':/"/},{'begin':/[^\s,{}[\]]+/}]}),_0x51a313={'className':'number','begin':'\x5cb[0-9]{4}(-[0-9][0-9]){0,2}([Tt\x20\x5ct][0-9][0-9]?(:[0-9][0-9]){2})?(\x5c.[0-9]*)?([\x20\x5ct])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\x5cb'},_0x5b466b={'end':',','endsWithParent':!0x0,'excludeEnd':!0x0,'keywords':_0x51285b,'relevance':0x0},_0x519914={'begin':/\{/,'end':/\}/,'contains':[_0x5b466b],'illegal':'\x5cn','relevance':0x0},_0x1fe0c1={'begin':'\x5c[','end':'\x5c]','contains':[_0x5b466b],'illegal':'\x5cn','relevance':0x0},_0x79edae=[{'className':_0x48b6dc(0x1875),'variants':[{'begin':_0x48b6dc(0x261d)},{'begin':_0x48b6dc(0x1d1c)},{'begin':_0x48b6dc(0x35ac)}]},{'className':'meta','begin':_0x48b6dc(0xd6e),'relevance':0xa},{'className':_0x48b6dc(0x4f7c),'begin':'[\x5c|>]([1-9]?[+-])?[\x20]*\x5cn(\x20+)[^\x20][^\x5cn]*\x5cn(\x5c2[^\x5cn]+\x5cn?)*'},{'begin':_0x48b6dc(0x35f8),'end':_0x48b6dc(0x10a9),'subLanguage':'ruby','excludeBegin':!0x0,'excludeEnd':!0x0,'relevance':0x0},{'className':_0x48b6dc(0x70a),'begin':'!\x5cw+!'+_0x4cac8f},{'className':_0x48b6dc(0x70a),'begin':'!<'+_0x4cac8f+'>'},{'className':'type','begin':'!'+_0x4cac8f},{'className':_0x48b6dc(0x70a),'begin':'!!'+_0x4cac8f},{'className':'meta','begin':'&'+_0x519610['UNDERSCORE_IDENT_RE']+'$'},{'className':'meta','begin':'\x5c*'+_0x519610[_0x48b6dc(0x2691)]+'$'},{'className':'bullet','begin':_0x48b6dc(0x1c49),'relevance':0x0},_0x519610[_0x48b6dc(0x165c)],{'beginKeywords':_0x51285b,'keywords':{'literal':_0x51285b}},_0x51a313,{'className':_0x48b6dc(0x1ed7),'begin':_0x519610[_0x48b6dc(0x2627)]+'\x5cb','relevance':0x0},_0x519914,_0x1fe0c1,_0x24a166],_0x49c829=[..._0x79edae];return _0x49c829[_0x48b6dc(0x2895)](),_0x49c829[_0x48b6dc(0x4131)](_0x5c114e),_0x5b466b[_0x48b6dc(0x160d)]=_0x49c829,{'name':_0x48b6dc(0x34e7),'case_insensitive':!0x0,'aliases':[_0x48b6dc(0x4300)],'contains':_0x79edae};};},0x2229:_0x3105d4=>{const _0x211c67=a0_0x329b;_0x3105d4[_0x211c67(0x15de)]=function(_0x16cf1f){const _0x5b93ec=_0x211c67,_0x246be5={'className':_0x5b93ec(0x4f7c),'contains':[_0x16cf1f[_0x5b93ec(0x421a)]],'variants':[_0x16cf1f[_0x5b93ec(0x4f2)](_0x16cf1f[_0x5b93ec(0x36ec)],{'illegal':null}),_0x16cf1f[_0x5b93ec(0x4f2)](_0x16cf1f[_0x5b93ec(0x3c93)],{'illegal':null})]},_0x21d67f=_0x16cf1f[_0x5b93ec(0x469b)],_0x27d07e={'variants':[_0x16cf1f[_0x5b93ec(0x30c0)],_0x16cf1f['C_NUMBER_MODE']]},_0x39a100='namespace\x20class\x20interface\x20use\x20extends\x20function\x20return\x20abstract\x20final\x20public\x20protected\x20private\x20static\x20deprecated\x20throw\x20try\x20catch\x20Exception\x20echo\x20empty\x20isset\x20instanceof\x20unset\x20let\x20var\x20new\x20const\x20self\x20require\x20if\x20else\x20elseif\x20switch\x20case\x20default\x20do\x20while\x20loop\x20for\x20continue\x20break\x20likely\x20unlikely\x20__LINE__\x20__FILE__\x20__DIR__\x20__FUNCTION__\x20__CLASS__\x20__TRAIT__\x20__METHOD__\x20__NAMESPACE__\x20array\x20boolean\x20float\x20double\x20integer\x20object\x20resource\x20string\x20char\x20long\x20unsigned\x20bool\x20int\x20uint\x20ulong\x20uchar\x20true\x20false\x20null\x20undefined';return{'name':'Zephir','aliases':[_0x5b93ec(0x908)],'keywords':_0x39a100,'contains':[_0x16cf1f['C_LINE_COMMENT_MODE'],_0x16cf1f['COMMENT'](/\/\*/,/\*\//,{'contains':[{'className':_0x5b93ec(0x3d82),'begin':/@[A-Za-z]+/}]}),{'className':_0x5b93ec(0x4f7c),'begin':/<<<['"]?\w+['"]?$/,'end':/^\w+;/,'contains':[_0x16cf1f[_0x5b93ec(0x421a)]]},{'begin':/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{'className':_0x5b93ec(0x3dfb),'beginKeywords':_0x5b93ec(0x4e55),'end':/[;{]/,'excludeEnd':!0x0,'illegal':/\$|\[|%/,'contains':[_0x21d67f,{'className':_0x5b93ec(0x4f24),'begin':/\(/,'end':/\)/,'keywords':_0x39a100,'contains':['self',_0x16cf1f[_0x5b93ec(0x1bbc)],_0x246be5,_0x27d07e]}]},{'className':'class','beginKeywords':_0x5b93ec(0x40cd),'end':/\{/,'excludeEnd':!0x0,'illegal':/[:($"]/,'contains':[{'beginKeywords':'extends\x20implements'},_0x21d67f]},{'beginKeywords':_0x5b93ec(0x3b86),'end':/;/,'illegal':/[.']/,'contains':[_0x21d67f]},{'beginKeywords':_0x5b93ec(0x3903),'end':/;/,'contains':[_0x21d67f]},{'begin':/=>/},_0x246be5,_0x27d07e]};};}},_0x5ab1a2={};function _0x356cb5(_0x56d7ee){const _0x2c210d=a0_0x329b;var _0x3e941d=_0x5ab1a2[_0x56d7ee];if(void 0x0!==_0x3e941d)return _0x3e941d['exports'];var _0x31be84=_0x5ab1a2[_0x56d7ee]={'id':_0x56d7ee,'exports':{}};return _0x5439d6[_0x56d7ee](_0x31be84,_0x31be84[_0x2c210d(0x15de)],_0x356cb5),_0x31be84[_0x2c210d(0x15de)];}_0x356cb5['m']=_0x5439d6,_0x356cb5['n']=_0x209d67=>{const _0x2f4327=a0_0x329b;var _0x545e24=_0x209d67&&_0x209d67[_0x2f4327(0x145c)]?()=>_0x209d67[_0x2f4327(0x2fab)]:()=>_0x209d67;return _0x356cb5['d'](_0x545e24,{'a':_0x545e24}),_0x545e24;},_0x356cb5['d']=(_0x3f6b85,_0x4cb49c)=>{const _0x4e9e39=a0_0x329b;for(var _0x73d4dc in _0x4cb49c)_0x356cb5['o'](_0x4cb49c,_0x73d4dc)&&!_0x356cb5['o'](_0x3f6b85,_0x73d4dc)&&Object[_0x4e9e39(0x1012)](_0x3f6b85,_0x73d4dc,{'enumerable':!0x0,'get':_0x4cb49c[_0x73d4dc]});},_0x356cb5['u']=_0x2a746c=>_0x2a746c+_0x37e7a3(0x19b2),_0x356cb5['g']=(function(){const _0x50d899=_0x37e7a3;if(_0x50d899(0x2b58)==typeof globalThis)return globalThis;try{return this||new Function(_0x50d899(0x248e))();}catch(_0x508394){if('object'==typeof window)return window;}}()),_0x356cb5['o']=(_0x515126,_0x3c3268)=>Object[_0x37e7a3(0x2b5c)][_0x37e7a3(0x32b5)]['call'](_0x515126,_0x3c3268),_0x356cb5['r']=_0x52b4ee=>{const _0x1bd5de=_0x37e7a3;'undefined'!=typeof Symbol&&Symbol[_0x1bd5de(0x369d)]&&Object[_0x1bd5de(0x1012)](_0x52b4ee,Symbol[_0x1bd5de(0x369d)],{'value':'Module'}),Object[_0x1bd5de(0x1012)](_0x52b4ee,'__esModule',{'value':!0x0});},((()=>{const _0x12f64d=_0x37e7a3;var _0x36e69f;_0x356cb5['g'][_0x12f64d(0x395c)]&&(_0x36e69f=_0x356cb5['g'][_0x12f64d(0x94a)]+'');var _0x43848b=_0x356cb5['g'][_0x12f64d(0x46d9)];if(!_0x36e69f&&_0x43848b&&(_0x43848b[_0x12f64d(0x3a7d)]&&(_0x36e69f=_0x43848b[_0x12f64d(0x3a7d)]['src']),!_0x36e69f)){var _0x127030=_0x43848b['getElementsByTagName'](_0x12f64d(0x48c0));if(_0x127030[_0x12f64d(0x205b)]){for(var _0x158290=_0x127030['length']-0x1;_0x158290>-0x1&&(!_0x36e69f||!/^http(s?):/[_0x12f64d(0x34c)](_0x36e69f));)_0x36e69f=_0x127030[_0x158290--]['src'];}}if(!_0x36e69f)throw new Error(_0x12f64d(0x77));_0x36e69f=_0x36e69f[_0x12f64d(0x1db7)](/#.*$/,'')[_0x12f64d(0x1db7)](/\?.*$/,'')[_0x12f64d(0x1db7)](/\/[^\/]+$/,'/'),_0x356cb5['p']=_0x36e69f;})()),_0x356cb5['b']=document[_0x37e7a3(0x2170)]||self['location'][_0x37e7a3(0x354f)],((()=>{'use strict';const _0x235866=_0x37e7a3;var _0x153de2={};_0x356cb5['r'](_0x153de2),_0x356cb5['d'](_0x153de2,{'decode':()=>_0x412fbe,'encode':()=>_0x1ff90c,'format':()=>_0x38ff67,'parse':()=>_0x3415b4});var _0xc407a7={};_0x356cb5['r'](_0xc407a7),_0x356cb5['d'](_0xc407a7,{'Any':()=>_0xba6268,'Cc':()=>_0xdae2be,'Cf':()=>_0x6260cb,'P':()=>_0x311e0b,'S':()=>_0x36af2c,'Z':()=>_0x1a8de9});var _0x1bfea2={};_0x356cb5['r'](_0x1bfea2),_0x356cb5['d'](_0x1bfea2,{'arrayReplaceAt':()=>_0x15a25c,'assign':()=>_0x52dcf4,'escapeHtml':()=>_0x3da7ca,'escapeRE':()=>_0x43c973,'fromCodePoint':()=>_0x153d17,'has':()=>_0x1ed68d,'isMdAsciiPunct':()=>_0x593bb3,'isPunctChar':()=>_0x258316,'isSpace':()=>_0x2578e9,'isString':()=>_0x5c0232,'isValidEntityCode':()=>_0x120e36,'isWhiteSpace':()=>_0x5c51c2,'lib':()=>_0x571623,'normalizeReference':()=>_0x479708,'unescapeAll':()=>_0x5c9f16,'unescapeMd':()=>_0x53b45c});var _0x120df0={};_0x356cb5['r'](_0x120df0),_0x356cb5['d'](_0x120df0,{'parseLinkDestination':()=>_0x29dd82,'parseLinkLabel':()=>_0x336e45,'parseLinkTitle':()=>_0x5f1e4a});const _0x48a5ab=_0x235866(0x4855);var _0x3cf047=_0x356cb5(0x1fbd),_0x10ba1f=_0x356cb5['n'](_0x3cf047);const _0x133f19={};function _0x1a0ad6(_0x28cd02,_0x322193){const _0x4ee4e1=_0x235866;_0x4ee4e1(0x4f7c)!=typeof _0x322193&&(_0x322193=_0x1a0ad6[_0x4ee4e1(0x3752)]);const _0xcca5ce=function(_0xddd003){const _0x4653df=_0x4ee4e1;let _0x578cf1=_0x133f19[_0xddd003];if(_0x578cf1)return _0x578cf1;_0x578cf1=_0x133f19[_0xddd003]=[];for(let _0xb4da4f=0x0;_0xb4da4f<0x80;_0xb4da4f++){const _0x19065b=String[_0x4653df(0xc78)](_0xb4da4f);_0x578cf1[_0x4653df(0x4131)](_0x19065b);}for(let _0x5c40fb=0x0;_0x5c40fb<_0xddd003[_0x4653df(0x205b)];_0x5c40fb++){const _0x1521da=_0xddd003[_0x4653df(0x1806)](_0x5c40fb);_0x578cf1[_0x1521da]='%'+('0'+_0x1521da['toString'](0x10)[_0x4653df(0x4447)]())[_0x4653df(0x428e)](-0x2);}return _0x578cf1;}(_0x322193);return _0x28cd02['replace'](/(%[a-f0-9]{2})+/gi,function(_0x22fc85){const _0xece39c=_0x4ee4e1;let _0x112fa7='';for(let _0x368a11=0x0,_0xf92db2=_0x22fc85[_0xece39c(0x205b)];_0x368a11<_0xf92db2;_0x368a11+=0x3){const _0x1721ad=parseInt(_0x22fc85['slice'](_0x368a11+0x1,_0x368a11+0x3),0x10);if(_0x1721ad<0x80)_0x112fa7+=_0xcca5ce[_0x1721ad];else{if(0xc0==(0xe0&_0x1721ad)&&_0x368a11+0x3<_0xf92db2){const _0xebf96=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0x4,_0x368a11+0x6),0x10);if(0x80==(0xc0&_0xebf96)){const _0x480410=_0x1721ad<<0x6&0x7c0|0x3f&_0xebf96;_0x112fa7+=_0x480410<0x80?'��':String[_0xece39c(0xc78)](_0x480410),_0x368a11+=0x3;continue;}}if(0xe0==(0xf0&_0x1721ad)&&_0x368a11+0x6<_0xf92db2){const _0x3d6a5d=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0x4,_0x368a11+0x6),0x10),_0x9d45e5=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0x7,_0x368a11+0x9),0x10);if(0x80==(0xc0&_0x3d6a5d)&&0x80==(0xc0&_0x9d45e5)){const _0x28f24f=_0x1721ad<<0xc&0xf000|_0x3d6a5d<<0x6&0xfc0|0x3f&_0x9d45e5;_0x112fa7+=_0x28f24f<0x800||_0x28f24f>=0xd800&&_0x28f24f<=0xdfff?'���':String[_0xece39c(0xc78)](_0x28f24f),_0x368a11+=0x6;continue;}}if(0xf0==(0xf8&_0x1721ad)&&_0x368a11+0x9<_0xf92db2){const _0x58daa1=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0x4,_0x368a11+0x6),0x10),_0x519ff3=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0x7,_0x368a11+0x9),0x10),_0x4ae889=parseInt(_0x22fc85[_0xece39c(0x428e)](_0x368a11+0xa,_0x368a11+0xc),0x10);if(0x80==(0xc0&_0x58daa1)&&0x80==(0xc0&_0x519ff3)&&0x80==(0xc0&_0x4ae889)){let _0x87c3a7=_0x1721ad<<0x12&0x1c0000|_0x58daa1<<0xc&0x3f000|_0x519ff3<<0x6&0xfc0|0x3f&_0x4ae889;_0x87c3a7<0x10000||_0x87c3a7>0x10ffff?_0x112fa7+=_0xece39c(0x4ae3):(_0x87c3a7-=0x10000,_0x112fa7+=String[_0xece39c(0xc78)](0xd800+(_0x87c3a7>>0xa),0xdc00+(0x3ff&_0x87c3a7))),_0x368a11+=0x9;continue;}}_0x112fa7+='�';}}return _0x112fa7;});}_0x1a0ad6[_0x235866(0x3752)]=_0x235866(0x2bd8),_0x1a0ad6['componentChars']='';const _0x412fbe=_0x1a0ad6,_0x99efbd={};function _0x56abcb(_0x21c68c,_0x314934,_0x41f498){const _0x38ed35=_0x235866;_0x38ed35(0x4f7c)!=typeof _0x314934&&(_0x41f498=_0x314934,_0x314934=_0x56abcb['defaultChars']),void 0x0===_0x41f498&&(_0x41f498=!0x0);const _0x10a55f=function(_0x228483){const _0x4ef8a9=_0x38ed35;let _0x303cc4=_0x99efbd[_0x228483];if(_0x303cc4)return _0x303cc4;_0x303cc4=_0x99efbd[_0x228483]=[];for(let _0x20ed04=0x0;_0x20ed04<0x80;_0x20ed04++){const _0x45ab83=String['fromCharCode'](_0x20ed04);/^[0-9a-z]$/i['test'](_0x45ab83)?_0x303cc4['push'](_0x45ab83):_0x303cc4['push']('%'+('0'+_0x20ed04[_0x4ef8a9(0x44de)](0x10)['toUpperCase']())['slice'](-0x2));}for(let _0x27e9bb=0x0;_0x27e9bb<_0x228483['length'];_0x27e9bb++)_0x303cc4[_0x228483[_0x4ef8a9(0x1806)](_0x27e9bb)]=_0x228483[_0x27e9bb];return _0x303cc4;}(_0x314934);let _0x28a48c='';for(let _0x5ecb3c=0x0,_0x1e34f0=_0x21c68c['length'];_0x5ecb3c<_0x1e34f0;_0x5ecb3c++){const _0x5d535f=_0x21c68c[_0x38ed35(0x1806)](_0x5ecb3c);if(_0x41f498&&0x25===_0x5d535f&&_0x5ecb3c+0x2<_0x1e34f0&&/^[0-9a-f]{2}$/i['test'](_0x21c68c[_0x38ed35(0x428e)](_0x5ecb3c+0x1,_0x5ecb3c+0x3)))_0x28a48c+=_0x21c68c[_0x38ed35(0x428e)](_0x5ecb3c,_0x5ecb3c+0x3),_0x5ecb3c+=0x2;else{if(_0x5d535f<0x80)_0x28a48c+=_0x10a55f[_0x5d535f];else{if(_0x5d535f>=0xd800&&_0x5d535f<=0xdfff){if(_0x5d535f>=0xd800&&_0x5d535f<=0xdbff&&_0x5ecb3c+0x1<_0x1e34f0){const _0x40534b=_0x21c68c[_0x38ed35(0x1806)](_0x5ecb3c+0x1);if(_0x40534b>=0xdc00&&_0x40534b<=0xdfff){_0x28a48c+=encodeURIComponent(_0x21c68c[_0x5ecb3c]+_0x21c68c[_0x5ecb3c+0x1]),_0x5ecb3c++;continue;}}_0x28a48c+=_0x38ed35(0x4566);}else _0x28a48c+=encodeURIComponent(_0x21c68c[_0x5ecb3c]);}}}return _0x28a48c;}_0x56abcb[_0x235866(0x3752)]=_0x235866(0x2665),_0x56abcb[_0x235866(0x446f)]=_0x235866(0x3b85);const _0x1ff90c=_0x56abcb;function _0x38ff67(_0x2cc42e){const _0x2bc639=_0x235866;let _0x431db0='';return _0x431db0+=_0x2cc42e['protocol']||'',_0x431db0+=_0x2cc42e[_0x2bc639(0x1bb6)]?'//':'',_0x431db0+=_0x2cc42e['auth']?_0x2cc42e['auth']+'@':'',_0x2cc42e[_0x2bc639(0xfb5)]&&-0x1!==_0x2cc42e[_0x2bc639(0xfb5)]['indexOf'](':')?_0x431db0+='['+_0x2cc42e[_0x2bc639(0xfb5)]+']':_0x431db0+=_0x2cc42e[_0x2bc639(0xfb5)]||'',_0x431db0+=_0x2cc42e[_0x2bc639(0x3a08)]?':'+_0x2cc42e[_0x2bc639(0x3a08)]:'',_0x431db0+=_0x2cc42e[_0x2bc639(0x459c)]||'',_0x431db0+=_0x2cc42e[_0x2bc639(0x1929)]||'',_0x431db0+=_0x2cc42e[_0x2bc639(0x37e1)]||'',_0x431db0;}function _0x1f656f(){const _0x25f415=_0x235866;this[_0x25f415(0x4d06)]=null,this[_0x25f415(0x1bb6)]=null,this[_0x25f415(0x47e3)]=null,this[_0x25f415(0x3a08)]=null,this[_0x25f415(0xfb5)]=null,this[_0x25f415(0x37e1)]=null,this['search']=null,this['pathname']=null;}const _0x243fbf=/^([a-z0-9.+-]+:)/i,_0x2d32d=/:[0-9]*$/,_0x3d9256=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,_0x2fb0e9=['{','}','|','\x5c','^','`'][_0x235866(0x41bf)](['<','>','\x22','`','\x20','\x0d','\x0a','\x09']),_0x2e0504=['\x27']['concat'](_0x2fb0e9),_0xe71bc2=['%','/','?',';','#'][_0x235866(0x41bf)](_0x2e0504),_0x69a22a=['/','?','#'],_0x493c3e=/^[+a-z0-9A-Z_-]{0,63}$/,_0x358e5f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,_0x36e43d={'javascript':!0x0,'javascript:':!0x0},_0x32d815={'http':!0x0,'https':!0x0,'ftp':!0x0,'gopher':!0x0,'file':!0x0,'http:':!0x0,'https:':!0x0,'ftp:':!0x0,'gopher:':!0x0,'file:':!0x0};_0x1f656f['prototype']['parse']=function(_0x5d519c,_0x26ba72){const _0x15bfac=_0x235866;let _0x611a17,_0x3f1831,_0x58e0da,_0x4abfe5=_0x5d519c;if(_0x4abfe5=_0x4abfe5[_0x15bfac(0x1d0e)](),!_0x26ba72&&0x1===_0x5d519c[_0x15bfac(0x29d0)]('#')[_0x15bfac(0x205b)]){const _0xb9e2f5=_0x3d9256['exec'](_0x4abfe5);if(_0xb9e2f5)return this[_0x15bfac(0x459c)]=_0xb9e2f5[0x1],_0xb9e2f5[0x2]&&(this[_0x15bfac(0x1929)]=_0xb9e2f5[0x2]),this;}let _0x397acd=_0x243fbf[_0x15bfac(0x3bbd)](_0x4abfe5);if(_0x397acd&&(_0x397acd=_0x397acd[0x0],_0x611a17=_0x397acd[_0x15bfac(0x1a57)](),this[_0x15bfac(0x4d06)]=_0x397acd,_0x4abfe5=_0x4abfe5[_0x15bfac(0x32a4)](_0x397acd[_0x15bfac(0x205b)])),(_0x26ba72||_0x397acd||_0x4abfe5['match'](/^\/\/[^@\/]+@[^@\/]+/))&&(_0x58e0da='//'===_0x4abfe5['substr'](0x0,0x2),!_0x58e0da||_0x397acd&&_0x36e43d[_0x397acd]||(_0x4abfe5=_0x4abfe5['substr'](0x2),this['slashes']=!0x0)),!_0x36e43d[_0x397acd]&&(_0x58e0da||_0x397acd&&!_0x32d815[_0x397acd])){let _0x3763d9,_0x48d66a,_0x3ed4b1=-0x1;for(let _0xcfe67f=0x0;_0xcfe67f<_0x69a22a['length'];_0xcfe67f++)_0x3f1831=_0x4abfe5[_0x15bfac(0x3458)](_0x69a22a[_0xcfe67f]),-0x1!==_0x3f1831&&(-0x1===_0x3ed4b1||_0x3f1831<_0x3ed4b1)&&(_0x3ed4b1=_0x3f1831);_0x48d66a=-0x1===_0x3ed4b1?_0x4abfe5['lastIndexOf']('@'):_0x4abfe5[_0x15bfac(0xe17)]('@',_0x3ed4b1),-0x1!==_0x48d66a&&(_0x3763d9=_0x4abfe5[_0x15bfac(0x428e)](0x0,_0x48d66a),_0x4abfe5=_0x4abfe5[_0x15bfac(0x428e)](_0x48d66a+0x1),this[_0x15bfac(0x47e3)]=_0x3763d9),_0x3ed4b1=-0x1;for(let _0x780668=0x0;_0x780668<_0xe71bc2[_0x15bfac(0x205b)];_0x780668++)_0x3f1831=_0x4abfe5['indexOf'](_0xe71bc2[_0x780668]),-0x1!==_0x3f1831&&(-0x1===_0x3ed4b1||_0x3f1831<_0x3ed4b1)&&(_0x3ed4b1=_0x3f1831);-0x1===_0x3ed4b1&&(_0x3ed4b1=_0x4abfe5[_0x15bfac(0x205b)]),':'===_0x4abfe5[_0x3ed4b1-0x1]&&_0x3ed4b1--;const _0xea82ba=_0x4abfe5[_0x15bfac(0x428e)](0x0,_0x3ed4b1);_0x4abfe5=_0x4abfe5[_0x15bfac(0x428e)](_0x3ed4b1),this['parseHost'](_0xea82ba),this[_0x15bfac(0xfb5)]=this[_0x15bfac(0xfb5)]||'';const _0xa7d07='['===this[_0x15bfac(0xfb5)][0x0]&&']'===this[_0x15bfac(0xfb5)][this[_0x15bfac(0xfb5)][_0x15bfac(0x205b)]-0x1];if(!_0xa7d07){const _0x3887b7=this[_0x15bfac(0xfb5)][_0x15bfac(0x29d0)](/\./);for(let _0x5ef9cf=0x0,_0x3c97b0=_0x3887b7[_0x15bfac(0x205b)];_0x5ef9cf<_0x3c97b0;_0x5ef9cf++){const _0x31fd04=_0x3887b7[_0x5ef9cf];if(_0x31fd04&&!_0x31fd04[_0x15bfac(0xdc0)](_0x493c3e)){let _0x228c02='';for(let _0xf650c3=0x0,_0x43fc4c=_0x31fd04[_0x15bfac(0x205b)];_0xf650c3<_0x43fc4c;_0xf650c3++)_0x31fd04[_0x15bfac(0x1806)](_0xf650c3)>0x7f?_0x228c02+='x':_0x228c02+=_0x31fd04[_0xf650c3];if(!_0x228c02[_0x15bfac(0xdc0)](_0x493c3e)){const _0x53c6e4=_0x3887b7['slice'](0x0,_0x5ef9cf),_0x249fa4=_0x3887b7[_0x15bfac(0x428e)](_0x5ef9cf+0x1),_0x24ca51=_0x31fd04[_0x15bfac(0xdc0)](_0x358e5f);_0x24ca51&&(_0x53c6e4['push'](_0x24ca51[0x1]),_0x249fa4[_0x15bfac(0x214d)](_0x24ca51[0x2])),_0x249fa4[_0x15bfac(0x205b)]&&(_0x4abfe5=_0x249fa4['join']('.')+_0x4abfe5),this[_0x15bfac(0xfb5)]=_0x53c6e4[_0x15bfac(0x379c)]('.');break;}}}}this[_0x15bfac(0xfb5)]['length']>0xff&&(this['hostname']=''),_0xa7d07&&(this[_0x15bfac(0xfb5)]=this['hostname'][_0x15bfac(0x32a4)](0x1,this[_0x15bfac(0xfb5)]['length']-0x2));}const _0x73858a=_0x4abfe5[_0x15bfac(0x3458)]('#');-0x1!==_0x73858a&&(this[_0x15bfac(0x37e1)]=_0x4abfe5['substr'](_0x73858a),_0x4abfe5=_0x4abfe5['slice'](0x0,_0x73858a));const _0x12da73=_0x4abfe5[_0x15bfac(0x3458)]('?');return-0x1!==_0x12da73&&(this['search']=_0x4abfe5['substr'](_0x12da73),_0x4abfe5=_0x4abfe5[_0x15bfac(0x428e)](0x0,_0x12da73)),_0x4abfe5&&(this[_0x15bfac(0x459c)]=_0x4abfe5),_0x32d815[_0x611a17]&&this['hostname']&&!this['pathname']&&(this[_0x15bfac(0x459c)]=''),this;},_0x1f656f['prototype'][_0x235866(0x4234)]=function(_0x21d9ad){const _0x1ae90d=_0x235866;let _0x5d8348=_0x2d32d['exec'](_0x21d9ad);_0x5d8348&&(_0x5d8348=_0x5d8348[0x0],':'!==_0x5d8348&&(this[_0x1ae90d(0x3a08)]=_0x5d8348['substr'](0x1)),_0x21d9ad=_0x21d9ad[_0x1ae90d(0x32a4)](0x0,_0x21d9ad[_0x1ae90d(0x205b)]-_0x5d8348[_0x1ae90d(0x205b)])),_0x21d9ad&&(this['hostname']=_0x21d9ad);};const _0x3415b4=function(_0x1296d8,_0x5d6213){if(_0x1296d8&&_0x1296d8 instanceof _0x1f656f)return _0x1296d8;const _0x5da1e4=new _0x1f656f();return _0x5da1e4['parse'](_0x1296d8,_0x5d6213),_0x5da1e4;},_0x311e0b=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,_0xba6268=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,_0xdae2be=/[\0-\x1F\x7F-\x9F]/,_0x6260cb=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,_0x36af2c=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,_0x1a8de9=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,_0x4783e9=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\x00\x00\x00\x00\x00\x00ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\x5cbfms\x7f\u0084\u008b\u0090\u0095\u0098¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp\u009d¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\x00\x00\x00͔͂\x00Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\x00\x00ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\x00\x00ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\x00ц\x00ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\x00ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\x00\x00ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\x00\x00֣mallSquare;旼erySmallSquare;斪Ͱֺ\x00ֿ\x00\x00ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\x00ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\x00ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\x00ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\x00ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\x00ࣃbleBracket;柦nǔࣈ\x00࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻\x22䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\x00စbleBracket;柧nǔည\x00နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\x00\x00ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\x00ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀\u205f\u200aSpace;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\x00ጬጱ\x00\x00\x00\x00\x00ጸጽ፷ᎅ\x00᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\x00጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\x00ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\x00ᖰᖶᖿ\x00\x00\x00\x00ᗆᗛᗫᙟ᙭\x00ᚕ᚛ᚲᚹ\x00ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\x00\x00ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\x00\x00ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\x00ᠳƲᠯ\x00ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\x00᧨ᨑᨕᨲ\x00ᨷᩐ\x00\x00᪴\x00\x00᫁\x00\x00ᬡᬮ᭍᭒\x00᯽\x00ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\x00᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\x00\x00᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\x00ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\x00\x00᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\x00ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\x00\x00᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\x00\x00ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\x00\x00ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\x00\x00ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\x00\x00ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\x00ᾞ\x00ᾡᾧ\x00\x00ῆῌ\x00ΐ\x00ῦῪ\u2000\x00\u2008⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\x00\x00᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\x00ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\x00⁐β•‥‧‪‬\x00‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\x00‶;慔;慖ʴ‾⁁\x00\x00⁃耻¾䂾;慗;慜5;慘ƶ⁌\x00⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\x00↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\x00⊪\x00⊸⋅⋎\x00⋕⋳\x00\x00⋸⌢⍧⍢⍿\x00⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\x00⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\x00⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\x00⒪\x00⒱\x00\x00\x00\x00\x00⒵Ⓔ\x00ⓆⓈⓍ\x00⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\x00⧣p肻\u00a0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\x00⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\x00\x00⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ⴭ\x00ⴸⵈⵠⵥ⵲ⶄᬇ\x00\x00ⶍⶫ\x00ⷈⷎ\x00ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\x00\x00⵼\x00ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\x00⹽\x00⺀⺝\x00⺢⺹\x00\x00⻋ຜ\x00⼓\x00\x00⼫⾼\x00⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\x00\x00⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\x00㍺㎤\x00\x00㏬㏰\x00㐨㑈㑚㒭㒱㓊㓱\x00㘖\x00\x00㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\x00㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\x00\x00㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\x00㙾㛂\x00\x00\x00\x00\x00㛛㜃\x00㜉㝬\x00\x00\x00㞇ɲ㙖\x00\x00㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\x00㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\x00㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\x00\x00㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\x00\x00㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\x00㪋\x00㪐㪛\x00\x00㪝㪨㪫㪯\x00\x00㫃㫎\x00㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'[_0x235866(0x29d0)]('')[_0x235866(0x2c94)](_0x16b2b0=>_0x16b2b0[_0x235866(0x1806)](0x0))),_0x1142a8=new Uint16Array(_0x235866(0x1bd6)[_0x235866(0x29d0)]('')[_0x235866(0x2c94)](_0x39ec90=>_0x39ec90[_0x235866(0x1806)](0x0)));var _0x11399a;const _0x5ee96b=new Map([[0x0,0xfffd],[0x80,0x20ac],[0x82,0x201a],[0x83,0x192],[0x84,0x201e],[0x85,0x2026],[0x86,0x2020],[0x87,0x2021],[0x88,0x2c6],[0x89,0x2030],[0x8a,0x160],[0x8b,0x2039],[0x8c,0x152],[0x8e,0x17d],[0x91,0x2018],[0x92,0x2019],[0x93,0x201c],[0x94,0x201d],[0x95,0x2022],[0x96,0x2013],[0x97,0x2014],[0x98,0x2dc],[0x99,0x2122],[0x9a,0x161],[0x9b,0x203a],[0x9c,0x153],[0x9e,0x17e],[0x9f,0x178]]),_0x4658e1=null!==(_0x11399a=String['fromCodePoint'])&&void 0x0!==_0x11399a?_0x11399a:function(_0x502bf2){const _0x4d3ecc=_0x235866;let _0x101fa5='';return _0x502bf2>0xffff&&(_0x502bf2-=0x10000,_0x101fa5+=String[_0x4d3ecc(0xc78)](_0x502bf2>>>0xa&0x3ff|0xd800),_0x502bf2=0xdc00|0x3ff&_0x502bf2),_0x101fa5+=String[_0x4d3ecc(0xc78)](_0x502bf2),_0x101fa5;};function _0x9e292e(_0x332042){const _0x267e2e=_0x235866;var _0x309a34;return _0x332042>=0xd800&&_0x332042<=0xdfff||_0x332042>0x10ffff?0xfffd:null!==(_0x309a34=_0x5ee96b[_0x267e2e(0x2685)](_0x332042))&&void 0x0!==_0x309a34?_0x309a34:_0x332042;}var _0x31525a;!function(_0x532265){const _0x4e01c1=_0x235866;_0x532265[_0x532265[_0x4e01c1(0x1ac4)]=0x23]=_0x4e01c1(0x1ac4),_0x532265[_0x532265[_0x4e01c1(0xb76)]=0x3b]='SEMI',_0x532265[_0x532265['EQUALS']=0x3d]=_0x4e01c1(0xc1d),_0x532265[_0x532265[_0x4e01c1(0x340c)]=0x30]=_0x4e01c1(0x340c),_0x532265[_0x532265[_0x4e01c1(0x1a3e)]=0x39]='NINE',_0x532265[_0x532265[_0x4e01c1(0xed)]=0x61]=_0x4e01c1(0xed),_0x532265[_0x532265[_0x4e01c1(0x2bb0)]=0x66]='LOWER_F',_0x532265[_0x532265['LOWER_X']=0x78]=_0x4e01c1(0x761),_0x532265[_0x532265['LOWER_Z']=0x7a]='LOWER_Z',_0x532265[_0x532265[_0x4e01c1(0x3ef5)]=0x41]=_0x4e01c1(0x3ef5),_0x532265[_0x532265['UPPER_F']=0x46]='UPPER_F',_0x532265[_0x532265['UPPER_Z']=0x5a]=_0x4e01c1(0x1b0b);}(_0x31525a||(_0x31525a={}));var _0x1cc853,_0x52231d,_0x1ed13d;function _0x475ff8(_0x3bb27c){const _0x495ed8=_0x235866;return _0x3bb27c>=_0x31525a[_0x495ed8(0x340c)]&&_0x3bb27c<=_0x31525a[_0x495ed8(0x1a3e)];}function _0x488e07(_0x54e322){const _0x204a54=_0x235866;return _0x54e322>=_0x31525a[_0x204a54(0x3ef5)]&&_0x54e322<=_0x31525a[_0x204a54(0x1872)]||_0x54e322>=_0x31525a[_0x204a54(0xed)]&&_0x54e322<=_0x31525a[_0x204a54(0x2bb0)];}function _0x183e45(_0x4ebeda){return _0x4ebeda===_0x31525a['EQUALS']||function(_0x4ed4ea){const _0x2a90f9=a0_0x329b;return _0x4ed4ea>=_0x31525a[_0x2a90f9(0x3ef5)]&&_0x4ed4ea<=_0x31525a[_0x2a90f9(0x1b0b)]||_0x4ed4ea>=_0x31525a[_0x2a90f9(0xed)]&&_0x4ed4ea<=_0x31525a[_0x2a90f9(0x2abe)]||_0x475ff8(_0x4ed4ea);}(_0x4ebeda);}!function(_0x5a83d0){const _0x3f04e1=_0x235866;_0x5a83d0[_0x5a83d0[_0x3f04e1(0x1ed2)]=0xc000]=_0x3f04e1(0x1ed2),_0x5a83d0[_0x5a83d0[_0x3f04e1(0x2461)]=0x3f80]=_0x3f04e1(0x2461),_0x5a83d0[_0x5a83d0[_0x3f04e1(0xa86)]=0x7f]=_0x3f04e1(0xa86);}(_0x1cc853||(_0x1cc853={})),function(_0x299229){const _0x45de69=_0x235866;_0x299229[_0x299229[_0x45de69(0x6e0)]=0x0]='EntityStart',_0x299229[_0x299229['NumericStart']=0x1]='NumericStart',_0x299229[_0x299229[_0x45de69(0x2204)]=0x2]='NumericDecimal',_0x299229[_0x299229[_0x45de69(0x2fd7)]=0x3]=_0x45de69(0x2fd7),_0x299229[_0x299229['NamedEntity']=0x4]=_0x45de69(0x3ae9);}(_0x52231d||(_0x52231d={})),function(_0x2447b3){const _0x1461e8=_0x235866;_0x2447b3[_0x2447b3[_0x1461e8(0x3494)]=0x0]=_0x1461e8(0x3494),_0x2447b3[_0x2447b3[_0x1461e8(0x1851)]=0x1]=_0x1461e8(0x1851),_0x2447b3[_0x2447b3[_0x1461e8(0x3ba)]=0x2]=_0x1461e8(0x3ba);}(_0x1ed13d||(_0x1ed13d={}));class _0x1c99eb{constructor(_0x304c79,_0x3ebcc8,_0x24b9e0){const _0x4ff850=_0x235866;this['decodeTree']=_0x304c79,this['emitCodePoint']=_0x3ebcc8,this[_0x4ff850(0x2f3f)]=_0x24b9e0,this[_0x4ff850(0x3b95)]=_0x52231d[_0x4ff850(0x6e0)],this['consumed']=0x1,this[_0x4ff850(0x209a)]=0x0,this[_0x4ff850(0x44f0)]=0x0,this[_0x4ff850(0x1062)]=0x1,this[_0x4ff850(0x35a7)]=_0x1ed13d[_0x4ff850(0x1851)];}[_0x235866(0x42f)](_0x21f799){const _0x19de1c=_0x235866;this[_0x19de1c(0x35a7)]=_0x21f799,this[_0x19de1c(0x3b95)]=_0x52231d[_0x19de1c(0x6e0)],this[_0x19de1c(0x209a)]=0x0,this['treeIndex']=0x0,this[_0x19de1c(0x1062)]=0x1,this['consumed']=0x1;}[_0x235866(0xe9)](_0x285663,_0x175ee8){const _0x5ba2ce=_0x235866;switch(this['state']){case _0x52231d[_0x5ba2ce(0x6e0)]:return _0x285663[_0x5ba2ce(0x1806)](_0x175ee8)===_0x31525a[_0x5ba2ce(0x1ac4)]?(this[_0x5ba2ce(0x3b95)]=_0x52231d['NumericStart'],this[_0x5ba2ce(0x4791)]+=0x1,this[_0x5ba2ce(0x3f43)](_0x285663,_0x175ee8+0x1)):(this[_0x5ba2ce(0x3b95)]=_0x52231d[_0x5ba2ce(0x3ae9)],this['stateNamedEntity'](_0x285663,_0x175ee8));case _0x52231d[_0x5ba2ce(0xad4)]:return this[_0x5ba2ce(0x3f43)](_0x285663,_0x175ee8);case _0x52231d['NumericDecimal']:return this[_0x5ba2ce(0xebd)](_0x285663,_0x175ee8);case _0x52231d[_0x5ba2ce(0x2fd7)]:return this['stateNumericHex'](_0x285663,_0x175ee8);case _0x52231d[_0x5ba2ce(0x3ae9)]:return this[_0x5ba2ce(0x3b00)](_0x285663,_0x175ee8);}}[_0x235866(0x3f43)](_0xe5d459,_0x2da658){const _0x296f3d=_0x235866;return _0x2da658>=_0xe5d459[_0x296f3d(0x205b)]?-0x1:(0x20|_0xe5d459[_0x296f3d(0x1806)](_0x2da658))===_0x31525a[_0x296f3d(0x761)]?(this[_0x296f3d(0x3b95)]=_0x52231d['NumericHex'],this[_0x296f3d(0x4791)]+=0x1,this[_0x296f3d(0x1966)](_0xe5d459,_0x2da658+0x1)):(this[_0x296f3d(0x3b95)]=_0x52231d[_0x296f3d(0x2204)],this[_0x296f3d(0xebd)](_0xe5d459,_0x2da658));}[_0x235866(0x3b1f)](_0x422d15,_0x3309fc,_0x10944e,_0x3812dd){const _0xe2b669=_0x235866;if(_0x3309fc!==_0x10944e){const _0x45c20d=_0x10944e-_0x3309fc;this[_0xe2b669(0x209a)]=this['result']*Math[_0xe2b669(0xec3)](_0x3812dd,_0x45c20d)+parseInt(_0x422d15[_0xe2b669(0x32a4)](_0x3309fc,_0x45c20d),_0x3812dd),this[_0xe2b669(0x4791)]+=_0x45c20d;}}[_0x235866(0x1966)](_0x1396b4,_0x2db20a){const _0xb0e22c=_0x235866,_0x14668=_0x2db20a;for(;_0x2db20a<_0x1396b4['length'];){const _0x18fd3e=_0x1396b4[_0xb0e22c(0x1806)](_0x2db20a);if(!_0x475ff8(_0x18fd3e)&&!_0x488e07(_0x18fd3e))return this[_0xb0e22c(0x3b1f)](_0x1396b4,_0x14668,_0x2db20a,0x10),this[_0xb0e22c(0x44e8)](_0x18fd3e,0x3);_0x2db20a+=0x1;}return this[_0xb0e22c(0x3b1f)](_0x1396b4,_0x14668,_0x2db20a,0x10),-0x1;}[_0x235866(0xebd)](_0x286731,_0x553029){const _0x5ca6c7=_0x235866,_0x4e1edd=_0x553029;for(;_0x553029<_0x286731[_0x5ca6c7(0x205b)];){const _0x697d09=_0x286731[_0x5ca6c7(0x1806)](_0x553029);if(!_0x475ff8(_0x697d09))return this['addToNumericResult'](_0x286731,_0x4e1edd,_0x553029,0xa),this[_0x5ca6c7(0x44e8)](_0x697d09,0x2);_0x553029+=0x1;}return this[_0x5ca6c7(0x3b1f)](_0x286731,_0x4e1edd,_0x553029,0xa),-0x1;}[_0x235866(0x44e8)](_0x107a4e,_0x217d2d){const _0x539600=_0x235866;var _0x3f8d3b;if(this[_0x539600(0x4791)]<=_0x217d2d)return null===(_0x3f8d3b=this[_0x539600(0x2f3f)])||void 0x0===_0x3f8d3b||_0x3f8d3b['absenceOfDigitsInNumericCharacterReference'](this[_0x539600(0x4791)]),0x0;if(_0x107a4e===_0x31525a[_0x539600(0xb76)])this['consumed']+=0x1;else{if(this['decodeMode']===_0x1ed13d[_0x539600(0x1851)])return 0x0;}return this['emitCodePoint'](_0x9e292e(this[_0x539600(0x209a)]),this[_0x539600(0x4791)]),this[_0x539600(0x2f3f)]&&(_0x107a4e!==_0x31525a[_0x539600(0xb76)]&&this[_0x539600(0x2f3f)][_0x539600(0x1864)](),this[_0x539600(0x2f3f)][_0x539600(0x5bb)](this[_0x539600(0x209a)])),this['consumed'];}[_0x235866(0x3b00)](_0x3d7360,_0x4630d2){const _0x280774=_0x235866,{decodeTree:_0x435a76}=this;let _0x350522=_0x435a76[this['treeIndex']],_0x192ea3=(_0x350522&_0x1cc853[_0x280774(0x1ed2)])>>0xe;for(;_0x4630d2<_0x3d7360[_0x280774(0x205b)];_0x4630d2++,this[_0x280774(0x1062)]++){const _0x349a98=_0x3d7360['charCodeAt'](_0x4630d2);if(this[_0x280774(0x44f0)]=_0x5ae7ad(_0x435a76,_0x350522,this[_0x280774(0x44f0)]+Math['max'](0x1,_0x192ea3),_0x349a98),this[_0x280774(0x44f0)]<0x0)return 0x0===this[_0x280774(0x209a)]||this['decodeMode']===_0x1ed13d[_0x280774(0x3ba)]&&(0x0===_0x192ea3||_0x183e45(_0x349a98))?0x0:this[_0x280774(0x3107)]();if(_0x350522=_0x435a76[this[_0x280774(0x44f0)]],_0x192ea3=(_0x350522&_0x1cc853[_0x280774(0x1ed2)])>>0xe,0x0!==_0x192ea3){if(_0x349a98===_0x31525a[_0x280774(0xb76)])return this[_0x280774(0xe52)](this[_0x280774(0x44f0)],_0x192ea3,this[_0x280774(0x4791)]+this['excess']);this[_0x280774(0x35a7)]!==_0x1ed13d['Strict']&&(this['result']=this[_0x280774(0x44f0)],this[_0x280774(0x4791)]+=this[_0x280774(0x1062)],this[_0x280774(0x1062)]=0x0);}}return-0x1;}[_0x235866(0x3107)](){const _0x535d9d=_0x235866;var _0x358de8;const {result:_0x48f411,decodeTree:_0x45b9fa}=this,_0x673afb=(_0x45b9fa[_0x48f411]&_0x1cc853[_0x535d9d(0x1ed2)])>>0xe;return this[_0x535d9d(0xe52)](_0x48f411,_0x673afb,this[_0x535d9d(0x4791)]),null===(_0x358de8=this[_0x535d9d(0x2f3f)])||void 0x0===_0x358de8||_0x358de8[_0x535d9d(0x1864)](),this[_0x535d9d(0x4791)];}[_0x235866(0xe52)](_0x389ee0,_0x19edb5,_0xbedd20){const {decodeTree:_0x1988ec}=this;return this['emitCodePoint'](0x1===_0x19edb5?_0x1988ec[_0x389ee0]&~_0x1cc853['VALUE_LENGTH']:_0x1988ec[_0x389ee0+0x1],_0xbedd20),0x3===_0x19edb5&&this['emitCodePoint'](_0x1988ec[_0x389ee0+0x2],_0xbedd20),_0xbedd20;}[_0x235866(0x721)](){const _0x4a25b8=_0x235866;var _0x57b1d7;switch(this[_0x4a25b8(0x3b95)]){case _0x52231d[_0x4a25b8(0x3ae9)]:return 0x0===this['result']||this[_0x4a25b8(0x35a7)]===_0x1ed13d[_0x4a25b8(0x3ba)]&&this[_0x4a25b8(0x209a)]!==this[_0x4a25b8(0x44f0)]?0x0:this[_0x4a25b8(0x3107)]();case _0x52231d['NumericDecimal']:return this[_0x4a25b8(0x44e8)](0x0,0x2);case _0x52231d[_0x4a25b8(0x2fd7)]:return this['emitNumericEntity'](0x0,0x3);case _0x52231d[_0x4a25b8(0xad4)]:return null===(_0x57b1d7=this['errors'])||void 0x0===_0x57b1d7||_0x57b1d7[_0x4a25b8(0x1353)](this[_0x4a25b8(0x4791)]),0x0;case _0x52231d['EntityStart']:return 0x0;}}}function _0x4005be(_0x49c92a){let _0x835052='';const _0x234584=new _0x1c99eb(_0x49c92a,_0x26edf6=>_0x835052+=_0x4658e1(_0x26edf6));return function(_0x1163d7,_0x5ae190){const _0x329dd9=a0_0x329b;let _0x38d29b=0x0,_0x536a71=0x0;for(;(_0x536a71=_0x1163d7[_0x329dd9(0x3458)]('&',_0x536a71))>=0x0;){_0x835052+=_0x1163d7[_0x329dd9(0x428e)](_0x38d29b,_0x536a71),_0x234584[_0x329dd9(0x42f)](_0x5ae190);const _0x1ca2a6=_0x234584[_0x329dd9(0xe9)](_0x1163d7,_0x536a71+0x1);if(_0x1ca2a6<0x0){_0x38d29b=_0x536a71+_0x234584[_0x329dd9(0x721)]();break;}_0x38d29b=_0x536a71+_0x1ca2a6,_0x536a71=0x0===_0x1ca2a6?_0x38d29b+0x1:_0x38d29b;}const _0x1f7828=_0x835052+_0x1163d7[_0x329dd9(0x428e)](_0x38d29b);return _0x835052='',_0x1f7828;};}function _0x5ae7ad(_0x42b818,_0x4b2e68,_0x28168c,_0x5a9ee4){const _0x415bd3=_0x235866,_0x1e4788=(_0x4b2e68&_0x1cc853[_0x415bd3(0x2461)])>>0x7,_0x8e82ba=_0x4b2e68&_0x1cc853[_0x415bd3(0xa86)];if(0x0===_0x1e4788)return 0x0!==_0x8e82ba&&_0x5a9ee4===_0x8e82ba?_0x28168c:-0x1;if(_0x8e82ba){const _0xa9cd4a=_0x5a9ee4-_0x8e82ba;return _0xa9cd4a<0x0||_0xa9cd4a>=_0x1e4788?-0x1:_0x42b818[_0x28168c+_0xa9cd4a]-0x1;}let _0x416bb0=_0x28168c,_0x2815ba=_0x416bb0+_0x1e4788-0x1;for(;_0x416bb0<=_0x2815ba;){const _0x203cdd=_0x416bb0+_0x2815ba>>>0x1,_0x35276f=_0x42b818[_0x203cdd];if(_0x35276f<_0x5a9ee4)_0x416bb0=_0x203cdd+0x1;else{if(!(_0x35276f>_0x5a9ee4))return _0x42b818[_0x203cdd+_0x1e4788];_0x2815ba=_0x203cdd-0x1;}}return-0x1;}const _0x513190=_0x4005be(_0x4783e9);_0x4005be(_0x1142a8);function _0xc30b02(_0x45056d,_0x4aa617=_0x1ed13d['Legacy']){return _0x513190(_0x45056d,_0x4aa617);}function _0x3aa700(_0x18f417){const _0x111636=_0x235866;for(let _0x4f4a01=0x1;_0x4f4a01<_0x18f417[_0x111636(0x205b)];_0x4f4a01++)_0x18f417[_0x4f4a01][0x0]+=_0x18f417[_0x4f4a01-0x1][0x0]+0x1;return _0x18f417;}new Map(_0x3aa700([[0x9,_0x235866(0x1643)],[0x0,_0x235866(0x3f67)],[0x16,_0x235866(0x6f9)],[0x0,'"'],[0x0,_0x235866(0x391d)],[0x0,_0x235866(0x7d4)],[0x0,_0x235866(0x4f6a)],[0x0,_0x235866(0x4924)],[0x0,_0x235866(0x34eb)],[0x0,'('],[0x0,_0x235866(0x2157)],[0x0,'*'],[0x0,'+'],[0x0,','],[0x1,_0x235866(0x3ff2)],[0x0,_0x235866(0x5b1)],[0xa,_0x235866(0x2096)],[0x0,';'],[0x0,{'v':_0x235866(0x10a1),'n':0x20d2,'o':_0x235866(0x2351)}],[0x0,{'v':_0x235866(0x386c),'n':0x20e5,'o':_0x235866(0x4e0e)}],[0x0,{'v':_0x235866(0xc10),'n':0x20d2,'o':_0x235866(0xbfb)}],[0x0,_0x235866(0x49c4)],[0x0,_0x235866(0x26ce)],[0x1a,_0x235866(0x4134)],[0x0,_0x235866(0x312c)],[0x0,']'],[0x0,_0x235866(0x3351)],[0x0,_0x235866(0xd96)],[0x0,_0x235866(0x5024)],[0x5,{'n':0x6a,'o':_0x235866(0x111)}],[0x14,'{'],[0x0,_0x235866(0x1d5e)],[0x0,_0x235866(0x31bf)],[0x22,_0x235866(0x206e)],[0x0,_0x235866(0x2d25)],[0x0,'¢'],[0x0,_0x235866(0x42a6)],[0x0,'¤'],[0x0,'¥'],[0x0,_0x235866(0xff0)],[0x0,_0x235866(0x17bf)],[0x0,_0x235866(0x3086)],[0x0,_0x235866(0x352c)],[0x0,_0x235866(0x35a1)],[0x0,_0x235866(0x11e0)],[0x0,_0x235866(0x2fde)],[0x0,'­'],[0x0,'®'],[0x0,_0x235866(0x2166)],[0x0,'°'],[0x0,_0x235866(0x4913)],[0x0,_0x235866(0x4070)],[0x0,'³'],[0x0,_0x235866(0x19dd)],[0x0,'µ'],[0x0,_0x235866(0x9fd)],[0x0,_0x235866(0x219b)],[0x0,_0x235866(0x43ab)],[0x0,_0x235866(0x165d)],[0x0,'º'],[0x0,_0x235866(0x2ec7)],[0x0,_0x235866(0x32f7)],[0x0,_0x235866(0x3de6)],[0x0,_0x235866(0xfa0)],[0x0,'¿'],[0x0,'À'],[0x0,'Á'],[0x0,_0x235866(0xd2e)],[0x0,'Ã'],[0x0,_0x235866(0x438a)],[0x0,_0x235866(0x3e97)],[0x0,_0x235866(0x4b0d)],[0x0,_0x235866(0x393a)],[0x0,_0x235866(0x4d18)],[0x0,_0x235866(0xe2)],[0x0,_0x235866(0x30db)],[0x0,_0x235866(0x101f)],[0x0,_0x235866(0x4607)],[0x0,_0x235866(0x1c9)],[0x0,_0x235866(0x1bdf)],[0x0,_0x235866(0x1047)],[0x0,_0x235866(0x2636)],[0x0,_0x235866(0x29af)],[0x0,_0x235866(0x3a48)],[0x0,_0x235866(0x34e4)],[0x0,_0x235866(0x4344)],[0x0,_0x235866(0x42aa)],[0x0,_0x235866(0x1b2c)],[0x0,_0x235866(0x990)],[0x0,_0x235866(0x5d4)],[0x0,'Ù'],[0x0,_0x235866(0x1896)],[0x0,_0x235866(0x4589)],[0x0,_0x235866(0xca0)],[0x0,_0x235866(0x26c7)],[0x0,'Þ'],[0x0,_0x235866(0x4370)],[0x0,'à'],[0x0,'á'],[0x0,'â'],[0x0,_0x235866(0x1af1)],[0x0,'ä'],[0x0,_0x235866(0xcbf)],[0x0,_0x235866(0xebe)],[0x0,'ç'],[0x0,_0x235866(0xf23)],[0x0,_0x235866(0x3893)],[0x0,_0x235866(0x1abd)],[0x0,'ë'],[0x0,_0x235866(0x3d18)],[0x0,_0x235866(0x2747)],[0x0,_0x235866(0x1cb7)],[0x0,_0x235866(0x2547)],[0x0,_0x235866(0x2bc3)],[0x0,_0x235866(0x11a3)],[0x0,_0x235866(0xd5c)],[0x0,'ó'],[0x0,_0x235866(0x14e8)],[0x0,_0x235866(0x413c)],[0x0,'ö'],[0x0,_0x235866(0x1f32)],[0x0,_0x235866(0x1a14)],[0x0,_0x235866(0x3bc8)],[0x0,_0x235866(0x2c0c)],[0x0,_0x235866(0x2c32)],[0x0,_0x235866(0x2288)],[0x0,_0x235866(0x4a1b)],[0x0,_0x235866(0x4e68)],[0x0,_0x235866(0x30c9)],[0x0,_0x235866(0x36e4)],[0x0,'ā'],[0x0,'Ă'],[0x0,_0x235866(0xeb3)],[0x0,_0x235866(0x3164)],[0x0,'ą'],[0x0,_0x235866(0xbb8)],[0x0,_0x235866(0x166f)],[0x0,'Ĉ'],[0x0,'ĉ'],[0x0,_0x235866(0x1b3)],[0x0,_0x235866(0x3cdf)],[0x0,_0x235866(0x14e4)],[0x0,_0x235866(0x371d)],[0x0,_0x235866(0x46d2)],[0x0,_0x235866(0x25b8)],[0x0,_0x235866(0x270f)],[0x0,_0x235866(0x323d)],[0x0,_0x235866(0x4903)],[0x0,'ē'],[0x2,_0x235866(0x2edf)],[0x0,_0x235866(0x971)],[0x0,'Ę'],[0x0,'ę'],[0x0,_0x235866(0x4e3f)],[0x0,'ě'],[0x0,_0x235866(0x4d28)],[0x0,_0x235866(0x2472)],[0x0,_0x235866(0x1e53)],[0x0,_0x235866(0x4c71)],[0x0,_0x235866(0x569)],[0x0,_0x235866(0x19f8)],[0x0,'Ģ'],[0x1,_0x235866(0x97d)],[0x0,'ĥ'],[0x0,_0x235866(0x4797)],[0x0,_0x235866(0x310a)],[0x0,'Ĩ'],[0x0,'ĩ'],[0x0,_0x235866(0x393b)],[0x0,_0x235866(0x4a2e)],[0x2,'Į'],[0x0,_0x235866(0x4458)],[0x0,'İ'],[0x0,_0x235866(0x4986)],[0x0,_0x235866(0x4842)],[0x0,_0x235866(0x6e8)],[0x0,_0x235866(0x139f)],[0x0,_0x235866(0x4a58)],[0x0,_0x235866(0x1c06)],[0x0,_0x235866(0x17be)],[0x0,_0x235866(0x675)],[0x0,_0x235866(0x4ce5)],[0x0,'ĺ'],[0x0,_0x235866(0x43bb)],[0x0,_0x235866(0x24d8)],[0x0,_0x235866(0x3bc)],[0x0,_0x235866(0x45ca)],[0x0,_0x235866(0x1e9f)],[0x0,'ŀ'],[0x0,_0x235866(0x495e)],[0x0,_0x235866(0x3234)],[0x0,_0x235866(0x2e1f)],[0x0,_0x235866(0x4a09)],[0x0,_0x235866(0x39f2)],[0x0,_0x235866(0x252)],[0x0,_0x235866(0x27c8)],[0x0,_0x235866(0x2306)],[0x0,_0x235866(0x32ec)],[0x0,_0x235866(0x29a7)],[0x0,_0x235866(0x2677)],[0x0,_0x235866(0x243a)],[0x0,'ō'],[0x2,_0x235866(0x2c53)],[0x0,_0x235866(0x50bd)],[0x0,_0x235866(0x201e)],[0x0,'œ'],[0x0,_0x235866(0x2024)],[0x0,_0x235866(0x1e60)],[0x0,_0x235866(0x4773)],[0x0,'ŗ'],[0x0,'Ř'],[0x0,_0x235866(0x1745)],[0x0,_0x235866(0x309b)],[0x0,_0x235866(0x1227)],[0x0,_0x235866(0x3be3)],[0x0,_0x235866(0x4bd9)],[0x0,_0x235866(0x4f80)],[0x0,_0x235866(0x4c81)],[0x0,'Š'],[0x0,'š'],[0x0,_0x235866(0x1b0e)],[0x0,_0x235866(0x1297)],[0x0,_0x235866(0x93f)],[0x0,_0x235866(0x1c8)],[0x0,_0x235866(0x25f3)],[0x0,_0x235866(0x859)],[0x0,_0x235866(0x2c48)],[0x0,_0x235866(0x3c38)],[0x0,_0x235866(0x252d)],[0x0,'ū'],[0x0,_0x235866(0xad1)],[0x0,'ŭ'],[0x0,_0x235866(0x1b8e)],[0x0,_0x235866(0xe38)],[0x0,_0x235866(0x31e0)],[0x0,_0x235866(0x1463)],[0x0,'Ų'],[0x0,_0x235866(0x1e22)],[0x0,_0x235866(0x4e2c)],[0x0,'ŵ'],[0x0,_0x235866(0x3c8e)],[0x0,_0x235866(0x1cdb)],[0x0,_0x235866(0x3bf8)],[0x0,_0x235866(0x1030)],[0x0,_0x235866(0x1fbd)],[0x0,_0x235866(0x32e9)],[0x0,_0x235866(0x2386)],[0x0,_0x235866(0x1238)],[0x0,'ž'],[0x13,_0x235866(0x4a6e)],[0x22,'Ƶ'],[0x3f,_0x235866(0x5b2)],[0x41,_0x235866(0x3a9a)],[0x8e,'ˆ'],[0x0,_0x235866(0x784)],[0x10,'˘'],[0x0,_0x235866(0x2498)],[0x0,_0x235866(0xa36)],[0x0,'˛'],[0x0,_0x235866(0x36fb)],[0x0,'˝'],[0x33,_0x235866(0x4a50)],[0x7f,_0x235866(0x19ad)],[0x0,_0x235866(0x3c04)],[0x0,'Γ'],[0x0,'Δ'],[0x0,_0x235866(0x3389)],[0x0,_0x235866(0x4c9c)],[0x0,_0x235866(0x4ec7)],[0x0,_0x235866(0x50a0)],[0x0,_0x235866(0x473d)],[0x0,_0x235866(0xeb5)],[0x0,_0x235866(0x390b)],[0x0,'Μ'],[0x0,_0x235866(0x3b01)],[0x0,_0x235866(0x3d12)],[0x0,'Ο'],[0x0,_0x235866(0x20c8)],[0x0,_0x235866(0x3051)],[0x1,_0x235866(0x50ac)],[0x0,_0x235866(0x42ff)],[0x0,_0x235866(0xb78)],[0x0,_0x235866(0x5022)],[0x0,'Χ'],[0x0,_0x235866(0x1763)],[0x0,_0x235866(0xf9f)],[0x7,_0x235866(0x39ed)],[0x0,_0x235866(0x216d)],[0x0,_0x235866(0xea5)],[0x0,_0x235866(0x3353)],[0x0,'ε'],[0x0,'ζ'],[0x0,'η'],[0x0,_0x235866(0x779)],[0x0,_0x235866(0x32a1)],[0x0,_0x235866(0x4fda)],[0x0,'λ'],[0x0,'μ'],[0x0,_0x235866(0x3913)],[0x0,_0x235866(0xfd8)],[0x0,_0x235866(0x3112)],[0x0,_0x235866(0x131)],[0x0,'ρ'],[0x0,'ς'],[0x0,_0x235866(0x4299)],[0x0,'τ'],[0x0,_0x235866(0x6de)],[0x0,_0x235866(0x331b)],[0x0,_0x235866(0x34f7)],[0x0,_0x235866(0x3e63)],[0x0,_0x235866(0x278a)],[0x7,_0x235866(0x1319)],[0x0,_0x235866(0x2ce2)],[0x2,_0x235866(0x200b)],[0x0,_0x235866(0x2f25)],[0x5,_0x235866(0x1be2)],[0x0,'ϝ'],[0x12,_0x235866(0x3716)],[0x0,'ϱ'],[0x3,_0x235866(0x3768)],[0x0,'϶'],[0xa,'Ё'],[0x0,'Ђ'],[0x0,_0x235866(0x800)],[0x0,_0x235866(0x36c4)],[0x0,'Ѕ'],[0x0,_0x235866(0x165)],[0x0,_0x235866(0x3eb8)],[0x0,_0x235866(0x1064)],[0x0,_0x235866(0x314f)],[0x0,_0x235866(0x2963)],[0x0,_0x235866(0x45ad)],[0x0,'Ќ'],[0x1,_0x235866(0x254d)],[0x0,'Џ'],[0x0,'А'],[0x0,_0x235866(0x46c5)],[0x0,_0x235866(0x2155)],[0x0,'Г'],[0x0,'Д'],[0x0,_0x235866(0x1cfb)],[0x0,_0x235866(0x4448)],[0x0,'З'],[0x0,'И'],[0x0,_0x235866(0xf80)],[0x0,_0x235866(0x4ef3)],[0x0,'Л'],[0x0,_0x235866(0x1ef7)],[0x0,'Н'],[0x0,_0x235866(0x16ce)],[0x0,_0x235866(0x1ecc)],[0x0,_0x235866(0xf1)],[0x0,'С'],[0x0,_0x235866(0x3d1d)],[0x0,'У'],[0x0,'Ф'],[0x0,_0x235866(0x22e1)],[0x0,'Ц'],[0x0,_0x235866(0x4795)],[0x0,_0x235866(0xa28)],[0x0,_0x235866(0x156f)],[0x0,_0x235866(0x3c73)],[0x0,_0x235866(0x651)],[0x0,_0x235866(0x559)],[0x0,'Э'],[0x0,_0x235866(0x2ed2)],[0x0,_0x235866(0x4ec2)],[0x0,_0x235866(0x4990)],[0x0,'б'],[0x0,_0x235866(0x32f9)],[0x0,_0x235866(0x4e51)],[0x0,_0x235866(0x2f88)],[0x0,'е'],[0x0,'ж'],[0x0,_0x235866(0x2e48)],[0x0,_0x235866(0x7e6)],[0x0,_0x235866(0x3af0)],[0x0,_0x235866(0x153a)],[0x0,_0x235866(0x17c9)],[0x0,_0x235866(0x1dd4)],[0x0,_0x235866(0x2055)],[0x0,_0x235866(0x2d6)],[0x0,_0x235866(0x33b3)],[0x0,_0x235866(0x501a)],[0x0,_0x235866(0x5c4)],[0x0,_0x235866(0x2548)],[0x0,_0x235866(0x358a)],[0x0,'ф'],[0x0,_0x235866(0x28a6)],[0x0,_0x235866(0x7c2)],[0x0,_0x235866(0x4756)],[0x0,'ш'],[0x0,'щ'],[0x0,_0x235866(0x35e2)],[0x0,_0x235866(0x1910)],[0x0,_0x235866(0x48b3)],[0x0,'э'],[0x0,_0x235866(0x4829)],[0x0,'я'],[0x1,_0x235866(0x3853)],[0x0,'ђ'],[0x0,_0x235866(0x2fd9)],[0x0,'є'],[0x0,_0x235866(0x36da)],[0x0,'і'],[0x0,_0x235866(0x2e18)],[0x0,_0x235866(0x4580)],[0x0,_0x235866(0x72d)],[0x0,_0x235866(0x3603)],[0x0,_0x235866(0x2b5a)],[0x0,_0x235866(0x3c91)],[0x1,_0x235866(0x16a0)],[0x0,_0x235866(0x2ecb)],[0x1ba2,' '],[0x0,_0x235866(0x119f)],[0x0,_0x235866(0x4309)],[0x0,_0x235866(0x1b9a)],[0x1,_0x235866(0x4f05)],[0x0,_0x235866(0x377c)],[0x0,_0x235866(0xa31)],[0x0,' '],[0x0,_0x235866(0x4a1f)],[0x0,_0x235866(0x2220)],[0x0,_0x235866(0x3807)],[0x0,_0x235866(0x4118)],[0x0,_0x235866(0x4b71)],[0x0,_0x235866(0x1ffd)],[0x2,_0x235866(0x1d03)],[0x0,_0x235866(0x2aea)],[0x0,_0x235866(0xe7a)],[0x0,_0x235866(0x2ea)],[0x1,_0x235866(0x2897)],[0x0,_0x235866(0x3349)],[0x0,_0x235866(0x3878)],[0x1,_0x235866(0x34cc)],[0x0,_0x235866(0xe25)],[0x0,_0x235866(0x1862)],[0x1,'†'],[0x0,_0x235866(0x1ec8)],[0x0,'•'],[0x2,_0x235866(0x94)],[0x0,_0x235866(0x2140)],[0x9,_0x235866(0x32bd)],[0x0,_0x235866(0x248a)],[0x0,_0x235866(0x4cfd)],[0x0,'″'],[0x0,_0x235866(0x1844)],[0x0,'‵'],[0x3,_0x235866(0xc1f)],[0x0,'›'],[0x3,_0x235866(0x27df)],[0x2,'⁁'],[0x1,_0x235866(0xfef)],[0x0,_0x235866(0x48ef)],[0xa,'⁏'],[0x7,'⁗'],[0x7,{'v':_0x235866(0x3d36),'n':0x200a,'o':_0x235866(0x367d)}],[0x0,_0x235866(0x315c)],[0x0,_0x235866(0x4a77)],[0x0,_0x235866(0x1a0)],[0x0,_0x235866(0x424b)],[0x48,_0x235866(0x890)],[0x2e,_0x235866(0x82c)],[0x0,_0x235866(0x1ce3)],[0x25,_0x235866(0x3119)],[0x2,_0x235866(0x2073)],[0x4,'ℊ'],[0x0,_0x235866(0x3815)],[0x0,'ℌ'],[0x0,'ℍ'],[0x0,_0x235866(0x38d7)],[0x0,_0x235866(0x25bd)],[0x0,_0x235866(0xdea)],[0x0,_0x235866(0x3bbf)],[0x0,_0x235866(0x3ea8)],[0x0,_0x235866(0x101a)],[0x1,_0x235866(0x400b)],[0x0,_0x235866(0x235a)],[0x0,'℗'],[0x0,_0x235866(0x42c7)],[0x0,_0x235866(0x50e7)],[0x0,_0x235866(0x138e)],[0x0,_0x235866(0x510)],[0x0,'ℜ'],[0x0,_0x235866(0x263)],[0x0,_0x235866(0x18c)],[0x3,_0x235866(0x50f1)],[0x1,_0x235866(0x1dc7)],[0x2,_0x235866(0x3c7c)],[0x0,_0x235866(0x41ee)],[0x0,_0x235866(0xdf5)],[0x2,_0x235866(0x4cd3)],[0x0,_0x235866(0x2c82)],[0x1,'ℯ'],[0x0,_0x235866(0xa33)],[0x0,_0x235866(0x14ca)],[0x1,_0x235866(0x4cd)],[0x0,_0x235866(0x13db)],[0x0,_0x235866(0x42df)],[0x0,_0x235866(0x118f)],[0x0,'ℷ'],[0x0,_0x235866(0x34db)],[0xc,_0x235866(0x1d78)],[0x0,_0x235866(0x1654)],[0x0,_0x235866(0x198a)],[0x0,'ⅈ'],[0xa,_0x235866(0x16eb)],[0x0,_0x235866(0x4d09)],[0x0,_0x235866(0x2425)],[0x0,_0x235866(0x22d7)],[0x0,_0x235866(0x2553)],[0x0,_0x235866(0x2052)],[0x0,'⅙'],[0x0,_0x235866(0x44a1)],[0x0,_0x235866(0x2384)],[0x0,'⅜'],[0x0,_0x235866(0x2b7d)],[0x0,_0x235866(0xa0f)],[0x31,_0x235866(0x512b)],[0x0,'↑'],[0x0,'→'],[0x0,_0x235866(0x4436)],[0x0,'↔'],[0x0,_0x235866(0x45f7)],[0x0,_0x235866(0x478e)],[0x0,_0x235866(0x35cd)],[0x0,_0x235866(0x21a2)],[0x0,_0x235866(0x50d1)],[0x0,_0x235866(0x27a1)],[0x0,'↛'],[0x1,{'v':'↝','n':0x338,'o':_0x235866(0xad2)}],[0x0,_0x235866(0x6e9)],[0x0,_0x235866(0x46fe)],[0x0,_0x235866(0x2d23)],[0x0,'↡'],[0x0,_0x235866(0xc72)],[0x0,_0x235866(0x4c4a)],[0x0,'↤'],[0x0,_0x235866(0x446d)],[0x0,_0x235866(0x393)],[0x0,'↧'],[0x1,_0x235866(0x2154)],[0x0,_0x235866(0x45f1)],[0x0,_0x235866(0x98e)],[0x0,_0x235866(0x1b42)],[0x0,'↭'],[0x0,'↮'],[0x1,'↰'],[0x0,_0x235866(0x2a6f)],[0x0,_0x235866(0x3f07)],[0x0,_0x235866(0x620)],[0x1,_0x235866(0x3d3a)],[0x0,_0x235866(0x3c5c)],[0x0,_0x235866(0x2d01)],[0x2,'↺'],[0x0,_0x235866(0x36d)],[0x0,_0x235866(0x4f46)],[0x0,_0x235866(0x4911)],[0x0,_0x235866(0xadc)],[0x0,_0x235866(0x219)],[0x0,_0x235866(0x41f5)],[0x0,'⇁'],[0x0,_0x235866(0x4a33)],[0x0,_0x235866(0x4348)],[0x0,_0x235866(0x29fc)],[0x0,_0x235866(0x2a4a)],[0x0,_0x235866(0x483d)],[0x0,_0x235866(0x915)],[0x0,_0x235866(0x1275)],[0x0,'⇉'],[0x0,_0x235866(0x3332)],[0x0,_0x235866(0x474d)],[0x0,_0x235866(0x2023)],[0x0,'⇍'],[0x0,_0x235866(0x2b18)],[0x0,_0x235866(0x1669)],[0x0,'⇐'],[0x0,'⇑'],[0x0,_0x235866(0xbe)],[0x0,'⇓'],[0x0,_0x235866(0x4668)],[0x0,_0x235866(0x2226)],[0x0,_0x235866(0x13a0)],[0x0,'⇗'],[0x0,_0x235866(0x3064)],[0x0,'⇙'],[0x0,_0x235866(0x395d)],[0x0,_0x235866(0x4494)],[0x1,_0x235866(0x3b5c)],[0x6,_0x235866(0x3bf7)],[0x0,_0x235866(0x41ca)],[0xf,_0x235866(0x1f59)],[0x7,_0x235866(0x4f59)],[0x0,_0x235866(0x10f)],[0x0,'⇿'],[0x0,_0x235866(0x844)],[0x0,_0x235866(0x643)],[0x0,{'v':_0x235866(0xf45),'n':0x338,'o':_0x235866(0x3cd3)}],[0x0,'∃'],[0x0,_0x235866(0x2010)],[0x0,_0x235866(0x432e)],[0x1,_0x235866(0x4c67)],[0x0,_0x235866(0x489a)],[0x0,_0x235866(0x5df)],[0x1,'∋'],[0x0,'∌'],[0x2,'∏'],[0x0,_0x235866(0x4e7d)],[0x0,_0x235866(0x17c3)],[0x0,_0x235866(0x25a8)],[0x0,_0x235866(0x45a8)],[0x0,'∔'],[0x1,_0x235866(0x826)],[0x0,_0x235866(0x2e26)],[0x0,'∘'],[0x1,'√'],[0x2,_0x235866(0x2775)],[0x0,_0x235866(0x43e9)],[0x0,_0x235866(0x4acf)],[0x0,{'v':'∠','n':0x20d2,'o':_0x235866(0x4a23)}],[0x0,_0x235866(0x3f14)],[0x0,_0x235866(0x7cc)],[0x0,'∣'],[0x0,_0x235866(0x2242)],[0x0,_0x235866(0xcc5)],[0x0,'∦'],[0x0,_0x235866(0x67d)],[0x0,_0x235866(0x3785)],[0x0,{'v':_0x235866(0x4b37),'n':0xfe00,'o':'∩︀'}],[0x0,{'v':'∪','n':0xfe00,'o':_0x235866(0x42f1)}],[0x0,_0x235866(0x139a)],[0x0,_0x235866(0x5112)],[0x0,'∭'],[0x0,_0x235866(0x1102)],[0x0,_0x235866(0x1264)],[0x0,'∰'],[0x0,_0x235866(0x20c)],[0x0,_0x235866(0x4f5f)],[0x0,_0x235866(0x95e)],[0x0,_0x235866(0x491d)],[0x0,'∵'],[0x0,_0x235866(0x3fdf)],[0x0,_0x235866(0x3977)],[0x0,_0x235866(0x354e)],[0x1,_0x235866(0x5047)],[0x0,_0x235866(0x303a)],[0x0,{'v':_0x235866(0x5082),'n':0x20d2,'o':_0x235866(0x216e)}],[0x0,{'v':'∽','n':0x331,'o':_0x235866(0x4cb9)}],[0x0,{'v':_0x235866(0x2751),'n':0x333,'o':_0x235866(0xefd)}],[0x0,_0x235866(0x98d)],[0x0,_0x235866(0x2b30)],[0x0,_0x235866(0x1d10)],[0x0,{'v':_0x235866(0x1f4b),'n':0x338,'o':_0x235866(0x46ad)}],[0x0,_0x235866(0x19fe)],[0x0,_0x235866(0x19b3)],[0x0,_0x235866(0x3582)],[0x0,_0x235866(0xd05)],[0x0,_0x235866(0x1080)],[0x0,'≈'],[0x0,_0x235866(0x1de2)],[0x0,'≊'],[0x0,{'v':_0x235866(0x4c88),'n':0x338,'o':_0x235866(0x47a0)}],[0x0,'≌'],[0x0,{'v':_0x235866(0x2a3d),'n':0x20d2,'o':_0x235866(0x2cb4)}],[0x0,{'v':'≎','n':0x338,'o':_0x235866(0x4859)}],[0x0,{'v':_0x235866(0x501e),'n':0x338,'o':_0x235866(0x3689)}],[0x0,{'v':_0x235866(0x4f4b),'n':0x338,'o':_0x235866(0x1bf7)}],[0x0,'≑'],[0x0,'≒'],[0x0,_0x235866(0xc0b)],[0x0,_0x235866(0x753)],[0x0,_0x235866(0x311a)],[0x0,_0x235866(0x47be)],[0x0,_0x235866(0xec)],[0x1,'≙'],[0x0,_0x235866(0x4108)],[0x1,_0x235866(0x41d9)],[0x2,_0x235866(0x14e0)],[0x0,_0x235866(0x2159)],[0x0,{'v':_0x235866(0xa65),'n':0x20e5,'o':_0x235866(0x34b)}],[0x0,'≢'],[0x1,{'v':_0x235866(0x4d7f),'n':0x20d2,'o':_0x235866(0x4203)}],[0x0,{'v':_0x235866(0x736),'n':0x20d2,'o':_0x235866(0x36c2)}],[0x0,{'v':_0x235866(0x1da),'n':0x338,'o':'≦̸'}],[0x0,{'v':_0x235866(0x318),'n':0x338,'o':_0x235866(0x307d)}],[0x0,{'v':_0x235866(0x296d),'n':0xfe00,'o':_0x235866(0x3e89)}],[0x0,{'v':_0x235866(0x2b86),'n':0xfe00,'o':_0x235866(0x4319)}],[0x0,{'v':_0x235866(0x45e6),'n':new Map(_0x3aa700([[0x338,_0x235866(0x2fb9)],[0x1d99,_0x235866(0xf64)]]))}],[0x0,{'v':_0x235866(0x2947),'n':new Map(_0x3aa700([[0x338,_0x235866(0x1d9e)],[0x1d99,'≫⃒']]))}],[0x0,_0x235866(0x3e11)],[0x0,_0x235866(0x2f0b)],[0x0,_0x235866(0x8b5)],[0x0,'≯'],[0x0,_0x235866(0x264f)],[0x0,_0x235866(0x3f81)],[0x0,'≲'],[0x0,_0x235866(0x12b3)],[0x0,_0x235866(0x4cad)],[0x0,_0x235866(0x5138)],[0x0,_0x235866(0x2277)],[0x0,_0x235866(0x3fc3)],[0x0,_0x235866(0x496e)],[0x0,'≹'],[0x0,_0x235866(0x4f6f)],[0x0,_0x235866(0x2641)],[0x0,_0x235866(0x4b89)],[0x0,_0x235866(0x43f6)],[0x0,_0x235866(0x1f8c)],[0x0,{'v':_0x235866(0x5151),'n':0x338,'o':_0x235866(0x2b6b)}],[0x0,_0x235866(0x3616)],[0x0,_0x235866(0x2e94)],[0x0,{'v':_0x235866(0x2712),'n':0x20d2,'o':_0x235866(0x986)}],[0x0,{'v':_0x235866(0x4d85),'n':0x20d2,'o':_0x235866(0x4588)}],[0x0,'⊄'],[0x0,_0x235866(0x2ff1)],[0x0,'⊆'],[0x0,'⊇'],[0x0,_0x235866(0x1f79)],[0x0,_0x235866(0x3fc)],[0x0,{'v':_0x235866(0x4c3f),'n':0xfe00,'o':_0x235866(0x996)}],[0x0,{'v':_0x235866(0x40b2),'n':0xfe00,'o':_0x235866(0x29b1)}],[0x1,_0x235866(0x1c9b)],[0x0,_0x235866(0x29e6)],[0x0,{'v':'⊏','n':0x338,'o':'⊏̸'}],[0x0,{'v':_0x235866(0x3830),'n':0x338,'o':_0x235866(0xac8)}],[0x0,_0x235866(0x1d9c)],[0x0,_0x235866(0x11f9)],[0x0,{'v':_0x235866(0x4b3b),'n':0xfe00,'o':_0x235866(0x357e)}],[0x0,{'v':'⊔','n':0xfe00,'o':'⊔︀'}],[0x0,_0x235866(0x4d87)],[0x0,_0x235866(0x402b)],[0x0,_0x235866(0x4479)],[0x0,_0x235866(0x3529)],[0x0,_0x235866(0x2cd1)],[0x0,'⊚'],[0x0,_0x235866(0x3adc)],[0x1,'⊝'],[0x0,_0x235866(0x1fef)],[0x0,_0x235866(0x2953)],[0x0,_0x235866(0x4d5a)],[0x0,_0x235866(0x4224)],[0x0,_0x235866(0x3b19)],[0x0,'⊣'],[0x0,'⊤'],[0x0,'⊥'],[0x1,'⊧'],[0x0,_0x235866(0x527)],[0x0,_0x235866(0x1189)],[0x0,_0x235866(0x3c66)],[0x0,_0x235866(0x2e88)],[0x0,_0x235866(0x2df1)],[0x0,_0x235866(0x4f39)],[0x0,_0x235866(0x4409)],[0x0,_0x235866(0x2723)],[0x0,_0x235866(0x1e79)],[0x1,_0x235866(0x511e)],[0x0,_0x235866(0x2399)],[0x0,{'v':_0x235866(0x25c),'n':0x20d2,'o':'⊴⃒'}],[0x0,{'v':_0x235866(0x33c7),'n':0x20d2,'o':_0x235866(0x4780)}],[0x0,_0x235866(0x13dd)],[0x0,_0x235866(0x38a7)],[0x0,_0x235866(0x1166)],[0x0,_0x235866(0x2fd5)],[0x0,_0x235866(0x1ad9)],[0x0,_0x235866(0x4151)],[0x1,_0x235866(0x136d)],[0x0,_0x235866(0x3ae1)],[0x0,_0x235866(0x4167)],[0x0,_0x235866(0x2931)],[0x0,_0x235866(0x48b4)],[0x0,_0x235866(0x33e0)],[0x0,_0x235866(0x2b32)],[0x0,'⋄'],[0x0,_0x235866(0x4011)],[0x0,_0x235866(0x2719)],[0x0,_0x235866(0x4892)],[0x0,_0x235866(0x1c35)],[0x0,_0x235866(0x3315)],[0x0,_0x235866(0x1f82)],[0x0,_0x235866(0x8db)],[0x0,_0x235866(0xb62)],[0x0,_0x235866(0xb56)],[0x0,_0x235866(0x1108)],[0x0,_0x235866(0xa8b)],[0x0,_0x235866(0x2ee5)],[0x0,_0x235866(0x1fe3)],[0x0,'⋒'],[0x0,_0x235866(0x4d9c)],[0x0,_0x235866(0x1464)],[0x0,_0x235866(0x4e58)],[0x0,_0x235866(0x1d93)],[0x0,'⋗'],[0x0,{'v':_0x235866(0x378a),'n':0x338,'o':_0x235866(0x4991)}],[0x0,{'v':'⋙','n':0x338,'o':_0x235866(0x612)}],[0x0,{'v':_0x235866(0x7dc),'n':0xfe00,'o':_0x235866(0x3aa9)}],[0x0,{'v':'⋛','n':0xfe00,'o':_0x235866(0x28dc)}],[0x2,_0x235866(0xb27)],[0x0,_0x235866(0x2e59)],[0x0,'⋠'],[0x0,'⋡'],[0x0,_0x235866(0x1a35)],[0x0,_0x235866(0x22dd)],[0x2,'⋦'],[0x0,_0x235866(0x6a4)],[0x0,_0x235866(0x68f)],[0x0,'⋩'],[0x0,_0x235866(0x218a)],[0x0,_0x235866(0x28f3)],[0x0,_0x235866(0x3c50)],[0x0,_0x235866(0x4eb6)],[0x0,_0x235866(0x9c4)],[0x0,_0x235866(0x38bf)],[0x0,_0x235866(0x35d8)],[0x0,_0x235866(0x4c2a)],[0x0,'⋲'],[0x0,_0x235866(0x34dc)],[0x0,_0x235866(0x3973)],[0x0,{'v':'⋵','n':0x338,'o':_0x235866(0x1da7)}],[0x0,_0x235866(0x3e1b)],[0x0,_0x235866(0x41ab)],[0x1,{'v':_0x235866(0x1a92),'n':0x338,'o':_0x235866(0x4170)}],[0x0,_0x235866(0x29f3)],[0x0,_0x235866(0x1f4f)],[0x0,_0x235866(0x316b)],[0x0,_0x235866(0x27bc)],[0x0,_0x235866(0x33d0)],[0x6,'⌅'],[0x0,_0x235866(0x13ef)],[0x1,_0x235866(0x4d42)],[0x0,'⌉'],[0x0,_0x235866(0xac3)],[0x0,'⌋'],[0x0,_0x235866(0x2d3c)],[0x0,_0x235866(0x2f6b)],[0x0,_0x235866(0x4301)],[0x0,_0x235866(0x22c5)],[0x0,_0x235866(0x48d1)],[0x1,_0x235866(0x1bfe)],[0x0,_0x235866(0x2174)],[0x1,_0x235866(0x585)],[0x0,_0x235866(0x29d5)],[0x5,_0x235866(0x3ca6)],[0x0,_0x235866(0x1082)],[0x0,_0x235866(0x4680)],[0x0,_0x235866(0x4f0c)],[0x2,_0x235866(0x1d29)],[0x0,_0x235866(0x46bb)],[0x9,_0x235866(0x4af)],[0x0,'⌮'],[0x7,_0x235866(0x3185)],[0x6,_0x235866(0x48a3)],[0x1,_0x235866(0x37ce)],[0x3c,'⍼'],[0x33,'⎰'],[0x0,_0x235866(0x50d9)],[0x2,_0x235866(0xab)],[0x0,_0x235866(0x3fa2)],[0x0,'⎶'],[0x25,_0x235866(0x1f7f)],[0x0,_0x235866(0x46c7)],[0x0,_0x235866(0x4322)],[0x0,_0x235866(0x2181)],[0x2,_0x235866(0x2231)],[0x4,_0x235866(0x2bd5)],[0x3b,_0x235866(0x2bf1)],[0xa4,_0x235866(0xf5c)],[0x37,_0x235866(0x1eee)],[0x1,_0x235866(0x3b4b)],[0x9,'┌'],[0x3,_0x235866(0x41d8)],[0x3,_0x235866(0x4e10)],[0x3,'┘'],[0x3,_0x235866(0x2118)],[0x7,_0x235866(0x21f9)],[0x7,'┬'],[0x7,'┴'],[0x7,_0x235866(0x138b)],[0x13,'═'],[0x0,_0x235866(0x931)],[0x0,_0x235866(0x1cfd)],[0x0,_0x235866(0x4018)],[0x0,'╔'],[0x0,_0x235866(0x255f)],[0x0,_0x235866(0x3551)],[0x0,_0x235866(0xe0e)],[0x0,_0x235866(0x1d49)],[0x0,_0x235866(0x2efd)],[0x0,'╚'],[0x0,_0x235866(0xbe3)],[0x0,_0x235866(0x282f)],[0x0,_0x235866(0x1b33)],[0x0,'╞'],[0x0,'╟'],[0x0,_0x235866(0x474b)],[0x0,_0x235866(0x490)],[0x0,_0x235866(0x24c5)],[0x0,_0x235866(0x33ca)],[0x0,'╤'],[0x0,_0x235866(0x4cf1)],[0x0,'╦'],[0x0,_0x235866(0x4881)],[0x0,_0x235866(0x4f53)],[0x0,'╩'],[0x0,_0x235866(0x25d4)],[0x0,'╫'],[0x0,_0x235866(0x36b)],[0x13,_0x235866(0x5f8)],[0x3,'▄'],[0x3,'█'],[0x8,_0x235866(0x3415)],[0x0,_0x235866(0x17c2)],[0x0,'▓'],[0xd,_0x235866(0x8ea)],[0x8,_0x235866(0x27e2)],[0x0,_0x235866(0x2f02)],[0x1,_0x235866(0x16a)],[0x0,'▮'],[0x2,_0x235866(0x36d8)],[0x1,_0x235866(0x21b)],[0x0,_0x235866(0x1b49)],[0x0,_0x235866(0x49da)],[0x2,_0x235866(0x3298)],[0x0,_0x235866(0x139e)],[0x3,_0x235866(0x2f68)],[0x0,_0x235866(0x494e)],[0x0,_0x235866(0x1812)],[0x2,_0x235866(0x409)],[0x0,_0x235866(0x2b2e)],[0x6,_0x235866(0x3df2)],[0x0,_0x235866(0x2b37)],[0x20,_0x235866(0x5f3)],[0x2,_0x235866(0x1448)],[0x8,_0x235866(0x2f5)],[0x0,_0x235866(0x4bc8)],[0x0,_0x235866(0x2737)],[0x0,_0x235866(0x3f74)],[0x0,_0x235866(0x1d04)],[0x8,'★'],[0x0,_0x235866(0x21b2)],[0x7,_0x235866(0x73c)],[0x31,_0x235866(0x2178)],[0x1,'♂'],[0x1d,_0x235866(0x461c)],[0x2,'♣'],[0x1,_0x235866(0x2d1b)],[0x0,_0x235866(0x215)],[0x3,_0x235866(0x36c1)],[0x2,_0x235866(0x1ac7)],[0x0,'♮'],[0x0,_0x235866(0x1c62)],[0xa3,_0x235866(0x2063)],[0x3,'✗'],[0x8,'✠'],[0x15,'✶'],[0x21,_0x235866(0x2fe)],[0x19,_0x235866(0x235)],[0x0,_0x235866(0x4d99)],[0x54,'⟈'],[0x0,'⟉'],[0x1c,'⟦'],[0x0,_0x235866(0x27b6)],[0x0,_0x235866(0x2ffd)],[0x0,_0x235866(0x28eb)],[0x0,_0x235866(0x30e1)],[0x0,_0x235866(0xa63)],[0x0,_0x235866(0x26e)],[0x0,_0x235866(0x6b0)],[0x7,_0x235866(0x3014)],[0x0,_0x235866(0x15b6)],[0x0,'⟷'],[0x0,_0x235866(0xdd3)],[0x0,_0x235866(0x28e3)],[0x0,'⟺'],[0x1,_0x235866(0x31df)],[0x2,_0x235866(0x5139)],[0x102,_0x235866(0x4b10)],[0x0,_0x235866(0x2f97)],[0x0,_0x235866(0x3dce)],[0x0,'⤅'],[0x6,_0x235866(0x41f)],[0x0,'⤍'],[0x0,_0x235866(0x30fb)],[0x0,_0x235866(0x3fec)],[0x0,_0x235866(0xcfa)],[0x0,_0x235866(0x3a7c)],[0x0,_0x235866(0x3c4b)],[0x0,_0x235866(0x2814)],[0x2,_0x235866(0x2274)],[0x2,_0x235866(0x38a8)],[0x0,_0x235866(0x2567)],[0x0,'⤛'],[0x0,_0x235866(0x17fa)],[0x0,'⤝'],[0x0,_0x235866(0x1499)],[0x0,_0x235866(0x1faa)],[0x0,_0x235866(0x23b2)],[0x2,'⤣'],[0x0,_0x235866(0x47a6)],[0x0,'⤥'],[0x0,_0x235866(0x7ea)],[0x0,_0x235866(0x104c)],[0x0,_0x235866(0x3a1)],[0x0,_0x235866(0x3930)],[0x0,_0x235866(0x93d)],[0x8,{'v':'⤳','n':0x338,'o':'⤳̸'}],[0x1,_0x235866(0xae1)],[0x0,_0x235866(0x3821)],[0x0,_0x235866(0x3b24)],[0x0,'⤸'],[0x0,'⤹'],[0x2,'⤼'],[0x0,_0x235866(0x426c)],[0x7,_0x235866(0x31c7)],[0x2,_0x235866(0x394b)],[0x0,_0x235866(0xb11)],[0x0,_0x235866(0x42d7)],[0x0,_0x235866(0x2d83)],[0x2,'⥎'],[0x0,'⥏'],[0x0,_0x235866(0x27d0)],[0x0,_0x235866(0x3b63)],[0x0,_0x235866(0x4617)],[0x0,_0x235866(0x4a2b)],[0x0,_0x235866(0x1f1a)],[0x0,_0x235866(0x83e)],[0x0,_0x235866(0x31f3)],[0x0,_0x235866(0x1029)],[0x0,_0x235866(0xd67)],[0x0,_0x235866(0x4da7)],[0x0,_0x235866(0x19c)],[0x0,'⥛'],[0x0,'⥜'],[0x0,_0x235866(0x507c)],[0x0,_0x235866(0x27ff)],[0x0,_0x235866(0x819)],[0x0,'⥠'],[0x0,_0x235866(0x489b)],[0x0,'⥢'],[0x0,_0x235866(0xe0a)],[0x0,_0x235866(0x4e62)],[0x0,_0x235866(0x4569)],[0x0,_0x235866(0x3cab)],[0x0,'⥧'],[0x0,_0x235866(0x4dc7)],[0x0,_0x235866(0xfdb)],[0x0,'⥪'],[0x0,_0x235866(0xc7)],[0x0,_0x235866(0x4ef5)],[0x0,_0x235866(0x286f)],[0x0,_0x235866(0xeae)],[0x0,_0x235866(0x29db)],[0x0,_0x235866(0x213c)],[0x0,_0x235866(0x17e5)],[0x0,'⥲'],[0x0,_0x235866(0x30eb)],[0x0,_0x235866(0xb2f)],[0x0,_0x235866(0xe35)],[0x0,_0x235866(0x74c)],[0x1,'⥸'],[0x0,_0x235866(0x22c7)],[0x1,'⥻'],[0x0,_0x235866(0x12ed)],[0x0,_0x235866(0x50dc)],[0x0,_0x235866(0x503c)],[0x0,_0x235866(0x1d6e)],[0x5,_0x235866(0x415)],[0x0,_0x235866(0x3f7d)],[0x4,_0x235866(0x1ee)],[0x0,_0x235866(0x3172)],[0x0,_0x235866(0x2525)],[0x0,'⦎'],[0x0,_0x235866(0x3f0f)],[0x0,_0x235866(0x40aa)],[0x0,_0x235866(0x12ea)],[0x0,_0x235866(0x31c4)],[0x0,_0x235866(0x774)],[0x0,_0x235866(0x1f18)],[0x0,_0x235866(0x240)],[0x0,_0x235866(0x34a5)],[0x3,'⦚'],[0x1,_0x235866(0x377d)],[0x0,'⦝'],[0x6,_0x235866(0xa29)],[0x0,_0x235866(0x264e)],[0x0,_0x235866(0x5aa)],[0x0,'⦧'],[0x0,_0x235866(0x249d)],[0x0,_0x235866(0x1eb4)],[0x0,_0x235866(0x2a33)],[0x0,'⦫'],[0x0,_0x235866(0x10a2)],[0x0,'⦭'],[0x0,_0x235866(0x4620)],[0x0,_0x235866(0x49b9)],[0x0,_0x235866(0x3f05)],[0x0,_0x235866(0x2cf5)],[0x0,_0x235866(0x3e15)],[0x0,'⦳'],[0x0,_0x235866(0xdb5)],[0x0,'⦵'],[0x0,_0x235866(0x1e55)],[0x0,_0x235866(0xcd)],[0x1,_0x235866(0x1156)],[0x1,_0x235866(0x1187)],[0x0,_0x235866(0x1fc)],[0x1,_0x235866(0x1f60)],[0x0,_0x235866(0x2b9f)],[0x0,_0x235866(0x3337)],[0x0,'⧁'],[0x0,_0x235866(0xa6)],[0x0,_0x235866(0x1b02)],[0x0,'⧄'],[0x0,_0x235866(0x512)],[0x3,_0x235866(0x3ffb)],[0x3,_0x235866(0x38b9)],[0x0,'⧎'],[0x0,{'v':_0x235866(0x2360),'n':0x338,'o':_0x235866(0x15f2)}],[0x0,{'v':_0x235866(0x47e9),'n':0x338,'o':_0x235866(0x1610)}],[0xb,_0x235866(0x141c)],[0x0,_0x235866(0x35af)],[0x0,_0x235866(0xea6)],[0x4,'⧣'],[0x0,_0x235866(0xff2)],[0x0,'⧥'],[0x5,_0x235866(0x2943)],[0x8,'⧴'],[0x1,'⧶'],[0x9,_0x235866(0x4cf6)],[0x0,_0x235866(0x4d37)],[0x0,_0x235866(0x1a2d)],[0x1,_0x235866(0x1543)],[0x1,_0x235866(0x3cf2)],[0x5,_0x235866(0x3d21)],[0x0,_0x235866(0x30e0)],[0x2,_0x235866(0x1f03)],[0x0,_0x235866(0x2ae5)],[0x0,_0x235866(0x29fd)],[0x0,_0x235866(0x1632)],[0x0,'⨔'],[0x0,_0x235866(0x6fd)],[0x0,_0x235866(0x1aaf)],[0x0,_0x235866(0x384d)],[0xa,_0x235866(0x36c7)],[0x0,_0x235866(0x24fc)],[0x0,_0x235866(0x38c7)],[0x0,_0x235866(0x3945)],[0x0,_0x235866(0x2e08)],[0x0,'⨧'],[0x1,_0x235866(0x3b60)],[0x0,_0x235866(0x4424)],[0x2,_0x235866(0x4787)],[0x0,_0x235866(0x2b1)],[0x0,_0x235866(0x428c)],[0x0,_0x235866(0x4fb8)],[0x0,'⨱'],[0x1,'⨳'],[0x0,_0x235866(0x1696)],[0x0,_0x235866(0x4c9f)],[0x0,_0x235866(0x3826)],[0x0,_0x235866(0x28ca)],[0x0,_0x235866(0x137b)],[0x0,'⨹'],[0x0,'⨺'],[0x0,_0x235866(0x256)],[0x0,'⨼'],[0x2,_0x235866(0x304c)],[0x0,'⩀'],[0x1,_0x235866(0x48fe)],[0x0,_0x235866(0x1705)],[0x0,_0x235866(0xc70)],[0x0,_0x235866(0x2054)],[0x0,_0x235866(0x46cb)],[0x0,_0x235866(0x17a3)],[0x0,'⩈'],[0x0,_0x235866(0x3be4)],[0x0,_0x235866(0x39b2)],[0x0,_0x235866(0x1f80)],[0x0,_0x235866(0xf2a)],[0x0,_0x235866(0xd7f)],[0x2,'⩐'],[0x2,_0x235866(0xf71)],[0x0,'⩔'],[0x0,_0x235866(0x4269)],[0x0,_0x235866(0x1889)],[0x0,'⩗'],[0x0,'⩘'],[0x1,_0x235866(0x13be)],[0x0,_0x235866(0x1d57)],[0x0,_0x235866(0x1b21)],[0x0,_0x235866(0x4c6e)],[0x1,_0x235866(0x349d)],[0x6,_0x235866(0x4bbd)],[0x3,'⩪'],[0x2,{'v':'⩭','n':0x338,'o':'⩭̸'}],[0x0,_0x235866(0x3ee7)],[0x0,_0x235866(0x5076)],[0x0,{'v':_0x235866(0x19aa),'n':0x338,'o':_0x235866(0x1a29)}],[0x0,'⩱'],[0x0,_0x235866(0x57b)],[0x0,_0x235866(0x3c7d)],[0x0,_0x235866(0x495d)],[0x0,_0x235866(0x4813)],[0x1,_0x235866(0xe02)],[0x0,'⩸'],[0x0,_0x235866(0x1315)],[0x0,_0x235866(0x1234)],[0x0,_0x235866(0x3c70)],[0x0,_0x235866(0x41e9)],[0x0,{'v':'⩽','n':0x338,'o':_0x235866(0xf92)}],[0x0,{'v':_0x235866(0x1b9),'n':0x338,'o':_0x235866(0x316c)}],[0x0,_0x235866(0x148c)],[0x0,_0x235866(0x350b)],[0x0,'⪁'],[0x0,_0x235866(0x9c9)],[0x0,_0x235866(0x22e)],[0x0,'⪄'],[0x0,_0x235866(0x469c)],[0x0,_0x235866(0x1793)],[0x0,_0x235866(0xf20)],[0x0,_0x235866(0x4ac8)],[0x0,_0x235866(0xf36)],[0x0,_0x235866(0xb06)],[0x0,'⪋'],[0x0,_0x235866(0x32f6)],[0x0,_0x235866(0x46c2)],[0x0,_0x235866(0x3ba2)],[0x0,_0x235866(0x42a1)],[0x0,_0x235866(0x1bfd)],[0x0,_0x235866(0x72b)],[0x0,_0x235866(0x57c)],[0x0,'⪓'],[0x0,_0x235866(0x274b)],[0x0,_0x235866(0x648)],[0x0,'⪖'],[0x0,'⪗'],[0x0,'⪘'],[0x0,_0x235866(0x21d1)],[0x0,'⪚'],[0x2,_0x235866(0x2086)],[0x0,_0x235866(0x5051)],[0x0,'⪟'],[0x0,_0x235866(0x461e)],[0x0,{'v':_0x235866(0x4c53),'n':0x338,'o':_0x235866(0xb8b)}],[0x0,{'v':_0x235866(0x2db4),'n':0x338,'o':'⪢̸'}],[0x1,'⪤'],[0x0,_0x235866(0xb4d)],[0x0,_0x235866(0x1c40)],[0x0,'⪧'],[0x0,_0x235866(0x7d2)],[0x0,'⪩'],[0x0,'⪪'],[0x0,_0x235866(0x65b)],[0x0,{'v':_0x235866(0x4429),'n':0xfe00,'o':_0x235866(0x1f43)}],[0x0,{'v':'⪭','n':0xfe00,'o':_0x235866(0x4e28)}],[0x0,_0x235866(0x3e68)],[0x0,{'v':_0x235866(0x98a),'n':0x338,'o':_0x235866(0x2e17)}],[0x0,{'v':_0x235866(0x2413),'n':0x338,'o':'⪰̸'}],[0x2,_0x235866(0x2449)],[0x0,_0x235866(0x3e7f)],[0x0,_0x235866(0x3928)],[0x0,_0x235866(0x4d50)],[0x0,'⪷'],[0x0,_0x235866(0x2e93)],[0x0,_0x235866(0x27cf)],[0x0,_0x235866(0x3144)],[0x0,'⪻'],[0x0,_0x235866(0x128b)],[0x0,_0x235866(0x4e30)],[0x0,'⪾'],[0x0,_0x235866(0x4d22)],[0x0,'⫀'],[0x0,'⫁'],[0x0,_0x235866(0x2dbe)],[0x0,_0x235866(0xc87)],[0x0,_0x235866(0x1192)],[0x0,{'v':_0x235866(0x3f64),'n':0x338,'o':_0x235866(0x1e08)}],[0x0,{'v':'⫆','n':0x338,'o':_0x235866(0x37ab)}],[0x0,_0x235866(0x1b55)],[0x0,'⫈'],[0x2,{'v':_0x235866(0xffe),'n':0xfe00,'o':_0x235866(0xa6a)}],[0x0,{'v':_0x235866(0x1850),'n':0xfe00,'o':'⫌︀'}],[0x2,_0x235866(0x11d2)],[0x0,'⫐'],[0x0,_0x235866(0x2858)],[0x0,'⫒'],[0x0,_0x235866(0x558)],[0x0,_0x235866(0x2864)],[0x0,_0x235866(0x3e37)],[0x0,_0x235866(0x28c7)],[0x0,'⫗'],[0x0,_0x235866(0x2a97)],[0x0,_0x235866(0x11d5)],[0x0,'⫚'],[0x0,_0x235866(0x3137)],[0x8,'⫤'],[0x1,'⫦'],[0x0,_0x235866(0x4667)],[0x0,'⫨'],[0x0,_0x235866(0x3c5d)],[0x1,_0x235866(0x1bd3)],[0x0,'⫬'],[0x0,_0x235866(0x205f)],[0x0,_0x235866(0x2d6c)],[0x0,_0x235866(0x1c07)],[0x0,_0x235866(0x42f9)],[0x0,_0x235866(0x2986)],[0x0,_0x235866(0x38a0)],[0x0,_0x235866(0x26b8)],[0x9,{'v':_0x235866(0x438e),'n':0x20e5,'o':_0x235866(0x4caa)}],[0xad37,{'n':new Map(_0x3aa700([[0xdc9c,_0x235866(0x3f68)],[0x1,'𝒞'],[0x0,'𝒟'],[0x2,'𝒢'],[0x2,_0x235866(0x46bc)],[0x0,_0x235866(0x2fad)],[0x2,_0x235866(0x284)],[0x0,_0x235866(0x1a4a)],[0x0,_0x235866(0x411)],[0x0,_0x235866(0x4781)],[0x1,_0x235866(0xe0b)],[0x0,'𝒯'],[0x0,_0x235866(0x34f6)],[0x0,_0x235866(0xde0)],[0x0,'𝒲'],[0x0,_0x235866(0x3f10)],[0x0,'𝒴'],[0x0,_0x235866(0x489f)],[0x0,_0x235866(0x3986)],[0x0,_0x235866(0x4481)],[0x0,'𝒸'],[0x0,_0x235866(0x3503)],[0x1,_0x235866(0x24a5)],[0x1,'𝒽'],[0x0,_0x235866(0x4bd8)],[0x0,_0x235866(0x29a1)],[0x0,_0x235866(0x3a6a)],[0x0,'𝓁'],[0x0,'𝓂'],[0x0,_0x235866(0x339c)],[0x1,_0x235866(0x2c4b)],[0x0,_0x235866(0x466b)],[0x0,_0x235866(0x290c)],[0x0,_0x235866(0x4799)],[0x0,_0x235866(0x170)],[0x0,_0x235866(0x1a6a)],[0x0,'𝓋'],[0x0,_0x235866(0x426b)],[0x0,'𝓍'],[0x0,'𝓎'],[0x0,_0x235866(0x4ce3)],[0x34,'𝔄'],[0x0,_0x235866(0x4652)],[0x1,'𝔇'],[0x0,_0x235866(0x18ec)],[0x0,_0x235866(0x1564)],[0x0,'𝔊'],[0x2,_0x235866(0x1b70)],[0x0,_0x235866(0x4e1a)],[0x0,_0x235866(0x2e8f)],[0x0,_0x235866(0x54b)],[0x0,_0x235866(0x2ac2)],[0x0,'𝔒'],[0x0,_0x235866(0x3759)],[0x0,_0x235866(0x12b2)],[0x1,_0x235866(0x10ca)],[0x0,'𝔗'],[0x0,'𝔘'],[0x0,_0x235866(0x4eb4)],[0x0,_0x235866(0x432a)],[0x0,_0x235866(0x3b97)],[0x0,_0x235866(0x4b17)],[0x1,'𝔞'],[0x0,_0x235866(0x24c8)],[0x0,_0x235866(0x93b)],[0x0,_0x235866(0xa0e)],[0x0,_0x235866(0x4725)],[0x0,_0x235866(0x2046)],[0x0,_0x235866(0x4d9)],[0x0,'𝔥'],[0x0,'𝔦'],[0x0,_0x235866(0x45a1)],[0x0,_0x235866(0x391c)],[0x0,'𝔩'],[0x0,_0x235866(0x1add)],[0x0,_0x235866(0x3a9d)],[0x0,'𝔬'],[0x0,_0x235866(0x4bc5)],[0x0,_0x235866(0x2dcc)],[0x0,'𝔯'],[0x0,'𝔰'],[0x0,_0x235866(0x4e9f)],[0x0,_0x235866(0x693)],[0x0,_0x235866(0x49cb)],[0x0,_0x235866(0x21fb)],[0x0,_0x235866(0x1f0f)],[0x0,_0x235866(0x31de)],[0x0,_0x235866(0x652)],[0x0,'𝔸'],[0x0,_0x235866(0x493b)],[0x1,_0x235866(0x3beb)],[0x0,_0x235866(0x271c)],[0x0,'𝔽'],[0x0,'𝔾'],[0x1,_0x235866(0x1d6c)],[0x0,_0x235866(0x364e)],[0x0,_0x235866(0x4f1f)],[0x0,_0x235866(0x3e85)],[0x0,'𝕄'],[0x1,_0x235866(0x4b02)],[0x3,'𝕊'],[0x0,_0x235866(0x302f)],[0x0,'𝕌'],[0x0,_0x235866(0x333)],[0x0,_0x235866(0x182d)],[0x0,_0x235866(0x2b75)],[0x0,_0x235866(0xf78)],[0x1,_0x235866(0x247b)],[0x0,'𝕓'],[0x0,'𝕔'],[0x0,_0x235866(0x42b1)],[0x0,'𝕖'],[0x0,'𝕗'],[0x0,_0x235866(0x204a)],[0x0,_0x235866(0x255)],[0x0,_0x235866(0x8ff)],[0x0,_0x235866(0x1cb)],[0x0,'𝕜'],[0x0,_0x235866(0x12ee)],[0x0,'𝕞'],[0x0,_0x235866(0x2de2)],[0x0,'𝕠'],[0x0,'𝕡'],[0x0,_0x235866(0x2d77)],[0x0,'𝕣'],[0x0,_0x235866(0x17d8)],[0x0,_0x235866(0xf34)],[0x0,_0x235866(0x2890)],[0x0,_0x235866(0x44e7)],[0x0,_0x235866(0x3b76)],[0x0,_0x235866(0x27b4)],[0x0,'𝕪'],[0x0,_0x235866(0x1d69)]]))}],[0x22ca,'ff'],[0x0,_0x235866(0x137c)],[0x0,_0x235866(0x2e9)],[0x0,_0x235866(0x29a3)],[0x0,_0x235866(0x3e17)]]));const _0x5ab68b=new Map([[0x22,_0x235866(0x48cc)],[0x26,'&'],[0x27,'''],[0x3c,_0x235866(0x10a1)],[0x3e,'>']]);String[_0x235866(0x2b5c)][_0x235866(0x377a)];function _0x408d87(_0x53664a,_0x6ce976){return function(_0x372646){const _0x5621c8=a0_0x329b;let _0x43ee30,_0x52fda9=0x0,_0x3c5503='';for(;_0x43ee30=_0x53664a[_0x5621c8(0x3bbd)](_0x372646);)_0x52fda9!==_0x43ee30['index']&&(_0x3c5503+=_0x372646[_0x5621c8(0x3934)](_0x52fda9,_0x43ee30['index'])),_0x3c5503+=_0x6ce976[_0x5621c8(0x2685)](_0x43ee30[0x0][_0x5621c8(0x1806)](0x0)),_0x52fda9=_0x43ee30[_0x5621c8(0x1cf3)]+0x1;return _0x3c5503+_0x372646['substring'](_0x52fda9);};}_0x408d87(/[&<>'"]/g,_0x5ab68b),_0x408d87(/["&\u00A0]/g,new Map([[0x22,_0x235866(0x48cc)],[0x26,_0x235866(0x4924)],[0xa0,_0x235866(0x206e)]])),_0x408d87(/[&<>\u00A0]/g,new Map([[0x26,_0x235866(0x4924)],[0x3c,_0x235866(0x10a1)],[0x3e,_0x235866(0xc10)],[0xa0,_0x235866(0x206e)]]));var _0x5a78ae,_0x4e27f0;function _0x5c0232(_0x327f08){const _0x3d672b=_0x235866;return _0x3d672b(0x4afa)===function(_0x1f58a3){const _0x526b32=_0x3d672b;return Object['prototype'][_0x526b32(0x44de)]['call'](_0x1f58a3);}(_0x327f08);}!function(_0x3af611){const _0x19617c=_0x235866;_0x3af611[_0x3af611[_0x19617c(0x45a5)]=0x0]=_0x19617c(0x45a5),_0x3af611[_0x3af611[_0x19617c(0x413e)]=0x1]=_0x19617c(0x413e);}(_0x5a78ae||(_0x5a78ae={})),function(_0x1f7535){const _0x56cdfb=_0x235866;_0x1f7535[_0x1f7535['UTF8']=0x0]=_0x56cdfb(0x4121),_0x1f7535[_0x1f7535[_0x56cdfb(0x4b64)]=0x1]=_0x56cdfb(0x4b64),_0x1f7535[_0x1f7535['Extensive']=0x2]=_0x56cdfb(0x123),_0x1f7535[_0x1f7535[_0x56cdfb(0x3ba)]=0x3]='Attribute',_0x1f7535[_0x1f7535['Text']=0x4]='Text';}(_0x4e27f0||(_0x4e27f0={}));const _0x27435a=Object[_0x235866(0x2b5c)]['hasOwnProperty'];function _0x1ed68d(_0x186f59,_0x5b7cd7){const _0xc31ace=_0x235866;return _0x27435a[_0xc31ace(0x4c9d)](_0x186f59,_0x5b7cd7);}function _0x52dcf4(_0x3e4de8){const _0x2c10ef=_0x235866;return Array[_0x2c10ef(0x2b5c)][_0x2c10ef(0x428e)][_0x2c10ef(0x4c9d)](arguments,0x1)[_0x2c10ef(0x4854)](function(_0x4fe07a){const _0x35a8fa=_0x2c10ef;if(_0x4fe07a){if(_0x35a8fa(0x2b58)!=typeof _0x4fe07a)throw new TypeError(_0x4fe07a+_0x35a8fa(0xd0d));Object[_0x35a8fa(0x2f75)](_0x4fe07a)[_0x35a8fa(0x4854)](function(_0x136f74){_0x3e4de8[_0x136f74]=_0x4fe07a[_0x136f74];});}}),_0x3e4de8;}function _0x15a25c(_0x15eef4,_0x5d19d7,_0x3fe8cb){const _0x5c51a1=_0x235866;return[]['concat'](_0x15eef4['slice'](0x0,_0x5d19d7),_0x3fe8cb,_0x15eef4[_0x5c51a1(0x428e)](_0x5d19d7+0x1));}function _0x120e36(_0xdd769d){return!(_0xdd769d>=0xd800&&_0xdd769d<=0xdfff)&&(!(_0xdd769d>=0xfdd0&&_0xdd769d<=0xfdef)&&(!!(0xffff&~_0xdd769d&&0xfffe!=(0xffff&_0xdd769d))&&(!(_0xdd769d>=0x0&&_0xdd769d<=0x8)&&(0xb!==_0xdd769d&&(!(_0xdd769d>=0xe&&_0xdd769d<=0x1f)&&(!(_0xdd769d>=0x7f&&_0xdd769d<=0x9f)&&!(_0xdd769d>0x10ffff)))))));}function _0x153d17(_0x109939){const _0x7a29e8=_0x235866;if(_0x109939>0xffff){const _0x104d16=0xd800+((_0x109939-=0x10000)>>0xa),_0x33a3ed=0xdc00+(0x3ff&_0x109939);return String[_0x7a29e8(0xc78)](_0x104d16,_0x33a3ed);}return String[_0x7a29e8(0xc78)](_0x109939);}const _0x5543b5=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,_0xa1fa8a=new RegExp(_0x5543b5['source']+'|'+/&([a-z#][a-z0-9]{1,31});/gi['source'],'gi'),_0x1ea07c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function _0x53b45c(_0x32c992){const _0x3f1e0a=_0x235866;return _0x32c992[_0x3f1e0a(0x3458)]('\x5c')<0x0?_0x32c992:_0x32c992[_0x3f1e0a(0x1db7)](_0x5543b5,'$1');}function _0x5c9f16(_0x40a588){const _0x4c7da8=_0x235866;return _0x40a588['indexOf']('\x5c')<0x0&&_0x40a588['indexOf']('&')<0x0?_0x40a588:_0x40a588[_0x4c7da8(0x1db7)](_0xa1fa8a,function(_0x12cc53,_0x2eb497,_0x1fb2fc){return _0x2eb497||function(_0x3921ea,_0x1c0146){const _0x4e70c2=a0_0x329b;if(0x23===_0x1c0146['charCodeAt'](0x0)&&_0x1ea07c[_0x4e70c2(0x34c)](_0x1c0146)){const _0x397e8c='x'===_0x1c0146[0x1]['toLowerCase']()?parseInt(_0x1c0146[_0x4e70c2(0x428e)](0x2),0x10):parseInt(_0x1c0146[_0x4e70c2(0x428e)](0x1),0xa);return _0x120e36(_0x397e8c)?_0x153d17(_0x397e8c):_0x3921ea;}const _0x40e1b6=_0xc30b02(_0x3921ea);return _0x40e1b6!==_0x3921ea?_0x40e1b6:_0x3921ea;}(_0x12cc53,_0x1fb2fc);});}const _0x4d9200=/[&<>"]/,_0x239a23=/[&<>"]/g,_0x2f4104={'&':'&','<':_0x235866(0x10a1),'>':_0x235866(0xc10),'\x22':_0x235866(0x48cc)};function _0x3b3c08(_0x2953ab){return _0x2f4104[_0x2953ab];}function _0x3da7ca(_0x24e181){const _0x32f567=_0x235866;return _0x4d9200[_0x32f567(0x34c)](_0x24e181)?_0x24e181['replace'](_0x239a23,_0x3b3c08):_0x24e181;}const _0x8351ff=/[.?*+^$[\]\\(){}|-]/g;function _0x43c973(_0x4d11d6){const _0x230291=_0x235866;return _0x4d11d6[_0x230291(0x1db7)](_0x8351ff,'\x5c$&');}function _0x2578e9(_0x559537){switch(_0x559537){case 0x9:case 0x20:return!0x0;}return!0x1;}function _0x5c51c2(_0x450239){if(_0x450239>=0x2000&&_0x450239<=0x200a)return!0x0;switch(_0x450239){case 0x9:case 0xa:case 0xb:case 0xc:case 0xd:case 0x20:case 0xa0:case 0x1680:case 0x202f:case 0x205f:case 0x3000:return!0x0;}return!0x1;}function _0x258316(_0x3c91e8){return _0x311e0b['test'](_0x3c91e8);}function _0x593bb3(_0x3893a2){switch(_0x3893a2){case 0x21:case 0x22:case 0x23:case 0x24:case 0x25:case 0x26:case 0x27:case 0x28:case 0x29:case 0x2a:case 0x2b:case 0x2c:case 0x2d:case 0x2e:case 0x2f:case 0x3a:case 0x3b:case 0x3c:case 0x3d:case 0x3e:case 0x3f:case 0x40:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:case 0x60:case 0x7b:case 0x7c:case 0x7d:case 0x7e:return!0x0;default:return!0x1;}}function _0x479708(_0x4924f1){const _0x562e9b=_0x235866;return _0x4924f1=_0x4924f1[_0x562e9b(0x1d0e)]()['replace'](/\s+/g,'\x20'),'Ṿ'==='ẞ'[_0x562e9b(0x1a57)]()&&(_0x4924f1=_0x4924f1[_0x562e9b(0x1db7)](/ẞ/g,'ß')),_0x4924f1['toLowerCase']()[_0x562e9b(0x4447)]();}const _0x571623={'mdurl':_0x153de2,'ucmicro':_0xc407a7};function _0x336e45(_0x3b0440,_0x44cf46,_0x296db5){const _0x5be6f6=_0x235866;let _0xb3a066,_0x543ffb,_0x478b9e,_0x38a744;const _0x4923c4=_0x3b0440[_0x5be6f6(0x40d)],_0x3a7fb8=_0x3b0440[_0x5be6f6(0x44ff)];for(_0x3b0440[_0x5be6f6(0x44ff)]=_0x44cf46+0x1,_0xb3a066=0x1;_0x3b0440['pos']<_0x4923c4;){if(_0x478b9e=_0x3b0440[_0x5be6f6(0x1005)]['charCodeAt'](_0x3b0440[_0x5be6f6(0x44ff)]),0x5d===_0x478b9e&&(_0xb3a066--,0x0===_0xb3a066)){_0x543ffb=!0x0;break;}if(_0x38a744=_0x3b0440['pos'],_0x3b0440['md'][_0x5be6f6(0x50d2)][_0x5be6f6(0x1c8c)](_0x3b0440),0x5b===_0x478b9e){if(_0x38a744===_0x3b0440[_0x5be6f6(0x44ff)]-0x1)_0xb3a066++;else{if(_0x296db5)return _0x3b0440[_0x5be6f6(0x44ff)]=_0x3a7fb8,-0x1;}}}let _0x55c02b=-0x1;return _0x543ffb&&(_0x55c02b=_0x3b0440[_0x5be6f6(0x44ff)]),_0x3b0440[_0x5be6f6(0x44ff)]=_0x3a7fb8,_0x55c02b;}function _0x29dd82(_0x15b6c2,_0x4d70ce,_0x3b867d){const _0x6f40ca=_0x235866;let _0x30c674,_0x3946ae=_0x4d70ce;const _0x191f81={'ok':!0x1,'pos':0x0,'lines':0x0,'str':''};if(0x3c===_0x15b6c2[_0x6f40ca(0x1806)](_0x3946ae)){for(_0x3946ae++;_0x3946ae<_0x3b867d;){if(_0x30c674=_0x15b6c2[_0x6f40ca(0x1806)](_0x3946ae),0xa===_0x30c674)return _0x191f81;if(0x3c===_0x30c674)return _0x191f81;if(0x3e===_0x30c674)return _0x191f81['pos']=_0x3946ae+0x1,_0x191f81['str']=_0x5c9f16(_0x15b6c2[_0x6f40ca(0x428e)](_0x4d70ce+0x1,_0x3946ae)),_0x191f81['ok']=!0x0,_0x191f81;0x5c===_0x30c674&&_0x3946ae+0x1<_0x3b867d?_0x3946ae+=0x2:_0x3946ae++;}return _0x191f81;}let _0x54a1d8=0x0;for(;_0x3946ae<_0x3b867d&&(_0x30c674=_0x15b6c2[_0x6f40ca(0x1806)](_0x3946ae),0x20!==_0x30c674)&&!(_0x30c674<0x20||0x7f===_0x30c674);)if(0x5c===_0x30c674&&_0x3946ae+0x1<_0x3b867d){if(0x20===_0x15b6c2['charCodeAt'](_0x3946ae+0x1))break;_0x3946ae+=0x2;}else{if(0x28===_0x30c674&&(_0x54a1d8++,_0x54a1d8>0x20))return _0x191f81;if(0x29===_0x30c674){if(0x0===_0x54a1d8)break;_0x54a1d8--;}_0x3946ae++;}return _0x4d70ce===_0x3946ae||0x0!==_0x54a1d8||(_0x191f81['str']=_0x5c9f16(_0x15b6c2['slice'](_0x4d70ce,_0x3946ae)),_0x191f81[_0x6f40ca(0x44ff)]=_0x3946ae,_0x191f81['ok']=!0x0),_0x191f81;}function _0x5f1e4a(_0x52bb3a,_0x5cfbf2,_0xca0271){const _0x2bbe64=_0x235866;let _0x2680c7,_0x1c096e,_0x2ba2fd=0x0,_0x2d6d19=_0x5cfbf2;const _0xe7283d={'ok':!0x1,'pos':0x0,'lines':0x0,'str':''};if(_0x2d6d19>=_0xca0271)return _0xe7283d;if(_0x1c096e=_0x52bb3a[_0x2bbe64(0x1806)](_0x2d6d19),0x22!==_0x1c096e&&0x27!==_0x1c096e&&0x28!==_0x1c096e)return _0xe7283d;for(_0x2d6d19++,0x28===_0x1c096e&&(_0x1c096e=0x29);_0x2d6d19<_0xca0271;){if(_0x2680c7=_0x52bb3a['charCodeAt'](_0x2d6d19),_0x2680c7===_0x1c096e)return _0xe7283d[_0x2bbe64(0x44ff)]=_0x2d6d19+0x1,_0xe7283d[_0x2bbe64(0x33a3)]=_0x2ba2fd,_0xe7283d[_0x2bbe64(0x31ea)]=_0x5c9f16(_0x52bb3a['slice'](_0x5cfbf2+0x1,_0x2d6d19)),_0xe7283d['ok']=!0x0,_0xe7283d;if(0x28===_0x2680c7&&0x29===_0x1c096e)return _0xe7283d;0xa===_0x2680c7?_0x2ba2fd++:0x5c===_0x2680c7&&_0x2d6d19+0x1<_0xca0271&&(_0x2d6d19++,0xa===_0x52bb3a[_0x2bbe64(0x1806)](_0x2d6d19)&&_0x2ba2fd++),_0x2d6d19++;}return _0xe7283d;}const _0x3235a6={};function _0x5163c1(){const _0x4be013=_0x235866;this[_0x4be013(0x28bb)]=_0x52dcf4({},_0x3235a6);}_0x3235a6[_0x235866(0xa17)]=function(_0x8ff617,_0x1fc431,_0x3b3211,_0x3947b0,_0x27190f){const _0x2e7303=_0x235866,_0x369ddb=_0x8ff617[_0x1fc431];return _0x2e7303(0x1768)+_0x27190f[_0x2e7303(0x3de9)](_0x369ddb)+'>'+_0x3da7ca(_0x369ddb[_0x2e7303(0x498f)])+_0x2e7303(0x435c);},_0x3235a6[_0x235866(0x95d)]=function(_0x4670db,_0x34f8e4,_0x50db90,_0x3763c9,_0x5cd97e){const _0x5bfa3e=_0x235866,_0x3f2a92=_0x4670db[_0x34f8e4];return _0x5bfa3e(0x11d1)+_0x5cd97e[_0x5bfa3e(0x3de9)](_0x3f2a92)+_0x5bfa3e(0x1d8)+_0x3da7ca(_0x4670db[_0x34f8e4][_0x5bfa3e(0x498f)])+_0x5bfa3e(0x37b3);},_0x3235a6['fence']=function(_0x2d1420,_0x1cc57b,_0x4f789a,_0x2d0de4,_0x260170){const _0x171ac3=_0x235866,_0xfd2326=_0x2d1420[_0x1cc57b],_0x4a2b40=_0xfd2326[_0x171ac3(0x368d)]?_0x5c9f16(_0xfd2326[_0x171ac3(0x368d)])[_0x171ac3(0x1d0e)]():'';let _0x38ed2f,_0x43fc43='',_0x44778c='';if(_0x4a2b40){const _0x3700cc=_0x4a2b40[_0x171ac3(0x29d0)](/(\s+)/g);_0x43fc43=_0x3700cc[0x0],_0x44778c=_0x3700cc['slice'](0x2)[_0x171ac3(0x379c)]('');}if(_0x38ed2f=_0x4f789a[_0x171ac3(0x127b)]&&_0x4f789a[_0x171ac3(0x127b)](_0xfd2326[_0x171ac3(0x498f)],_0x43fc43,_0x44778c)||_0x3da7ca(_0xfd2326['content']),0x0===_0x38ed2f[_0x171ac3(0x3458)](_0x171ac3(0x11d1)))return _0x38ed2f+'\x0a';if(_0x4a2b40){const _0x4735f3=_0xfd2326[_0x171ac3(0x2886)]('class'),_0x3000e2=_0xfd2326[_0x171ac3(0x3d7f)]?_0xfd2326[_0x171ac3(0x3d7f)][_0x171ac3(0x428e)]():[];_0x4735f3<0x0?_0x3000e2[_0x171ac3(0x4131)](['class',_0x4f789a[_0x171ac3(0x3992)]+_0x43fc43]):(_0x3000e2[_0x4735f3]=_0x3000e2[_0x4735f3]['slice'](),_0x3000e2[_0x4735f3][0x1]+='\x20'+_0x4f789a[_0x171ac3(0x3992)]+_0x43fc43);const _0x57ec18={'attrs':_0x3000e2};return _0x171ac3(0x3f46)+_0x260170['renderAttrs'](_0x57ec18)+'>'+_0x38ed2f+_0x171ac3(0x37b3);}return _0x171ac3(0x3f46)+_0x260170[_0x171ac3(0x3de9)](_0xfd2326)+'>'+_0x38ed2f+_0x171ac3(0x37b3);},_0x3235a6['image']=function(_0x5f4aa4,_0x3f3334,_0x3c3d0a,_0x3bfe6c,_0x3be040){const _0x4dbf6b=_0x235866,_0x188795=_0x5f4aa4[_0x3f3334];return _0x188795[_0x4dbf6b(0x3d7f)][_0x188795[_0x4dbf6b(0x2886)](_0x4dbf6b(0x3bb4))][0x1]=_0x3be040[_0x4dbf6b(0x3216)](_0x188795[_0x4dbf6b(0x4538)],_0x3c3d0a,_0x3bfe6c),_0x3be040[_0x4dbf6b(0x4fe8)](_0x5f4aa4,_0x3f3334,_0x3c3d0a);},_0x3235a6[_0x235866(0x3909)]=function(_0x13c9f3,_0x31f540,_0x1f6ea3){const _0x2cd956=_0x235866;return _0x1f6ea3[_0x2cd956(0x4096)]?'\x0a':_0x2cd956(0x73b);},_0x3235a6[_0x235866(0x389e)]=function(_0x585930,_0x5e4ca5,_0x331446){const _0x394e96=_0x235866;return _0x331446[_0x394e96(0x3734)]?_0x331446[_0x394e96(0x4096)]?_0x394e96(0x44ec):_0x394e96(0x73b):'\x0a';},_0x3235a6['text']=function(_0x2ddca8,_0x1909bc){const _0x46a470=_0x235866;return _0x3da7ca(_0x2ddca8[_0x1909bc][_0x46a470(0x498f)]);},_0x3235a6[_0x235866(0x3de3)]=function(_0x562520,_0x33ca03){const _0x486c66=_0x235866;return _0x562520[_0x33ca03][_0x486c66(0x498f)];},_0x3235a6['html_inline']=function(_0x1221a8,_0xa7d8ec){const _0x50969a=_0x235866;return _0x1221a8[_0xa7d8ec][_0x50969a(0x498f)];},_0x5163c1['prototype'][_0x235866(0x3de9)]=function(_0xb27b01){const _0x5b7fec=_0x235866;let _0x24d436,_0x1db1a8,_0xdf8990;if(!_0xb27b01['attrs'])return'';for(_0xdf8990='',_0x24d436=0x0,_0x1db1a8=_0xb27b01[_0x5b7fec(0x3d7f)][_0x5b7fec(0x205b)];_0x24d436<_0x1db1a8;_0x24d436++)_0xdf8990+='\x20'+_0x3da7ca(_0xb27b01[_0x5b7fec(0x3d7f)][_0x24d436][0x0])+'=\x22'+_0x3da7ca(_0xb27b01[_0x5b7fec(0x3d7f)][_0x24d436][0x1])+'\x22';return _0xdf8990;},_0x5163c1[_0x235866(0x2b5c)][_0x235866(0x4fe8)]=function(_0x1a3fad,_0x43298b,_0x185907){const _0x3318f5=_0x235866,_0x548f1a=_0x1a3fad[_0x43298b];let _0x4cc873='';if(_0x548f1a[_0x3318f5(0x17f8)])return'';_0x548f1a[_0x3318f5(0x3eab)]&&-0x1!==_0x548f1a[_0x3318f5(0x47ee)]&&_0x43298b&&_0x1a3fad[_0x43298b-0x1][_0x3318f5(0x17f8)]&&(_0x4cc873+='\x0a'),_0x4cc873+=(-0x1===_0x548f1a[_0x3318f5(0x47ee)]?'\x0a':'>',_0x4cc873;},_0x5163c1[_0x235866(0x2b5c)]['renderInline']=function(_0x2a9238,_0x3c23df,_0x14081d){const _0x28affc=_0x235866;let _0x68740e='';const _0x2a32c1=this[_0x28affc(0x28bb)];for(let _0x1e00b9=0x0,_0x4b2a9f=_0x2a9238[_0x28affc(0x205b)];_0x1e00b9<_0x4b2a9f;_0x1e00b9++){const _0x2cc031=_0x2a9238[_0x1e00b9]['type'];void 0x0!==_0x2a32c1[_0x2cc031]?_0x68740e+=_0x2a32c1[_0x2cc031](_0x2a9238,_0x1e00b9,_0x3c23df,_0x14081d,this):_0x68740e+=this[_0x28affc(0x4fe8)](_0x2a9238,_0x1e00b9,_0x3c23df);}return _0x68740e;},_0x5163c1['prototype']['renderInlineAsText']=function(_0x4e40cd,_0x667ca7,_0x4b24a6){const _0x5cc946=_0x235866;let _0x346997='';for(let _0x5b1ee9=0x0,_0x1ba396=_0x4e40cd['length'];_0x5b1ee9<_0x1ba396;_0x5b1ee9++)switch(_0x4e40cd[_0x5b1ee9][_0x5cc946(0x70a)]){case'text':case'html_inline':case _0x5cc946(0x3de3):_0x346997+=_0x4e40cd[_0x5b1ee9][_0x5cc946(0x498f)];break;case _0x5cc946(0x1692):_0x346997+=this[_0x5cc946(0x3216)](_0x4e40cd[_0x5b1ee9][_0x5cc946(0x4538)],_0x667ca7,_0x4b24a6);break;case _0x5cc946(0x389e):case _0x5cc946(0x3909):_0x346997+='\x0a';}return _0x346997;},_0x5163c1['prototype'][_0x235866(0x4662)]=function(_0x3ea319,_0x56284c,_0x10359b){const _0x2442b4=_0x235866;let _0x9413ab='';const _0x2f5d6b=this[_0x2442b4(0x28bb)];for(let _0x506f12=0x0,_0x46c80f=_0x3ea319['length'];_0x506f12<_0x46c80f;_0x506f12++){const _0x2ee241=_0x3ea319[_0x506f12]['type'];_0x2442b4(0x50d2)===_0x2ee241?_0x9413ab+=this[_0x2442b4(0x166e)](_0x3ea319[_0x506f12][_0x2442b4(0x4538)],_0x56284c,_0x10359b):void 0x0!==_0x2f5d6b[_0x2ee241]?_0x9413ab+=_0x2f5d6b[_0x2ee241](_0x3ea319,_0x506f12,_0x56284c,_0x10359b,this):_0x9413ab+=this['renderToken'](_0x3ea319,_0x506f12,_0x56284c,_0x10359b);}return _0x9413ab;};const _0x5a7bf1=_0x5163c1;function _0x3874dd(){const _0x166d13=_0x235866;this[_0x166d13(0x3d8a)]=[],this[_0x166d13(0xd0a)]=null;}_0x3874dd[_0x235866(0x2b5c)][_0x235866(0x3958)]=function(_0xa2ef3d){const _0x52efb9=_0x235866;for(let _0x4c8e5c=0x0;_0x4c8e5c=0x0&&(_0x67db49=this[_0x454cb4(0x3d7f)][_0x81af07][0x1]),_0x67db49;},_0xcf3dfd[_0x235866(0x2b5c)][_0x235866(0x1188)]=function(_0x34cf30,_0x29c743){const _0x367683=_0x235866,_0x210275=this[_0x367683(0x2886)](_0x34cf30);_0x210275<0x0?this['attrPush']([_0x34cf30,_0x29c743]):this[_0x367683(0x3d7f)][_0x210275][0x1]=this['attrs'][_0x210275][0x1]+'\x20'+_0x29c743;};const _0x5a43f1=_0xcf3dfd;function _0xf2309c(_0x4f851d,_0x521776,_0x1f5cff){const _0x5e768e=_0x235866;this[_0x5e768e(0x1005)]=_0x4f851d,this[_0x5e768e(0x2f9e)]=_0x1f5cff,this['tokens']=[],this[_0x5e768e(0x141d)]=!0x1,this['md']=_0x521776;}_0xf2309c[_0x235866(0x2b5c)][_0x235866(0x1f7c)]=_0x5a43f1;const _0x4363ed=_0xf2309c,_0x340dda=/\r\n?|\n/g,_0x240883=/\0/g;function _0x4f5a62(_0x1fa5c1){const _0x586fe6=_0x235866;return/^<\/a\s*>/i[_0x586fe6(0x34c)](_0x1fa5c1);}const _0x2d7897=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,_0x5ed35d=/\((c|tm|r)\)/i,_0x276b5f=/\((c|tm|r)\)/gi,_0xfdac5a={'c':'©','r':'®','tm':'™'};function _0x507e9f(_0x832eac,_0x207dfc){const _0x2371fc=_0x235866;return _0xfdac5a[_0x207dfc[_0x2371fc(0x1a57)]()];}function _0x9e2e8e(_0x26c476){const _0x4da683=_0x235866;let _0x176d6f=0x0;for(let _0x1aa721=_0x26c476[_0x4da683(0x205b)]-0x1;_0x1aa721>=0x0;_0x1aa721--){const _0x3b1ff3=_0x26c476[_0x1aa721];_0x4da683(0x2f35)!==_0x3b1ff3[_0x4da683(0x70a)]||_0x176d6f||(_0x3b1ff3['content']=_0x3b1ff3[_0x4da683(0x498f)][_0x4da683(0x1db7)](_0x276b5f,_0x507e9f)),_0x4da683(0x4e14)===_0x3b1ff3[_0x4da683(0x70a)]&&_0x4da683(0x4a75)===_0x3b1ff3[_0x4da683(0x368d)]&&_0x176d6f--,_0x4da683(0xef8)===_0x3b1ff3[_0x4da683(0x70a)]&&_0x4da683(0x4a75)===_0x3b1ff3[_0x4da683(0x368d)]&&_0x176d6f++;}}function _0x5148b4(_0x217415){const _0x17b45b=_0x235866;let _0x1e91af=0x0;for(let _0x2a1eaa=_0x217415[_0x17b45b(0x205b)]-0x1;_0x2a1eaa>=0x0;_0x2a1eaa--){const _0x1b5384=_0x217415[_0x2a1eaa];_0x17b45b(0x2f35)!==_0x1b5384[_0x17b45b(0x70a)]||_0x1e91af||_0x2d7897['test'](_0x1b5384[_0x17b45b(0x498f)])&&(_0x1b5384[_0x17b45b(0x498f)]=_0x1b5384[_0x17b45b(0x498f)][_0x17b45b(0x1db7)](/\+-/g,'±')[_0x17b45b(0x1db7)](/\.{2,}/g,'…')[_0x17b45b(0x1db7)](/([?!])…/g,_0x17b45b(0x3ea1))[_0x17b45b(0x1db7)](/([?!]){4,}/g,_0x17b45b(0x458d))[_0x17b45b(0x1db7)](/,{2,}/g,',')[_0x17b45b(0x1db7)](/(^|[^-])---(?=[^-]|$)/gm,_0x17b45b(0x2164))[_0x17b45b(0x1db7)](/(^|\s)--(?=\s|$)/gm,_0x17b45b(0x603))['replace'](/(^|[^-\s])--(?=[^-\s]|$)/gm,_0x17b45b(0x603))),_0x17b45b(0x4e14)===_0x1b5384[_0x17b45b(0x70a)]&&_0x17b45b(0x4a75)===_0x1b5384[_0x17b45b(0x368d)]&&_0x1e91af--,_0x17b45b(0xef8)===_0x1b5384[_0x17b45b(0x70a)]&&'auto'===_0x1b5384['info']&&_0x1e91af++;}}const _0x2d2f69=/['"]/,_0x1b640a=/['"]/g,_0xcc5676='’';function _0x44ee21(_0x5658e1,_0x496fbe,_0x241386){const _0x2afc89=_0x235866;return _0x5658e1[_0x2afc89(0x428e)](0x0,_0x496fbe)+_0x241386+_0x5658e1['slice'](_0x496fbe+0x1);}function _0x2d47f0(_0x1e476a,_0x4eb3b1){const _0x1b7243=_0x235866;let _0x148556;const _0x15fa4a=[];for(let _0x1b042b=0x0;_0x1b042b<_0x1e476a[_0x1b7243(0x205b)];_0x1b042b++){const _0x3872dd=_0x1e476a[_0x1b042b],_0x34c6de=_0x1e476a[_0x1b042b]['level'];for(_0x148556=_0x15fa4a[_0x1b7243(0x205b)]-0x1;_0x148556>=0x0&&!(_0x15fa4a[_0x148556]['level']<=_0x34c6de);_0x148556--);if(_0x15fa4a[_0x1b7243(0x205b)]=_0x148556+0x1,_0x1b7243(0x2f35)!==_0x3872dd[_0x1b7243(0x70a)])continue;let _0x372eb8=_0x3872dd[_0x1b7243(0x498f)],_0x480b68=0x0,_0x3b69ce=_0x372eb8[_0x1b7243(0x205b)];_0x14970f:for(;_0x480b68<_0x3b69ce;){_0x1b640a[_0x1b7243(0x1dc3)]=_0x480b68;const _0x5a0476=_0x1b640a[_0x1b7243(0x3bbd)](_0x372eb8);if(!_0x5a0476)break;let _0x75ea2=!0x0,_0x17a839=!0x0;_0x480b68=_0x5a0476[_0x1b7243(0x1cf3)]+0x1;const _0x4ae849='\x27'===_0x5a0476[0x0];let _0x5bf1c9=0x20;if(_0x5a0476['index']-0x1>=0x0)_0x5bf1c9=_0x372eb8['charCodeAt'](_0x5a0476[_0x1b7243(0x1cf3)]-0x1);else{for(_0x148556=_0x1b042b-0x1;_0x148556>=0x0&&(_0x1b7243(0x389e)!==_0x1e476a[_0x148556][_0x1b7243(0x70a)]&&_0x1b7243(0x3909)!==_0x1e476a[_0x148556][_0x1b7243(0x70a)]);_0x148556--)if(_0x1e476a[_0x148556]['content']){_0x5bf1c9=_0x1e476a[_0x148556][_0x1b7243(0x498f)][_0x1b7243(0x1806)](_0x1e476a[_0x148556][_0x1b7243(0x498f)]['length']-0x1);break;}}let _0x5504f1=0x20;if(_0x480b68<_0x3b69ce)_0x5504f1=_0x372eb8['charCodeAt'](_0x480b68);else{for(_0x148556=_0x1b042b+0x1;_0x148556<_0x1e476a['length']&&('softbreak'!==_0x1e476a[_0x148556][_0x1b7243(0x70a)]&&_0x1b7243(0x3909)!==_0x1e476a[_0x148556][_0x1b7243(0x70a)]);_0x148556++)if(_0x1e476a[_0x148556]['content']){_0x5504f1=_0x1e476a[_0x148556]['content'][_0x1b7243(0x1806)](0x0);break;}}const _0x4c93e1=_0x593bb3(_0x5bf1c9)||_0x258316(String['fromCharCode'](_0x5bf1c9)),_0x831911=_0x593bb3(_0x5504f1)||_0x258316(String[_0x1b7243(0xc78)](_0x5504f1)),_0x40b8a3=_0x5c51c2(_0x5bf1c9),_0x11ef23=_0x5c51c2(_0x5504f1);if(_0x11ef23?_0x75ea2=!0x1:_0x831911&&(_0x40b8a3||_0x4c93e1||(_0x75ea2=!0x1)),_0x40b8a3?_0x17a839=!0x1:_0x4c93e1&&(_0x11ef23||_0x831911||(_0x17a839=!0x1)),0x22===_0x5504f1&&'\x22'===_0x5a0476[0x0]&&_0x5bf1c9>=0x30&&_0x5bf1c9<=0x39&&(_0x17a839=_0x75ea2=!0x1),_0x75ea2&&_0x17a839&&(_0x75ea2=_0x4c93e1,_0x17a839=_0x831911),_0x75ea2||_0x17a839){if(_0x17a839)for(_0x148556=_0x15fa4a[_0x1b7243(0x205b)]-0x1;_0x148556>=0x0;_0x148556--){let _0x5c1eb3=_0x15fa4a[_0x148556];if(_0x15fa4a[_0x148556][_0x1b7243(0x1279)]<_0x34c6de)break;if(_0x5c1eb3[_0x1b7243(0x480b)]===_0x4ae849&&_0x15fa4a[_0x148556][_0x1b7243(0x1279)]===_0x34c6de){let _0x254df2,_0x4e5d7b;_0x5c1eb3=_0x15fa4a[_0x148556],_0x4ae849?(_0x254df2=_0x4eb3b1['md']['options'][_0x1b7243(0x3652)][0x2],_0x4e5d7b=_0x4eb3b1['md']['options'][_0x1b7243(0x3652)][0x3]):(_0x254df2=_0x4eb3b1['md']['options'][_0x1b7243(0x3652)][0x0],_0x4e5d7b=_0x4eb3b1['md']['options'][_0x1b7243(0x3652)][0x1]),_0x3872dd[_0x1b7243(0x498f)]=_0x44ee21(_0x3872dd['content'],_0x5a0476[_0x1b7243(0x1cf3)],_0x4e5d7b),_0x1e476a[_0x5c1eb3[_0x1b7243(0x4154)]]['content']=_0x44ee21(_0x1e476a[_0x5c1eb3['token']]['content'],_0x5c1eb3[_0x1b7243(0x44ff)],_0x254df2),_0x480b68+=_0x4e5d7b[_0x1b7243(0x205b)]-0x1,_0x5c1eb3[_0x1b7243(0x4154)]===_0x1b042b&&(_0x480b68+=_0x254df2[_0x1b7243(0x205b)]-0x1),_0x372eb8=_0x3872dd[_0x1b7243(0x498f)],_0x3b69ce=_0x372eb8[_0x1b7243(0x205b)],_0x15fa4a[_0x1b7243(0x205b)]=_0x148556;continue _0x14970f;}}_0x75ea2?_0x15fa4a[_0x1b7243(0x4131)]({'token':_0x1b042b,'pos':_0x5a0476[_0x1b7243(0x1cf3)],'single':_0x4ae849,'level':_0x34c6de}):_0x17a839&&_0x4ae849&&(_0x3872dd[_0x1b7243(0x498f)]=_0x44ee21(_0x3872dd['content'],_0x5a0476['index'],_0xcc5676));}else _0x4ae849&&(_0x3872dd['content']=_0x44ee21(_0x3872dd[_0x1b7243(0x498f)],_0x5a0476[_0x1b7243(0x1cf3)],_0xcc5676));}}}const _0x1284a0=[[_0x235866(0x48f),function(_0x334e00){const _0x591549=_0x235866;let _0x405b2c;_0x405b2c=_0x334e00[_0x591549(0x1005)][_0x591549(0x1db7)](_0x340dda,'\x0a'),_0x405b2c=_0x405b2c[_0x591549(0x1db7)](_0x240883,'�'),_0x334e00[_0x591549(0x1005)]=_0x405b2c;}],[_0x235866(0x3eab),function(_0x218950){const _0x36ff1e=_0x235866;let _0x11c549;_0x218950[_0x36ff1e(0x141d)]?(_0x11c549=new _0x218950[(_0x36ff1e(0x1f7c))]('inline','',0x0),_0x11c549[_0x36ff1e(0x498f)]=_0x218950['src'],_0x11c549['map']=[0x0,0x1],_0x11c549['children']=[],_0x218950[_0x36ff1e(0x30f4)][_0x36ff1e(0x4131)](_0x11c549)):_0x218950['md'][_0x36ff1e(0x3eab)]['parse'](_0x218950[_0x36ff1e(0x1005)],_0x218950['md'],_0x218950['env'],_0x218950[_0x36ff1e(0x30f4)]);}],[_0x235866(0x50d2),function(_0x18e5ab){const _0x4bdd3b=_0x235866,_0x47f394=_0x18e5ab[_0x4bdd3b(0x30f4)];for(let _0x5048b6=0x0,_0x5370f1=_0x47f394[_0x4bdd3b(0x205b)];_0x5048b6<_0x5370f1;_0x5048b6++){const _0x387065=_0x47f394[_0x5048b6];_0x4bdd3b(0x50d2)===_0x387065[_0x4bdd3b(0x70a)]&&_0x18e5ab['md'][_0x4bdd3b(0x50d2)][_0x4bdd3b(0x1b07)](_0x387065[_0x4bdd3b(0x498f)],_0x18e5ab['md'],_0x18e5ab['env'],_0x387065[_0x4bdd3b(0x4538)]);}}],[_0x235866(0xf7f),function(_0x464b83){const _0x5a5d9d=_0x235866,_0x2c3928=_0x464b83[_0x5a5d9d(0x30f4)];var _0x507585;if(_0x464b83['md'][_0x5a5d9d(0x199c)][_0x5a5d9d(0xf7f)])for(let _0x5a048c=0x0,_0x352047=_0x2c3928[_0x5a5d9d(0x205b)];_0x5a048c<_0x352047;_0x5a048c++){if('inline'!==_0x2c3928[_0x5a048c][_0x5a5d9d(0x70a)]||!_0x464b83['md'][_0x5a5d9d(0xf7f)]['pretest'](_0x2c3928[_0x5a048c][_0x5a5d9d(0x498f)]))continue;let _0x42b2db=_0x2c3928[_0x5a048c][_0x5a5d9d(0x4538)],_0x2e288=0x0;for(let _0x13d02c=_0x42b2db[_0x5a5d9d(0x205b)]-0x1;_0x13d02c>=0x0;_0x13d02c--){const _0x4da8c3=_0x42b2db[_0x13d02c];if(_0x5a5d9d(0xef8)!==_0x4da8c3['type']){if('html_inline'===_0x4da8c3[_0x5a5d9d(0x70a)]&&(_0x507585=_0x4da8c3['content'],/^\s]/i[_0x5a5d9d(0x34c)](_0x507585)&&_0x2e288>0x0&&_0x2e288--,_0x4f5a62(_0x4da8c3[_0x5a5d9d(0x498f)])&&_0x2e288++),!(_0x2e288>0x0)&&_0x5a5d9d(0x2f35)===_0x4da8c3[_0x5a5d9d(0x70a)]&&_0x464b83['md'][_0x5a5d9d(0xf7f)][_0x5a5d9d(0x34c)](_0x4da8c3[_0x5a5d9d(0x498f)])){const _0x6cf835=_0x4da8c3[_0x5a5d9d(0x498f)];let _0x2001ab=_0x464b83['md'][_0x5a5d9d(0xf7f)][_0x5a5d9d(0xdc0)](_0x6cf835);const _0xc5530b=[];let _0x4e2290=_0x4da8c3[_0x5a5d9d(0x1279)],_0x52ce36=0x0;_0x2001ab[_0x5a5d9d(0x205b)]>0x0&&0x0===_0x2001ab[0x0][_0x5a5d9d(0x1cf3)]&&_0x13d02c>0x0&&_0x5a5d9d(0x456b)===_0x42b2db[_0x13d02c-0x1]['type']&&(_0x2001ab=_0x2001ab[_0x5a5d9d(0x428e)](0x1));for(let _0x26b053=0x0;_0x26b053<_0x2001ab[_0x5a5d9d(0x205b)];_0x26b053++){const _0x24a65a=_0x2001ab[_0x26b053]['url'],_0x1088bb=_0x464b83['md'][_0x5a5d9d(0x2da6)](_0x24a65a);if(!_0x464b83['md'][_0x5a5d9d(0x3a4a)](_0x1088bb))continue;let _0x248897=_0x2001ab[_0x26b053][_0x5a5d9d(0x2f35)];_0x248897=_0x2001ab[_0x26b053]['schema']?'mailto:'!==_0x2001ab[_0x26b053]['schema']||/^mailto:/i['test'](_0x248897)?_0x464b83['md'][_0x5a5d9d(0x17c1)](_0x248897):_0x464b83['md'][_0x5a5d9d(0x17c1)]('mailto:'+_0x248897)['replace'](/^mailto:/,''):_0x464b83['md'][_0x5a5d9d(0x17c1)]('http://'+_0x248897)[_0x5a5d9d(0x1db7)](/^http:\/\//,'');const _0x168209=_0x2001ab[_0x26b053][_0x5a5d9d(0x1cf3)];if(_0x168209>_0x52ce36){const _0x30225b=new _0x464b83[(_0x5a5d9d(0x1f7c))](_0x5a5d9d(0x2f35),'',0x0);_0x30225b[_0x5a5d9d(0x498f)]=_0x6cf835[_0x5a5d9d(0x428e)](_0x52ce36,_0x168209),_0x30225b[_0x5a5d9d(0x1279)]=_0x4e2290,_0xc5530b['push'](_0x30225b);}const _0x960eff=new _0x464b83[(_0x5a5d9d(0x1f7c))]('link_open','a',0x1);_0x960eff[_0x5a5d9d(0x3d7f)]=[['href',_0x1088bb]],_0x960eff['level']=_0x4e2290++,_0x960eff[_0x5a5d9d(0x2767)]=_0x5a5d9d(0xf7f),_0x960eff['info']=_0x5a5d9d(0x4a75),_0xc5530b[_0x5a5d9d(0x4131)](_0x960eff);const _0x65e179=new _0x464b83[(_0x5a5d9d(0x1f7c))]('text','',0x0);_0x65e179[_0x5a5d9d(0x498f)]=_0x248897,_0x65e179[_0x5a5d9d(0x1279)]=_0x4e2290,_0xc5530b[_0x5a5d9d(0x4131)](_0x65e179);const _0x1386d6=new _0x464b83['Token'](_0x5a5d9d(0xef8),'a',-0x1);_0x1386d6[_0x5a5d9d(0x1279)]=--_0x4e2290,_0x1386d6[_0x5a5d9d(0x2767)]='linkify',_0x1386d6[_0x5a5d9d(0x368d)]=_0x5a5d9d(0x4a75),_0xc5530b[_0x5a5d9d(0x4131)](_0x1386d6),_0x52ce36=_0x2001ab[_0x26b053][_0x5a5d9d(0x1dc3)];}if(_0x52ce36<_0x6cf835['length']){const _0x3e6c54=new _0x464b83['Token'](_0x5a5d9d(0x2f35),'',0x0);_0x3e6c54[_0x5a5d9d(0x498f)]=_0x6cf835[_0x5a5d9d(0x428e)](_0x52ce36),_0x3e6c54[_0x5a5d9d(0x1279)]=_0x4e2290,_0xc5530b[_0x5a5d9d(0x4131)](_0x3e6c54);}_0x2c3928[_0x5a048c]['children']=_0x42b2db=_0x15a25c(_0x42b2db,_0x13d02c,_0xc5530b);}}else{for(_0x13d02c--;_0x42b2db[_0x13d02c][_0x5a5d9d(0x1279)]!==_0x4da8c3[_0x5a5d9d(0x1279)]&&_0x5a5d9d(0x4e14)!==_0x42b2db[_0x13d02c]['type'];)_0x13d02c--;}}}}],[_0x235866(0x1f6),function(_0x60e6b9){const _0x58425e=_0x235866;let _0x3f0cfe;if(_0x60e6b9['md'][_0x58425e(0x199c)][_0x58425e(0x8bd)]){for(_0x3f0cfe=_0x60e6b9['tokens'][_0x58425e(0x205b)]-0x1;_0x3f0cfe>=0x0;_0x3f0cfe--)_0x58425e(0x50d2)===_0x60e6b9[_0x58425e(0x30f4)][_0x3f0cfe][_0x58425e(0x70a)]&&(_0x5ed35d[_0x58425e(0x34c)](_0x60e6b9[_0x58425e(0x30f4)][_0x3f0cfe]['content'])&&_0x9e2e8e(_0x60e6b9[_0x58425e(0x30f4)][_0x3f0cfe][_0x58425e(0x4538)]),_0x2d7897[_0x58425e(0x34c)](_0x60e6b9[_0x58425e(0x30f4)][_0x3f0cfe]['content'])&&_0x5148b4(_0x60e6b9[_0x58425e(0x30f4)][_0x3f0cfe][_0x58425e(0x4538)]));}}],['smartquotes',function(_0x5453b4){const _0x5252d5=_0x235866;if(_0x5453b4['md'][_0x5252d5(0x199c)][_0x5252d5(0x8bd)]){for(let _0x5186f0=_0x5453b4['tokens'][_0x5252d5(0x205b)]-0x1;_0x5186f0>=0x0;_0x5186f0--)_0x5252d5(0x50d2)===_0x5453b4['tokens'][_0x5186f0][_0x5252d5(0x70a)]&&_0x2d2f69[_0x5252d5(0x34c)](_0x5453b4[_0x5252d5(0x30f4)][_0x5186f0][_0x5252d5(0x498f)])&&_0x2d47f0(_0x5453b4[_0x5252d5(0x30f4)][_0x5186f0][_0x5252d5(0x4538)],_0x5453b4);}}],[_0x235866(0x406c),function(_0x4eb888){const _0x566843=_0x235866;let _0x6a17ab,_0xe16f6f;const _0xdcbc0e=_0x4eb888[_0x566843(0x30f4)],_0x1bc0ff=_0xdcbc0e[_0x566843(0x205b)];for(let _0x1018e2=0x0;_0x1018e2<_0x1bc0ff;_0x1018e2++){if(_0x566843(0x50d2)!==_0xdcbc0e[_0x1018e2][_0x566843(0x70a)])continue;const _0x4e6911=_0xdcbc0e[_0x1018e2][_0x566843(0x4538)],_0x81ddb0=_0x4e6911['length'];for(_0x6a17ab=0x0;_0x6a17ab<_0x81ddb0;_0x6a17ab++)_0x566843(0x456b)===_0x4e6911[_0x6a17ab]['type']&&(_0x4e6911[_0x6a17ab][_0x566843(0x70a)]=_0x566843(0x2f35));for(_0x6a17ab=_0xe16f6f=0x0;_0x6a17ab<_0x81ddb0;_0x6a17ab++)_0x566843(0x2f35)===_0x4e6911[_0x6a17ab]['type']&&_0x6a17ab+0x1<_0x81ddb0&&_0x566843(0x2f35)===_0x4e6911[_0x6a17ab+0x1][_0x566843(0x70a)]?_0x4e6911[_0x6a17ab+0x1][_0x566843(0x498f)]=_0x4e6911[_0x6a17ab][_0x566843(0x498f)]+_0x4e6911[_0x6a17ab+0x1][_0x566843(0x498f)]:(_0x6a17ab!==_0xe16f6f&&(_0x4e6911[_0xe16f6f]=_0x4e6911[_0x6a17ab]),_0xe16f6f++);_0x6a17ab!==_0xe16f6f&&(_0x4e6911['length']=_0xe16f6f);}}]];function _0x581bbc(){const _0x1ad4d2=_0x235866;this[_0x1ad4d2(0x536)]=new _0x22236d();for(let _0x19ce3a=0x0;_0x19ce3a<_0x1284a0[_0x1ad4d2(0x205b)];_0x19ce3a++)this['ruler']['push'](_0x1284a0[_0x19ce3a][0x0],_0x1284a0[_0x19ce3a][0x1]);}_0x581bbc[_0x235866(0x2b5c)][_0x235866(0x4ea6)]=function(_0xcd520a){const _0x48ab8a=_0x235866,_0x368513=this[_0x48ab8a(0x536)]['getRules']('');for(let _0x3dbc41=0x0,_0x57c0d1=_0x368513[_0x48ab8a(0x205b)];_0x3dbc41<_0x57c0d1;_0x3dbc41++)_0x368513[_0x3dbc41](_0xcd520a);},_0x581bbc[_0x235866(0x2b5c)][_0x235866(0x2153)]=_0x4363ed;const _0x38a333=_0x581bbc;function _0x53ab06(_0x282035,_0x34c2f6,_0xb2a96c,_0x33ce72){const _0x29660a=_0x235866;this[_0x29660a(0x1005)]=_0x282035,this['md']=_0x34c2f6,this[_0x29660a(0x2f9e)]=_0xb2a96c,this[_0x29660a(0x30f4)]=_0x33ce72,this['bMarks']=[],this[_0x29660a(0x1908)]=[],this[_0x29660a(0x1d33)]=[],this['sCount']=[],this[_0x29660a(0x2851)]=[],this['blkIndent']=0x0,this[_0x29660a(0x3dde)]=0x0,this[_0x29660a(0x44dd)]=0x0,this[_0x29660a(0x4ea7)]=!0x1,this['ddIndent']=-0x1,this[_0x29660a(0x50fb)]=-0x1,this[_0x29660a(0x1581)]='root',this[_0x29660a(0x1279)]=0x0;const _0x1309ec=this[_0x29660a(0x1005)];for(let _0x77cc9f=0x0,_0x527892=0x0,_0x3bf2b8=0x0,_0x1c9c75=0x0,_0x7496ff=_0x1309ec[_0x29660a(0x205b)],_0x4a993f=!0x1;_0x527892<_0x7496ff;_0x527892++){const _0x3d4f78=_0x1309ec[_0x29660a(0x1806)](_0x527892);if(!_0x4a993f){if(_0x2578e9(_0x3d4f78)){_0x3bf2b8++,0x9===_0x3d4f78?_0x1c9c75+=0x4-_0x1c9c75%0x4:_0x1c9c75++;continue;}_0x4a993f=!0x0;}0xa!==_0x3d4f78&&_0x527892!==_0x7496ff-0x1||(0xa!==_0x3d4f78&&_0x527892++,this['bMarks'][_0x29660a(0x4131)](_0x77cc9f),this[_0x29660a(0x1908)][_0x29660a(0x4131)](_0x527892),this[_0x29660a(0x1d33)]['push'](_0x3bf2b8),this[_0x29660a(0x11e9)][_0x29660a(0x4131)](_0x1c9c75),this[_0x29660a(0x2851)]['push'](0x0),_0x4a993f=!0x1,_0x3bf2b8=0x0,_0x1c9c75=0x0,_0x77cc9f=_0x527892+0x1);}this[_0x29660a(0x45ae)][_0x29660a(0x4131)](_0x1309ec[_0x29660a(0x205b)]),this[_0x29660a(0x1908)]['push'](_0x1309ec[_0x29660a(0x205b)]),this[_0x29660a(0x1d33)][_0x29660a(0x4131)](0x0),this[_0x29660a(0x11e9)]['push'](0x0),this[_0x29660a(0x2851)][_0x29660a(0x4131)](0x0),this[_0x29660a(0x44dd)]=this[_0x29660a(0x45ae)][_0x29660a(0x205b)]-0x1;}_0x53ab06['prototype'][_0x235866(0x4131)]=function(_0x14ea7b,_0x4d5c30,_0x3faf9c){const _0x1ce73b=_0x235866,_0x2e7e46=new _0x5a43f1(_0x14ea7b,_0x4d5c30,_0x3faf9c);return _0x2e7e46['block']=!0x0,_0x3faf9c<0x0&&this[_0x1ce73b(0x1279)]--,_0x2e7e46[_0x1ce73b(0x1279)]=this[_0x1ce73b(0x1279)],_0x3faf9c>0x0&&this[_0x1ce73b(0x1279)]++,this[_0x1ce73b(0x30f4)][_0x1ce73b(0x4131)](_0x2e7e46),_0x2e7e46;},_0x53ab06[_0x235866(0x2b5c)]['isEmpty']=function(_0x4949a1){const _0x2e709e=_0x235866;return this['bMarks'][_0x4949a1]+this[_0x2e709e(0x1d33)][_0x4949a1]>=this[_0x2e709e(0x1908)][_0x4949a1];},_0x53ab06[_0x235866(0x2b5c)]['skipEmptyLines']=function(_0x253d06){const _0xbbdfdf=_0x235866;for(let _0x102dd2=this[_0xbbdfdf(0x44dd)];_0x253d06<_0x102dd2&&!(this['bMarks'][_0x253d06]+this['tShift'][_0x253d06]_0x41730d;)if(!_0x2578e9(this['src'][_0x16a40c(0x1806)](--_0x5108f7)))return _0x5108f7+0x1;return _0x5108f7;},_0x53ab06[_0x235866(0x2b5c)][_0x235866(0x156)]=function(_0x48dfb7,_0x1adaba){const _0x2a7ed6=_0x235866;for(let _0x5131c3=this[_0x2a7ed6(0x1005)][_0x2a7ed6(0x205b)];_0x48dfb7<_0x5131c3&&this[_0x2a7ed6(0x1005)][_0x2a7ed6(0x1806)](_0x48dfb7)===_0x1adaba;_0x48dfb7++);return _0x48dfb7;},_0x53ab06[_0x235866(0x2b5c)][_0x235866(0x667)]=function(_0x2fe4d0,_0x4873bc,_0x4c000c){if(_0x2fe4d0<=_0x4c000c)return _0x2fe4d0;for(;_0x2fe4d0>_0x4c000c;)if(_0x4873bc!==this['src']['charCodeAt'](--_0x2fe4d0))return _0x2fe4d0+0x1;return _0x2fe4d0;},_0x53ab06[_0x235866(0x2b5c)][_0x235866(0x3131)]=function(_0x18b4bd,_0x47cc89,_0x1f96f9,_0x5b72f0){const _0x4e9538=_0x235866;if(_0x18b4bd>=_0x47cc89)return'';const _0x20a506=new Array(_0x47cc89-_0x18b4bd);for(let _0x521087=0x0,_0x457b10=_0x18b4bd;_0x457b10<_0x47cc89;_0x457b10++,_0x521087++){let _0x32f0e4=0x0;const _0x28219d=this[_0x4e9538(0x45ae)][_0x457b10];let _0x49e5f4,_0x1173cd=_0x28219d;for(_0x49e5f4=_0x457b10+0x1<_0x47cc89||_0x5b72f0?this[_0x4e9538(0x1908)][_0x457b10]+0x1:this[_0x4e9538(0x1908)][_0x457b10];_0x1173cd<_0x49e5f4&&_0x32f0e4<_0x1f96f9;){const _0xbf49aa=this[_0x4e9538(0x1005)][_0x4e9538(0x1806)](_0x1173cd);if(_0x2578e9(_0xbf49aa))0x9===_0xbf49aa?_0x32f0e4+=0x4-(_0x32f0e4+this['bsCount'][_0x457b10])%0x4:_0x32f0e4++;else{if(!(_0x1173cd-_0x28219d_0x1f96f9?new Array(_0x32f0e4-_0x1f96f9+0x1)['join']('\x20')+this['src'][_0x4e9538(0x428e)](_0x1173cd,_0x49e5f4):this[_0x4e9538(0x1005)]['slice'](_0x1173cd,_0x49e5f4);}return _0x20a506['join']('');},_0x53ab06['prototype']['Token']=_0x5a43f1;const _0xe2ba27=_0x53ab06;function _0x128f72(_0x1b3dc3,_0x5508f7){const _0x421315=_0x235866,_0x4ef14f=_0x1b3dc3['bMarks'][_0x5508f7]+_0x1b3dc3[_0x421315(0x1d33)][_0x5508f7],_0x16c5e6=_0x1b3dc3[_0x421315(0x1908)][_0x5508f7];return _0x1b3dc3[_0x421315(0x1005)][_0x421315(0x428e)](_0x4ef14f,_0x16c5e6);}function _0x27ee7d(_0x1a819d){const _0x2a55ee=_0x235866,_0x5bd142=[],_0x4c8e81=_0x1a819d[_0x2a55ee(0x205b)];let _0x3c255f=0x0,_0x314d2c=_0x1a819d[_0x2a55ee(0x1806)](_0x3c255f),_0x384498=!0x1,_0x34e3ee=0x0,_0x3cd344='';for(;_0x3c255f<_0x4c8e81;)0x7c===_0x314d2c&&(_0x384498?(_0x3cd344+=_0x1a819d[_0x2a55ee(0x3934)](_0x34e3ee,_0x3c255f-0x1),_0x34e3ee=_0x3c255f):(_0x5bd142[_0x2a55ee(0x4131)](_0x3cd344+_0x1a819d[_0x2a55ee(0x3934)](_0x34e3ee,_0x3c255f)),_0x3cd344='',_0x34e3ee=_0x3c255f+0x1)),_0x384498=0x5c===_0x314d2c,_0x3c255f++,_0x314d2c=_0x1a819d[_0x2a55ee(0x1806)](_0x3c255f);return _0x5bd142['push'](_0x3cd344+_0x1a819d[_0x2a55ee(0x3934)](_0x34e3ee)),_0x5bd142;}function _0x34b13a(_0x4b8862,_0x307ba0){const _0x274b0e=_0x235866,_0x6b44d2=_0x4b8862[_0x274b0e(0x1908)][_0x307ba0];let _0x4860cc=_0x4b8862[_0x274b0e(0x45ae)][_0x307ba0]+_0x4b8862[_0x274b0e(0x1d33)][_0x307ba0];const _0x2afba1=_0x4b8862[_0x274b0e(0x1005)][_0x274b0e(0x1806)](_0x4860cc++);if(0x2a!==_0x2afba1&&0x2d!==_0x2afba1&&0x2b!==_0x2afba1)return-0x1;if(_0x4860cc<_0x6b44d2){if(!_0x2578e9(_0x4b8862['src']['charCodeAt'](_0x4860cc)))return-0x1;}return _0x4860cc;}function _0x1a50f7(_0x1ddcba,_0xa63408){const _0x24c461=_0x235866,_0x1eca18=_0x1ddcba[_0x24c461(0x45ae)][_0xa63408]+_0x1ddcba[_0x24c461(0x1d33)][_0xa63408],_0x4f4ceb=_0x1ddcba[_0x24c461(0x1908)][_0xa63408];let _0x19b6ee=_0x1eca18;if(_0x19b6ee+0x1>=_0x4f4ceb)return-0x1;let _0x2b5ee2=_0x1ddcba['src']['charCodeAt'](_0x19b6ee++);if(_0x2b5ee2<0x30||_0x2b5ee2>0x39)return-0x1;for(;;){if(_0x19b6ee>=_0x4f4ceb)return-0x1;if(_0x2b5ee2=_0x1ddcba[_0x24c461(0x1005)][_0x24c461(0x1806)](_0x19b6ee++),!(_0x2b5ee2>=0x30&&_0x2b5ee2<=0x39)){if(0x29===_0x2b5ee2||0x2e===_0x2b5ee2)break;return-0x1;}if(_0x19b6ee-_0x1eca18>=0xa)return-0x1;}return _0x19b6ee<_0x4f4ceb&&(_0x2b5ee2=_0x1ddcba[_0x24c461(0x1005)][_0x24c461(0x1806)](_0x19b6ee),!_0x2578e9(_0x2b5ee2))?-0x1:_0x19b6ee;}const _0x28c335=_0x235866(0x286),_0x321f33=_0x235866(0x1509),_0x162e4c=new RegExp('^(?:'+_0x28c335+'|'+_0x321f33+_0x235866(0x34c4)),_0xeec757=new RegExp(_0x235866(0x4352)+_0x28c335+'|'+_0x321f33+')'),_0x440e82=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0x0],[/^/,!0x0],[/^<\?/,/\?>/,!0x0],[/^/,!0x0],[/^/,!0x0],[new RegExp(_0x235866(0x200)+[_0x235866(0xf30),_0x235866(0x2df9),_0x235866(0x3162),_0x235866(0x389b),_0x235866(0xe6b),_0x235866(0x30ef),_0x235866(0x3673),'caption','center','col','colgroup','dd',_0x235866(0x752),_0x235866(0x11d),_0x235866(0x1301),_0x235866(0x257d),'dl','dt',_0x235866(0x2f64),_0x235866(0x2f34),_0x235866(0x35b0),_0x235866(0x1f2b),_0x235866(0x377b),_0x235866(0x289d),_0x235866(0x465e),'h1','h2','h3','h4','h5','h6',_0x235866(0x20c7),_0x235866(0x164d),'hr','html','iframe','legend','li',_0x235866(0x3622),_0x235866(0x2589),'menu',_0x235866(0xa8f),_0x235866(0x37c5),_0x235866(0x2378),'ol',_0x235866(0x365a),_0x235866(0x15f4),'p',_0x235866(0x46dd),_0x235866(0x386b),_0x235866(0x3b28),_0x235866(0xe54),_0x235866(0x14b9),_0x235866(0x359a),'td',_0x235866(0x8e),'th',_0x235866(0x1db3),_0x235866(0x5f1),'tr',_0x235866(0x58d),'ul'][_0x235866(0x379c)]('|')+_0x235866(0xc66),'i'),/^$/,!0x0],[new RegExp(_0xeec757['source']+_0x235866(0x446a)),/^$/,!0x1]],_0x48c7d7=[[_0x235866(0x14b9),function(_0x2cfc8a,_0x4e81e5,_0x2e93c4,_0x1d9fcd){const _0x14e972=_0x235866;if(_0x4e81e5+0x2>_0x2e93c4)return!0x1;let _0x2c3e8d=_0x4e81e5+0x1;if(_0x2cfc8a[_0x14e972(0x11e9)][_0x2c3e8d]<_0x2cfc8a[_0x14e972(0x2c69)])return!0x1;if(_0x2cfc8a[_0x14e972(0x11e9)][_0x2c3e8d]-_0x2cfc8a[_0x14e972(0x2c69)]>=0x4)return!0x1;let _0x17d645=_0x2cfc8a[_0x14e972(0x45ae)][_0x2c3e8d]+_0x2cfc8a[_0x14e972(0x1d33)][_0x2c3e8d];if(_0x17d645>=_0x2cfc8a['eMarks'][_0x2c3e8d])return!0x1;const _0x5c7d58=_0x2cfc8a[_0x14e972(0x1005)][_0x14e972(0x1806)](_0x17d645++);if(0x7c!==_0x5c7d58&&0x2d!==_0x5c7d58&&0x3a!==_0x5c7d58)return!0x1;if(_0x17d645>=_0x2cfc8a[_0x14e972(0x1908)][_0x2c3e8d])return!0x1;const _0x4c0a6d=_0x2cfc8a[_0x14e972(0x1005)][_0x14e972(0x1806)](_0x17d645++);if(0x7c!==_0x4c0a6d&&0x2d!==_0x4c0a6d&&0x3a!==_0x4c0a6d&&!_0x2578e9(_0x4c0a6d))return!0x1;if(0x2d===_0x5c7d58&&_0x2578e9(_0x4c0a6d))return!0x1;for(;_0x17d645<_0x2cfc8a[_0x14e972(0x1908)][_0x2c3e8d];){const _0x596c0a=_0x2cfc8a[_0x14e972(0x1005)][_0x14e972(0x1806)](_0x17d645);if(0x7c!==_0x596c0a&&0x2d!==_0x596c0a&&0x3a!==_0x596c0a&&!_0x2578e9(_0x596c0a))return!0x1;_0x17d645++;}let _0x32725b=_0x128f72(_0x2cfc8a,_0x4e81e5+0x1),_0x2463bc=_0x32725b[_0x14e972(0x29d0)]('|');const _0x4df18f=[];for(let _0x54c157=0x0;_0x54c157<_0x2463bc[_0x14e972(0x205b)];_0x54c157++){const _0x4d3ccc=_0x2463bc[_0x54c157][_0x14e972(0x1d0e)]();if(!_0x4d3ccc){if(0x0===_0x54c157||_0x54c157===_0x2463bc[_0x14e972(0x205b)]-0x1)continue;return!0x1;}if(!/^:?-+:?$/[_0x14e972(0x34c)](_0x4d3ccc))return!0x1;0x3a===_0x4d3ccc['charCodeAt'](_0x4d3ccc[_0x14e972(0x205b)]-0x1)?_0x4df18f['push'](0x3a===_0x4d3ccc[_0x14e972(0x1806)](0x0)?_0x14e972(0xadf):'right'):0x3a===_0x4d3ccc[_0x14e972(0x1806)](0x0)?_0x4df18f[_0x14e972(0x4131)](_0x14e972(0x24d0)):_0x4df18f['push']('');}if(_0x32725b=_0x128f72(_0x2cfc8a,_0x4e81e5)[_0x14e972(0x1d0e)](),-0x1===_0x32725b[_0x14e972(0x3458)]('|'))return!0x1;if(_0x2cfc8a['sCount'][_0x4e81e5]-_0x2cfc8a[_0x14e972(0x2c69)]>=0x4)return!0x1;_0x2463bc=_0x27ee7d(_0x32725b),_0x2463bc['length']&&''===_0x2463bc[0x0]&&_0x2463bc[_0x14e972(0x13fc)](),_0x2463bc[_0x14e972(0x205b)]&&''===_0x2463bc[_0x2463bc['length']-0x1]&&_0x2463bc[_0x14e972(0x2895)]();const _0x2e1049=_0x2463bc[_0x14e972(0x205b)];if(0x0===_0x2e1049||_0x2e1049!==_0x4df18f['length'])return!0x1;if(_0x1d9fcd)return!0x0;const _0x66d444=_0x2cfc8a[_0x14e972(0x1581)];_0x2cfc8a[_0x14e972(0x1581)]=_0x14e972(0x14b9);const _0x2a2d89=_0x2cfc8a['md'][_0x14e972(0x3eab)][_0x14e972(0x536)][_0x14e972(0x68d)](_0x14e972(0x30ef)),_0x59b454=[_0x4e81e5,0x0];_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x3e30),'table',0x1)[_0x14e972(0x2c94)]=_0x59b454,_0x2cfc8a['push']('thead_open',_0x14e972(0x1db3),0x1)[_0x14e972(0x2c94)]=[_0x4e81e5,_0x4e81e5+0x1],_0x2cfc8a[_0x14e972(0x4131)]('tr_open','tr',0x1)[_0x14e972(0x2c94)]=[_0x4e81e5,_0x4e81e5+0x1];for(let _0x16eb19=0x0;_0x16eb19<_0x2463bc[_0x14e972(0x205b)];_0x16eb19++){const _0x522ae5=_0x2cfc8a['push'](_0x14e972(0x2f03),'th',0x1);_0x4df18f[_0x16eb19]&&(_0x522ae5[_0x14e972(0x3d7f)]=[[_0x14e972(0x3098),_0x14e972(0x3071)+_0x4df18f[_0x16eb19]]]);const _0xdfb2f1=_0x2cfc8a['push'](_0x14e972(0x50d2),'',0x0);_0xdfb2f1[_0x14e972(0x498f)]=_0x2463bc[_0x16eb19]['trim'](),_0xdfb2f1[_0x14e972(0x4538)]=[],_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x4995),'th',-0x1);}let _0x20ce86;for(_0x2cfc8a['push'](_0x14e972(0x4c40),'tr',-0x1),_0x2cfc8a['push'](_0x14e972(0x2e1d),_0x14e972(0x1db3),-0x1),_0x2c3e8d=_0x4e81e5+0x2;_0x2c3e8d<_0x2e93c4&&!(_0x2cfc8a[_0x14e972(0x11e9)][_0x2c3e8d]<_0x2cfc8a['blkIndent']);_0x2c3e8d++){let _0x51716c=!0x1;for(let _0x476c07=0x0,_0x4c96b5=_0x2a2d89[_0x14e972(0x205b)];_0x476c07<_0x4c96b5;_0x476c07++)if(_0x2a2d89[_0x476c07](_0x2cfc8a,_0x2c3e8d,_0x2e93c4,!0x0)){_0x51716c=!0x0;break;}if(_0x51716c)break;if(_0x32725b=_0x128f72(_0x2cfc8a,_0x2c3e8d)[_0x14e972(0x1d0e)](),!_0x32725b)break;if(_0x2cfc8a[_0x14e972(0x11e9)][_0x2c3e8d]-_0x2cfc8a[_0x14e972(0x2c69)]>=0x4)break;(_0x2463bc=_0x27ee7d(_0x32725b),_0x2463bc[_0x14e972(0x205b)]&&''===_0x2463bc[0x0]&&_0x2463bc[_0x14e972(0x13fc)](),_0x2463bc[_0x14e972(0x205b)]&&''===_0x2463bc[_0x2463bc[_0x14e972(0x205b)]-0x1]&&_0x2463bc[_0x14e972(0x2895)](),_0x2c3e8d===_0x4e81e5+0x2)&&(_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x24b),_0x14e972(0x359a),0x1)['map']=_0x20ce86=[_0x4e81e5+0x2,0x0]);_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x3a93),'tr',0x1)[_0x14e972(0x2c94)]=[_0x2c3e8d,_0x2c3e8d+0x1];for(let _0x18132f=0x0;_0x18132f<_0x2e1049;_0x18132f++){const _0x2d7e8b=_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0xb6c),'td',0x1);_0x4df18f[_0x18132f]&&(_0x2d7e8b[_0x14e972(0x3d7f)]=[['style',_0x14e972(0x3071)+_0x4df18f[_0x18132f]]]);const _0x4c4a5f=_0x2cfc8a[_0x14e972(0x4131)]('inline','',0x0);_0x4c4a5f[_0x14e972(0x498f)]=_0x2463bc[_0x18132f]?_0x2463bc[_0x18132f]['trim']():'',_0x4c4a5f[_0x14e972(0x4538)]=[],_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x3083),'td',-0x1);}_0x2cfc8a[_0x14e972(0x4131)]('tr_close','tr',-0x1);}return _0x20ce86&&(_0x2cfc8a[_0x14e972(0x4131)](_0x14e972(0x3252),_0x14e972(0x359a),-0x1),_0x20ce86[0x1]=_0x2c3e8d),_0x2cfc8a[_0x14e972(0x4131)]('table_close',_0x14e972(0x14b9),-0x1),_0x59b454[0x1]=_0x2c3e8d,_0x2cfc8a[_0x14e972(0x1581)]=_0x66d444,_0x2cfc8a[_0x14e972(0x3dde)]=_0x2c3e8d,!0x0;},['paragraph',_0x235866(0x3085)]],[_0x235866(0xbd0),function(_0x205375,_0x576c37,_0x2e1893){const _0x59f323=_0x235866;if(_0x205375['sCount'][_0x576c37]-_0x205375[_0x59f323(0x2c69)]<0x4)return!0x1;let _0x296da5=_0x576c37+0x1,_0x343c02=_0x296da5;for(;_0x296da5<_0x2e1893;)if(_0x205375['isEmpty'](_0x296da5))_0x296da5++;else{if(!(_0x205375[_0x59f323(0x11e9)][_0x296da5]-_0x205375[_0x59f323(0x2c69)]>=0x4))break;_0x296da5++,_0x343c02=_0x296da5;}_0x205375[_0x59f323(0x3dde)]=_0x343c02;const _0x382ad1=_0x205375[_0x59f323(0x4131)](_0x59f323(0x95d),_0x59f323(0xbd0),0x0);return _0x382ad1[_0x59f323(0x498f)]=_0x205375[_0x59f323(0x3131)](_0x576c37,_0x343c02,0x4+_0x205375[_0x59f323(0x2c69)],!0x1)+'\x0a',_0x382ad1[_0x59f323(0x2c94)]=[_0x576c37,_0x205375[_0x59f323(0x3dde)]],!0x0;}],['fence',function(_0x4d1d04,_0x40f32f,_0xf2bcea,_0xa77eea){const _0x3a29fc=_0x235866;let _0x41ac15=_0x4d1d04[_0x3a29fc(0x45ae)][_0x40f32f]+_0x4d1d04[_0x3a29fc(0x1d33)][_0x40f32f],_0x3e01b4=_0x4d1d04[_0x3a29fc(0x1908)][_0x40f32f];if(_0x4d1d04[_0x3a29fc(0x11e9)][_0x40f32f]-_0x4d1d04[_0x3a29fc(0x2c69)]>=0x4)return!0x1;if(_0x41ac15+0x3>_0x3e01b4)return!0x1;const _0x5687dd=_0x4d1d04[_0x3a29fc(0x1005)][_0x3a29fc(0x1806)](_0x41ac15);if(0x7e!==_0x5687dd&&0x60!==_0x5687dd)return!0x1;let _0x3bd0e9=_0x41ac15;_0x41ac15=_0x4d1d04[_0x3a29fc(0x156)](_0x41ac15,_0x5687dd);let _0x18b28b=_0x41ac15-_0x3bd0e9;if(_0x18b28b<0x3)return!0x1;const _0x4451fb=_0x4d1d04['src'][_0x3a29fc(0x428e)](_0x3bd0e9,_0x41ac15),_0x13b7e6=_0x4d1d04['src'][_0x3a29fc(0x428e)](_0x41ac15,_0x3e01b4);if(0x60===_0x5687dd&&_0x13b7e6[_0x3a29fc(0x3458)](String[_0x3a29fc(0xc78)](_0x5687dd))>=0x0)return!0x1;if(_0xa77eea)return!0x0;let _0xef39fe=_0x40f32f,_0x4facd7=!0x1;for(;(_0xef39fe++,!(_0xef39fe>=_0xf2bcea))&&(_0x41ac15=_0x3bd0e9=_0x4d1d04[_0x3a29fc(0x45ae)][_0xef39fe]+_0x4d1d04[_0x3a29fc(0x1d33)][_0xef39fe],_0x3e01b4=_0x4d1d04['eMarks'][_0xef39fe],!(_0x41ac15<_0x3e01b4&&_0x4d1d04['sCount'][_0xef39fe]<_0x4d1d04['blkIndent']));)if(_0x4d1d04['src'][_0x3a29fc(0x1806)](_0x41ac15)===_0x5687dd&&!(_0x4d1d04[_0x3a29fc(0x11e9)][_0xef39fe]-_0x4d1d04['blkIndent']>=0x4||(_0x41ac15=_0x4d1d04[_0x3a29fc(0x156)](_0x41ac15,_0x5687dd),_0x41ac15-_0x3bd0e9<_0x18b28b||(_0x41ac15=_0x4d1d04[_0x3a29fc(0x28e7)](_0x41ac15),_0x41ac15<_0x3e01b4)))){_0x4facd7=!0x0;break;}_0x18b28b=_0x4d1d04['sCount'][_0x40f32f],_0x4d1d04[_0x3a29fc(0x3dde)]=_0xef39fe+(_0x4facd7?0x1:0x0);const _0x13523c=_0x4d1d04[_0x3a29fc(0x4131)](_0x3a29fc(0xecc),_0x3a29fc(0xbd0),0x0);return _0x13523c[_0x3a29fc(0x368d)]=_0x13b7e6,_0x13523c[_0x3a29fc(0x498f)]=_0x4d1d04[_0x3a29fc(0x3131)](_0x40f32f+0x1,_0xef39fe,_0x18b28b,!0x0),_0x13523c['markup']=_0x4451fb,_0x13523c[_0x3a29fc(0x2c94)]=[_0x40f32f,_0x4d1d04[_0x3a29fc(0x3dde)]],!0x0;},[_0x235866(0x2d53),'reference',_0x235866(0x30ef),_0x235866(0x20cf)]],[_0x235866(0x30ef),function(_0x31347e,_0x12eab5,_0x532d63,_0x557750){const _0xd1d726=_0x235866;let _0x3766f2=_0x31347e[_0xd1d726(0x45ae)][_0x12eab5]+_0x31347e[_0xd1d726(0x1d33)][_0x12eab5],_0x16091c=_0x31347e['eMarks'][_0x12eab5];const _0x57c915=_0x31347e[_0xd1d726(0x44dd)];if(_0x31347e[_0xd1d726(0x11e9)][_0x12eab5]-_0x31347e[_0xd1d726(0x2c69)]>=0x4)return!0x1;if(0x3e!==_0x31347e['src'][_0xd1d726(0x1806)](_0x3766f2))return!0x1;if(_0x557750)return!0x0;const _0x3b8709=[],_0x1cd298=[],_0x58c5df=[],_0x178bd3=[],_0x444958=_0x31347e['md'][_0xd1d726(0x3eab)][_0xd1d726(0x536)][_0xd1d726(0x68d)](_0xd1d726(0x30ef)),_0x377091=_0x31347e['parentType'];_0x31347e[_0xd1d726(0x1581)]='blockquote';let _0x3fdd1c,_0x13b722=!0x1;for(_0x3fdd1c=_0x12eab5;_0x3fdd1c<_0x532d63;_0x3fdd1c++){const _0xea7fbe=_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]<_0x31347e[_0xd1d726(0x2c69)];if(_0x3766f2=_0x31347e[_0xd1d726(0x45ae)][_0x3fdd1c]+_0x31347e[_0xd1d726(0x1d33)][_0x3fdd1c],_0x16091c=_0x31347e[_0xd1d726(0x1908)][_0x3fdd1c],_0x3766f2>=_0x16091c)break;if(0x3e===_0x31347e[_0xd1d726(0x1005)][_0xd1d726(0x1806)](_0x3766f2++)&&!_0xea7fbe){let _0x3a5669,_0x24685b,_0x55920f=_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]+0x1;0x20===_0x31347e[_0xd1d726(0x1005)]['charCodeAt'](_0x3766f2)?(_0x3766f2++,_0x55920f++,_0x24685b=!0x1,_0x3a5669=!0x0):0x9===_0x31347e[_0xd1d726(0x1005)][_0xd1d726(0x1806)](_0x3766f2)?(_0x3a5669=!0x0,(_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]+_0x55920f)%0x4==0x3?(_0x3766f2++,_0x55920f++,_0x24685b=!0x1):_0x24685b=!0x0):_0x3a5669=!0x1;let _0x1f5f7f=_0x55920f;for(_0x3b8709['push'](_0x31347e[_0xd1d726(0x45ae)][_0x3fdd1c]),_0x31347e[_0xd1d726(0x45ae)][_0x3fdd1c]=_0x3766f2;_0x3766f2<_0x16091c;){const _0xc668a9=_0x31347e[_0xd1d726(0x1005)][_0xd1d726(0x1806)](_0x3766f2);if(!_0x2578e9(_0xc668a9))break;0x9===_0xc668a9?_0x1f5f7f+=0x4-(_0x1f5f7f+_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]+(_0x24685b?0x1:0x0))%0x4:_0x1f5f7f++,_0x3766f2++;}_0x13b722=_0x3766f2>=_0x16091c,_0x1cd298[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]),_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]=_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]+0x1+(_0x3a5669?0x1:0x0),_0x58c5df[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]),_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]=_0x1f5f7f-_0x55920f,_0x178bd3[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x1d33)][_0x3fdd1c]),_0x31347e[_0xd1d726(0x1d33)][_0x3fdd1c]=_0x3766f2-_0x31347e[_0xd1d726(0x45ae)][_0x3fdd1c];continue;}if(_0x13b722)break;let _0x20a23e=!0x1;for(let _0x487af8=0x0,_0x13917f=_0x444958[_0xd1d726(0x205b)];_0x487af8<_0x13917f;_0x487af8++)if(_0x444958[_0x487af8](_0x31347e,_0x3fdd1c,_0x532d63,!0x0)){_0x20a23e=!0x0;break;}if(_0x20a23e){_0x31347e[_0xd1d726(0x44dd)]=_0x3fdd1c,0x0!==_0x31347e[_0xd1d726(0x2c69)]&&(_0x3b8709[_0xd1d726(0x4131)](_0x31347e['bMarks'][_0x3fdd1c]),_0x1cd298[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]),_0x178bd3['push'](_0x31347e['tShift'][_0x3fdd1c]),_0x58c5df['push'](_0x31347e['sCount'][_0x3fdd1c]),_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]-=_0x31347e['blkIndent']);break;}_0x3b8709[_0xd1d726(0x4131)](_0x31347e['bMarks'][_0x3fdd1c]),_0x1cd298[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x2851)][_0x3fdd1c]),_0x178bd3[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x1d33)][_0x3fdd1c]),_0x58c5df[_0xd1d726(0x4131)](_0x31347e[_0xd1d726(0x11e9)][_0x3fdd1c]),_0x31347e['sCount'][_0x3fdd1c]=-0x1;}const _0x54da3e=_0x31347e[_0xd1d726(0x2c69)];_0x31347e['blkIndent']=0x0;const _0x3b9e4e=_0x31347e[_0xd1d726(0x4131)]('blockquote_open',_0xd1d726(0x30ef),0x1);_0x3b9e4e[_0xd1d726(0x2767)]='>';const _0x306177=[_0x12eab5,0x0];_0x3b9e4e[_0xd1d726(0x2c94)]=_0x306177,_0x31347e['md'][_0xd1d726(0x3eab)][_0xd1d726(0x44f9)](_0x31347e,_0x12eab5,_0x3fdd1c),_0x31347e['push']('blockquote_close',_0xd1d726(0x30ef),-0x1)['markup']='>',_0x31347e[_0xd1d726(0x44dd)]=_0x57c915,_0x31347e[_0xd1d726(0x1581)]=_0x377091,_0x306177[0x1]=_0x31347e[_0xd1d726(0x3dde)];for(let _0x3fd377=0x0;_0x3fd377<_0x178bd3[_0xd1d726(0x205b)];_0x3fd377++)_0x31347e[_0xd1d726(0x45ae)][_0x3fd377+_0x12eab5]=_0x3b8709[_0x3fd377],_0x31347e['tShift'][_0x3fd377+_0x12eab5]=_0x178bd3[_0x3fd377],_0x31347e['sCount'][_0x3fd377+_0x12eab5]=_0x58c5df[_0x3fd377],_0x31347e['bsCount'][_0x3fd377+_0x12eab5]=_0x1cd298[_0x3fd377];return _0x31347e['blkIndent']=_0x54da3e,!0x0;},[_0x235866(0x2d53),_0x235866(0x3085),_0x235866(0x30ef),_0x235866(0x20cf)]],['hr',function(_0x215d63,_0x424f08,_0xa0f23d,_0x53df76){const _0x3da25c=_0x235866,_0xd56d9f=_0x215d63[_0x3da25c(0x1908)][_0x424f08];if(_0x215d63[_0x3da25c(0x11e9)][_0x424f08]-_0x215d63[_0x3da25c(0x2c69)]>=0x4)return!0x1;let _0xcbd894=_0x215d63[_0x3da25c(0x45ae)][_0x424f08]+_0x215d63[_0x3da25c(0x1d33)][_0x424f08];const _0x24a5fd=_0x215d63[_0x3da25c(0x1005)][_0x3da25c(0x1806)](_0xcbd894++);if(0x2a!==_0x24a5fd&&0x2d!==_0x24a5fd&&0x5f!==_0x24a5fd)return!0x1;let _0x167320=0x1;for(;_0xcbd894<_0xd56d9f;){const _0x257698=_0x215d63['src'][_0x3da25c(0x1806)](_0xcbd894++);if(_0x257698!==_0x24a5fd&&!_0x2578e9(_0x257698))return!0x1;_0x257698===_0x24a5fd&&_0x167320++;}if(_0x167320<0x3)return!0x1;if(_0x53df76)return!0x0;_0x215d63['line']=_0x424f08+0x1;const _0x20b9ac=_0x215d63[_0x3da25c(0x4131)]('hr','hr',0x0);return _0x20b9ac[_0x3da25c(0x2c94)]=[_0x424f08,_0x215d63[_0x3da25c(0x3dde)]],_0x20b9ac['markup']=Array(_0x167320+0x1)[_0x3da25c(0x379c)](String['fromCharCode'](_0x24a5fd)),!0x0;},[_0x235866(0x2d53),_0x235866(0x3085),'blockquote',_0x235866(0x20cf)]],[_0x235866(0x20cf),function(_0x1fde77,_0x13cddc,_0x58c49d,_0x376f70){const _0x12873e=_0x235866;let _0x4a5895,_0x3986c9,_0x5af6ab,_0x31e44a,_0x1eb033=_0x13cddc,_0x531fae=!0x0;if(_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]-_0x1fde77['blkIndent']>=0x4)return!0x1;if(_0x1fde77[_0x12873e(0x50fb)]>=0x0&&_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]-_0x1fde77['listIndent']>=0x4&&_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]<_0x1fde77[_0x12873e(0x2c69)])return!0x1;let _0x444b65,_0x26ba09,_0x27e984,_0x3cd266=!0x1;if(_0x376f70&&_0x12873e(0x2d53)===_0x1fde77[_0x12873e(0x1581)]&&_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]>=_0x1fde77[_0x12873e(0x2c69)]&&(_0x3cd266=!0x0),(_0x27e984=_0x1a50f7(_0x1fde77,_0x1eb033))>=0x0){if(_0x444b65=!0x0,_0x5af6ab=_0x1fde77['bMarks'][_0x1eb033]+_0x1fde77['tShift'][_0x1eb033],_0x26ba09=Number(_0x1fde77['src']['slice'](_0x5af6ab,_0x27e984-0x1)),_0x3cd266&&0x1!==_0x26ba09)return!0x1;}else{if(!((_0x27e984=_0x34b13a(_0x1fde77,_0x1eb033))>=0x0))return!0x1;_0x444b65=!0x1;}if(_0x3cd266&&_0x1fde77[_0x12873e(0x28e7)](_0x27e984)>=_0x1fde77['eMarks'][_0x1eb033])return!0x1;if(_0x376f70)return!0x0;const _0x185ec0=_0x1fde77[_0x12873e(0x1005)]['charCodeAt'](_0x27e984-0x1),_0x2c7114=_0x1fde77[_0x12873e(0x30f4)][_0x12873e(0x205b)];_0x444b65?(_0x31e44a=_0x1fde77[_0x12873e(0x4131)](_0x12873e(0x3248),'ol',0x1),0x1!==_0x26ba09&&(_0x31e44a['attrs']=[[_0x12873e(0x1698),_0x26ba09]])):_0x31e44a=_0x1fde77[_0x12873e(0x4131)](_0x12873e(0x3edd),'ul',0x1);const _0x410117=[_0x1eb033,0x0];_0x31e44a[_0x12873e(0x2c94)]=_0x410117,_0x31e44a['markup']=String[_0x12873e(0xc78)](_0x185ec0);let _0x543eb3=!0x1;const _0xfd8d62=_0x1fde77['md'][_0x12873e(0x3eab)][_0x12873e(0x536)][_0x12873e(0x68d)](_0x12873e(0x20cf)),_0x57354e=_0x1fde77['parentType'];for(_0x1fde77[_0x12873e(0x1581)]='list';_0x1eb033<_0x58c49d;){_0x3986c9=_0x27e984,_0x4a5895=_0x1fde77[_0x12873e(0x1908)][_0x1eb033];const _0x10c962=_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]+_0x27e984-(_0x1fde77[_0x12873e(0x45ae)][_0x1eb033]+_0x1fde77[_0x12873e(0x1d33)][_0x1eb033]);let _0x102c2b=_0x10c962;for(;_0x3986c9<_0x4a5895;){const _0x2267a1=_0x1fde77[_0x12873e(0x1005)][_0x12873e(0x1806)](_0x3986c9);if(0x9===_0x2267a1)_0x102c2b+=0x4-(_0x102c2b+_0x1fde77['bsCount'][_0x1eb033])%0x4;else{if(0x20!==_0x2267a1)break;_0x102c2b++;}_0x3986c9++;}const _0x5ecb45=_0x3986c9;let _0x2be5fe;_0x2be5fe=_0x5ecb45>=_0x4a5895?0x1:_0x102c2b-_0x10c962,_0x2be5fe>0x4&&(_0x2be5fe=0x1);const _0x429979=_0x10c962+_0x2be5fe;_0x31e44a=_0x1fde77[_0x12873e(0x4131)](_0x12873e(0xc31),'li',0x1),_0x31e44a[_0x12873e(0x2767)]=String[_0x12873e(0xc78)](_0x185ec0);const _0x576f44=[_0x1eb033,0x0];_0x31e44a[_0x12873e(0x2c94)]=_0x576f44,_0x444b65&&(_0x31e44a['info']=_0x1fde77['src'][_0x12873e(0x428e)](_0x5af6ab,_0x27e984-0x1));const _0x803832=_0x1fde77[_0x12873e(0x4ea7)],_0xf4630f=_0x1fde77['tShift'][_0x1eb033],_0x51414e=_0x1fde77[_0x12873e(0x11e9)][_0x1eb033],_0x1c5e5f=_0x1fde77['listIndent'];if(_0x1fde77[_0x12873e(0x50fb)]=_0x1fde77[_0x12873e(0x2c69)],_0x1fde77['blkIndent']=_0x429979,_0x1fde77[_0x12873e(0x4ea7)]=!0x0,_0x1fde77[_0x12873e(0x1d33)][_0x1eb033]=_0x5ecb45-_0x1fde77['bMarks'][_0x1eb033],_0x1fde77['sCount'][_0x1eb033]=_0x102c2b,_0x5ecb45>=_0x4a5895&&_0x1fde77['isEmpty'](_0x1eb033+0x1)?_0x1fde77[_0x12873e(0x3dde)]=Math['min'](_0x1fde77[_0x12873e(0x3dde)]+0x2,_0x58c49d):_0x1fde77['md'][_0x12873e(0x3eab)][_0x12873e(0x44f9)](_0x1fde77,_0x1eb033,_0x58c49d,!0x0),_0x1fde77[_0x12873e(0x4ea7)]&&!_0x543eb3||(_0x531fae=!0x1),_0x543eb3=_0x1fde77[_0x12873e(0x3dde)]-_0x1eb033>0x1&&_0x1fde77['isEmpty'](_0x1fde77['line']-0x1),_0x1fde77[_0x12873e(0x2c69)]=_0x1fde77[_0x12873e(0x50fb)],_0x1fde77[_0x12873e(0x50fb)]=_0x1c5e5f,_0x1fde77[_0x12873e(0x1d33)][_0x1eb033]=_0xf4630f,_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]=_0x51414e,_0x1fde77['tight']=_0x803832,_0x31e44a=_0x1fde77[_0x12873e(0x4131)](_0x12873e(0x9dc),'li',-0x1),_0x31e44a[_0x12873e(0x2767)]=String[_0x12873e(0xc78)](_0x185ec0),_0x1eb033=_0x1fde77[_0x12873e(0x3dde)],_0x576f44[0x1]=_0x1eb033,_0x1eb033>=_0x58c49d)break;if(_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]<_0x1fde77[_0x12873e(0x2c69)])break;if(_0x1fde77[_0x12873e(0x11e9)][_0x1eb033]-_0x1fde77[_0x12873e(0x2c69)]>=0x4)break;let _0x347120=!0x1;for(let _0x41f7ec=0x0,_0x50abc7=_0xfd8d62[_0x12873e(0x205b)];_0x41f7ec<_0x50abc7;_0x41f7ec++)if(_0xfd8d62[_0x41f7ec](_0x1fde77,_0x1eb033,_0x58c49d,!0x0)){_0x347120=!0x0;break;}if(_0x347120)break;if(_0x444b65){if(_0x27e984=_0x1a50f7(_0x1fde77,_0x1eb033),_0x27e984<0x0)break;_0x5af6ab=_0x1fde77[_0x12873e(0x45ae)][_0x1eb033]+_0x1fde77[_0x12873e(0x1d33)][_0x1eb033];}else{if(_0x27e984=_0x34b13a(_0x1fde77,_0x1eb033),_0x27e984<0x0)break;}if(_0x185ec0!==_0x1fde77[_0x12873e(0x1005)][_0x12873e(0x1806)](_0x27e984-0x1))break;}return _0x31e44a=_0x444b65?_0x1fde77[_0x12873e(0x4131)](_0x12873e(0x2d93),'ol',-0x1):_0x1fde77[_0x12873e(0x4131)](_0x12873e(0x2293),'ul',-0x1),_0x31e44a[_0x12873e(0x2767)]=String[_0x12873e(0xc78)](_0x185ec0),_0x410117[0x1]=_0x1eb033,_0x1fde77[_0x12873e(0x3dde)]=_0x1eb033,_0x1fde77[_0x12873e(0x1581)]=_0x57354e,_0x531fae&&function(_0x513a56,_0x29f6a1){const _0x25356f=_0x12873e,_0x3cf0ed=_0x513a56[_0x25356f(0x1279)]+0x2;for(let _0x4a5489=_0x29f6a1+0x2,_0x1472b8=_0x513a56[_0x25356f(0x30f4)][_0x25356f(0x205b)]-0x2;_0x4a5489<_0x1472b8;_0x4a5489++)_0x513a56['tokens'][_0x4a5489][_0x25356f(0x1279)]===_0x3cf0ed&&_0x25356f(0x114e)===_0x513a56['tokens'][_0x4a5489]['type']&&(_0x513a56[_0x25356f(0x30f4)][_0x4a5489+0x2][_0x25356f(0x17f8)]=!0x0,_0x513a56[_0x25356f(0x30f4)][_0x4a5489][_0x25356f(0x17f8)]=!0x0,_0x4a5489+=0x2);}(_0x1fde77,_0x2c7114),!0x0;},['paragraph',_0x235866(0x3085),_0x235866(0x30ef)]],[_0x235866(0x3085),function(_0x3f852b,_0x4d3d83,_0x2421d7,_0x295406){const _0x4ce7c6=_0x235866;let _0x2b37f1=0x0,_0x27897e=_0x3f852b[_0x4ce7c6(0x45ae)][_0x4d3d83]+_0x3f852b[_0x4ce7c6(0x1d33)][_0x4d3d83],_0x54ba36=_0x3f852b[_0x4ce7c6(0x1908)][_0x4d3d83],_0x43ce9c=_0x4d3d83+0x1;if(_0x3f852b[_0x4ce7c6(0x11e9)][_0x4d3d83]-_0x3f852b[_0x4ce7c6(0x2c69)]>=0x4)return!0x1;if(0x5b!==_0x3f852b[_0x4ce7c6(0x1005)]['charCodeAt'](_0x27897e))return!0x1;for(;++_0x27897e<_0x54ba36;)if(0x5d===_0x3f852b[_0x4ce7c6(0x1005)]['charCodeAt'](_0x27897e)&&0x5c!==_0x3f852b[_0x4ce7c6(0x1005)]['charCodeAt'](_0x27897e-0x1)){if(_0x27897e+0x1===_0x54ba36)return!0x1;if(0x3a!==_0x3f852b[_0x4ce7c6(0x1005)][_0x4ce7c6(0x1806)](_0x27897e+0x1))return!0x1;break;}const _0x20d566=_0x3f852b[_0x4ce7c6(0x44dd)],_0x52c843=_0x3f852b['md'][_0x4ce7c6(0x3eab)][_0x4ce7c6(0x536)][_0x4ce7c6(0x68d)](_0x4ce7c6(0x3085)),_0x169a30=_0x3f852b[_0x4ce7c6(0x1581)];for(_0x3f852b[_0x4ce7c6(0x1581)]='reference';_0x43ce9c<_0x20d566&&!_0x3f852b['isEmpty'](_0x43ce9c);_0x43ce9c++){if(_0x3f852b[_0x4ce7c6(0x11e9)][_0x43ce9c]-_0x3f852b[_0x4ce7c6(0x2c69)]>0x3)continue;if(_0x3f852b[_0x4ce7c6(0x11e9)][_0x43ce9c]<0x0)continue;let _0xa1dc4c=!0x1;for(let _0x4a4438=0x0,_0x21aad7=_0x52c843[_0x4ce7c6(0x205b)];_0x4a4438<_0x21aad7;_0x4a4438++)if(_0x52c843[_0x4a4438](_0x3f852b,_0x43ce9c,_0x20d566,!0x0)){_0xa1dc4c=!0x0;break;}if(_0xa1dc4c)break;}const _0x57bfa8=_0x3f852b[_0x4ce7c6(0x3131)](_0x4d3d83,_0x43ce9c,_0x3f852b[_0x4ce7c6(0x2c69)],!0x1)[_0x4ce7c6(0x1d0e)]();_0x54ba36=_0x57bfa8['length'];let _0x12462f=-0x1;for(_0x27897e=0x1;_0x27897e<_0x54ba36;_0x27897e++){const _0x593b42=_0x57bfa8['charCodeAt'](_0x27897e);if(0x5b===_0x593b42)return!0x1;if(0x5d===_0x593b42){_0x12462f=_0x27897e;break;}0xa===_0x593b42?_0x2b37f1++:0x5c===_0x593b42&&(_0x27897e++,_0x27897e<_0x54ba36&&0xa===_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e)&&_0x2b37f1++);}if(_0x12462f<0x0||0x3a!==_0x57bfa8['charCodeAt'](_0x12462f+0x1))return!0x1;for(_0x27897e=_0x12462f+0x2;_0x27897e<_0x54ba36;_0x27897e++){const _0x4baee3=_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e);if(0xa===_0x4baee3)_0x2b37f1++;else{if(!_0x2578e9(_0x4baee3))break;}}const _0x11677f=_0x3f852b['md'][_0x4ce7c6(0x2f9b)][_0x4ce7c6(0x21e6)](_0x57bfa8,_0x27897e,_0x54ba36);if(!_0x11677f['ok'])return!0x1;const _0x40d62d=_0x3f852b['md']['normalizeLink'](_0x11677f[_0x4ce7c6(0x31ea)]);if(!_0x3f852b['md'][_0x4ce7c6(0x3a4a)](_0x40d62d))return!0x1;_0x27897e=_0x11677f[_0x4ce7c6(0x44ff)],_0x2b37f1+=_0x11677f['lines'];const _0x49ffa6=_0x27897e,_0x379af1=_0x2b37f1,_0x497a6b=_0x27897e;for(;_0x27897e<_0x54ba36;_0x27897e++){const _0x39b3be=_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e);if(0xa===_0x39b3be)_0x2b37f1++;else{if(!_0x2578e9(_0x39b3be))break;}}const _0x18bbea=_0x3f852b['md'][_0x4ce7c6(0x2f9b)]['parseLinkTitle'](_0x57bfa8,_0x27897e,_0x54ba36);let _0xefe474;for(_0x27897e<_0x54ba36&&_0x497a6b!==_0x27897e&&_0x18bbea['ok']?(_0xefe474=_0x18bbea['str'],_0x27897e=_0x18bbea['pos'],_0x2b37f1+=_0x18bbea[_0x4ce7c6(0x33a3)]):(_0xefe474='',_0x27897e=_0x49ffa6,_0x2b37f1=_0x379af1);_0x27897e<_0x54ba36;){if(!_0x2578e9(_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e)))break;_0x27897e++;}if(_0x27897e<_0x54ba36&&0xa!==_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e)&&_0xefe474)for(_0xefe474='',_0x27897e=_0x49ffa6,_0x2b37f1=_0x379af1;_0x27897e<_0x54ba36;){if(!_0x2578e9(_0x57bfa8['charCodeAt'](_0x27897e)))break;_0x27897e++;}if(_0x27897e<_0x54ba36&&0xa!==_0x57bfa8[_0x4ce7c6(0x1806)](_0x27897e))return!0x1;const _0x2f23ab=_0x479708(_0x57bfa8[_0x4ce7c6(0x428e)](0x1,_0x12462f));return!!_0x2f23ab&&(_0x295406||(void 0x0===_0x3f852b[_0x4ce7c6(0x2f9e)]['references']&&(_0x3f852b[_0x4ce7c6(0x2f9e)][_0x4ce7c6(0x1b08)]={}),void 0x0===_0x3f852b[_0x4ce7c6(0x2f9e)][_0x4ce7c6(0x1b08)][_0x2f23ab]&&(_0x3f852b['env'][_0x4ce7c6(0x1b08)][_0x2f23ab]={'title':_0xefe474,'href':_0x40d62d}),_0x3f852b['parentType']=_0x169a30,_0x3f852b[_0x4ce7c6(0x3dde)]=_0x4d3d83+_0x2b37f1+0x1),!0x0);}],[_0x235866(0x3de3),function(_0x33edd5,_0x165ed3,_0x3f5160,_0x9c76b2){const _0x354571=_0x235866;let _0x10046a=_0x33edd5[_0x354571(0x45ae)][_0x165ed3]+_0x33edd5['tShift'][_0x165ed3],_0x3d416c=_0x33edd5[_0x354571(0x1908)][_0x165ed3];if(_0x33edd5[_0x354571(0x11e9)][_0x165ed3]-_0x33edd5[_0x354571(0x2c69)]>=0x4)return!0x1;if(!_0x33edd5['md']['options'][_0x354571(0x1978)])return!0x1;if(0x3c!==_0x33edd5[_0x354571(0x1005)][_0x354571(0x1806)](_0x10046a))return!0x1;let _0x1a0891=_0x33edd5['src']['slice'](_0x10046a,_0x3d416c),_0x201db5=0x0;for(;_0x201db5<_0x440e82[_0x354571(0x205b)]&&!_0x440e82[_0x201db5][0x0][_0x354571(0x34c)](_0x1a0891);_0x201db5++);if(_0x201db5===_0x440e82[_0x354571(0x205b)])return!0x1;if(_0x9c76b2)return _0x440e82[_0x201db5][0x2];let _0x2ccb18=_0x165ed3+0x1;if(!_0x440e82[_0x201db5][0x1][_0x354571(0x34c)](_0x1a0891)){for(;_0x2ccb18<_0x3f5160&&!(_0x33edd5[_0x354571(0x11e9)][_0x2ccb18]<_0x33edd5[_0x354571(0x2c69)]);_0x2ccb18++)if(_0x10046a=_0x33edd5[_0x354571(0x45ae)][_0x2ccb18]+_0x33edd5[_0x354571(0x1d33)][_0x2ccb18],_0x3d416c=_0x33edd5[_0x354571(0x1908)][_0x2ccb18],_0x1a0891=_0x33edd5[_0x354571(0x1005)][_0x354571(0x428e)](_0x10046a,_0x3d416c),_0x440e82[_0x201db5][0x1][_0x354571(0x34c)](_0x1a0891)){0x0!==_0x1a0891['length']&&_0x2ccb18++;break;}}_0x33edd5[_0x354571(0x3dde)]=_0x2ccb18;const _0x538a8a=_0x33edd5[_0x354571(0x4131)](_0x354571(0x3de3),'',0x0);return _0x538a8a[_0x354571(0x2c94)]=[_0x165ed3,_0x2ccb18],_0x538a8a['content']=_0x33edd5[_0x354571(0x3131)](_0x165ed3,_0x2ccb18,_0x33edd5['blkIndent'],!0x0),!0x0;},[_0x235866(0x2d53),_0x235866(0x3085),_0x235866(0x30ef)]],[_0x235866(0x4d5f),function(_0xfa0c2b,_0x3d35ea,_0x1f854b,_0x1c6ef9){const _0x4abe6a=_0x235866;let _0x50b221=_0xfa0c2b['bMarks'][_0x3d35ea]+_0xfa0c2b[_0x4abe6a(0x1d33)][_0x3d35ea],_0xa135ea=_0xfa0c2b[_0x4abe6a(0x1908)][_0x3d35ea];if(_0xfa0c2b[_0x4abe6a(0x11e9)][_0x3d35ea]-_0xfa0c2b[_0x4abe6a(0x2c69)]>=0x4)return!0x1;let _0x23d9fa=_0xfa0c2b[_0x4abe6a(0x1005)]['charCodeAt'](_0x50b221);if(0x23!==_0x23d9fa||_0x50b221>=_0xa135ea)return!0x1;let _0x48fe2f=0x1;for(_0x23d9fa=_0xfa0c2b['src'][_0x4abe6a(0x1806)](++_0x50b221);0x23===_0x23d9fa&&_0x50b221<_0xa135ea&&_0x48fe2f<=0x6;)_0x48fe2f++,_0x23d9fa=_0xfa0c2b[_0x4abe6a(0x1005)][_0x4abe6a(0x1806)](++_0x50b221);if(_0x48fe2f>0x6||_0x50b221<_0xa135ea&&!_0x2578e9(_0x23d9fa))return!0x1;if(_0x1c6ef9)return!0x0;_0xa135ea=_0xfa0c2b[_0x4abe6a(0x2c89)](_0xa135ea,_0x50b221);const _0x237b7f=_0xfa0c2b[_0x4abe6a(0x667)](_0xa135ea,0x23,_0x50b221);_0x237b7f>_0x50b221&&_0x2578e9(_0xfa0c2b[_0x4abe6a(0x1005)][_0x4abe6a(0x1806)](_0x237b7f-0x1))&&(_0xa135ea=_0x237b7f),_0xfa0c2b[_0x4abe6a(0x3dde)]=_0x3d35ea+0x1;const _0x47d1ad=_0xfa0c2b[_0x4abe6a(0x4131)](_0x4abe6a(0xa22),'h'+String(_0x48fe2f),0x1);_0x47d1ad[_0x4abe6a(0x2767)]=_0x4abe6a(0x2cc4)['slice'](0x0,_0x48fe2f),_0x47d1ad[_0x4abe6a(0x2c94)]=[_0x3d35ea,_0xfa0c2b[_0x4abe6a(0x3dde)]];const _0x136580=_0xfa0c2b[_0x4abe6a(0x4131)](_0x4abe6a(0x50d2),'',0x0);return _0x136580[_0x4abe6a(0x498f)]=_0xfa0c2b[_0x4abe6a(0x1005)][_0x4abe6a(0x428e)](_0x50b221,_0xa135ea)[_0x4abe6a(0x1d0e)](),_0x136580[_0x4abe6a(0x2c94)]=[_0x3d35ea,_0xfa0c2b['line']],_0x136580[_0x4abe6a(0x4538)]=[],_0xfa0c2b['push'](_0x4abe6a(0xbaa),'h'+String(_0x48fe2f),-0x1)[_0x4abe6a(0x2767)]=_0x4abe6a(0x2cc4)['slice'](0x0,_0x48fe2f),!0x0;},[_0x235866(0x2d53),_0x235866(0x3085),_0x235866(0x30ef)]],[_0x235866(0x469),function(_0x410bb2,_0x5ab602,_0x17552c){const _0x549e11=_0x235866,_0x25a6b7=_0x410bb2['md'][_0x549e11(0x3eab)][_0x549e11(0x536)][_0x549e11(0x68d)]('paragraph');if(_0x410bb2[_0x549e11(0x11e9)][_0x5ab602]-_0x410bb2[_0x549e11(0x2c69)]>=0x4)return!0x1;const _0x2b940a=_0x410bb2[_0x549e11(0x1581)];_0x410bb2[_0x549e11(0x1581)]=_0x549e11(0x2d53);let _0x222796,_0x1af94a=0x0,_0x215464=_0x5ab602+0x1;for(;_0x215464<_0x17552c&&!_0x410bb2[_0x549e11(0x272a)](_0x215464);_0x215464++){if(_0x410bb2[_0x549e11(0x11e9)][_0x215464]-_0x410bb2['blkIndent']>0x3)continue;if(_0x410bb2[_0x549e11(0x11e9)][_0x215464]>=_0x410bb2[_0x549e11(0x2c69)]){let _0x54666d=_0x410bb2['bMarks'][_0x215464]+_0x410bb2[_0x549e11(0x1d33)][_0x215464];const _0x4388f3=_0x410bb2[_0x549e11(0x1908)][_0x215464];if(_0x54666d<_0x4388f3&&(_0x222796=_0x410bb2[_0x549e11(0x1005)][_0x549e11(0x1806)](_0x54666d),(0x2d===_0x222796||0x3d===_0x222796)&&(_0x54666d=_0x410bb2[_0x549e11(0x156)](_0x54666d,_0x222796),_0x54666d=_0x410bb2[_0x549e11(0x28e7)](_0x54666d),_0x54666d>=_0x4388f3))){_0x1af94a=0x3d===_0x222796?0x1:0x2;break;}}if(_0x410bb2[_0x549e11(0x11e9)][_0x215464]<0x0)continue;let _0x4f192a=!0x1;for(let _0x460005=0x0,_0x1e3903=_0x25a6b7[_0x549e11(0x205b)];_0x460005<_0x1e3903;_0x460005++)if(_0x25a6b7[_0x460005](_0x410bb2,_0x215464,_0x17552c,!0x0)){_0x4f192a=!0x0;break;}if(_0x4f192a)break;}if(!_0x1af94a)return!0x1;const _0x58c313=_0x410bb2[_0x549e11(0x3131)](_0x5ab602,_0x215464,_0x410bb2[_0x549e11(0x2c69)],!0x1)[_0x549e11(0x1d0e)]();_0x410bb2[_0x549e11(0x3dde)]=_0x215464+0x1;const _0x4fe2e1=_0x410bb2[_0x549e11(0x4131)]('heading_open','h'+String(_0x1af94a),0x1);_0x4fe2e1[_0x549e11(0x2767)]=String[_0x549e11(0xc78)](_0x222796),_0x4fe2e1[_0x549e11(0x2c94)]=[_0x5ab602,_0x410bb2[_0x549e11(0x3dde)]];const _0x18664b=_0x410bb2[_0x549e11(0x4131)](_0x549e11(0x50d2),'',0x0);return _0x18664b['content']=_0x58c313,_0x18664b[_0x549e11(0x2c94)]=[_0x5ab602,_0x410bb2[_0x549e11(0x3dde)]-0x1],_0x18664b[_0x549e11(0x4538)]=[],_0x410bb2['push'](_0x549e11(0xbaa),'h'+String(_0x1af94a),-0x1)[_0x549e11(0x2767)]=String[_0x549e11(0xc78)](_0x222796),_0x410bb2[_0x549e11(0x1581)]=_0x2b940a,!0x0;}],['paragraph',function(_0x46efc8,_0x51be34,_0x475689){const _0x4e7333=_0x235866,_0x29b38b=_0x46efc8['md'][_0x4e7333(0x3eab)][_0x4e7333(0x536)][_0x4e7333(0x68d)](_0x4e7333(0x2d53)),_0x51d4e8=_0x46efc8['parentType'];let _0x45979e=_0x51be34+0x1;for(_0x46efc8[_0x4e7333(0x1581)]='paragraph';_0x45979e<_0x475689&&!_0x46efc8[_0x4e7333(0x272a)](_0x45979e);_0x45979e++){if(_0x46efc8[_0x4e7333(0x11e9)][_0x45979e]-_0x46efc8[_0x4e7333(0x2c69)]>0x3)continue;if(_0x46efc8['sCount'][_0x45979e]<0x0)continue;let _0x569a74=!0x1;for(let _0x27d701=0x0,_0x56fea3=_0x29b38b[_0x4e7333(0x205b)];_0x27d701<_0x56fea3;_0x27d701++)if(_0x29b38b[_0x27d701](_0x46efc8,_0x45979e,_0x475689,!0x0)){_0x569a74=!0x0;break;}if(_0x569a74)break;}const _0x4c413c=_0x46efc8[_0x4e7333(0x3131)](_0x51be34,_0x45979e,_0x46efc8['blkIndent'],!0x1)[_0x4e7333(0x1d0e)]();_0x46efc8['line']=_0x45979e,_0x46efc8[_0x4e7333(0x4131)](_0x4e7333(0x114e),'p',0x1)[_0x4e7333(0x2c94)]=[_0x51be34,_0x46efc8[_0x4e7333(0x3dde)]];const _0x177ea7=_0x46efc8[_0x4e7333(0x4131)](_0x4e7333(0x50d2),'',0x0);return _0x177ea7['content']=_0x4c413c,_0x177ea7[_0x4e7333(0x2c94)]=[_0x51be34,_0x46efc8[_0x4e7333(0x3dde)]],_0x177ea7[_0x4e7333(0x4538)]=[],_0x46efc8[_0x4e7333(0x4131)]('paragraph_close','p',-0x1),_0x46efc8['parentType']=_0x51d4e8,!0x0;}]];function _0x58041d(){const _0x151602=_0x235866;this[_0x151602(0x536)]=new _0x22236d();for(let _0x32156b=0x0;_0x32156b<_0x48c7d7[_0x151602(0x205b)];_0x32156b++)this[_0x151602(0x536)][_0x151602(0x4131)](_0x48c7d7[_0x32156b][0x0],_0x48c7d7[_0x32156b][0x1],{'alt':(_0x48c7d7[_0x32156b][0x2]||[])[_0x151602(0x428e)]()});}_0x58041d[_0x235866(0x2b5c)]['tokenize']=function(_0x402ceb,_0x47843e,_0x243be5){const _0x47333c=_0x235866,_0x394d16=this[_0x47333c(0x536)][_0x47333c(0x68d)](''),_0x2a0f0d=_0x394d16[_0x47333c(0x205b)],_0x58f109=_0x402ceb['md'][_0x47333c(0x199c)][_0x47333c(0x2056)];let _0x48cc4c=_0x47843e,_0x1eb5c6=!0x1;for(;_0x48cc4c<_0x243be5&&(_0x402ceb[_0x47333c(0x3dde)]=_0x48cc4c=_0x402ceb[_0x47333c(0xa5e)](_0x48cc4c),!(_0x48cc4c>=_0x243be5))&&!(_0x402ceb[_0x47333c(0x11e9)][_0x48cc4c]<_0x402ceb['blkIndent']);){if(_0x402ceb[_0x47333c(0x1279)]>=_0x58f109){_0x402ceb['line']=_0x243be5;break;}const _0x2ca768=_0x402ceb[_0x47333c(0x3dde)];let _0x1afeb6=!0x1;for(let _0x137dbc=0x0;_0x137dbc<_0x2a0f0d;_0x137dbc++)if(_0x1afeb6=_0x394d16[_0x137dbc](_0x402ceb,_0x48cc4c,_0x243be5,!0x1),_0x1afeb6){if(_0x2ca768>=_0x402ceb[_0x47333c(0x3dde)])throw new Error('block\x20rule\x20didn\x27t\x20increment\x20state.line');break;}if(!_0x1afeb6)throw new Error(_0x47333c(0xad0));_0x402ceb[_0x47333c(0x4ea7)]=!_0x1eb5c6,_0x402ceb['isEmpty'](_0x402ceb[_0x47333c(0x3dde)]-0x1)&&(_0x1eb5c6=!0x0),_0x48cc4c=_0x402ceb[_0x47333c(0x3dde)],_0x48cc4c<_0x243be5&&_0x402ceb['isEmpty'](_0x48cc4c)&&(_0x1eb5c6=!0x0,_0x48cc4c++,_0x402ceb[_0x47333c(0x3dde)]=_0x48cc4c);}},_0x58041d[_0x235866(0x2b5c)][_0x235866(0x1b07)]=function(_0x105cc8,_0x50492d,_0x97357e,_0x4417c9){const _0x381ccb=_0x235866;if(!_0x105cc8)return;const _0x269ef7=new this[(_0x381ccb(0x2153))](_0x105cc8,_0x50492d,_0x97357e,_0x4417c9);this[_0x381ccb(0x44f9)](_0x269ef7,_0x269ef7[_0x381ccb(0x3dde)],_0x269ef7[_0x381ccb(0x44dd)]);},_0x58041d[_0x235866(0x2b5c)][_0x235866(0x2153)]=_0xe2ba27;const _0x11a7a6=_0x58041d;function _0xcc19d3(_0x3ab803,_0x4b15fb,_0x133d51,_0x5a4f9c){const _0x2b8aa6=_0x235866;this[_0x2b8aa6(0x1005)]=_0x3ab803,this[_0x2b8aa6(0x2f9e)]=_0x133d51,this['md']=_0x4b15fb,this[_0x2b8aa6(0x30f4)]=_0x5a4f9c,this[_0x2b8aa6(0x407f)]=Array(_0x5a4f9c['length']),this[_0x2b8aa6(0x44ff)]=0x0,this[_0x2b8aa6(0x40d)]=this[_0x2b8aa6(0x1005)][_0x2b8aa6(0x205b)],this[_0x2b8aa6(0x1279)]=0x0,this[_0x2b8aa6(0x7cb)]='',this[_0x2b8aa6(0x1b3a)]=0x0,this[_0x2b8aa6(0x14f4)]={},this[_0x2b8aa6(0x14fc)]=[],this[_0x2b8aa6(0x4879)]=[],this[_0x2b8aa6(0x1c3c)]={},this[_0x2b8aa6(0x40f5)]=!0x1,this[_0x2b8aa6(0x249f)]=0x0;}_0xcc19d3['prototype']['pushPending']=function(){const _0x3518f1=_0x235866,_0x5a2c21=new _0x5a43f1(_0x3518f1(0x2f35),'',0x0);return _0x5a2c21[_0x3518f1(0x498f)]=this['pending'],_0x5a2c21[_0x3518f1(0x1279)]=this['pendingLevel'],this[_0x3518f1(0x30f4)]['push'](_0x5a2c21),this[_0x3518f1(0x7cb)]='',_0x5a2c21;},_0xcc19d3[_0x235866(0x2b5c)]['push']=function(_0x1c46a8,_0x94fd1a,_0x510f7b){const _0x28c389=_0x235866;this['pending']&&this[_0x28c389(0x3013)]();const _0x3c0b75=new _0x5a43f1(_0x1c46a8,_0x94fd1a,_0x510f7b);let _0x44c39f=null;return _0x510f7b<0x0&&(this[_0x28c389(0x1279)]--,this['delimiters']=this['_prev_delimiters'][_0x28c389(0x2895)]()),_0x3c0b75[_0x28c389(0x1279)]=this[_0x28c389(0x1279)],_0x510f7b>0x0&&(this[_0x28c389(0x1279)]++,this[_0x28c389(0x4879)][_0x28c389(0x4131)](this[_0x28c389(0x14fc)]),this[_0x28c389(0x14fc)]=[],_0x44c39f={'delimiters':this[_0x28c389(0x14fc)]}),this[_0x28c389(0x1b3a)]=this['level'],this[_0x28c389(0x30f4)][_0x28c389(0x4131)](_0x3c0b75),this[_0x28c389(0x407f)]['push'](_0x44c39f),_0x3c0b75;},_0xcc19d3[_0x235866(0x2b5c)][_0x235866(0x1052)]=function(_0xacb91,_0x44855f){const _0x172cff=_0x235866;let _0x5639ef,_0x44277c,_0x34c343=!0x0,_0x89d80e=!0x0;const _0x4d8978=this[_0x172cff(0x40d)],_0x177bb6=this[_0x172cff(0x1005)][_0x172cff(0x1806)](_0xacb91),_0x1e9434=_0xacb91>0x0?this[_0x172cff(0x1005)][_0x172cff(0x1806)](_0xacb91-0x1):0x20;let _0x12a3c7=_0xacb91;for(;_0x12a3c7<_0x4d8978&&this[_0x172cff(0x1005)][_0x172cff(0x1806)](_0x12a3c7)===_0x177bb6;)_0x12a3c7++;const _0x5812da=_0x12a3c7-_0xacb91,_0x5568fc=_0x12a3c7<_0x4d8978?this[_0x172cff(0x1005)]['charCodeAt'](_0x12a3c7):0x20,_0x3430f8=_0x593bb3(_0x1e9434)||_0x258316(String['fromCharCode'](_0x1e9434)),_0x4e64a3=_0x593bb3(_0x5568fc)||_0x258316(String[_0x172cff(0xc78)](_0x5568fc)),_0x571e13=_0x5c51c2(_0x1e9434),_0x333514=_0x5c51c2(_0x5568fc);return _0x333514?_0x34c343=!0x1:_0x4e64a3&&(_0x571e13||_0x3430f8||(_0x34c343=!0x1)),_0x571e13?_0x89d80e=!0x1:_0x3430f8&&(_0x333514||_0x4e64a3||(_0x89d80e=!0x1)),_0x44855f?(_0x5639ef=_0x34c343,_0x44277c=_0x89d80e):(_0x5639ef=_0x34c343&&(!_0x89d80e||_0x3430f8),_0x44277c=_0x89d80e&&(!_0x34c343||_0x4e64a3)),{'can_open':_0x5639ef,'can_close':_0x44277c,'length':_0x5812da};},_0xcc19d3['prototype'][_0x235866(0x1f7c)]=_0x5a43f1;const _0x97df4f=_0xcc19d3;function _0x28c973(_0x9bcb24){switch(_0x9bcb24){case 0xa:case 0x21:case 0x23:case 0x24:case 0x25:case 0x26:case 0x2a:case 0x2b:case 0x2d:case 0x3a:case 0x3c:case 0x3d:case 0x3e:case 0x40:case 0x5b:case 0x5c:case 0x5d:case 0x5e:case 0x5f:case 0x60:case 0x7b:case 0x7d:case 0x7e:return!0x0;default:return!0x1;}}const _0xecb062=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i,_0x238ca6=[];for(let _0x234bd5=0x0;_0x234bd5<0x100;_0x234bd5++)_0x238ca6[_0x235866(0x4131)](0x0);function _0x3d7fc4(_0x32acd9,_0x3706dd){const _0x159217=_0x235866;let _0x379c88;const _0x13ef20=[],_0x463892=_0x3706dd[_0x159217(0x205b)];for(let _0x1d85b3=0x0;_0x1d85b3<_0x463892;_0x1d85b3++){const _0x14cbb8=_0x3706dd[_0x1d85b3];if(0x7e!==_0x14cbb8[_0x159217(0x3e25)])continue;if(-0x1===_0x14cbb8[_0x159217(0x721)])continue;const _0x41a066=_0x3706dd[_0x14cbb8[_0x159217(0x721)]];_0x379c88=_0x32acd9[_0x159217(0x30f4)][_0x14cbb8[_0x159217(0x4154)]],_0x379c88[_0x159217(0x70a)]=_0x159217(0x5117),_0x379c88[_0x159217(0x17a2)]='s',_0x379c88[_0x159217(0x47ee)]=0x1,_0x379c88[_0x159217(0x2767)]='~~',_0x379c88[_0x159217(0x498f)]='',_0x379c88=_0x32acd9[_0x159217(0x30f4)][_0x41a066[_0x159217(0x4154)]],_0x379c88['type']=_0x159217(0x2696),_0x379c88[_0x159217(0x17a2)]='s',_0x379c88[_0x159217(0x47ee)]=-0x1,_0x379c88[_0x159217(0x2767)]='~~',_0x379c88['content']='',_0x159217(0x2f35)===_0x32acd9[_0x159217(0x30f4)][_0x41a066['token']-0x1][_0x159217(0x70a)]&&'~'===_0x32acd9[_0x159217(0x30f4)][_0x41a066[_0x159217(0x4154)]-0x1][_0x159217(0x498f)]&&_0x13ef20[_0x159217(0x4131)](_0x41a066[_0x159217(0x4154)]-0x1);}for(;_0x13ef20[_0x159217(0x205b)];){const _0x3f0240=_0x13ef20['pop']();let _0x6e1699=_0x3f0240+0x1;for(;_0x6e1699<_0x32acd9[_0x159217(0x30f4)][_0x159217(0x205b)]&&_0x159217(0x2696)===_0x32acd9[_0x159217(0x30f4)][_0x6e1699][_0x159217(0x70a)];)_0x6e1699++;_0x6e1699--,_0x3f0240!==_0x6e1699&&(_0x379c88=_0x32acd9[_0x159217(0x30f4)][_0x6e1699],_0x32acd9[_0x159217(0x30f4)][_0x6e1699]=_0x32acd9[_0x159217(0x30f4)][_0x3f0240],_0x32acd9[_0x159217(0x30f4)][_0x3f0240]=_0x379c88);}}_0x235866(0x3b8c)[_0x235866(0x29d0)]('')[_0x235866(0x4854)](function(_0x36c3a1){const _0x343155=_0x235866;_0x238ca6[_0x36c3a1[_0x343155(0x1806)](0x0)]=0x1;});const _0xf11dbf={'tokenize':function(_0x225f8f,_0x4abd19){const _0xff43a=_0x235866,_0x6fca03=_0x225f8f[_0xff43a(0x44ff)],_0x1bd8e6=_0x225f8f[_0xff43a(0x1005)][_0xff43a(0x1806)](_0x6fca03);if(_0x4abd19)return!0x1;if(0x7e!==_0x1bd8e6)return!0x1;const _0x481f85=_0x225f8f[_0xff43a(0x1052)](_0x225f8f[_0xff43a(0x44ff)],!0x0);let _0x3bc257=_0x481f85[_0xff43a(0x205b)];const _0x96feb2=String[_0xff43a(0xc78)](_0x1bd8e6);if(_0x3bc257<0x2)return!0x1;let _0x5df737;_0x3bc257%0x2&&(_0x5df737=_0x225f8f[_0xff43a(0x4131)](_0xff43a(0x2f35),'',0x0),_0x5df737[_0xff43a(0x498f)]=_0x96feb2,_0x3bc257--);for(let _0x1595b8=0x0;_0x1595b8<_0x3bc257;_0x1595b8+=0x2)_0x5df737=_0x225f8f[_0xff43a(0x4131)](_0xff43a(0x2f35),'',0x0),_0x5df737[_0xff43a(0x498f)]=_0x96feb2+_0x96feb2,_0x225f8f[_0xff43a(0x14fc)][_0xff43a(0x4131)]({'marker':_0x1bd8e6,'length':0x0,'token':_0x225f8f[_0xff43a(0x30f4)][_0xff43a(0x205b)]-0x1,'end':-0x1,'open':_0x481f85[_0xff43a(0x1655)],'close':_0x481f85[_0xff43a(0x316f)]});return _0x225f8f['pos']+=_0x481f85[_0xff43a(0x205b)],!0x0;},'postProcess':function(_0x16478f){const _0x323ee9=_0x235866,_0x3b3f98=_0x16478f[_0x323ee9(0x407f)],_0xc55bab=_0x16478f[_0x323ee9(0x407f)]['length'];_0x3d7fc4(_0x16478f,_0x16478f[_0x323ee9(0x14fc)]);for(let _0x44e890=0x0;_0x44e890<_0xc55bab;_0x44e890++)_0x3b3f98[_0x44e890]&&_0x3b3f98[_0x44e890][_0x323ee9(0x14fc)]&&_0x3d7fc4(_0x16478f,_0x3b3f98[_0x44e890][_0x323ee9(0x14fc)]);}};function _0x544c94(_0xb9cd8c,_0x8d8eae){const _0x3edafb=_0x235866;for(let _0x42d4e3=_0x8d8eae[_0x3edafb(0x205b)]-0x1;_0x42d4e3>=0x0;_0x42d4e3--){const _0x46225d=_0x8d8eae[_0x42d4e3];if(0x5f!==_0x46225d[_0x3edafb(0x3e25)]&&0x2a!==_0x46225d['marker'])continue;if(-0x1===_0x46225d['end'])continue;const _0x252903=_0x8d8eae[_0x46225d[_0x3edafb(0x721)]],_0xc38d57=_0x42d4e3>0x0&&_0x8d8eae[_0x42d4e3-0x1][_0x3edafb(0x721)]===_0x46225d[_0x3edafb(0x721)]+0x1&&_0x8d8eae[_0x42d4e3-0x1]['marker']===_0x46225d[_0x3edafb(0x3e25)]&&_0x8d8eae[_0x42d4e3-0x1][_0x3edafb(0x4154)]===_0x46225d['token']-0x1&&_0x8d8eae[_0x46225d[_0x3edafb(0x721)]+0x1]['token']===_0x252903['token']+0x1,_0x1e1306=String[_0x3edafb(0xc78)](_0x46225d[_0x3edafb(0x3e25)]),_0x20ade8=_0xb9cd8c[_0x3edafb(0x30f4)][_0x46225d[_0x3edafb(0x4154)]];_0x20ade8[_0x3edafb(0x70a)]=_0xc38d57?_0x3edafb(0xa24):_0x3edafb(0x4dc2),_0x20ade8[_0x3edafb(0x17a2)]=_0xc38d57?'strong':'em',_0x20ade8[_0x3edafb(0x47ee)]=0x1,_0x20ade8[_0x3edafb(0x2767)]=_0xc38d57?_0x1e1306+_0x1e1306:_0x1e1306,_0x20ade8['content']='';const _0x4b4188=_0xb9cd8c['tokens'][_0x252903[_0x3edafb(0x4154)]];_0x4b4188[_0x3edafb(0x70a)]=_0xc38d57?'strong_close':_0x3edafb(0x4d67),_0x4b4188[_0x3edafb(0x17a2)]=_0xc38d57?_0x3edafb(0x2ca0):'em',_0x4b4188['nesting']=-0x1,_0x4b4188[_0x3edafb(0x2767)]=_0xc38d57?_0x1e1306+_0x1e1306:_0x1e1306,_0x4b4188[_0x3edafb(0x498f)]='',_0xc38d57&&(_0xb9cd8c[_0x3edafb(0x30f4)][_0x8d8eae[_0x42d4e3-0x1][_0x3edafb(0x4154)]]['content']='',_0xb9cd8c[_0x3edafb(0x30f4)][_0x8d8eae[_0x46225d[_0x3edafb(0x721)]+0x1][_0x3edafb(0x4154)]]['content']='',_0x42d4e3--);}}const _0xba111b={'tokenize':function(_0x5e0d60,_0x5a6dc1){const _0x5c41a3=_0x235866,_0x496ed9=_0x5e0d60[_0x5c41a3(0x44ff)],_0xe419df=_0x5e0d60[_0x5c41a3(0x1005)][_0x5c41a3(0x1806)](_0x496ed9);if(_0x5a6dc1)return!0x1;if(0x5f!==_0xe419df&&0x2a!==_0xe419df)return!0x1;const _0x775aa4=_0x5e0d60[_0x5c41a3(0x1052)](_0x5e0d60[_0x5c41a3(0x44ff)],0x2a===_0xe419df);for(let _0x323259=0x0;_0x323259<_0x775aa4[_0x5c41a3(0x205b)];_0x323259++){_0x5e0d60[_0x5c41a3(0x4131)](_0x5c41a3(0x2f35),'',0x0)[_0x5c41a3(0x498f)]=String[_0x5c41a3(0xc78)](_0xe419df),_0x5e0d60[_0x5c41a3(0x14fc)]['push']({'marker':_0xe419df,'length':_0x775aa4[_0x5c41a3(0x205b)],'token':_0x5e0d60[_0x5c41a3(0x30f4)]['length']-0x1,'end':-0x1,'open':_0x775aa4[_0x5c41a3(0x1655)],'close':_0x775aa4[_0x5c41a3(0x316f)]});}return _0x5e0d60[_0x5c41a3(0x44ff)]+=_0x775aa4[_0x5c41a3(0x205b)],!0x0;},'postProcess':function(_0x2c20ec){const _0x9e6c65=_0x235866,_0x109bef=_0x2c20ec[_0x9e6c65(0x407f)],_0x25d572=_0x2c20ec[_0x9e6c65(0x407f)]['length'];_0x544c94(_0x2c20ec,_0x2c20ec[_0x9e6c65(0x14fc)]);for(let _0x1bc126=0x0;_0x1bc126<_0x25d572;_0x1bc126++)_0x109bef[_0x1bc126]&&_0x109bef[_0x1bc126][_0x9e6c65(0x14fc)]&&_0x544c94(_0x2c20ec,_0x109bef[_0x1bc126][_0x9e6c65(0x14fc)]);}},_0xc8fd78=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,_0x3f6765=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/,_0x31d143=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,_0x1536b8=/^&([a-z][a-z0-9]{1,31});/i;function _0x24fc46(_0x82460f){const _0x50684e=_0x235866,_0x339a7e={},_0x448955=_0x82460f[_0x50684e(0x205b)];if(!_0x448955)return;let _0x308957=0x0,_0x488607=-0x2;const _0x3ae980=[];for(let _0x10eac4=0x0;_0x10eac4<_0x448955;_0x10eac4++){const _0x1255d8=_0x82460f[_0x10eac4];if(_0x3ae980['push'](0x0),_0x82460f[_0x308957][_0x50684e(0x3e25)]===_0x1255d8[_0x50684e(0x3e25)]&&_0x488607===_0x1255d8[_0x50684e(0x4154)]-0x1||(_0x308957=_0x10eac4),_0x488607=_0x1255d8['token'],_0x1255d8['length']=_0x1255d8['length']||0x0,!_0x1255d8[_0x50684e(0x1c79)])continue;_0x339a7e['hasOwnProperty'](_0x1255d8[_0x50684e(0x3e25)])||(_0x339a7e[_0x1255d8[_0x50684e(0x3e25)]]=[-0x1,-0x1,-0x1,-0x1,-0x1,-0x1]);const _0x1f9461=_0x339a7e[_0x1255d8[_0x50684e(0x3e25)]][(_0x1255d8[_0x50684e(0x36fa)]?0x3:0x0)+_0x1255d8['length']%0x3];let _0x526d2d=_0x308957-_0x3ae980[_0x308957]-0x1,_0x6438e5=_0x526d2d;for(;_0x526d2d>_0x1f9461;_0x526d2d-=_0x3ae980[_0x526d2d]+0x1){const _0x5b6e60=_0x82460f[_0x526d2d];if(_0x5b6e60[_0x50684e(0x3e25)]===_0x1255d8['marker']&&(_0x5b6e60['open']&&_0x5b6e60['end']<0x0)){let _0x5d2e53=!0x1;if((_0x5b6e60[_0x50684e(0x1c79)]||_0x1255d8[_0x50684e(0x36fa)])&&(_0x5b6e60['length']+_0x1255d8[_0x50684e(0x205b)])%0x3==0x0&&(_0x5b6e60['length']%0x3==0x0&&_0x1255d8[_0x50684e(0x205b)]%0x3==0x0||(_0x5d2e53=!0x0)),!_0x5d2e53){const _0x19f61b=_0x526d2d>0x0&&!_0x82460f[_0x526d2d-0x1][_0x50684e(0x36fa)]?_0x3ae980[_0x526d2d-0x1]+0x1:0x0;_0x3ae980[_0x10eac4]=_0x10eac4-_0x526d2d+_0x19f61b,_0x3ae980[_0x526d2d]=_0x19f61b,_0x1255d8[_0x50684e(0x36fa)]=!0x1,_0x5b6e60[_0x50684e(0x721)]=_0x10eac4,_0x5b6e60[_0x50684e(0x1c79)]=!0x1,_0x6438e5=-0x1,_0x488607=-0x2;break;}}}-0x1!==_0x6438e5&&(_0x339a7e[_0x1255d8['marker']][(_0x1255d8['open']?0x3:0x0)+(_0x1255d8[_0x50684e(0x205b)]||0x0)%0x3]=_0x6438e5);}}const _0x42fce9=[[_0x235866(0x2f35),function(_0x4c716e,_0x1bb8a2){const _0x4f9bcf=_0x235866;let _0x3ee51e=_0x4c716e[_0x4f9bcf(0x44ff)];for(;_0x3ee51e<_0x4c716e['posMax']&&!_0x28c973(_0x4c716e[_0x4f9bcf(0x1005)][_0x4f9bcf(0x1806)](_0x3ee51e));)_0x3ee51e++;return _0x3ee51e!==_0x4c716e['pos']&&(_0x1bb8a2||(_0x4c716e[_0x4f9bcf(0x7cb)]+=_0x4c716e[_0x4f9bcf(0x1005)][_0x4f9bcf(0x428e)](_0x4c716e[_0x4f9bcf(0x44ff)],_0x3ee51e)),_0x4c716e[_0x4f9bcf(0x44ff)]=_0x3ee51e,!0x0);}],[_0x235866(0xf7f),function(_0x59d1ed,_0x3c7d56){const _0x3f5710=_0x235866;if(!_0x59d1ed['md']['options'][_0x3f5710(0xf7f)])return!0x1;if(_0x59d1ed['linkLevel']>0x0)return!0x1;const _0x51f41a=_0x59d1ed[_0x3f5710(0x44ff)];if(_0x51f41a+0x3>_0x59d1ed[_0x3f5710(0x40d)])return!0x1;if(0x3a!==_0x59d1ed[_0x3f5710(0x1005)][_0x3f5710(0x1806)](_0x51f41a))return!0x1;if(0x2f!==_0x59d1ed[_0x3f5710(0x1005)]['charCodeAt'](_0x51f41a+0x1))return!0x1;if(0x2f!==_0x59d1ed['src'][_0x3f5710(0x1806)](_0x51f41a+0x2))return!0x1;const _0x3595ec=_0x59d1ed[_0x3f5710(0x7cb)][_0x3f5710(0xdc0)](_0xecb062);if(!_0x3595ec)return!0x1;const _0x434281=_0x3595ec[0x1],_0x426ec5=_0x59d1ed['md']['linkify']['matchAtStart'](_0x59d1ed[_0x3f5710(0x1005)]['slice'](_0x51f41a-_0x434281['length']));if(!_0x426ec5)return!0x1;let _0x43139f=_0x426ec5['url'];if(_0x43139f['length']<=_0x434281[_0x3f5710(0x205b)])return!0x1;_0x43139f=_0x43139f[_0x3f5710(0x1db7)](/\*+$/,'');const _0x3009c5=_0x59d1ed['md']['normalizeLink'](_0x43139f);if(!_0x59d1ed['md'][_0x3f5710(0x3a4a)](_0x3009c5))return!0x1;if(!_0x3c7d56){_0x59d1ed['pending']=_0x59d1ed[_0x3f5710(0x7cb)][_0x3f5710(0x428e)](0x0,-_0x434281[_0x3f5710(0x205b)]);const _0x5268be=_0x59d1ed[_0x3f5710(0x4131)](_0x3f5710(0x4e14),'a',0x1);_0x5268be[_0x3f5710(0x3d7f)]=[[_0x3f5710(0x354f),_0x3009c5]],_0x5268be[_0x3f5710(0x2767)]='linkify',_0x5268be['info']='auto',_0x59d1ed[_0x3f5710(0x4131)](_0x3f5710(0x2f35),'',0x0)[_0x3f5710(0x498f)]=_0x59d1ed['md'][_0x3f5710(0x17c1)](_0x43139f);const _0xcb3689=_0x59d1ed[_0x3f5710(0x4131)](_0x3f5710(0xef8),'a',-0x1);_0xcb3689[_0x3f5710(0x2767)]=_0x3f5710(0xf7f),_0xcb3689[_0x3f5710(0x368d)]='auto';}return _0x59d1ed[_0x3f5710(0x44ff)]+=_0x43139f[_0x3f5710(0x205b)]-_0x434281[_0x3f5710(0x205b)],!0x0;}],[_0x235866(0x369a),function(_0x1c74ee,_0x2844c8){const _0x450be6=_0x235866;let _0x2f992f=_0x1c74ee['pos'];if(0xa!==_0x1c74ee[_0x450be6(0x1005)][_0x450be6(0x1806)](_0x2f992f))return!0x1;const _0xcb1ba8=_0x1c74ee['pending'][_0x450be6(0x205b)]-0x1,_0xead5f9=_0x1c74ee['posMax'];if(!_0x2844c8){if(_0xcb1ba8>=0x0&&0x20===_0x1c74ee[_0x450be6(0x7cb)][_0x450be6(0x1806)](_0xcb1ba8)){if(_0xcb1ba8>=0x1&&0x20===_0x1c74ee[_0x450be6(0x7cb)][_0x450be6(0x1806)](_0xcb1ba8-0x1)){let _0x5501dd=_0xcb1ba8-0x1;for(;_0x5501dd>=0x1&&0x20===_0x1c74ee[_0x450be6(0x7cb)][_0x450be6(0x1806)](_0x5501dd-0x1);)_0x5501dd--;_0x1c74ee[_0x450be6(0x7cb)]=_0x1c74ee[_0x450be6(0x7cb)]['slice'](0x0,_0x5501dd),_0x1c74ee[_0x450be6(0x4131)](_0x450be6(0x3909),'br',0x0);}else _0x1c74ee['pending']=_0x1c74ee[_0x450be6(0x7cb)][_0x450be6(0x428e)](0x0,-0x1),_0x1c74ee[_0x450be6(0x4131)](_0x450be6(0x389e),'br',0x0);}else _0x1c74ee[_0x450be6(0x4131)](_0x450be6(0x389e),'br',0x0);}for(_0x2f992f++;_0x2f992f<_0xead5f9&&_0x2578e9(_0x1c74ee['src'][_0x450be6(0x1806)](_0x2f992f));)_0x2f992f++;return _0x1c74ee['pos']=_0x2f992f,!0x0;}],['escape',function(_0x316ccd,_0x385ae2){const _0x187994=_0x235866;let _0x320423=_0x316ccd['pos'];const _0x286e18=_0x316ccd['posMax'];if(0x5c!==_0x316ccd[_0x187994(0x1005)][_0x187994(0x1806)](_0x320423))return!0x1;if(_0x320423++,_0x320423>=_0x286e18)return!0x1;let _0x34c91f=_0x316ccd['src'][_0x187994(0x1806)](_0x320423);if(0xa===_0x34c91f){for(_0x385ae2||_0x316ccd['push'](_0x187994(0x3909),'br',0x0),_0x320423++;_0x320423<_0x286e18&&(_0x34c91f=_0x316ccd['src']['charCodeAt'](_0x320423),_0x2578e9(_0x34c91f));)_0x320423++;return _0x316ccd[_0x187994(0x44ff)]=_0x320423,!0x0;}let _0x39820f=_0x316ccd[_0x187994(0x1005)][_0x320423];if(_0x34c91f>=0xd800&&_0x34c91f<=0xdbff&&_0x320423+0x1<_0x286e18){const _0x3477c3=_0x316ccd[_0x187994(0x1005)][_0x187994(0x1806)](_0x320423+0x1);_0x3477c3>=0xdc00&&_0x3477c3<=0xdfff&&(_0x39820f+=_0x316ccd[_0x187994(0x1005)][_0x320423+0x1],_0x320423++);}const _0x17c0f4='\x5c'+_0x39820f;if(!_0x385ae2){const _0x2f536a=_0x316ccd[_0x187994(0x4131)]('text_special','',0x0);_0x34c91f<0x100&&0x0!==_0x238ca6[_0x34c91f]?_0x2f536a[_0x187994(0x498f)]=_0x39820f:_0x2f536a[_0x187994(0x498f)]=_0x17c0f4,_0x2f536a['markup']=_0x17c0f4,_0x2f536a['info']=_0x187994(0x2828);}return _0x316ccd[_0x187994(0x44ff)]=_0x320423+0x1,!0x0;}],[_0x235866(0x1c3c),function(_0x255cb9,_0x3a1a59){const _0x58e25e=_0x235866;let _0x5cda06=_0x255cb9['pos'];if(0x60!==_0x255cb9['src'][_0x58e25e(0x1806)](_0x5cda06))return!0x1;const _0x2b1485=_0x5cda06;_0x5cda06++;const _0x4beec5=_0x255cb9[_0x58e25e(0x40d)];for(;_0x5cda06<_0x4beec5&&0x60===_0x255cb9['src'][_0x58e25e(0x1806)](_0x5cda06);)_0x5cda06++;const _0xb00a3e=_0x255cb9[_0x58e25e(0x1005)][_0x58e25e(0x428e)](_0x2b1485,_0x5cda06),_0x2062af=_0xb00a3e['length'];if(_0x255cb9[_0x58e25e(0x40f5)]&&(_0x255cb9[_0x58e25e(0x1c3c)][_0x2062af]||0x0)<=_0x2b1485)return _0x3a1a59||(_0x255cb9[_0x58e25e(0x7cb)]+=_0xb00a3e),_0x255cb9[_0x58e25e(0x44ff)]+=_0x2062af,!0x0;let _0x11cabc,_0x2160fb=_0x5cda06;for(;-0x1!==(_0x11cabc=_0x255cb9[_0x58e25e(0x1005)][_0x58e25e(0x3458)]('`',_0x2160fb));){for(_0x2160fb=_0x11cabc+0x1;_0x2160fb<_0x4beec5&&0x60===_0x255cb9[_0x58e25e(0x1005)][_0x58e25e(0x1806)](_0x2160fb);)_0x2160fb++;const _0x150ddd=_0x2160fb-_0x11cabc;if(_0x150ddd===_0x2062af){if(!_0x3a1a59){const _0x139003=_0x255cb9[_0x58e25e(0x4131)](_0x58e25e(0xa17),_0x58e25e(0xbd0),0x0);_0x139003[_0x58e25e(0x2767)]=_0xb00a3e,_0x139003[_0x58e25e(0x498f)]=_0x255cb9[_0x58e25e(0x1005)]['slice'](_0x5cda06,_0x11cabc)['replace'](/\n/g,'\x20')[_0x58e25e(0x1db7)](/^ (.+) $/,'$1');}return _0x255cb9[_0x58e25e(0x44ff)]=_0x2160fb,!0x0;}_0x255cb9['backticks'][_0x150ddd]=_0x11cabc;}return _0x255cb9[_0x58e25e(0x40f5)]=!0x0,_0x3a1a59||(_0x255cb9['pending']+=_0xb00a3e),_0x255cb9[_0x58e25e(0x44ff)]+=_0x2062af,!0x0;}],[_0x235866(0x21ae),_0xf11dbf[_0x235866(0x44f9)]],['emphasis',_0xba111b[_0x235866(0x44f9)]],[_0x235866(0x3622),function(_0x478f60,_0x9780b0){const _0x1dbba3=_0x235866;let _0x36fa43,_0x185dc8,_0x44d1b0,_0x3a2fa5,_0x260eab='',_0x5bc688='',_0x5e58ab=_0x478f60[_0x1dbba3(0x44ff)],_0x3dc58f=!0x0;if(0x5b!==_0x478f60[_0x1dbba3(0x1005)]['charCodeAt'](_0x478f60[_0x1dbba3(0x44ff)]))return!0x1;const _0xc55510=_0x478f60[_0x1dbba3(0x44ff)],_0x5d4ab7=_0x478f60[_0x1dbba3(0x40d)],_0x4e031d=_0x478f60[_0x1dbba3(0x44ff)]+0x1,_0x183f95=_0x478f60['md']['helpers'][_0x1dbba3(0x4f0b)](_0x478f60,_0x478f60[_0x1dbba3(0x44ff)],!0x0);if(_0x183f95<0x0)return!0x1;let _0x1bc62b=_0x183f95+0x1;if(_0x1bc62b<_0x5d4ab7&&0x28===_0x478f60[_0x1dbba3(0x1005)][_0x1dbba3(0x1806)](_0x1bc62b)){for(_0x3dc58f=!0x1,_0x1bc62b++;_0x1bc62b<_0x5d4ab7&&(_0x36fa43=_0x478f60[_0x1dbba3(0x1005)]['charCodeAt'](_0x1bc62b),_0x2578e9(_0x36fa43)||0xa===_0x36fa43);_0x1bc62b++);if(_0x1bc62b>=_0x5d4ab7)return!0x1;if(_0x5e58ab=_0x1bc62b,_0x44d1b0=_0x478f60['md']['helpers'][_0x1dbba3(0x21e6)](_0x478f60[_0x1dbba3(0x1005)],_0x1bc62b,_0x478f60[_0x1dbba3(0x40d)]),_0x44d1b0['ok']){for(_0x260eab=_0x478f60['md']['normalizeLink'](_0x44d1b0[_0x1dbba3(0x31ea)]),_0x478f60['md']['validateLink'](_0x260eab)?_0x1bc62b=_0x44d1b0[_0x1dbba3(0x44ff)]:_0x260eab='',_0x5e58ab=_0x1bc62b;_0x1bc62b<_0x5d4ab7&&(_0x36fa43=_0x478f60[_0x1dbba3(0x1005)]['charCodeAt'](_0x1bc62b),_0x2578e9(_0x36fa43)||0xa===_0x36fa43);_0x1bc62b++);if(_0x44d1b0=_0x478f60['md'][_0x1dbba3(0x2f9b)][_0x1dbba3(0x1608)](_0x478f60[_0x1dbba3(0x1005)],_0x1bc62b,_0x478f60['posMax']),_0x1bc62b<_0x5d4ab7&&_0x5e58ab!==_0x1bc62b&&_0x44d1b0['ok']){for(_0x5bc688=_0x44d1b0[_0x1dbba3(0x31ea)],_0x1bc62b=_0x44d1b0[_0x1dbba3(0x44ff)];_0x1bc62b<_0x5d4ab7&&(_0x36fa43=_0x478f60[_0x1dbba3(0x1005)][_0x1dbba3(0x1806)](_0x1bc62b),_0x2578e9(_0x36fa43)||0xa===_0x36fa43);_0x1bc62b++);}}(_0x1bc62b>=_0x5d4ab7||0x29!==_0x478f60[_0x1dbba3(0x1005)]['charCodeAt'](_0x1bc62b))&&(_0x3dc58f=!0x0),_0x1bc62b++;}if(_0x3dc58f){if(void 0x0===_0x478f60[_0x1dbba3(0x2f9e)][_0x1dbba3(0x1b08)])return!0x1;if(_0x1bc62b<_0x5d4ab7&&0x5b===_0x478f60[_0x1dbba3(0x1005)][_0x1dbba3(0x1806)](_0x1bc62b)?(_0x5e58ab=_0x1bc62b+0x1,_0x1bc62b=_0x478f60['md'][_0x1dbba3(0x2f9b)][_0x1dbba3(0x4f0b)](_0x478f60,_0x1bc62b),_0x1bc62b>=0x0?_0x185dc8=_0x478f60[_0x1dbba3(0x1005)][_0x1dbba3(0x428e)](_0x5e58ab,_0x1bc62b++):_0x1bc62b=_0x183f95+0x1):_0x1bc62b=_0x183f95+0x1,_0x185dc8||(_0x185dc8=_0x478f60[_0x1dbba3(0x1005)][_0x1dbba3(0x428e)](_0x4e031d,_0x183f95)),_0x3a2fa5=_0x478f60[_0x1dbba3(0x2f9e)][_0x1dbba3(0x1b08)][_0x479708(_0x185dc8)],!_0x3a2fa5)return _0x478f60[_0x1dbba3(0x44ff)]=_0xc55510,!0x1;_0x260eab=_0x3a2fa5[_0x1dbba3(0x354f)],_0x5bc688=_0x3a2fa5['title'];}if(!_0x9780b0){_0x478f60[_0x1dbba3(0x44ff)]=_0x4e031d,_0x478f60[_0x1dbba3(0x40d)]=_0x183f95;const _0x35e29c=[['href',_0x260eab]];_0x478f60[_0x1dbba3(0x4131)]('link_open','a',0x1)['attrs']=_0x35e29c,_0x5bc688&&_0x35e29c[_0x1dbba3(0x4131)](['title',_0x5bc688]),_0x478f60[_0x1dbba3(0x249f)]++,_0x478f60['md'][_0x1dbba3(0x50d2)][_0x1dbba3(0x44f9)](_0x478f60),_0x478f60[_0x1dbba3(0x249f)]--,_0x478f60[_0x1dbba3(0x4131)]('link_close','a',-0x1);}return _0x478f60[_0x1dbba3(0x44ff)]=_0x1bc62b,_0x478f60['posMax']=_0x5d4ab7,!0x0;}],['image',function(_0x178f2a,_0xc0fe4e){const _0x566768=_0x235866;let _0x514f56,_0xb48707,_0x219e6b,_0x2247df,_0xc097bb,_0x941514,_0x485ff9,_0x334bcf,_0x31cd80='';const _0xc55500=_0x178f2a[_0x566768(0x44ff)],_0x24d991=_0x178f2a[_0x566768(0x40d)];if(0x21!==_0x178f2a[_0x566768(0x1005)]['charCodeAt'](_0x178f2a[_0x566768(0x44ff)]))return!0x1;if(0x5b!==_0x178f2a['src']['charCodeAt'](_0x178f2a[_0x566768(0x44ff)]+0x1))return!0x1;const _0x3f59cb=_0x178f2a[_0x566768(0x44ff)]+0x2,_0x438a1a=_0x178f2a['md'][_0x566768(0x2f9b)]['parseLinkLabel'](_0x178f2a,_0x178f2a[_0x566768(0x44ff)]+0x1,!0x1);if(_0x438a1a<0x0)return!0x1;if(_0x2247df=_0x438a1a+0x1,_0x2247df<_0x24d991&&0x28===_0x178f2a[_0x566768(0x1005)]['charCodeAt'](_0x2247df)){for(_0x2247df++;_0x2247df<_0x24d991&&(_0x514f56=_0x178f2a[_0x566768(0x1005)][_0x566768(0x1806)](_0x2247df),_0x2578e9(_0x514f56)||0xa===_0x514f56);_0x2247df++);if(_0x2247df>=_0x24d991)return!0x1;for(_0x334bcf=_0x2247df,_0x941514=_0x178f2a['md'][_0x566768(0x2f9b)][_0x566768(0x21e6)](_0x178f2a[_0x566768(0x1005)],_0x2247df,_0x178f2a[_0x566768(0x40d)]),_0x941514['ok']&&(_0x31cd80=_0x178f2a['md'][_0x566768(0x2da6)](_0x941514[_0x566768(0x31ea)]),_0x178f2a['md'][_0x566768(0x3a4a)](_0x31cd80)?_0x2247df=_0x941514[_0x566768(0x44ff)]:_0x31cd80=''),_0x334bcf=_0x2247df;_0x2247df<_0x24d991&&(_0x514f56=_0x178f2a[_0x566768(0x1005)][_0x566768(0x1806)](_0x2247df),_0x2578e9(_0x514f56)||0xa===_0x514f56);_0x2247df++);if(_0x941514=_0x178f2a['md']['helpers'][_0x566768(0x1608)](_0x178f2a[_0x566768(0x1005)],_0x2247df,_0x178f2a[_0x566768(0x40d)]),_0x2247df<_0x24d991&&_0x334bcf!==_0x2247df&&_0x941514['ok']){for(_0x485ff9=_0x941514[_0x566768(0x31ea)],_0x2247df=_0x941514[_0x566768(0x44ff)];_0x2247df<_0x24d991&&(_0x514f56=_0x178f2a['src'][_0x566768(0x1806)](_0x2247df),_0x2578e9(_0x514f56)||0xa===_0x514f56);_0x2247df++);}else _0x485ff9='';if(_0x2247df>=_0x24d991||0x29!==_0x178f2a[_0x566768(0x1005)]['charCodeAt'](_0x2247df))return _0x178f2a['pos']=_0xc55500,!0x1;_0x2247df++;}else{if(void 0x0===_0x178f2a[_0x566768(0x2f9e)][_0x566768(0x1b08)])return!0x1;if(_0x2247df<_0x24d991&&0x5b===_0x178f2a['src']['charCodeAt'](_0x2247df)?(_0x334bcf=_0x2247df+0x1,_0x2247df=_0x178f2a['md'][_0x566768(0x2f9b)]['parseLinkLabel'](_0x178f2a,_0x2247df),_0x2247df>=0x0?_0x219e6b=_0x178f2a[_0x566768(0x1005)][_0x566768(0x428e)](_0x334bcf,_0x2247df++):_0x2247df=_0x438a1a+0x1):_0x2247df=_0x438a1a+0x1,_0x219e6b||(_0x219e6b=_0x178f2a[_0x566768(0x1005)][_0x566768(0x428e)](_0x3f59cb,_0x438a1a)),_0xc097bb=_0x178f2a[_0x566768(0x2f9e)][_0x566768(0x1b08)][_0x479708(_0x219e6b)],!_0xc097bb)return _0x178f2a[_0x566768(0x44ff)]=_0xc55500,!0x1;_0x31cd80=_0xc097bb[_0x566768(0x354f)],_0x485ff9=_0xc097bb[_0x566768(0x5f1)];}if(!_0xc0fe4e){_0xb48707=_0x178f2a['src'][_0x566768(0x428e)](_0x3f59cb,_0x438a1a);const _0xb46c17=[];_0x178f2a['md']['inline'][_0x566768(0x1b07)](_0xb48707,_0x178f2a['md'],_0x178f2a[_0x566768(0x2f9e)],_0xb46c17);const _0x16c331=_0x178f2a['push'](_0x566768(0x1692),_0x566768(0x42a0),0x0),_0x518c5a=[[_0x566768(0x1005),_0x31cd80],[_0x566768(0x3bb4),'']];_0x16c331[_0x566768(0x3d7f)]=_0x518c5a,_0x16c331[_0x566768(0x4538)]=_0xb46c17,_0x16c331[_0x566768(0x498f)]=_0xb48707,_0x485ff9&&_0x518c5a['push']([_0x566768(0x5f1),_0x485ff9]);}return _0x178f2a[_0x566768(0x44ff)]=_0x2247df,_0x178f2a[_0x566768(0x40d)]=_0x24d991,!0x0;}],[_0x235866(0x2527),function(_0x2a7a78,_0x27900f){const _0x5e7937=_0x235866;let _0x5491ae=_0x2a7a78[_0x5e7937(0x44ff)];if(0x3c!==_0x2a7a78['src'][_0x5e7937(0x1806)](_0x5491ae))return!0x1;const _0x327eb0=_0x2a7a78['pos'],_0x3c11c3=_0x2a7a78[_0x5e7937(0x40d)];for(;;){if(++_0x5491ae>=_0x3c11c3)return!0x1;const _0x50ab23=_0x2a7a78[_0x5e7937(0x1005)][_0x5e7937(0x1806)](_0x5491ae);if(0x3c===_0x50ab23)return!0x1;if(0x3e===_0x50ab23)break;}const _0x534732=_0x2a7a78[_0x5e7937(0x1005)][_0x5e7937(0x428e)](_0x327eb0+0x1,_0x5491ae);if(_0x3f6765['test'](_0x534732)){const _0xbdf936=_0x2a7a78['md'][_0x5e7937(0x2da6)](_0x534732);if(!_0x2a7a78['md']['validateLink'](_0xbdf936))return!0x1;if(!_0x27900f){const _0x3264d7=_0x2a7a78['push'](_0x5e7937(0x4e14),'a',0x1);_0x3264d7[_0x5e7937(0x3d7f)]=[[_0x5e7937(0x354f),_0xbdf936]],_0x3264d7[_0x5e7937(0x2767)]=_0x5e7937(0x2527),_0x3264d7[_0x5e7937(0x368d)]='auto',_0x2a7a78[_0x5e7937(0x4131)](_0x5e7937(0x2f35),'',0x0)[_0x5e7937(0x498f)]=_0x2a7a78['md'][_0x5e7937(0x17c1)](_0x534732);const _0x3928d9=_0x2a7a78['push']('link_close','a',-0x1);_0x3928d9[_0x5e7937(0x2767)]='autolink',_0x3928d9['info']=_0x5e7937(0x4a75);}return _0x2a7a78['pos']+=_0x534732['length']+0x2,!0x0;}if(_0xc8fd78[_0x5e7937(0x34c)](_0x534732)){const _0x3d5f16=_0x2a7a78['md']['normalizeLink'](_0x5e7937(0x50c)+_0x534732);if(!_0x2a7a78['md'][_0x5e7937(0x3a4a)](_0x3d5f16))return!0x1;if(!_0x27900f){const _0x39e8fd=_0x2a7a78['push'](_0x5e7937(0x4e14),'a',0x1);_0x39e8fd['attrs']=[['href',_0x3d5f16]],_0x39e8fd[_0x5e7937(0x2767)]=_0x5e7937(0x2527),_0x39e8fd[_0x5e7937(0x368d)]=_0x5e7937(0x4a75),_0x2a7a78[_0x5e7937(0x4131)](_0x5e7937(0x2f35),'',0x0)[_0x5e7937(0x498f)]=_0x2a7a78['md'][_0x5e7937(0x17c1)](_0x534732);const _0x5e816c=_0x2a7a78[_0x5e7937(0x4131)]('link_close','a',-0x1);_0x5e816c[_0x5e7937(0x2767)]=_0x5e7937(0x2527),_0x5e816c[_0x5e7937(0x368d)]=_0x5e7937(0x4a75);}return _0x2a7a78[_0x5e7937(0x44ff)]+=_0x534732[_0x5e7937(0x205b)]+0x2,!0x0;}return!0x1;}],[_0x235866(0x9e),function(_0x559b73,_0x379fab){const _0x2eb71d=_0x235866;if(!_0x559b73['md'][_0x2eb71d(0x199c)][_0x2eb71d(0x1978)])return!0x1;const _0x3e7082=_0x559b73['posMax'],_0x2b1f58=_0x559b73[_0x2eb71d(0x44ff)];if(0x3c!==_0x559b73[_0x2eb71d(0x1005)][_0x2eb71d(0x1806)](_0x2b1f58)||_0x2b1f58+0x2>=_0x3e7082)return!0x1;const _0x30cd80=_0x559b73['src']['charCodeAt'](_0x2b1f58+0x1);if(0x21!==_0x30cd80&&0x3f!==_0x30cd80&&0x2f!==_0x30cd80&&!function(_0x556637){const _0x35ef1c=0x20|_0x556637;return _0x35ef1c>=0x61&&_0x35ef1c<=0x7a;}(_0x30cd80))return!0x1;const _0x2fd9f0=_0x559b73[_0x2eb71d(0x1005)][_0x2eb71d(0x428e)](_0x2b1f58)[_0x2eb71d(0xdc0)](_0x162e4c);if(!_0x2fd9f0)return!0x1;if(!_0x379fab){const _0x3a0dac=_0x559b73['push'](_0x2eb71d(0x9e),'',0x0);_0x3a0dac[_0x2eb71d(0x498f)]=_0x2fd9f0[0x0],_0x581321=_0x3a0dac[_0x2eb71d(0x498f)],/^\s]/i[_0x2eb71d(0x34c)](_0x581321)&&_0x559b73[_0x2eb71d(0x249f)]++,function(_0x15479e){const _0x1f8679=_0x2eb71d;return/^<\/a\s*>/i[_0x1f8679(0x34c)](_0x15479e);}(_0x3a0dac[_0x2eb71d(0x498f)])&&_0x559b73[_0x2eb71d(0x249f)]--;}var _0x581321;return _0x559b73[_0x2eb71d(0x44ff)]+=_0x2fd9f0[0x0]['length'],!0x0;}],[_0x235866(0x27e),function(_0x79d4f1,_0xb1548b){const _0xdf77cd=_0x235866,_0x16b878=_0x79d4f1['pos'],_0x1f2cdd=_0x79d4f1[_0xdf77cd(0x40d)];if(0x26!==_0x79d4f1[_0xdf77cd(0x1005)][_0xdf77cd(0x1806)](_0x16b878))return!0x1;if(_0x16b878+0x1>=_0x1f2cdd)return!0x1;if(0x23===_0x79d4f1[_0xdf77cd(0x1005)][_0xdf77cd(0x1806)](_0x16b878+0x1)){const _0x17458a=_0x79d4f1['src'][_0xdf77cd(0x428e)](_0x16b878)[_0xdf77cd(0xdc0)](_0x31d143);if(_0x17458a){if(!_0xb1548b){const _0x1c6c11='x'===_0x17458a[0x1][0x0][_0xdf77cd(0x1a57)]()?parseInt(_0x17458a[0x1][_0xdf77cd(0x428e)](0x1),0x10):parseInt(_0x17458a[0x1],0xa),_0x29fb1f=_0x79d4f1[_0xdf77cd(0x4131)](_0xdf77cd(0x456b),'',0x0);_0x29fb1f[_0xdf77cd(0x498f)]=_0x120e36(_0x1c6c11)?_0x153d17(_0x1c6c11):_0x153d17(0xfffd),_0x29fb1f['markup']=_0x17458a[0x0],_0x29fb1f[_0xdf77cd(0x368d)]=_0xdf77cd(0x27e);}return _0x79d4f1[_0xdf77cd(0x44ff)]+=_0x17458a[0x0]['length'],!0x0;}}else{const _0x29412b=_0x79d4f1[_0xdf77cd(0x1005)][_0xdf77cd(0x428e)](_0x16b878)[_0xdf77cd(0xdc0)](_0x1536b8);if(_0x29412b){const _0x38007d=_0xc30b02(_0x29412b[0x0]);if(_0x38007d!==_0x29412b[0x0]){if(!_0xb1548b){const _0x5970d9=_0x79d4f1[_0xdf77cd(0x4131)](_0xdf77cd(0x456b),'',0x0);_0x5970d9[_0xdf77cd(0x498f)]=_0x38007d,_0x5970d9[_0xdf77cd(0x2767)]=_0x29412b[0x0],_0x5970d9['info']=_0xdf77cd(0x27e);}return _0x79d4f1['pos']+=_0x29412b[0x0][_0xdf77cd(0x205b)],!0x0;}}}return!0x1;}]],_0xc6f1fd=[[_0x235866(0x4fb2),function(_0x26d0ac){const _0x4ca4fe=_0x235866,_0x3e185a=_0x26d0ac[_0x4ca4fe(0x407f)],_0x238a4c=_0x26d0ac[_0x4ca4fe(0x407f)][_0x4ca4fe(0x205b)];_0x24fc46(_0x26d0ac['delimiters']);for(let _0x48b932=0x0;_0x48b932<_0x238a4c;_0x48b932++)_0x3e185a[_0x48b932]&&_0x3e185a[_0x48b932][_0x4ca4fe(0x14fc)]&&_0x24fc46(_0x3e185a[_0x48b932][_0x4ca4fe(0x14fc)]);}],[_0x235866(0x21ae),_0xf11dbf[_0x235866(0x37c)]],[_0x235866(0x3010),_0xba111b[_0x235866(0x37c)]],[_0x235866(0x199),function(_0x348601){const _0x1c8e77=_0x235866;let _0x2bd4e2,_0x3691e0,_0x4bcd7f=0x0;const _0x18b80b=_0x348601['tokens'],_0xe31cfe=_0x348601[_0x1c8e77(0x30f4)][_0x1c8e77(0x205b)];for(_0x2bd4e2=_0x3691e0=0x0;_0x2bd4e2<_0xe31cfe;_0x2bd4e2++)_0x18b80b[_0x2bd4e2]['nesting']<0x0&&_0x4bcd7f--,_0x18b80b[_0x2bd4e2][_0x1c8e77(0x1279)]=_0x4bcd7f,_0x18b80b[_0x2bd4e2][_0x1c8e77(0x47ee)]>0x0&&_0x4bcd7f++,_0x1c8e77(0x2f35)===_0x18b80b[_0x2bd4e2][_0x1c8e77(0x70a)]&&_0x2bd4e2+0x1<_0xe31cfe&&'text'===_0x18b80b[_0x2bd4e2+0x1][_0x1c8e77(0x70a)]?_0x18b80b[_0x2bd4e2+0x1][_0x1c8e77(0x498f)]=_0x18b80b[_0x2bd4e2][_0x1c8e77(0x498f)]+_0x18b80b[_0x2bd4e2+0x1][_0x1c8e77(0x498f)]:(_0x2bd4e2!==_0x3691e0&&(_0x18b80b[_0x3691e0]=_0x18b80b[_0x2bd4e2]),_0x3691e0++);_0x2bd4e2!==_0x3691e0&&(_0x18b80b[_0x1c8e77(0x205b)]=_0x3691e0);}]];function _0x5914d1(){const _0x389250=_0x235866;this['ruler']=new _0x22236d();for(let _0x49d860=0x0;_0x49d860<_0x42fce9[_0x389250(0x205b)];_0x49d860++)this[_0x389250(0x536)][_0x389250(0x4131)](_0x42fce9[_0x49d860][0x0],_0x42fce9[_0x49d860][0x1]);this[_0x389250(0x250e)]=new _0x22236d();for(let _0x5d50f1=0x0;_0x5d50f1<_0xc6f1fd['length'];_0x5d50f1++)this[_0x389250(0x250e)][_0x389250(0x4131)](_0xc6f1fd[_0x5d50f1][0x0],_0xc6f1fd[_0x5d50f1][0x1]);}_0x5914d1[_0x235866(0x2b5c)]['skipToken']=function(_0x1e4aea){const _0x54c2ed=_0x235866,_0x3c1ff8=_0x1e4aea['pos'],_0x2676a4=this[_0x54c2ed(0x536)]['getRules'](''),_0x3f875f=_0x2676a4[_0x54c2ed(0x205b)],_0x398bba=_0x1e4aea['md'][_0x54c2ed(0x199c)][_0x54c2ed(0x2056)],_0x333fa7=_0x1e4aea[_0x54c2ed(0x14f4)];if(void 0x0!==_0x333fa7[_0x3c1ff8])return void(_0x1e4aea[_0x54c2ed(0x44ff)]=_0x333fa7[_0x3c1ff8]);let _0x3f9510=!0x1;if(_0x1e4aea[_0x54c2ed(0x1279)]<_0x398bba){for(let _0x163246=0x0;_0x163246<_0x3f875f;_0x163246++)if(_0x1e4aea[_0x54c2ed(0x1279)]++,_0x3f9510=_0x2676a4[_0x163246](_0x1e4aea,!0x0),_0x1e4aea[_0x54c2ed(0x1279)]--,_0x3f9510){if(_0x3c1ff8>=_0x1e4aea[_0x54c2ed(0x44ff)])throw new Error(_0x54c2ed(0x911));break;}}else _0x1e4aea[_0x54c2ed(0x44ff)]=_0x1e4aea[_0x54c2ed(0x40d)];_0x3f9510||_0x1e4aea[_0x54c2ed(0x44ff)]++,_0x333fa7[_0x3c1ff8]=_0x1e4aea['pos'];},_0x5914d1['prototype']['tokenize']=function(_0x42b813){const _0x1c67fa=_0x235866,_0x2d2b13=this['ruler']['getRules'](''),_0x2bd37a=_0x2d2b13[_0x1c67fa(0x205b)],_0x2d389c=_0x42b813[_0x1c67fa(0x40d)],_0x4aac2f=_0x42b813['md']['options'][_0x1c67fa(0x2056)];for(;_0x42b813[_0x1c67fa(0x44ff)]<_0x2d389c;){const _0x345c12=_0x42b813[_0x1c67fa(0x44ff)];let _0x3c35f8=!0x1;if(_0x42b813[_0x1c67fa(0x1279)]<_0x4aac2f){for(let _0x5789f5=0x0;_0x5789f5<_0x2bd37a;_0x5789f5++)if(_0x3c35f8=_0x2d2b13[_0x5789f5](_0x42b813,!0x1),_0x3c35f8){if(_0x345c12>=_0x42b813[_0x1c67fa(0x44ff)])throw new Error('inline\x20rule\x20didn\x27t\x20increment\x20state.pos');break;}}if(_0x3c35f8){if(_0x42b813[_0x1c67fa(0x44ff)]>=_0x2d389c)break;}else _0x42b813['pending']+=_0x42b813[_0x1c67fa(0x1005)][_0x42b813[_0x1c67fa(0x44ff)]++];}_0x42b813[_0x1c67fa(0x7cb)]&&_0x42b813['pushPending']();},_0x5914d1['prototype']['parse']=function(_0x5b73ec,_0x782535,_0xf846cd,_0x5eaa85){const _0x17e0e4=_0x235866,_0x4d1d74=new this[(_0x17e0e4(0x2153))](_0x5b73ec,_0x782535,_0xf846cd,_0x5eaa85);this['tokenize'](_0x4d1d74);const _0x518369=this[_0x17e0e4(0x250e)][_0x17e0e4(0x68d)](''),_0x538240=_0x518369[_0x17e0e4(0x205b)];for(let _0x3f4b1e=0x0;_0x3f4b1e<_0x538240;_0x3f4b1e++)_0x518369[_0x3f4b1e](_0x4d1d74);},_0x5914d1['prototype'][_0x235866(0x2153)]=_0x97df4f;const _0x4c276d=_0x5914d1;function _0x21dfc0(_0x23c7b8){const _0x47290a=_0x235866;return Array[_0x47290a(0x2b5c)][_0x47290a(0x428e)][_0x47290a(0x4c9d)](arguments,0x1)[_0x47290a(0x4854)](function(_0x2de46f){const _0x3608f8=_0x47290a;_0x2de46f&&Object[_0x3608f8(0x2f75)](_0x2de46f)[_0x3608f8(0x4854)](function(_0x252e81){_0x23c7b8[_0x252e81]=_0x2de46f[_0x252e81];});}),_0x23c7b8;}function _0x3893e8(_0x1a964c){const _0xce7c81=_0x235866;return Object[_0xce7c81(0x2b5c)][_0xce7c81(0x44de)][_0xce7c81(0x4c9d)](_0x1a964c);}function _0x35ff1e(_0x4380dc){return'[object\x20Function]'===_0x3893e8(_0x4380dc);}function _0x103e81(_0x49aa01){const _0x265229=_0x235866;return _0x49aa01[_0x265229(0x1db7)](/[.?*+^$[\]\\(){}|-]/g,'\x5c$&');}const _0x1ea422={'fuzzyLink':!0x0,'fuzzyEmail':!0x0,'fuzzyIP':!0x1},_0x321633={'http:':{'validate':function(_0x53bcb6,_0xa51ccf,_0x2aa0f2){const _0x994c38=_0x235866,_0x19b225=_0x53bcb6[_0x994c38(0x428e)](_0xa51ccf);return _0x2aa0f2['re'][_0x994c38(0x1b57)]||(_0x2aa0f2['re']['http']=new RegExp(_0x994c38(0x14a6)+_0x2aa0f2['re'][_0x994c38(0x3726)]+_0x2aa0f2['re'][_0x994c38(0x42c4)]+_0x2aa0f2['re'][_0x994c38(0x496f)],'i')),_0x2aa0f2['re'][_0x994c38(0x1b57)]['test'](_0x19b225)?_0x19b225[_0x994c38(0xdc0)](_0x2aa0f2['re']['http'])[0x0][_0x994c38(0x205b)]:0x0;}},'https:':'http:','ftp:':'http:','//':{'validate':function(_0x36c880,_0x159b39,_0xe736d1){const _0x42e976=_0x235866,_0x1d8ca7=_0x36c880['slice'](_0x159b39);return _0xe736d1['re']['no_http']||(_0xe736d1['re'][_0x42e976(0x1a1d)]=new RegExp('^'+_0xe736d1['re']['src_auth']+_0x42e976(0x250f)+_0xe736d1['re'][_0x42e976(0x4c34)]+_0x42e976(0x2018)+_0xe736d1['re'][_0x42e976(0xc6c)]+')'+_0xe736d1['re'][_0x42e976(0x4039)]+_0xe736d1['re'][_0x42e976(0x264)]+_0xe736d1['re'][_0x42e976(0x496f)],'i')),_0xe736d1['re']['no_http'][_0x42e976(0x34c)](_0x1d8ca7)?_0x159b39>=0x3&&':'===_0x36c880[_0x159b39-0x3]||_0x159b39>=0x3&&'/'===_0x36c880[_0x159b39-0x3]?0x0:_0x1d8ca7[_0x42e976(0xdc0)](_0xe736d1['re'][_0x42e976(0x1a1d)])[0x0][_0x42e976(0x205b)]:0x0;}},'mailto:':{'validate':function(_0x472d47,_0x7fc69f,_0x336b23){const _0x25458d=_0x235866,_0x3e33d3=_0x472d47['slice'](_0x7fc69f);return _0x336b23['re'][_0x25458d(0x1a96)]||(_0x336b23['re'][_0x25458d(0x1a96)]=new RegExp('^'+_0x336b23['re'][_0x25458d(0x3187)]+'@'+_0x336b23['re'][_0x25458d(0x25a9)],'i')),_0x336b23['re'][_0x25458d(0x1a96)][_0x25458d(0x34c)](_0x3e33d3)?_0x3e33d3[_0x25458d(0xdc0)](_0x336b23['re'][_0x25458d(0x1a96)])[0x0][_0x25458d(0x205b)]:0x0;}}},_0x2efabe=_0x235866(0x1a13),_0x5018ce=_0x235866(0x3dca)['split']('|');function _0x51d5d0(_0x280dbe){const _0x4016c2=_0x235866,_0x3f869f=_0x280dbe['re']=function(_0x41afb2){const _0x500277=a0_0x329b,_0x20f51d={};_0x41afb2=_0x41afb2||{},_0x20f51d[_0x500277(0x4f27)]=_0xba6268[_0x500277(0x3b28)],_0x20f51d[_0x500277(0x3edc)]=_0xdae2be[_0x500277(0x3b28)],_0x20f51d['src_Z']=_0x1a8de9[_0x500277(0x3b28)],_0x20f51d['src_P']=_0x311e0b['source'],_0x20f51d[_0x500277(0x4067)]=[_0x20f51d['src_Z'],_0x20f51d[_0x500277(0x4c1d)],_0x20f51d[_0x500277(0x3edc)]][_0x500277(0x379c)]('|'),_0x20f51d[_0x500277(0xe67)]=[_0x20f51d[_0x500277(0x50af)],_0x20f51d[_0x500277(0x3edc)]][_0x500277(0x379c)]('|');const _0x41be0a=_0x500277(0x6bf);return _0x20f51d[_0x500277(0x4e38)]=_0x500277(0x86f)+_0x20f51d[_0x500277(0x4067)]+')'+_0x20f51d[_0x500277(0x4f27)]+')',_0x20f51d['src_ip4']='(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\x5c.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',_0x20f51d[_0x500277(0x3726)]='(?:(?:(?!'+_0x20f51d[_0x500277(0xe67)]+'|[@/\x5c[\x5c]()]).)+@)?',_0x20f51d['src_port']=_0x500277(0x1e02),_0x20f51d[_0x500277(0x264)]=_0x500277(0x3607)+_0x20f51d[_0x500277(0x4067)]+_0x500277(0x2968)+(_0x41afb2[_0x500277(0x1dbe)]?_0x500277(0x3d22):'-|')+'_|:\x5cd|\x5c.-|\x5c.(?!$|'+_0x20f51d[_0x500277(0x4067)]+'))',_0x20f51d['src_path']=_0x500277(0x3b22)+_0x20f51d[_0x500277(0xe67)]+'|'+_0x41be0a+_0x500277(0x30f2)+_0x20f51d['src_ZCc']+'|\x5c]).)*\x5c]|\x5c((?:(?!'+_0x20f51d[_0x500277(0xe67)]+'|[)]).)*\x5c)|\x5c{(?:(?!'+_0x20f51d[_0x500277(0xe67)]+'|[}]).)*\x5c}|\x5c\x22(?:(?!'+_0x20f51d[_0x500277(0xe67)]+_0x500277(0x22aa)+_0x20f51d[_0x500277(0xe67)]+_0x500277(0x1d15)+_0x20f51d[_0x500277(0x4e38)]+_0x500277(0x1f6f)+_0x20f51d[_0x500277(0xe67)]+_0x500277(0x26a1)+(_0x41afb2[_0x500277(0x1dbe)]?_0x500277(0x1b58):_0x500277(0x4864))+',(?!'+_0x20f51d['src_ZCc']+'|$)|;(?!'+_0x20f51d['src_ZCc']+_0x500277(0x2d24)+_0x20f51d[_0x500277(0xe67)]+'|[!]|$)|\x5c?(?!'+_0x20f51d[_0x500277(0xe67)]+_0x500277(0x29aa),_0x20f51d[_0x500277(0x3187)]=_0x500277(0x356e),_0x20f51d[_0x500277(0x2ede)]=_0x500277(0x3c47),_0x20f51d[_0x500277(0xc6c)]=_0x500277(0x2d50)+_0x20f51d[_0x500277(0x2ede)]+'|'+_0x20f51d[_0x500277(0x4e38)]+_0x500277(0x2a1a),_0x20f51d[_0x500277(0x4c34)]=_0x500277(0x2d50)+_0x20f51d[_0x500277(0x2ede)]+_0x500277(0x1b4c)+_0x20f51d['src_pseudo_letter']+_0x500277(0x1bef)+_0x20f51d[_0x500277(0x4e38)]+_0x500277(0x44f2)+_0x20f51d['src_pseudo_letter']+_0x500277(0x34d4)+_0x20f51d[_0x500277(0x4e38)]+'))',_0x20f51d['src_host']=_0x500277(0x1bde)+_0x20f51d[_0x500277(0x4c34)]+_0x500277(0x3d79)+_0x20f51d[_0x500277(0x4c34)]+'))',_0x20f51d[_0x500277(0xcb8)]=_0x500277(0x2d50)+_0x20f51d[_0x500277(0x34af)]+_0x500277(0x1510)+_0x20f51d['src_domain']+_0x500277(0x8e6),_0x20f51d['tpl_host_no_ip_fuzzy']=_0x500277(0x4f7b)+_0x20f51d['src_domain']+_0x500277(0x1e2),_0x20f51d[_0x500277(0x25a9)]=_0x20f51d[_0x500277(0x2c73)]+_0x20f51d[_0x500277(0x264)],_0x20f51d['tpl_host_fuzzy_strict']=_0x20f51d[_0x500277(0xcb8)]+_0x20f51d[_0x500277(0x264)],_0x20f51d['src_host_port_strict']=_0x20f51d['src_host']+_0x20f51d[_0x500277(0x4039)]+_0x20f51d['src_host_terminator'],_0x20f51d[_0x500277(0x3ea5)]=_0x20f51d[_0x500277(0xcb8)]+_0x20f51d[_0x500277(0x4039)]+_0x20f51d[_0x500277(0x264)],_0x20f51d[_0x500277(0x339)]=_0x20f51d[_0x500277(0x460d)]+_0x20f51d['src_port']+_0x20f51d['src_host_terminator'],_0x20f51d[_0x500277(0x3062)]=_0x500277(0xbdf)+_0x20f51d[_0x500277(0x4067)]+'|>|$))',_0x20f51d[_0x500277(0x1993)]=_0x500277(0x308f)+_0x20f51d[_0x500277(0xe67)]+')('+_0x20f51d[_0x500277(0x3187)]+'@'+_0x20f51d['tpl_host_fuzzy_strict']+')',_0x20f51d[_0x500277(0x32cf)]=_0x500277(0x2eb8)+_0x20f51d[_0x500277(0x4067)]+_0x500277(0xbe8)+_0x20f51d[_0x500277(0x3ea5)]+_0x20f51d['src_path']+')',_0x20f51d[_0x500277(0x4d80)]='(^|(?![.:/\x5c-_@])(?:[$+<=>^`||]|'+_0x20f51d['src_ZPCc']+_0x500277(0xbe8)+_0x20f51d[_0x500277(0x339)]+_0x20f51d[_0x500277(0x496f)]+')',_0x20f51d;}(_0x280dbe['__opts__']),_0x5139c4=_0x280dbe['__tlds__']['slice']();function _0x5d9a57(_0x2e04d2){const _0x35e1bb=a0_0x329b;return _0x2e04d2['replace'](_0x35e1bb(0x108a),_0x3f869f[_0x35e1bb(0x944)]);}_0x280dbe[_0x4016c2(0x2457)](),_0x280dbe[_0x4016c2(0x3ed)]||_0x5139c4['push'](_0x2efabe),_0x5139c4[_0x4016c2(0x4131)](_0x3f869f[_0x4016c2(0x2ede)]),_0x3f869f['src_tlds']=_0x5139c4[_0x4016c2(0x379c)]('|'),_0x3f869f[_0x4016c2(0x4b7d)]=RegExp(_0x5d9a57(_0x3f869f['tpl_email_fuzzy']),'i'),_0x3f869f[_0x4016c2(0x497f)]=RegExp(_0x5d9a57(_0x3f869f['tpl_link_fuzzy']),'i'),_0x3f869f[_0x4016c2(0x335a)]=RegExp(_0x5d9a57(_0x3f869f[_0x4016c2(0x4d80)]),'i'),_0x3f869f[_0x4016c2(0x129a)]=RegExp(_0x5d9a57(_0x3f869f['tpl_host_fuzzy_test']),'i');const _0x3fb607=[];function _0xf1251b(_0x471059,_0xdba34b){const _0x251bbd=_0x4016c2;throw new Error(_0x251bbd(0x2d8a)+_0x471059+'\x22:\x20'+_0xdba34b);}_0x280dbe['__compiled__']={},Object['keys'](_0x280dbe[_0x4016c2(0x3329)])[_0x4016c2(0x4854)](function(_0x38c034){const _0x48dc30=_0x4016c2,_0x85459f=_0x280dbe[_0x48dc30(0x3329)][_0x38c034];if(null===_0x85459f)return;const _0x2e1490={'validate':null,'link':null};if(_0x280dbe[_0x48dc30(0x37e0)][_0x38c034]=_0x2e1490,_0x48dc30(0x2f7a)===_0x3893e8(_0x85459f))return!function(_0x325e5f){const _0x1a3b10=_0x48dc30;return _0x1a3b10(0x36ae)===_0x3893e8(_0x325e5f);}(_0x85459f[_0x48dc30(0x44e4)])?_0x35ff1e(_0x85459f[_0x48dc30(0x44e4)])?_0x2e1490['validate']=_0x85459f[_0x48dc30(0x44e4)]:_0xf1251b(_0x38c034,_0x85459f):_0x2e1490[_0x48dc30(0x44e4)]=function(_0x503b9a){return function(_0x46bc3f,_0x4ba015){const _0x4eae06=a0_0x329b,_0x4579f1=_0x46bc3f[_0x4eae06(0x428e)](_0x4ba015);return _0x503b9a[_0x4eae06(0x34c)](_0x4579f1)?_0x4579f1[_0x4eae06(0xdc0)](_0x503b9a)[0x0]['length']:0x0;};}(_0x85459f[_0x48dc30(0x44e4)]),void(_0x35ff1e(_0x85459f[_0x48dc30(0x48f)])?_0x2e1490[_0x48dc30(0x48f)]=_0x85459f['normalize']:_0x85459f[_0x48dc30(0x48f)]?_0xf1251b(_0x38c034,_0x85459f):_0x2e1490['normalize']=function(_0xdc9d1,_0x5c7906){const _0x527711=_0x48dc30;_0x5c7906[_0x527711(0x48f)](_0xdc9d1);});!function(_0x302930){const _0x2a33a0=_0x48dc30;return _0x2a33a0(0x4afa)===_0x3893e8(_0x302930);}(_0x85459f)?_0xf1251b(_0x38c034,_0x85459f):_0x3fb607[_0x48dc30(0x4131)](_0x38c034);}),_0x3fb607[_0x4016c2(0x4854)](function(_0x41bda1){const _0x4d0434=_0x4016c2;_0x280dbe[_0x4d0434(0x37e0)][_0x280dbe['__schemas__'][_0x41bda1]]&&(_0x280dbe[_0x4d0434(0x37e0)][_0x41bda1][_0x4d0434(0x44e4)]=_0x280dbe[_0x4d0434(0x37e0)][_0x280dbe[_0x4d0434(0x3329)][_0x41bda1]][_0x4d0434(0x44e4)],_0x280dbe[_0x4d0434(0x37e0)][_0x41bda1][_0x4d0434(0x48f)]=_0x280dbe[_0x4d0434(0x37e0)][_0x280dbe[_0x4d0434(0x3329)][_0x41bda1]][_0x4d0434(0x48f)]);}),_0x280dbe[_0x4016c2(0x37e0)]['']={'validate':null,'normalize':function(_0x4b10f2,_0x42dec4){_0x42dec4['normalize'](_0x4b10f2);}};const _0x4c8457=Object[_0x4016c2(0x2f75)](_0x280dbe[_0x4016c2(0x37e0)])['filter'](function(_0x408fe3){const _0x1c7f5d=_0x4016c2;return _0x408fe3[_0x1c7f5d(0x205b)]>0x0&&_0x280dbe['__compiled__'][_0x408fe3];})['map'](_0x103e81)['join']('|');_0x280dbe['re'][_0x4016c2(0xbb3)]=RegExp(_0x4016c2(0x4465)+_0x3f869f['src_ZPCc']+'))('+_0x4c8457+')','i'),_0x280dbe['re'][_0x4016c2(0x11a)]=RegExp('(^|(?!_)(?:[><|]|'+_0x3f869f[_0x4016c2(0x4067)]+_0x4016c2(0x2c21)+_0x4c8457+')','ig'),_0x280dbe['re'][_0x4016c2(0xa00)]=RegExp('^'+_0x280dbe['re']['schema_search'][_0x4016c2(0x3b28)],'i'),_0x280dbe['re'][_0x4016c2(0x4747)]=RegExp('('+_0x280dbe['re'][_0x4016c2(0xbb3)][_0x4016c2(0x3b28)]+_0x4016c2(0x3592)+_0x280dbe['re'][_0x4016c2(0x129a)]['source']+_0x4016c2(0x26db),'i'),function(_0x25699b){const _0x146d88=_0x4016c2;_0x25699b[_0x146d88(0x2c27)]=-0x1,_0x25699b[_0x146d88(0x15a8)]='';}(_0x280dbe);}function _0x2536c8(_0x49754d,_0x2b2cb4){const _0x5743e6=_0x235866,_0x3cb225=_0x49754d[_0x5743e6(0x2c27)],_0x109610=_0x49754d[_0x5743e6(0x1a85)],_0x212e54=_0x49754d['__text_cache__'][_0x5743e6(0x428e)](_0x3cb225,_0x109610);this['schema']=_0x49754d[_0x5743e6(0x806)][_0x5743e6(0x1a57)](),this['index']=_0x3cb225+_0x2b2cb4,this[_0x5743e6(0x1dc3)]=_0x109610+_0x2b2cb4,this[_0x5743e6(0x266f)]=_0x212e54,this[_0x5743e6(0x2f35)]=_0x212e54,this['url']=_0x212e54;}function _0x299686(_0x501200,_0x44c1bd){const _0x5ed2d1=_0x235866,_0x3f5b43=new _0x2536c8(_0x501200,_0x44c1bd);return _0x501200[_0x5ed2d1(0x37e0)][_0x3f5b43[_0x5ed2d1(0x39e8)]]['normalize'](_0x3f5b43,_0x501200),_0x3f5b43;}function _0x3105f2(_0x10d410,_0x5513cb){const _0x5a20cd=_0x235866;if(!(this instanceof _0x3105f2))return new _0x3105f2(_0x10d410,_0x5513cb);var _0xbb8719;_0x5513cb||(_0xbb8719=_0x10d410,Object['keys'](_0xbb8719||{})['reduce'](function(_0x197e7b,_0x1d8c1e){const _0x411de5=a0_0x329b;return _0x197e7b||_0x1ea422[_0x411de5(0x32b5)](_0x1d8c1e);},!0x1)&&(_0x5513cb=_0x10d410,_0x10d410={})),this['__opts__']=_0x21dfc0({},_0x1ea422,_0x5513cb),this[_0x5a20cd(0x2c27)]=-0x1,this[_0x5a20cd(0x1a85)]=-0x1,this[_0x5a20cd(0x806)]='',this[_0x5a20cd(0x15a8)]='',this[_0x5a20cd(0x3329)]=_0x21dfc0({},_0x321633,_0x10d410),this[_0x5a20cd(0x37e0)]={},this[_0x5a20cd(0xcb1)]=_0x5018ce,this[_0x5a20cd(0x3ed)]=!0x1,this['re']={},_0x51d5d0(this);}_0x3105f2[_0x235866(0x2b5c)]['add']=function(_0xd707e0,_0x35182e){return this['__schemas__'][_0xd707e0]=_0x35182e,_0x51d5d0(this),this;},_0x3105f2[_0x235866(0x2b5c)][_0x235866(0x2d7e)]=function(_0x46c620){const _0x3866dd=_0x235866;return this[_0x3866dd(0x1c66)]=_0x21dfc0(this[_0x3866dd(0x1c66)],_0x46c620),this;},_0x3105f2[_0x235866(0x2b5c)]['test']=function(_0x3b9c96){const _0x599f80=_0x235866;if(this[_0x599f80(0x15a8)]=_0x3b9c96,this['__index__']=-0x1,!_0x3b9c96[_0x599f80(0x205b)])return!0x1;let _0x3a61ea,_0x544c40,_0x1af0b6,_0x22073c,_0x2cf693,_0x518b27,_0x9474fc,_0xd933a,_0x213b13;if(this['re'][_0x599f80(0xbb3)][_0x599f80(0x34c)](_0x3b9c96)){for(_0x9474fc=this['re'][_0x599f80(0x11a)],_0x9474fc['lastIndex']=0x0;null!==(_0x3a61ea=_0x9474fc['exec'](_0x3b9c96));)if(_0x22073c=this['testSchemaAt'](_0x3b9c96,_0x3a61ea[0x2],_0x9474fc['lastIndex']),_0x22073c){this['__schema__']=_0x3a61ea[0x2],this[_0x599f80(0x2c27)]=_0x3a61ea['index']+_0x3a61ea[0x1][_0x599f80(0x205b)],this['__last_index__']=_0x3a61ea[_0x599f80(0x1cf3)]+_0x3a61ea[0x0][_0x599f80(0x205b)]+_0x22073c;break;}}return this[_0x599f80(0x1c66)][_0x599f80(0x329d)]&&this['__compiled__'][_0x599f80(0x163f)]&&(_0xd933a=_0x3b9c96[_0x599f80(0x1929)](this['re'][_0x599f80(0x129a)]),_0xd933a>=0x0&&(this[_0x599f80(0x2c27)]<0x0||_0xd933a=0x0&&null!==(_0x1af0b6=_0x3b9c96[_0x599f80(0xdc0)](this['re']['email_fuzzy']))&&(_0x2cf693=_0x1af0b6[_0x599f80(0x1cf3)]+_0x1af0b6[0x1]['length'],_0x518b27=_0x1af0b6[_0x599f80(0x1cf3)]+_0x1af0b6[0x0][_0x599f80(0x205b)],(this[_0x599f80(0x2c27)]<0x0||_0x2cf693this[_0x599f80(0x1a85)])&&(this[_0x599f80(0x806)]=_0x599f80(0x50c),this[_0x599f80(0x2c27)]=_0x2cf693,this[_0x599f80(0x1a85)]=_0x518b27))),this[_0x599f80(0x2c27)]>=0x0;},_0x3105f2['prototype'][_0x235866(0x4747)]=function(_0x3b89e3){const _0x268c74=_0x235866;return this['re'][_0x268c74(0x4747)][_0x268c74(0x34c)](_0x3b89e3);},_0x3105f2[_0x235866(0x2b5c)][_0x235866(0x2470)]=function(_0x292f6e,_0x29c703,_0x39daa7){const _0x34a469=_0x235866;return this['__compiled__'][_0x29c703[_0x34a469(0x1a57)]()]?this[_0x34a469(0x37e0)][_0x29c703[_0x34a469(0x1a57)]()][_0x34a469(0x44e4)](_0x292f6e,_0x39daa7,this):0x0;},_0x3105f2[_0x235866(0x2b5c)]['match']=function(_0x25875f){const _0x423020=_0x235866,_0x3b6bca=[];let _0x1e038b=0x0;this[_0x423020(0x2c27)]>=0x0&&this[_0x423020(0x15a8)]===_0x25875f&&(_0x3b6bca[_0x423020(0x4131)](_0x299686(this,_0x1e038b)),_0x1e038b=this[_0x423020(0x1a85)]);let _0x3af46e=_0x1e038b?_0x25875f['slice'](_0x1e038b):_0x25875f;for(;this[_0x423020(0x34c)](_0x3af46e);)_0x3b6bca[_0x423020(0x4131)](_0x299686(this,_0x1e038b)),_0x3af46e=_0x3af46e[_0x423020(0x428e)](this[_0x423020(0x1a85)]),_0x1e038b+=this[_0x423020(0x1a85)];return _0x3b6bca[_0x423020(0x205b)]?_0x3b6bca:null;},_0x3105f2[_0x235866(0x2b5c)]['matchAtStart']=function(_0x629a3b){const _0x104e91=_0x235866;if(this[_0x104e91(0x15a8)]=_0x629a3b,this[_0x104e91(0x2c27)]=-0x1,!_0x629a3b[_0x104e91(0x205b)])return null;const _0x3844b7=this['re'][_0x104e91(0xa00)][_0x104e91(0x3bbd)](_0x629a3b);if(!_0x3844b7)return null;const _0x14ebe3=this[_0x104e91(0x2470)](_0x629a3b,_0x3844b7[0x2],_0x3844b7[0x0][_0x104e91(0x205b)]);return _0x14ebe3?(this[_0x104e91(0x806)]=_0x3844b7[0x2],this[_0x104e91(0x2c27)]=_0x3844b7[_0x104e91(0x1cf3)]+_0x3844b7[0x1][_0x104e91(0x205b)],this[_0x104e91(0x1a85)]=_0x3844b7[_0x104e91(0x1cf3)]+_0x3844b7[0x0]['length']+_0x14ebe3,_0x299686(this,0x0)):null;},_0x3105f2[_0x235866(0x2b5c)][_0x235866(0x30e4)]=function(_0x156d2d,_0x5127f5){const _0x386e65=_0x235866;return _0x156d2d=Array[_0x386e65(0x477f)](_0x156d2d)?_0x156d2d:[_0x156d2d],_0x5127f5?(this[_0x386e65(0xcb1)]=this[_0x386e65(0xcb1)][_0x386e65(0x41bf)](_0x156d2d)['sort']()[_0x386e65(0x295e)](function(_0x497b4f,_0x542415,_0x25fef5){return _0x497b4f!==_0x25fef5[_0x542415-0x1];})[_0x386e65(0x2a4c)](),_0x51d5d0(this),this):(this[_0x386e65(0xcb1)]=_0x156d2d[_0x386e65(0x428e)](),this[_0x386e65(0x3ed)]=!0x0,_0x51d5d0(this),this);},_0x3105f2[_0x235866(0x2b5c)][_0x235866(0x48f)]=function(_0x536c70){const _0x342e78=_0x235866;_0x536c70[_0x342e78(0x39e8)]||(_0x536c70[_0x342e78(0x200e)]=_0x342e78(0x3b2b)+_0x536c70['url']),_0x342e78(0x50c)!==_0x536c70[_0x342e78(0x39e8)]||/^mailto:/i[_0x342e78(0x34c)](_0x536c70['url'])||(_0x536c70[_0x342e78(0x200e)]=_0x342e78(0x50c)+_0x536c70[_0x342e78(0x200e)]);},_0x3105f2[_0x235866(0x2b5c)]['onCompile']=function(){};const _0x4d1ca1=_0x3105f2,_0x389bab=0x7fffffff,_0x2bd679=0x24,_0xcf7010=/^xn--/,_0x189536=/[^\0-\x7F]/,_0x263b9a=/[\x2E\u3002\uFF0E\uFF61]/g,_0x463ee2={'overflow':_0x235866(0x3f19),'not-basic':'Illegal\x20input\x20>=\x200x80\x20(not\x20a\x20basic\x20code\x20point)','invalid-input':'Invalid\x20input'},_0x4d55f8=Math[_0x235866(0x4dbd)],_0x376de1=String[_0x235866(0xc78)];function _0x26a9c0(_0x732213){throw new RangeError(_0x463ee2[_0x732213]);}function _0x48447a(_0x4b2911,_0x3e4e7f){const _0x22c42f=_0x235866,_0x3c828a=_0x4b2911[_0x22c42f(0x29d0)]('@');let _0x299e68='';_0x3c828a[_0x22c42f(0x205b)]>0x1&&(_0x299e68=_0x3c828a[0x0]+'@',_0x4b2911=_0x3c828a[0x1]);const _0x58e44c=function(_0x44fd9a,_0xa83718){const _0x412d21=_0x22c42f,_0x2caf6c=[];let _0x2e6776=_0x44fd9a[_0x412d21(0x205b)];for(;_0x2e6776--;)_0x2caf6c[_0x2e6776]=_0xa83718(_0x44fd9a[_0x2e6776]);return _0x2caf6c;}((_0x4b2911=_0x4b2911[_0x22c42f(0x1db7)](_0x263b9a,'.'))[_0x22c42f(0x29d0)]('.'),_0x3e4e7f)['join']('.');return _0x299e68+_0x58e44c;}function _0x446612(_0x5aab99){const _0x5ee6f7=_0x235866,_0x3e1837=[];let _0x2fcaa2=0x0;const _0x26fb9e=_0x5aab99[_0x5ee6f7(0x205b)];for(;_0x2fcaa2<_0x26fb9e;){const _0x4e65cb=_0x5aab99[_0x5ee6f7(0x1806)](_0x2fcaa2++);if(_0x4e65cb>=0xd800&&_0x4e65cb<=0xdbff&&_0x2fcaa2<_0x26fb9e){const _0x525c40=_0x5aab99[_0x5ee6f7(0x1806)](_0x2fcaa2++);0xdc00==(0xfc00&_0x525c40)?_0x3e1837[_0x5ee6f7(0x4131)](((0x3ff&_0x4e65cb)<<0xa)+(0x3ff&_0x525c40)+0x10000):(_0x3e1837['push'](_0x4e65cb),_0x2fcaa2--);}else _0x3e1837[_0x5ee6f7(0x4131)](_0x4e65cb);}return _0x3e1837;}const _0x32ae84=function(_0x191a5f,_0x5798ab){return _0x191a5f+0x16+0x4b*(_0x191a5f<0x1a)-((0x0!=_0x5798ab)<<0x5);},_0x68c60c=function(_0x6ffcef,_0x564480,_0x329217){let _0x1695e4=0x0;for(_0x6ffcef=_0x329217?_0x4d55f8(_0x6ffcef/0x2bc):_0x6ffcef>>0x1,_0x6ffcef+=_0x4d55f8(_0x6ffcef/_0x564480);_0x6ffcef>0x1c7;_0x1695e4+=_0x2bd679)_0x6ffcef=_0x4d55f8(_0x6ffcef/0x23);return _0x4d55f8(_0x1695e4+0x24*_0x6ffcef/(_0x6ffcef+0x26));},_0x26163e=function(_0x50ac29){const _0xfdd473=_0x235866,_0x45f295=[],_0x283d9f=_0x50ac29[_0xfdd473(0x205b)];let _0x195f7a=0x0,_0x130fe7=0x80,_0x1210fb=0x48,_0x227488=_0x50ac29[_0xfdd473(0xe17)]('-');_0x227488<0x0&&(_0x227488=0x0);for(let _0x26dba6=0x0;_0x26dba6<_0x227488;++_0x26dba6)_0x50ac29['charCodeAt'](_0x26dba6)>=0x80&&_0x26a9c0(_0xfdd473(0xfe4)),_0x45f295[_0xfdd473(0x4131)](_0x50ac29[_0xfdd473(0x1806)](_0x26dba6));for(let _0x22f91d=_0x227488>0x0?_0x227488+0x1:0x0;_0x22f91d<_0x283d9f;){const _0x119f23=_0x195f7a;for(let _0x534159=0x1,_0x555f43=_0x2bd679;;_0x555f43+=_0x2bd679){_0x22f91d>=_0x283d9f&&_0x26a9c0(_0xfdd473(0x607));const _0x105cff=(_0x3b8095=_0x50ac29[_0xfdd473(0x1806)](_0x22f91d++))>=0x30&&_0x3b8095<0x3a?_0x3b8095-0x30+0x1a:_0x3b8095>=0x41&&_0x3b8095<0x5b?_0x3b8095-0x41:_0x3b8095>=0x61&&_0x3b8095<0x7b?_0x3b8095-0x61:_0x2bd679;_0x105cff>=_0x2bd679&&_0x26a9c0(_0xfdd473(0x607)),_0x105cff>_0x4d55f8((_0x389bab-_0x195f7a)/_0x534159)&&_0x26a9c0(_0xfdd473(0x1962)),_0x195f7a+=_0x105cff*_0x534159;const _0x1dfbe0=_0x555f43<=_0x1210fb?0x1:_0x555f43>=_0x1210fb+0x1a?0x1a:_0x555f43-_0x1210fb;if(_0x105cff<_0x1dfbe0)break;const _0x495489=_0x2bd679-_0x1dfbe0;_0x534159>_0x4d55f8(_0x389bab/_0x495489)&&_0x26a9c0(_0xfdd473(0x1962)),_0x534159*=_0x495489;}const _0x1df7ba=_0x45f295['length']+0x1;_0x1210fb=_0x68c60c(_0x195f7a-_0x119f23,_0x1df7ba,0x0==_0x119f23),_0x4d55f8(_0x195f7a/_0x1df7ba)>_0x389bab-_0x130fe7&&_0x26a9c0(_0xfdd473(0x1962)),_0x130fe7+=_0x4d55f8(_0x195f7a/_0x1df7ba),_0x195f7a%=_0x1df7ba,_0x45f295[_0xfdd473(0x506f)](_0x195f7a++,0x0,_0x130fe7);}var _0x3b8095;return String[_0xfdd473(0x1554)](..._0x45f295);},_0x5ef649=function(_0x22b614){const _0x4b52c0=_0x235866,_0x31a897=[],_0x300f33=(_0x22b614=_0x446612(_0x22b614))[_0x4b52c0(0x205b)];let _0x402cd0=0x80,_0x941d62=0x0,_0x305cc9=0x48;for(const _0x49c611 of _0x22b614)_0x49c611<0x80&&_0x31a897[_0x4b52c0(0x4131)](_0x376de1(_0x49c611));const _0x4831af=_0x31a897['length'];let _0x24a104=_0x4831af;for(_0x4831af&&_0x31a897[_0x4b52c0(0x4131)]('-');_0x24a104<_0x300f33;){let _0x16e194=_0x389bab;for(const _0x28a202 of _0x22b614)_0x28a202>=_0x402cd0&&_0x28a202<_0x16e194&&(_0x16e194=_0x28a202);const _0x59df95=_0x24a104+0x1;_0x16e194-_0x402cd0>_0x4d55f8((_0x389bab-_0x941d62)/_0x59df95)&&_0x26a9c0(_0x4b52c0(0x1962)),_0x941d62+=(_0x16e194-_0x402cd0)*_0x59df95,_0x402cd0=_0x16e194;for(const _0x1fa495 of _0x22b614)if(_0x1fa495<_0x402cd0&&++_0x941d62>_0x389bab&&_0x26a9c0('overflow'),_0x1fa495===_0x402cd0){let _0x451864=_0x941d62;for(let _0x560739=_0x2bd679;;_0x560739+=_0x2bd679){const _0x512a96=_0x560739<=_0x305cc9?0x1:_0x560739>=_0x305cc9+0x1a?0x1a:_0x560739-_0x305cc9;if(_0x451864<_0x512a96)break;const _0x1030f3=_0x451864-_0x512a96,_0x52cdd5=_0x2bd679-_0x512a96;_0x31a897[_0x4b52c0(0x4131)](_0x376de1(_0x32ae84(_0x512a96+_0x1030f3%_0x52cdd5,0x0))),_0x451864=_0x4d55f8(_0x1030f3/_0x52cdd5);}_0x31a897['push'](_0x376de1(_0x32ae84(_0x451864,0x0))),_0x305cc9=_0x68c60c(_0x941d62,_0x59df95,_0x24a104===_0x4831af),_0x941d62=0x0,++_0x24a104;}++_0x941d62,++_0x402cd0;}return _0x31a897[_0x4b52c0(0x379c)]('');},_0x8d7278={'version':_0x235866(0xc49),'ucs2':{'decode':_0x446612,'encode':_0x5b61c8=>String[_0x235866(0x1554)](..._0x5b61c8)},'decode':_0x26163e,'encode':_0x5ef649,'toASCII':function(_0x5e42dd){return _0x48447a(_0x5e42dd,function(_0xbea5db){const _0x49acca=a0_0x329b;return _0x189536[_0x49acca(0x34c)](_0xbea5db)?_0x49acca(0x33dd)+_0x5ef649(_0xbea5db):_0xbea5db;});},'toUnicode':function(_0x1cd1c0){return _0x48447a(_0x1cd1c0,function(_0x2df3d8){const _0x4013b4=a0_0x329b;return _0xcf7010[_0x4013b4(0x34c)](_0x2df3d8)?_0x26163e(_0x2df3d8[_0x4013b4(0x428e)](0x4)[_0x4013b4(0x1a57)]()):_0x2df3d8;});}},_0x26fdca={'default':{'options':{'html':!0x1,'xhtmlOut':!0x1,'breaks':!0x1,'langPrefix':_0x235866(0x4395),'linkify':!0x1,'typographer':!0x1,'quotes':_0x235866(0xfb6),'highlight':null,'maxNesting':0x64},'components':{'core':{},'block':{},'inline':{}}},'zero':{'options':{'html':!0x1,'xhtmlOut':!0x1,'breaks':!0x1,'langPrefix':_0x235866(0x4395),'linkify':!0x1,'typographer':!0x1,'quotes':'“”‘’','highlight':null,'maxNesting':0x14},'components':{'core':{'rules':['normalize','block',_0x235866(0x50d2),_0x235866(0x406c)]},'block':{'rules':[_0x235866(0x2d53)]},'inline':{'rules':[_0x235866(0x2f35)],'rules2':[_0x235866(0x4fb2),_0x235866(0x199)]}}},'commonmark':{'options':{'html':!0x0,'xhtmlOut':!0x0,'breaks':!0x1,'langPrefix':_0x235866(0x4395),'linkify':!0x1,'typographer':!0x1,'quotes':_0x235866(0xfb6),'highlight':null,'maxNesting':0x14},'components':{'core':{'rules':[_0x235866(0x48f),_0x235866(0x3eab),'inline',_0x235866(0x406c)]},'block':{'rules':['blockquote',_0x235866(0xbd0),_0x235866(0xecc),_0x235866(0x4d5f),'hr',_0x235866(0x3de3),_0x235866(0x469),_0x235866(0x20cf),_0x235866(0x3085),'paragraph']},'inline':{'rules':[_0x235866(0x2527),'backticks',_0x235866(0x3010),_0x235866(0x27e),'escape','html_inline',_0x235866(0x1692),_0x235866(0x3622),_0x235866(0x369a),'text'],'rules2':[_0x235866(0x4fb2),_0x235866(0x3010),'fragments_join']}}}},_0x44d3c1=/^(vbscript|javascript|file|data):/,_0x56aba6=/^data:image\/(gif|png|jpeg|webp);/;function _0x3372a9(_0x2b877a){const _0x14a0e7=_0x235866,_0x5f55e7=_0x2b877a[_0x14a0e7(0x1d0e)]()[_0x14a0e7(0x1a57)]();return!_0x44d3c1['test'](_0x5f55e7)||_0x56aba6['test'](_0x5f55e7);}const _0x575680=['http:',_0x235866(0x2301),_0x235866(0x50c)];function _0x262fbd(_0x30d0ec){const _0x49868d=_0x235866,_0x2f72e0=_0x3415b4(_0x30d0ec,!0x0);if(_0x2f72e0[_0x49868d(0xfb5)]&&(!_0x2f72e0[_0x49868d(0x4d06)]||_0x575680['indexOf'](_0x2f72e0[_0x49868d(0x4d06)])>=0x0))try{_0x2f72e0[_0x49868d(0xfb5)]=_0x8d7278[_0x49868d(0x1b19)](_0x2f72e0[_0x49868d(0xfb5)]);}catch(_0x224bbb){}return _0x1ff90c(_0x38ff67(_0x2f72e0));}function _0x1c66ae(_0x3cf0a5){const _0x2827cd=_0x235866,_0x56afd4=_0x3415b4(_0x3cf0a5,!0x0);if(_0x56afd4[_0x2827cd(0xfb5)]&&(!_0x56afd4['protocol']||_0x575680[_0x2827cd(0x3458)](_0x56afd4[_0x2827cd(0x4d06)])>=0x0))try{_0x56afd4[_0x2827cd(0xfb5)]=_0x8d7278[_0x2827cd(0x39c1)](_0x56afd4[_0x2827cd(0xfb5)]);}catch(_0x3a13e5){}return _0x412fbe(_0x38ff67(_0x56afd4),_0x412fbe[_0x2827cd(0x3752)]+'%');}function _0x3e1700(_0x226490,_0x1ab1e5){const _0x297eba=_0x235866;if(!(this instanceof _0x3e1700))return new _0x3e1700(_0x226490,_0x1ab1e5);_0x1ab1e5||_0x5c0232(_0x226490)||(_0x1ab1e5=_0x226490||{},_0x226490=_0x297eba(0x2fab)),this[_0x297eba(0x50d2)]=new _0x4c276d(),this[_0x297eba(0x3eab)]=new _0x11a7a6(),this['core']=new _0x38a333(),this[_0x297eba(0x17b9)]=new _0x5a7bf1(),this[_0x297eba(0xf7f)]=new _0x4d1ca1(),this[_0x297eba(0x3a4a)]=_0x3372a9,this[_0x297eba(0x2da6)]=_0x262fbd,this['normalizeLinkText']=_0x1c66ae,this['utils']=_0x1bfea2,this[_0x297eba(0x2f9b)]=_0x52dcf4({},_0x120df0),this[_0x297eba(0x199c)]={},this['configure'](_0x226490),_0x1ab1e5&&this[_0x297eba(0x2d7e)](_0x1ab1e5);}_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x2d7e)]=function(_0x3601a3){return _0x52dcf4(this['options'],_0x3601a3),this;},_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x2136)]=function(_0x5ef7fc){const _0x22a736=_0x235866,_0x54777a=this;if(_0x5c0232(_0x5ef7fc)){const _0x9c6905=_0x5ef7fc;if(!(_0x5ef7fc=_0x26fdca[_0x9c6905]))throw new Error(_0x22a736(0x3770)+_0x9c6905+'\x22,\x20check\x20name');}if(!_0x5ef7fc)throw new Error(_0x22a736(0x249));return _0x5ef7fc['options']&&_0x54777a[_0x22a736(0x2d7e)](_0x5ef7fc[_0x22a736(0x199c)]),_0x5ef7fc['components']&&Object['keys'](_0x5ef7fc['components'])[_0x22a736(0x4854)](function(_0x39649a){const _0x12a425=_0x22a736;_0x5ef7fc['components'][_0x39649a][_0x12a425(0x28bb)]&&_0x54777a[_0x39649a][_0x12a425(0x536)][_0x12a425(0x1a3d)](_0x5ef7fc[_0x12a425(0x1c42)][_0x39649a][_0x12a425(0x28bb)]),_0x5ef7fc[_0x12a425(0x1c42)][_0x39649a][_0x12a425(0xdbb)]&&_0x54777a[_0x39649a][_0x12a425(0x250e)]['enableOnly'](_0x5ef7fc[_0x12a425(0x1c42)][_0x39649a]['rules2']);}),this;},_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x3e75)]=function(_0x37fdcc,_0x2152a6){const _0x4fe20f=_0x235866;let _0x475c30=[];Array[_0x4fe20f(0x477f)](_0x37fdcc)||(_0x37fdcc=[_0x37fdcc]),['core',_0x4fe20f(0x3eab),_0x4fe20f(0x50d2)][_0x4fe20f(0x4854)](function(_0x3d150b){const _0x12ed28=_0x4fe20f;_0x475c30=_0x475c30[_0x12ed28(0x41bf)](this[_0x3d150b][_0x12ed28(0x536)][_0x12ed28(0x3e75)](_0x37fdcc,!0x0));},this),_0x475c30=_0x475c30['concat'](this[_0x4fe20f(0x50d2)][_0x4fe20f(0x250e)][_0x4fe20f(0x3e75)](_0x37fdcc,!0x0));const _0x229a23=_0x37fdcc['filter'](function(_0x44b6e3){const _0x1abb29=_0x4fe20f;return _0x475c30[_0x1abb29(0x3458)](_0x44b6e3)<0x0;});if(_0x229a23[_0x4fe20f(0x205b)]&&!_0x2152a6)throw new Error(_0x4fe20f(0x3bfa)+_0x229a23);return this;},_0x3e1700['prototype']['disable']=function(_0x577d72,_0x262eb){const _0xf4647d=_0x235866;let _0x286dc7=[];Array[_0xf4647d(0x477f)](_0x577d72)||(_0x577d72=[_0x577d72]),[_0xf4647d(0x368a),_0xf4647d(0x3eab),_0xf4647d(0x50d2)][_0xf4647d(0x4854)](function(_0x39b63c){const _0x2bd648=_0xf4647d;_0x286dc7=_0x286dc7[_0x2bd648(0x41bf)](this[_0x39b63c][_0x2bd648(0x536)]['disable'](_0x577d72,!0x0));},this),_0x286dc7=_0x286dc7[_0xf4647d(0x41bf)](this[_0xf4647d(0x50d2)]['ruler2'][_0xf4647d(0x1284)](_0x577d72,!0x0));const _0x50928d=_0x577d72[_0xf4647d(0x295e)](function(_0x28fc7a){const _0x3f8c35=_0xf4647d;return _0x286dc7[_0x3f8c35(0x3458)](_0x28fc7a)<0x0;});if(_0x50928d['length']&&!_0x262eb)throw new Error(_0xf4647d(0x327)+_0x50928d);return this;},_0x3e1700['prototype'][_0x235866(0x3903)]=function(_0x1b045d){const _0x1092fc=_0x235866,_0x6f0b1b=[this][_0x1092fc(0x41bf)](Array[_0x1092fc(0x2b5c)][_0x1092fc(0x428e)][_0x1092fc(0x4c9d)](arguments,0x1));return _0x1b045d[_0x1092fc(0x3138)](_0x1b045d,_0x6f0b1b),this;},_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x1b07)]=function(_0xfbaa81,_0x5e29b6){const _0x5dfe5e=_0x235866;if(_0x5dfe5e(0x4f7c)!=typeof _0xfbaa81)throw new Error(_0x5dfe5e(0x4c90));const _0x1924a3=new this[(_0x5dfe5e(0x368a))][(_0x5dfe5e(0x2153))](_0xfbaa81,this,_0x5e29b6);return this[_0x5dfe5e(0x368a)]['process'](_0x1924a3),_0x1924a3[_0x5dfe5e(0x30f4)];},_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x4662)]=function(_0x108f30,_0x24b59a){const _0x3f64d1=_0x235866;return _0x24b59a=_0x24b59a||{},this[_0x3f64d1(0x17b9)][_0x3f64d1(0x4662)](this[_0x3f64d1(0x1b07)](_0x108f30,_0x24b59a),this['options'],_0x24b59a);},_0x3e1700['prototype'][_0x235866(0x41d2)]=function(_0x234788,_0x58cdb4){const _0x24a5c3=_0x235866,_0x3825ec=new this[(_0x24a5c3(0x368a))][(_0x24a5c3(0x2153))](_0x234788,this,_0x58cdb4);return _0x3825ec[_0x24a5c3(0x141d)]=!0x0,this[_0x24a5c3(0x368a)]['process'](_0x3825ec),_0x3825ec[_0x24a5c3(0x30f4)];},_0x3e1700[_0x235866(0x2b5c)][_0x235866(0x166e)]=function(_0x2246fe,_0x50855e){const _0x277d6c=_0x235866;return _0x50855e=_0x50855e||{},this[_0x277d6c(0x17b9)]['render'](this[_0x277d6c(0x41d2)](_0x2246fe,_0x50855e),this[_0x277d6c(0x199c)],_0x50855e);};const _0x5b59c7=_0x3e1700;function _0x390259(_0x171668,_0x4025c9,_0x111500){const _0x577b1b=_0x235866,_0x5e1b1b=(_0x111500=_0x111500||{})['marker']||':',_0x22c476=_0x5e1b1b[_0x577b1b(0x1806)](0x0),_0x5f1be4=_0x5e1b1b[_0x577b1b(0x205b)],_0x5612dc=_0x111500['validate']||function(_0x534f5f){const _0x567129=_0x577b1b;return _0x534f5f[_0x567129(0x1d0e)]()[_0x567129(0x29d0)]('\x20',0x2)[0x0]===_0x4025c9;},_0x4e46a3=_0x111500[_0x577b1b(0x4662)]||function(_0x2099ad,_0xb7860c,_0x3a4c97,_0x48951d,_0xdc8691){const _0x201262=_0x577b1b;return 0x1===_0x2099ad[_0xb7860c][_0x201262(0x47ee)]&&_0x2099ad[_0xb7860c][_0x201262(0x1188)](_0x201262(0x42ec),_0x4025c9),_0xdc8691['renderToken'](_0x2099ad,_0xb7860c,_0x3a4c97,_0x48951d,_0xdc8691);};_0x171668[_0x577b1b(0x3eab)][_0x577b1b(0x536)]['before'](_0x577b1b(0xecc),_0x577b1b(0x16ad)+_0x4025c9,function(_0xdb373f,_0x32132b,_0x3a2b32,_0x38dbae){const _0x4fcc1f=_0x577b1b;let _0x4ad415,_0x40c683=!0x1,_0x56d3ff=_0xdb373f[_0x4fcc1f(0x45ae)][_0x32132b]+_0xdb373f[_0x4fcc1f(0x1d33)][_0x32132b],_0x284575=_0xdb373f['eMarks'][_0x32132b];if(_0x22c476!==_0xdb373f['src']['charCodeAt'](_0x56d3ff))return!0x1;for(_0x4ad415=_0x56d3ff+0x1;_0x4ad415<=_0x284575&&_0x5e1b1b[(_0x4ad415-_0x56d3ff)%_0x5f1be4]===_0xdb373f['src'][_0x4ad415];_0x4ad415++);const _0x147ae1=Math[_0x4fcc1f(0x4dbd)]((_0x4ad415-_0x56d3ff)/_0x5f1be4);if(_0x147ae1<0x3)return!0x1;_0x4ad415-=(_0x4ad415-_0x56d3ff)%_0x5f1be4;const _0x14d693=_0xdb373f['src'][_0x4fcc1f(0x428e)](_0x56d3ff,_0x4ad415),_0x37807e=_0xdb373f[_0x4fcc1f(0x1005)]['slice'](_0x4ad415,_0x284575);if(!_0x5612dc(_0x37807e,_0x14d693))return!0x1;if(_0x38dbae)return!0x0;let _0xc901cd=_0x32132b;for(;(_0xc901cd++,!(_0xc901cd>=_0x3a2b32))&&(_0x56d3ff=_0xdb373f[_0x4fcc1f(0x45ae)][_0xc901cd]+_0xdb373f[_0x4fcc1f(0x1d33)][_0xc901cd],_0x284575=_0xdb373f[_0x4fcc1f(0x1908)][_0xc901cd],!(_0x56d3ff<_0x284575&&_0xdb373f['sCount'][_0xc901cd]<_0xdb373f['blkIndent']));)if(_0x22c476===_0xdb373f[_0x4fcc1f(0x1005)]['charCodeAt'](_0x56d3ff)&&!(_0xdb373f[_0x4fcc1f(0x11e9)][_0xc901cd]-_0xdb373f[_0x4fcc1f(0x2c69)]>=0x4)){for(_0x4ad415=_0x56d3ff+0x1;_0x4ad415<=_0x284575&&_0x5e1b1b[(_0x4ad415-_0x56d3ff)%_0x5f1be4]===_0xdb373f[_0x4fcc1f(0x1005)][_0x4ad415];_0x4ad415++);if(!(Math[_0x4fcc1f(0x4dbd)]((_0x4ad415-_0x56d3ff)/_0x5f1be4)<_0x147ae1||(_0x4ad415-=(_0x4ad415-_0x56d3ff)%_0x5f1be4,_0x4ad415=_0xdb373f[_0x4fcc1f(0x28e7)](_0x4ad415),_0x4ad415<_0x284575))){_0x40c683=!0x0;break;}}const _0x1bfe88=_0xdb373f['parentType'],_0x44d86b=_0xdb373f[_0x4fcc1f(0x44dd)];_0xdb373f['parentType']='container',_0xdb373f['lineMax']=_0xc901cd;const _0x20a245=_0xdb373f[_0x4fcc1f(0x4131)](_0x4fcc1f(0x16ad)+_0x4025c9+'_open','div',0x1);_0x20a245['markup']=_0x14d693,_0x20a245[_0x4fcc1f(0x3eab)]=!0x0,_0x20a245[_0x4fcc1f(0x368d)]=_0x37807e,_0x20a245[_0x4fcc1f(0x2c94)]=[_0x32132b,_0xc901cd],_0xdb373f['md'][_0x4fcc1f(0x3eab)][_0x4fcc1f(0x44f9)](_0xdb373f,_0x32132b+0x1,_0xc901cd);const _0xea08a7=_0xdb373f[_0x4fcc1f(0x4131)](_0x4fcc1f(0x16ad)+_0x4025c9+_0x4fcc1f(0x2294),'div',-0x1);return _0xea08a7[_0x4fcc1f(0x2767)]=_0xdb373f['src'][_0x4fcc1f(0x428e)](_0x56d3ff,_0x4ad415),_0xea08a7[_0x4fcc1f(0x3eab)]=!0x0,_0xdb373f[_0x4fcc1f(0x1581)]=_0x1bfe88,_0xdb373f[_0x4fcc1f(0x44dd)]=_0x44d86b,_0xdb373f['line']=_0xc901cd+(_0x40c683?0x1:0x0),!0x0;},{'alt':[_0x577b1b(0x2d53),_0x577b1b(0x3085),_0x577b1b(0x30ef),_0x577b1b(0x20cf)]}),_0x171668['renderer'][_0x577b1b(0x28bb)]['container_'+_0x4025c9+_0x577b1b(0x2370)]=_0x4e46a3,_0x171668[_0x577b1b(0x17b9)][_0x577b1b(0x28bb)][_0x577b1b(0x16ad)+_0x4025c9+_0x577b1b(0x2294)]=_0x4e46a3;}const _0x2e2aac=_0x356cb5(0xc97);_0x356cb5(0x11c3);let _0x36b36c;const _0x2a66b8=_0x5b59c7({'html':!0x0,'highlight':function(_0x3fb5fb,_0x5bd7f1){const _0x118eaa=_0x235866;if(_0x5bd7f1&&_0x2e2aac[_0x118eaa(0x145f)](_0x5bd7f1))try{return _0x2e2aac[_0x118eaa(0x127b)](_0x3fb5fb,{'language':_0x5bd7f1})[_0x118eaa(0x1827)];}catch(_0x138323){}return _0x2a66b8[_0x118eaa(0x1180)][_0x118eaa(0x4251)](_0x3fb5fb);}});function _0x48c869(_0x10d44d){const _0x5e75d2=_0x235866;_0x10d44d[_0x5e75d2(0x44dc)](_0x5e75d2(0x1553))['forEach'](_0x52982f=>{const _0x48c759=_0x5e75d2;_0x52982f['classList'][_0x48c759(0x2fd8)](_0x48c759(0xff8)),_0x52982f['style'][_0x48c759(0xaca)]=_0x48c759(0x4450),_0x52982f[_0x48c759(0x3098)][_0x48c759(0x1c74)]=_0x48c759(0x1eb1),_0x52982f[_0x48c759(0x3098)][_0x48c759(0x1e39)]=_0x48c759(0x2444),_0x52982f[_0x48c759(0x3098)][_0x48c759(0x378f)]='royalblue',_0x52982f[_0x48c759(0x3098)][_0x48c759(0x20c4)]=_0x48c759(0x4a7b),_0x52982f[_0x48c759(0x3098)][_0x48c759(0xbf0)]=_0x48c759(0x314b),_0x52982f[_0x48c759(0x3098)][_0x48c759(0x3a28)]=_0x48c759(0x564);const _0x226a94=document['createElement'](_0x48c759(0x1de1));_0x226a94['innerHTML']=_0x48c759(0x3296),_0x226a94[_0x48c759(0x318e)][_0x48c759(0x2fd8)](_0x48c759(0x3dd8)),_0x226a94[_0x48c759(0x3098)][_0x48c759(0x3a28)]=_0x48c759(0x21e9),_0x226a94[_0x48c759(0x3098)][_0x48c759(0x139d)]='8px',_0x226a94[_0x48c759(0x3098)][_0x48c759(0x11fd)]='8px',_0x226a94[_0x48c759(0x3098)][_0x48c759(0x4604)]='none',_0x226a94[_0x48c759(0x3098)]['borderRadius']=_0x48c759(0x4b7),_0x226a94[_0x48c759(0x3098)][_0x48c759(0x2d5)]=_0x48c759(0x50b2),_0x226a94['style'][_0x48c759(0x33bb)]='pointer',_0x226a94['style'][_0x48c759(0x378f)]='#333',_0x52982f[_0x48c759(0x1952)](_0x226a94),_0x226a94['addEventListener']('click',()=>{const _0x4a449f=_0x48c759,_0x1e2551=_0x226a94[_0x4a449f(0x22eb)];navigator[_0x4a449f(0x2abf)][_0x4a449f(0x17c4)](_0x52982f['textContent']),_0x226a94[_0x4a449f(0x22eb)]=_0x4a449f(0x50e9),setTimeout(()=>{const _0x2d919d=_0x4a449f;_0x226a94[_0x2d919d(0x22eb)]=_0x1e2551;},0x7d0);});});}function _0x60383d(_0x75eeff,_0x54874b,_0x677b49=0x0){const _0x277b91=_0x235866,_0x39425e=_0x54874b[_0x277b91(0xe9f)](_0x277b91(0x28f1));let _0x25418e='',_0x5e9c79=_0x75eeff,_0x557b5c=[];const _0x5d5265=_0x75eeff[_0x277b91(0x3458)](_0x277b91(0x4a96));-0x1!==_0x5d5265&&(_0x557b5c=_0x75eeff[_0x277b91(0x3934)](_0x5d5265+0x3)[_0x277b91(0x29d0)]('\x0a')[_0x277b91(0x2c94)](_0x56b84e=>_0x56b84e[_0x277b91(0x1d0e)]())[_0x277b91(0x295e)](_0x42ddc3=>_0x42ddc3[_0x277b91(0xe37)]('?')),_0x5e9c79=_0x75eeff[_0x277b91(0x3934)](0x0,_0x5d5265));if(_0x25418e=0x0===_0x677b49?_0x277b91(0x4f97)+_0x2a66b8[_0x277b91(0x4662)](_0x5e9c79)+_0x277b91(0x5002):'\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20'+_0x2a66b8[_0x277b91(0x4662)](_0x5e9c79)+_0x277b91(0x5002),_0x39425e['innerHTML']=_0x25418e,_0x48c869(_0x39425e),_0x557b5c[_0x277b91(0x205b)]>0x0){const _0x56f230=document[_0x277b91(0x23d7)]('div');_0x56f230['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20Related\x0a\x20\x20\x20\x20\x20\x20

',_0x557b5c['forEach']((_0x2fa32a,_0x1ceed6)=>{const _0x452bee=_0x277b91;if(0x0!==_0x1ceed6){const _0x2c7fef=document[_0x452bee(0x23d7)]('hr');_0x56f230[_0x452bee(0x1952)](_0x2c7fef);}const _0x252195=document[_0x452bee(0x23d7)](_0x452bee(0x1de1));_0x252195[_0x452bee(0x22eb)]='+\x20'+function(_0x30ebe1){const _0x48b27a=_0x452bee;let _0x22be94=_0x30ebe1['replace'](/^\d+\.\s*/,'');return _0x22be94=_0x22be94[_0x48b27a(0x1db7)](/\*/g,''),_0x22be94;}(_0x2fa32a),_0x252195[_0x452bee(0x3098)][_0x452bee(0xbf0)]=_0x452bee(0x50b2),_0x252195[_0x452bee(0x3098)][_0x452bee(0x4604)]=_0x452bee(0x80b),_0x252195['classList']['add']('followup-button'),_0x252195['style']['display']=_0x452bee(0x3eab),_0x252195[_0x452bee(0x3098)][_0x452bee(0x2fe9)]='5px',_0x252195[_0x452bee(0x3098)][_0x452bee(0x378f)]=_0x452bee(0x341f),_0x252195[_0x452bee(0x3098)][_0x452bee(0x2cd)]=_0x452bee(0x24d0),_0x252195[_0x452bee(0x20d0)]('click',function(_0x261395){const _0x3efef4=_0x452bee;!function(_0x39ff43,_0x5af332=[window[_0x3efef4(0x94a)]['href']]){const _0x1a0a70=_0x3efef4,_0x1f68b3=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x39ff43,'type':_0x1a0a70(0x2373),'links':_0x5af332}});window[_0x1a0a70(0x3ad1)](_0x1f68b3);}(_0x3efef4(0x462a)+_0x2fa32a+_0x3efef4(0x2d1d)+_0x5e9c79);}),_0x56f230[_0x452bee(0x1952)](_0x252195);}),_0x39425e[_0x277b91(0x1952)](_0x56f230);}}_0x2a66b8[_0x235866(0x17b9)]['rules']['text']=(_0xfbea0c,_0x2a8fc5,_0x416cd0,_0x24d59d,_0x1cd4f6)=>{const _0x404e57=_0x235866,_0x3a6cbc=_0xfbea0c[_0x2a8fc5][_0x404e57(0x498f)],_0x3dd446=[..._0x3a6cbc['matchAll'](/\\(.*?)\\/g)];let _0x46bbc4=_0x3a6cbc;return _0x3dd446[_0x404e57(0x4854)](_0xf57993=>{const _0x46f8fc=_0x404e57,_0x931e13=_0xf57993[0x1],_0x501ae1=_0x46f8fc(0x4032)+(_0x46f8fc(0x19df)+encodeURIComponent(_0x931e13))+'\x22\x20target=\x22_blank\x22\x20style=\x22color:\x20blue;\x20text-decoration:\x20underline;\x22>'+_0x931e13+_0x46f8fc(0x4d0e);_0x46bbc4=_0x46bbc4[_0x46f8fc(0x1db7)]('\x5c'+_0x931e13+'\x5c',_0x501ae1);}),_0x46bbc4;},_0x2a66b8[_0x235866(0x17b9)][_0x235866(0x28bb)][_0x235866(0xa22)]=(_0x404a51,_0xd136b8)=>{const _0x3ccec6=_0x235866,_0x3afd90=_0x404a51[_0xd136b8][_0x3ccec6(0x17a2)];return'<'+_0x3afd90+_0x3ccec6(0x1c70)+{'h1':_0x3ccec6(0x478c),'h2':_0x3ccec6(0x3e6a),'h3':'text-xl\x20font-semibold\x20mt-2','h4':'text-lg\x20font-semibold\x20mt-2','h5':'text-base\x20font-medium\x20mt-2','h6':_0x3ccec6(0x3ea4)}[_0x3afd90]+'\x22>';},_0x2a66b8['renderer'][_0x235866(0x28bb)][_0x235866(0xbaa)]=(_0x3dce59,_0x1a13c0)=>'',_0x2a66b8[_0x235866(0x17b9)]['rules'][_0x235866(0x3edd)]=()=>_0x235866(0x2bfe),_0x2a66b8[_0x235866(0x17b9)][_0x235866(0x28bb)][_0x235866(0x3248)]=()=>_0x235866(0x2f6),_0x2a66b8['renderer'][_0x235866(0x28bb)]['list_item_open']=()=>'',_0x2a66b8[_0x235866(0x17b9)][_0x235866(0x28bb)][_0x235866(0x9dc)]=()=>_0x235866(0x3749),_0x2a66b8[_0x235866(0x3eab)]['ruler'][_0x235866(0x19f2)]('hr','double_hr',(_0xbf3add,_0x3c3ad7,_0x1db2df,_0x2f366c)=>{const _0x4a0cea=_0x235866,_0x3474d0=_0xbf3add['bMarks'][_0x3c3ad7]+_0xbf3add[_0x4a0cea(0x1d33)][_0x3c3ad7],_0x26921e=_0xbf3add[_0x4a0cea(0x1908)][_0x3c3ad7];if(_0x3474d0>=_0x26921e)return!0x1;const _0x1d120b=_0xbf3add['src'][_0x4a0cea(0x428e)](_0x3474d0,_0x26921e)['trim']();if(!/^={4,}$/[_0x4a0cea(0x34c)](_0x1d120b))return!0x1;if(_0x2f366c)return!0x0;_0xbf3add['line']=_0x3c3ad7+0x1;const _0x48759e=_0xbf3add[_0x4a0cea(0x4131)]('html_block','',0x0);return _0x48759e[_0x4a0cea(0x498f)]=_0x4a0cea(0x1c2f),_0x48759e[_0x4a0cea(0x3eab)]=!0x0,_0x48759e[_0x4a0cea(0x2c94)]=[_0x3c3ad7,_0xbf3add[_0x4a0cea(0x3dde)]],_0x48759e['markup']=_0x1d120b,!0x0;}),_0x2a66b8[_0x235866(0x3903)](_0x390259,_0x235866(0x1dd5),{'validate':function(_0x5b288e){const _0x7b5301=_0x235866;return _0x5b288e['trim']()[_0x7b5301(0xdc0)](/^spoiler\s+(.*)$/);},'render':function(_0x540c84,_0x2d6d26){const _0x345853=_0x235866,_0x3e56b5=_0x540c84[_0x2d6d26]['info'][_0x345853(0x1d0e)]()[_0x345853(0xdc0)](/^spoiler\s+(.*)$/);return 0x1===_0x540c84[_0x2d6d26]['nesting']?_0x345853(0x3728)+_0x2a66b8[_0x345853(0x1180)]['escapeHtml'](_0x3e56b5[0x1])+_0x345853(0x272b):'\x0a';}})[_0x235866(0x3903)](_0x390259,_0x235866(0x4bd3),{'render':function(_0x47ca7c,_0x19dc7a){const _0x3b6cbe=_0x235866;return 0x1===_0x47ca7c[_0x19dc7a][_0x3b6cbe(0x47ee)]?_0x3b6cbe(0x4f60):'';}});const _0x3e2e97=_0x235866(0x45e7);function _0x1a081e(){const _0x32a175=_0x235866,_0x23e687=window[_0x32a175(0x2aa1)]();if(_0x23e687[_0x32a175(0x3fd0)])return;let _0x31731b=0x1/0x0,_0x488b1f=0x1/0x0,_0x3fa4a8=0x0;for(let _0x25bd1e=0x0;_0x25bd1e<_0x23e687['rangeCount'];_0x25bd1e++){let _0x13dc14=_0x23e687[_0x32a175(0x4964)](_0x25bd1e)['startContainer'];_0x13dc14[_0x32a175(0x48f8)]===Node['TEXT_NODE']&&(_0x13dc14=_0x13dc14[_0x32a175(0x19bf)]);const _0x393efb=_0x13dc14[_0x32a175(0x467)]();_0x31731b=Math[_0x32a175(0x12f9)](_0x31731b,_0x393efb[_0x32a175(0x24d0)]),_0x488b1f=Math[_0x32a175(0x12f9)](_0x488b1f,_0x393efb['top']+window[_0x32a175(0xd97)]),_0x3fa4a8=Math[_0x32a175(0x28c)](_0x3fa4a8,_0x393efb['bottom']+window['scrollY']);}let _0xd8485c=document[_0x32a175(0xe9f)](_0x32a175(0x1142));_0xd8485c||(_0xd8485c=document[_0x32a175(0x23d7)](_0x32a175(0x257d)),_0xd8485c[_0x32a175(0x318e)][_0x32a175(0x2fd8)]('vertical-line-highlight'),_0xd8485c[_0x32a175(0x3098)][_0x32a175(0x3a28)]=_0x32a175(0x21e9),_0xd8485c['style'][_0x32a175(0x3879)]='2px',_0xd8485c[_0x32a175(0x3098)][_0x32a175(0xbf0)]=_0x32a175(0x3219),document[_0x32a175(0x3673)]['appendChild'](_0xd8485c)),_0xd8485c[_0x32a175(0x3098)]['left']=_0x31731b-0x5+'px',_0xd8485c[_0x32a175(0x3098)][_0x32a175(0x139d)]=_0x488b1f+'px',_0xd8485c[_0x32a175(0x3098)][_0x32a175(0x349)]=_0x3fa4a8-_0x488b1f+'px';}function _0x3ad1f8(_0x1136db){const _0x4ef2d8=_0x235866,_0x4d0182=_0x1136db[_0x4ef2d8(0x3f98)](_0x4ef2d8(0x160)),_0x4fa7db=_0x1136db['getElementById']('menu-toggle');_0x4d0182[_0x4ef2d8(0x318e)]['contains']('translate-x-full')?(_0x4fa7db[_0x4ef2d8(0x3527)]=!0x0,_0x4d0182['classList'][_0x4ef2d8(0x80a)](_0x4ef2d8(0x2e69)),_0x4d0182[_0x4ef2d8(0x318e)][_0x4ef2d8(0x2fd8)]('translate-x-0')):(_0x4fa7db[_0x4ef2d8(0x3527)]=!0x1,_0x4d0182[_0x4ef2d8(0x318e)][_0x4ef2d8(0x80a)](_0x4ef2d8(0x4e43)),_0x4d0182[_0x4ef2d8(0x318e)][_0x4ef2d8(0x2fd8)](_0x4ef2d8(0x2e69)));}const _0xe0605d={'methods':{'one':{},'two':{},'three':{},'four':{}},'model':{'one':{},'two':{},'three':{}},'compute':{},'hooks':[]},_0x3908bd={'compute':function(_0x36cf55){const _0x44c206=_0x235866,{world:_0x4cf3e7}=this,_0x2a4e82=_0x4cf3e7['compute'];return _0x44c206(0x4f7c)==typeof _0x36cf55&&_0x2a4e82[_0x44c206(0x32b5)](_0x36cf55)?_0x2a4e82[_0x36cf55](this):(_0x45a0e9=>_0x44c206(0x4fba)===Object[_0x44c206(0x2b5c)][_0x44c206(0x44de)]['call'](_0x45a0e9))(_0x36cf55)?_0x36cf55[_0x44c206(0x4854)](_0x4127ef=>{const _0xcc8998=_0x44c206;_0x4cf3e7[_0xcc8998(0x210d)][_0xcc8998(0x32b5)](_0x4127ef)&&_0x2a4e82[_0x4127ef](this);}):_0x44c206(0x3dfb)==typeof _0x36cf55&&_0x36cf55(this),this;}},_0xb68ba2=_0x3908bd,_0x485057={'forEach':function(_0x567bb5){const _0x22ec3b=_0x235866;return this['fullPointer'][_0x22ec3b(0x4854)]((_0x4467ab,_0x366180)=>{let _0xfa39df=this['update']([_0x4467ab]);_0x567bb5(_0xfa39df,_0x366180);}),this;},'map':function(_0x239b6e,_0x12a9b9){const _0x3e063f=_0x235866;let _0x20f72f=this[_0x3e063f(0x48da)][_0x3e063f(0x2c94)]((_0x1ee1de,_0x53a4cc)=>{const _0x5dc506=_0x3e063f;let _0x3b429b=this[_0x5dc506(0xf93)]([_0x1ee1de]),_0x14bfb8=_0x239b6e(_0x3b429b,_0x53a4cc);return void 0x0===_0x14bfb8?this[_0x5dc506(0x80b)]():_0x14bfb8;});if(0x0===_0x20f72f['length'])return _0x12a9b9||this[_0x3e063f(0xf93)]([]);if(void 0x0!==_0x20f72f[0x0]){if(_0x3e063f(0x4f7c)==typeof _0x20f72f[0x0])return _0x20f72f;if(_0x3e063f(0x2b58)==typeof _0x20f72f[0x0]&&(null===_0x20f72f[0x0]||!_0x20f72f[0x0][_0x3e063f(0x2704)]))return _0x20f72f;}let _0x1afc1e=[];return _0x20f72f[_0x3e063f(0x4854)](_0x5d8b58=>{const _0x2795e9=_0x3e063f;_0x1afc1e=_0x1afc1e[_0x2795e9(0x41bf)](_0x5d8b58[_0x2795e9(0x48da)]);}),this['toView'](_0x1afc1e);},'filter':function(_0x242cde){const _0x5cc8b3=_0x235866;let _0x4ed957=this[_0x5cc8b3(0x48da)];return _0x4ed957=_0x4ed957[_0x5cc8b3(0x295e)]((_0x53d61e,_0x170f26)=>{const _0x408214=_0x5cc8b3;let _0x3430f6=this[_0x408214(0xf93)]([_0x53d61e]);return _0x242cde(_0x3430f6,_0x170f26);}),this[_0x5cc8b3(0xf93)](_0x4ed957);},'find':function(_0x19092c){const _0x529785=_0x235866;let _0xf519d0=this[_0x529785(0x48da)][_0x529785(0x12b9)]((_0xfbf4d0,_0xd192f6)=>{const _0x268160=_0x529785;let _0x1bcbdb=this[_0x268160(0xf93)]([_0xfbf4d0]);return _0x19092c(_0x1bcbdb,_0xd192f6);});return this[_0x529785(0xf93)]([_0xf519d0]);},'some':function(_0x52c933){const _0x297153=_0x235866;return this[_0x297153(0x48da)]['some']((_0x18ff40,_0x3c1fbc)=>{const _0x5b5efb=_0x297153;let _0x30872f=this[_0x5b5efb(0xf93)]([_0x18ff40]);return _0x52c933(_0x30872f,_0x3c1fbc);});},'random':function(_0x43849a=0x1){const _0xea8c28=_0x235866;let _0xed0fd1=this[_0xea8c28(0x48da)],_0x559a03=Math[_0xea8c28(0x4dbd)](Math[_0xea8c28(0x4a2c)]()*_0xed0fd1[_0xea8c28(0x205b)]);return _0x559a03+_0x43849a>this['length']&&(_0x559a03=this[_0xea8c28(0x205b)]-_0x43849a,_0x559a03=_0x559a03<0x0?0x0:_0x559a03),_0xed0fd1=_0xed0fd1[_0xea8c28(0x428e)](_0x559a03,_0x559a03+_0x43849a),this['update'](_0xed0fd1);}},_0x4e7364={'termList':function(){const _0x26aeac=_0x235866;return this[_0x26aeac(0x8f)][_0x26aeac(0x4116)][_0x26aeac(0x1772)](this[_0x26aeac(0x3f72)]);},'terms':function(_0x5505a6){const _0x254722=_0x235866;let _0x540944=this[_0x254722(0xdc0)]('.');return _0x254722(0x1ed7)==typeof _0x5505a6?_0x540944['eq'](_0x5505a6):_0x540944;},'groups':function(_0x3d0998){const _0x144a8b=_0x235866;if(_0x3d0998||0x0===_0x3d0998)return this['update'](this['_groups'][_0x3d0998]||[]);let _0x361004={};return Object[_0x144a8b(0x2f75)](this[_0x144a8b(0x50b3)])[_0x144a8b(0x4854)](_0x9330c8=>{_0x361004[_0x9330c8]=this['update'](this['_groups'][_0x9330c8]);}),_0x361004;},'eq':function(_0xbb1f17){const _0x34b8e9=_0x235866;let _0x4f31ac=this[_0x34b8e9(0x1d95)];return _0x4f31ac||(_0x4f31ac=this[_0x34b8e9(0x3f72)][_0x34b8e9(0x2c94)]((_0x1e231c,_0x39a401)=>[_0x39a401])),_0x4f31ac[_0xbb1f17]?this[_0x34b8e9(0xf93)]([_0x4f31ac[_0xbb1f17]]):this['none']();},'first':function(){return this['eq'](0x0);},'last':function(){const _0x3221ba=_0x235866;let _0x3ec3f9=this[_0x3221ba(0x48da)][_0x3221ba(0x205b)]-0x1;return this['eq'](_0x3ec3f9);},'firstTerms':function(){return this['match']('^.');},'lastTerms':function(){const _0x498c15=_0x235866;return this[_0x498c15(0xdc0)]('.$');},'slice':function(_0x8daba5,_0x4d2dcd){const _0x23c9d7=_0x235866;let _0x19093e=this['pointer']||this[_0x23c9d7(0x3f72)]['map']((_0x5031f1,_0x38736)=>[_0x38736]);return _0x19093e=_0x19093e[_0x23c9d7(0x428e)](_0x8daba5,_0x4d2dcd),this[_0x23c9d7(0xf93)](_0x19093e);},'all':function(){const _0x3b2e57=_0x235866;return this[_0x3b2e57(0xf93)]()['toView']();},'fullSentences':function(){const _0x449e57=_0x235866;let _0x35a23f=this[_0x449e57(0x48da)]['map'](_0xb1ffc1=>[_0xb1ffc1[0x0]]);return this['update'](_0x35a23f)[_0x449e57(0xc6b)]();},'none':function(){const _0x2e4fc2=_0x235866;return this[_0x2e4fc2(0xf93)]([]);},'isDoc':function(_0x2c721f){const _0x3a9a30=_0x235866;if(!_0x2c721f||!_0x2c721f[_0x3a9a30(0x2704)])return!0x1;let _0x2f2eaf=this[_0x3a9a30(0x48da)],_0x34147f=_0x2c721f[_0x3a9a30(0x48da)];return!_0x2f2eaf[_0x3a9a30(0x205b)]!==_0x34147f[_0x3a9a30(0x205b)]&&_0x2f2eaf['every']((_0x118185,_0x2d2743)=>!!_0x34147f[_0x2d2743]&&(_0x118185[0x0]===_0x34147f[_0x2d2743][0x0]&&_0x118185[0x1]===_0x34147f[_0x2d2743][0x1]&&_0x118185[0x2]===_0x34147f[_0x2d2743][0x2]));},'wordCount':function(){const _0x24748a=_0x235866;return this[_0x24748a(0x3f72)]['reduce']((_0x231633,_0x41f336)=>(_0x231633+=_0x41f336[_0x24748a(0x295e)](_0x5f0e7d=>''!==_0x5f0e7d[_0x24748a(0x2f35)])[_0x24748a(0x205b)],_0x231633),0x0);},'isFull':function(){const _0x30975f=_0x235866;let _0x1efaac=this[_0x30975f(0x1d95)];if(!_0x1efaac)return!0x0;if(0x0===_0x1efaac[_0x30975f(0x205b)]||0x0!==_0x1efaac[0x0][0x0])return!0x1;let _0x33b2de=0x0,_0x45f44e=0x0;return this[_0x30975f(0x46d9)]['forEach'](_0x3f05ac=>_0x33b2de+=_0x3f05ac[_0x30975f(0x205b)]),this[_0x30975f(0x3f72)][_0x30975f(0x4854)](_0x14aa09=>_0x45f44e+=_0x14aa09[_0x30975f(0x205b)]),_0x33b2de===_0x45f44e;},'getNth':function(_0x5dd7e3){const _0x1ebef0=_0x235866;return'number'==typeof _0x5dd7e3?this['eq'](_0x5dd7e3):_0x1ebef0(0x4f7c)==typeof _0x5dd7e3?this['if'](_0x5dd7e3):this;}};_0x4e7364[_0x235866(0x4941)]=_0x4e7364[_0x235866(0xbbd)],_0x4e7364[_0x235866(0x12f)]=_0x4e7364[_0x235866(0x54e)],_0x4e7364['sentence']=_0x4e7364[_0x235866(0x54e)],_0x4e7364[_0x235866(0x2bbc)]=_0x4e7364[_0x235866(0x27d2)],_0x4e7364['firstTerm']=_0x4e7364[_0x235866(0x2e5a)];const _0xd66c84=_0x4e7364,_0x3a1beb=Object[_0x235866(0x11e8)]({},_0xd66c84,_0xb68ba2,_0x485057);_0x3a1beb['get']=_0x3a1beb['eq'];const _0x5e1111=_0x3a1beb;class _0x316ecf{constructor(_0x136661,_0x473cda,_0x42d0ef={}){const _0x2f1036=_0x235866;[['document',_0x136661],['world',_0xe0605d],[_0x2f1036(0x50b3),_0x42d0ef],[_0x2f1036(0x1d5f),null],[_0x2f1036(0x3784),_0x2f1036(0x3204)]][_0x2f1036(0x4854)](_0x3bba93=>{const _0x543070=_0x2f1036;Object[_0x543070(0x1012)](this,_0x3bba93[0x0],{'value':_0x3bba93[0x1],'writable':!0x0});}),this['ptrs']=_0x473cda;}get[_0x235866(0x3f72)](){const _0x4c59b6=_0x235866;let _0x508052=this['document'];return this[_0x4c59b6(0x33fe)]&&(_0x508052=_0xe0605d[_0x4c59b6(0x8f)]['one'][_0x4c59b6(0x2d67)](this[_0x4c59b6(0x33fe)],this[_0x4c59b6(0x46d9)])),_0x508052;}get[_0x235866(0x1d95)](){const _0x2732d4=_0x235866;return this[_0x2732d4(0x33fe)];}get['methods'](){const _0x5226ef=_0x235866;return this['world'][_0x5226ef(0x8f)];}get[_0x235866(0x2c3e)](){const _0x306b0a=_0x235866;return this[_0x306b0a(0x3e71)][_0x306b0a(0x2c3e)];}get[_0x235866(0xcf4)](){const _0x1e1af9=_0x235866;return this[_0x1e1af9(0x3e71)][_0x1e1af9(0xcf4)];}get[_0x235866(0x2704)](){return!0x0;}get[_0x235866(0x622)](){const _0x1eef8d=_0x235866;return this[_0x1eef8d(0x3f72)][_0x1eef8d(0x205b)]>0x0;}get[_0x235866(0x205b)](){const _0x2490dd=_0x235866;return this[_0x2490dd(0x3f72)][_0x2490dd(0x205b)];}get['fullPointer'](){const _0x2a9eed=_0x235866;let {docs:_0x5f10cf,ptrs:_0x4ed005,document:_0x492beb}=this,_0x3a793e=_0x4ed005||_0x5f10cf[_0x2a9eed(0x2c94)]((_0x20ff01,_0x4c0e2b)=>[_0x4c0e2b]);return _0x3a793e['map'](_0x128f98=>{const _0x591144=_0x2a9eed;let [_0x38e911,_0x404918,_0x3ade88,_0x3e6ec3,_0x147532]=_0x128f98;return _0x404918=_0x404918||0x0,_0x3ade88=_0x3ade88||(_0x492beb[_0x38e911]||[])[_0x591144(0x205b)],_0x492beb[_0x38e911]&&_0x492beb[_0x38e911][_0x404918]&&(_0x3e6ec3=_0x3e6ec3||_0x492beb[_0x38e911][_0x404918]['id'],_0x492beb[_0x38e911][_0x3ade88-0x1]&&(_0x147532=_0x147532||_0x492beb[_0x38e911][_0x3ade88-0x1]['id'])),[_0x38e911,_0x404918,_0x3ade88,_0x3e6ec3,_0x147532];});}[_0x235866(0xf93)](_0x145404){const _0x1b9b71=_0x235866;let _0x14cfd2=new _0x316ecf(this[_0x1b9b71(0x46d9)],_0x145404);if(this[_0x1b9b71(0x1d5f)]&&_0x145404&&_0x145404['length']>0x0){let _0x48f9ee=[];_0x145404['forEach']((_0x249c6d,_0x3a8081)=>{const _0x191935=_0x1b9b71;let [_0x2faedd,_0x25447f,_0x10b271]=_0x249c6d;(0x1===_0x249c6d[_0x191935(0x205b)]||0x0===_0x25447f&&this[_0x191935(0x46d9)][_0x2faedd]['length']===_0x10b271)&&(_0x48f9ee[_0x3a8081]=this['_cache'][_0x2faedd]);}),_0x48f9ee[_0x1b9b71(0x205b)]>0x0&&(_0x14cfd2[_0x1b9b71(0x1d5f)]=_0x48f9ee);}return _0x14cfd2['world']=this[_0x1b9b71(0x3e71)],_0x14cfd2;}['toView'](_0x44fdf5){const _0x28de7e=_0x235866;return new _0x316ecf(this['document'],_0x44fdf5||this[_0x28de7e(0x1d95)]);}[_0x235866(0x3e8f)](_0x51831e){const _0x1d1105=_0x235866,{methods:_0x5ec0a7}=this;let _0x208efb=_0x5ec0a7[_0x1d1105(0x4116)][_0x1d1105(0x44f9)][_0x1d1105(0x2bf5)](_0x51831e,this['world']),_0x11e5df=new _0x316ecf(_0x208efb);return _0x11e5df[_0x1d1105(0x3e71)]=this[_0x1d1105(0x3e71)],_0x11e5df[_0x1d1105(0x210d)]([_0x1d1105(0x4cb),_0x1d1105(0x2cba),'lexicon']),this[_0x1d1105(0x3e71)]['compute']['preTagger']&&_0x11e5df[_0x1d1105(0x210d)](_0x1d1105(0x530)),_0x11e5df[_0x1d1105(0x210d)](_0x1d1105(0x483a)),_0x11e5df;}[_0x235866(0x835)](){const _0x2d1065=_0x235866;let _0x1bdaee=this[_0x2d1065(0x46d9)][_0x2d1065(0x428e)](0x0);_0x1bdaee=_0x1bdaee[_0x2d1065(0x2c94)](_0x4bb3b0=>_0x4bb3b0[_0x2d1065(0x2c94)](_0xb41643=>((_0xb41643=Object[_0x2d1065(0x11e8)]({},_0xb41643))[_0x2d1065(0x23d1)]=new Set(_0xb41643['tags']),_0xb41643)));let _0xdd0d24=this[_0x2d1065(0xf93)](this[_0x2d1065(0x1d95)]);return _0xdd0d24[_0x2d1065(0x46d9)]=_0x1bdaee,_0xdd0d24[_0x2d1065(0x1d5f)]=this[_0x2d1065(0x1d5f)],_0xdd0d24;}}Object['assign'](_0x316ecf['prototype'],_0x5e1111);const _0x36e8b2=_0x316ecf,_0x2c85d1=function(_0x3b7ada){const _0x550128=_0x235866;return _0x3b7ada&&_0x550128(0x2b58)==typeof _0x3b7ada&&!Array[_0x550128(0x477f)](_0x3b7ada);};function _0x3d4c38(_0x531b54,_0x15f637){const _0xd4765b=_0x235866;if(_0x2c85d1(_0x15f637)){for(const _0x2cd388 in _0x15f637)_0x2c85d1(_0x15f637[_0x2cd388])?(_0x531b54[_0x2cd388]||Object[_0xd4765b(0x11e8)](_0x531b54,{[_0x2cd388]:{}}),_0x3d4c38(_0x531b54[_0x2cd388],_0x15f637[_0x2cd388])):Object[_0xd4765b(0x11e8)](_0x531b54,{[_0x2cd388]:_0x15f637[_0x2cd388]});}return _0x531b54;}const _0xe9103b=function(_0x394464,_0x426725,_0x2abdb2,_0x57eff0){const _0x85ff93=_0x235866,{methods:_0x598b8c,model:_0x26b443,compute:_0x29e653,hooks:_0xbbf444}=_0x426725;_0x394464[_0x85ff93(0x8f)]&&function(_0x2ebb14,_0x28ad3f){const _0x181967=_0x85ff93;for(const _0x11e3b1 in _0x28ad3f)_0x2ebb14[_0x11e3b1]=_0x2ebb14[_0x11e3b1]||{},Object[_0x181967(0x11e8)](_0x2ebb14[_0x11e3b1],_0x28ad3f[_0x11e3b1]);}(_0x598b8c,_0x394464[_0x85ff93(0x8f)]),_0x394464[_0x85ff93(0x2c3e)]&&_0x3d4c38(_0x26b443,_0x394464[_0x85ff93(0x2c3e)]),_0x394464[_0x85ff93(0x1aef)]&&function(_0x4aad1b,_0x4c7db7){const _0x27f3a3=_0x85ff93;let _0x5366c8=_0x4aad1b[_0x27f3a3(0x141f)]['models']||{};Object[_0x27f3a3(0x2f75)](_0x4c7db7)[_0x27f3a3(0x4854)](_0x44476e=>{const _0x3ca437=_0x27f3a3;_0x4c7db7[_0x44476e]['pastTense']&&(_0x5366c8[_0x3ca437(0x5dd)]&&(_0x5366c8[_0x3ca437(0x5dd)]['ex'][_0x44476e]=_0x4c7db7[_0x44476e][_0x3ca437(0x4bac)]),_0x5366c8[_0x3ca437(0x49ab)]&&(_0x5366c8[_0x3ca437(0x49ab)]['ex'][_0x4c7db7[_0x44476e]['pastTense']]=_0x44476e)),_0x4c7db7[_0x44476e][_0x3ca437(0x4bf8)]&&(_0x5366c8[_0x3ca437(0x30c2)]&&(_0x5366c8[_0x3ca437(0x30c2)]['ex'][_0x44476e]=_0x4c7db7[_0x44476e][_0x3ca437(0x4bf8)]),_0x5366c8[_0x3ca437(0x33ff)]&&(_0x5366c8[_0x3ca437(0x33ff)]['ex'][_0x4c7db7[_0x44476e][_0x3ca437(0x4bf8)]]=_0x44476e)),_0x4c7db7[_0x44476e][_0x3ca437(0x2c0a)]&&(_0x5366c8[_0x3ca437(0xa4)]&&(_0x5366c8[_0x3ca437(0xa4)]['ex'][_0x44476e]=_0x4c7db7[_0x44476e][_0x3ca437(0x2c0a)]),_0x5366c8[_0x3ca437(0x42b6)]&&(_0x5366c8['fromGerund']['ex'][_0x4c7db7[_0x44476e]['gerund']]=_0x44476e)),_0x4c7db7[_0x44476e]['comparative']&&(_0x5366c8[_0x3ca437(0x3a67)]&&(_0x5366c8[_0x3ca437(0x3a67)]['ex'][_0x44476e]=_0x4c7db7[_0x44476e]['comparative']),_0x5366c8[_0x3ca437(0x32cd)]&&(_0x5366c8['fromComparative']['ex'][_0x4c7db7[_0x44476e][_0x3ca437(0x2832)]]=_0x44476e)),_0x4c7db7[_0x44476e][_0x3ca437(0x2b0b)]&&(_0x5366c8[_0x3ca437(0x402a)]&&(_0x5366c8[_0x3ca437(0x402a)]['ex'][_0x44476e]=_0x4c7db7[_0x44476e]['superlative']),_0x5366c8[_0x3ca437(0x44c0)]&&(_0x5366c8[_0x3ca437(0x44c0)]['ex'][_0x4c7db7[_0x44476e][_0x3ca437(0x2b0b)]]=_0x44476e));});}(_0x26b443,_0x394464['irregulars']),_0x394464[_0x85ff93(0x210d)]&&Object[_0x85ff93(0x11e8)](_0x29e653,_0x394464['compute']),_0xbbf444&&(_0x426725['hooks']=_0xbbf444[_0x85ff93(0x41bf)](_0x394464[_0x85ff93(0xcf4)]||[])),_0x394464[_0x85ff93(0x3cc0)]&&_0x394464[_0x85ff93(0x3cc0)](_0x2abdb2),_0x394464[_0x85ff93(0x47f5)]&&Object[_0x85ff93(0x2f75)](_0x394464[_0x85ff93(0x47f5)])['forEach'](_0x43129e=>_0x57eff0[_0x43129e]=_0x394464['lib'][_0x43129e]),_0x394464[_0x85ff93(0x23d1)]&&_0x57eff0[_0x85ff93(0x1f54)](_0x394464[_0x85ff93(0x23d1)]),_0x394464[_0x85ff93(0x533)]&&_0x57eff0[_0x85ff93(0x4511)](_0x394464[_0x85ff93(0x533)]),_0x394464[_0x85ff93(0x2356)]&&_0x57eff0[_0x85ff93(0x4511)](_0x394464[_0x85ff93(0x2356)],!0x0),_0x394464[_0x85ff93(0x26a5)]&&_0x394464[_0x85ff93(0x26a5)](_0x426725);},_0x18c35b=function(_0x35f360){const _0x1076da=_0x235866;return'[object\x20Array]'===Object['prototype'][_0x1076da(0x44de)][_0x1076da(0x4c9d)](_0x35f360);},_0x3b208e=function(_0x52bd33,_0x15c7ab,_0x18afe2){const _0x582bca=_0x235866,{methods:_0x11bb6b}=_0x18afe2;let _0x4b7062=new _0x15c7ab([]);if(_0x4b7062[_0x582bca(0x3e71)]=_0x18afe2,'number'==typeof _0x52bd33&&(_0x52bd33=String(_0x52bd33)),!_0x52bd33)return _0x4b7062;if('string'==typeof _0x52bd33)return new _0x15c7ab(_0x11bb6b[_0x582bca(0x4116)][_0x582bca(0x44f9)]['fromString'](_0x52bd33,_0x18afe2));if(_0x85f25c=_0x52bd33,_0x582bca(0x2f7a)===Object[_0x582bca(0x2b5c)][_0x582bca(0x44de)][_0x582bca(0x4c9d)](_0x85f25c)&&_0x52bd33[_0x582bca(0x2704)])return new _0x15c7ab(_0x52bd33[_0x582bca(0x46d9)],_0x52bd33[_0x582bca(0x33fe)]);var _0x85f25c;if(_0x18c35b(_0x52bd33)){if(_0x18c35b(_0x52bd33[0x0])){let _0x3b7152=_0x52bd33[_0x582bca(0x2c94)](_0x2be9ae=>_0x2be9ae[_0x582bca(0x2c94)](_0x2f1770=>({'text':_0x2f1770,'normal':_0x2f1770,'pre':'','post':'\x20','tags':new Set()})));return new _0x15c7ab(_0x3b7152);}let _0x2be7f9=function(_0x11937a){const _0x210633=_0x582bca;return _0x11937a[_0x210633(0x2c94)](_0x3264f7=>_0x3264f7[_0x210633(0x18a5)]['map'](_0xb1b5a0=>(_0x18c35b(_0xb1b5a0[_0x210633(0x23d1)])&&(_0xb1b5a0[_0x210633(0x23d1)]=new Set(_0xb1b5a0[_0x210633(0x23d1)])),_0xb1b5a0)));}(_0x52bd33);return new _0x15c7ab(_0x2be7f9);}return _0x4b7062;};let _0x36fb00=Object['assign']({},_0xe0605d);const _0x113b97=function(_0x333870,_0x1eb882){const _0x597beb=_0x235866;_0x1eb882&&_0x113b97[_0x597beb(0x4511)](_0x1eb882);let _0x422675=_0x3b208e(_0x333870,_0x36e8b2,_0x36fb00);return _0x333870&&_0x422675[_0x597beb(0x210d)](_0x36fb00[_0x597beb(0xcf4)]),_0x422675;};Object['defineProperty'](_0x113b97,_0x235866(0x4be1),{'value':_0x36fb00,'writable':!0x0}),_0x113b97[_0x235866(0x44f9)]=function(_0x49d689,_0x3ba779){const _0x400317=_0x235866,{compute:_0x3d270c}=this[_0x400317(0x4be1)];_0x3ba779&&_0x113b97[_0x400317(0x4511)](_0x3ba779);let _0x1cce80=_0x3b208e(_0x49d689,_0x36e8b2,_0x36fb00);return _0x3d270c['contractions']&&_0x1cce80['compute']([_0x400317(0x1f89),_0x400317(0x4cb),'machine',_0x400317(0x3acb)]),_0x1cce80;},_0x113b97['plugin']=function(_0x5e6f73){return _0xe9103b(_0x5e6f73,this['_world'],_0x36e8b2,this),this;},_0x113b97[_0x235866(0x389d)]=_0x113b97[_0x235866(0x4c30)],_0x113b97[_0x235866(0x3e71)]=function(){const _0x1b0173=_0x235866;return this[_0x1b0173(0x4be1)];},_0x113b97[_0x235866(0x2c3e)]=function(){const _0x33a232=_0x235866;return this[_0x33a232(0x4be1)][_0x33a232(0x2c3e)];},_0x113b97[_0x235866(0x8f)]=function(){const _0x4eb958=_0x235866;return this['_world'][_0x4eb958(0x8f)];},_0x113b97[_0x235866(0xcf4)]=function(){const _0x318cd3=_0x235866;return this['_world'][_0x318cd3(0xcf4)];},_0x113b97[_0x235866(0x57a)]=function(_0x57f960){const _0x3f9404=_0x235866,_0x1a7772=_0x3f9404(0x2c3)!=typeof process&&process['env']?process[_0x3f9404(0x2f9e)]:self[_0x3f9404(0x2f9e)]||{};return _0x1a7772['DEBUG_TAGS']=_0x3f9404(0x2c29)===_0x57f960||!0x0===_0x57f960||'',_0x1a7772[_0x3f9404(0x22e3)]=_0x3f9404(0xdc0)===_0x57f960||!0x0===_0x57f960||'',_0x1a7772['DEBUG_CHUNKS']='chunker'===_0x57f960||!0x0===_0x57f960||'',this;},_0x113b97[_0x235866(0x1e51)]=_0x235866(0x15cc);const _0x5d20a7=_0x113b97,_0x3bd87f=function(_0x382d05){const _0xed9f=_0x235866;let _0x987688=_0x382d05[_0xed9f(0x2c94)](_0x33c650=>{const _0x41712c=_0xed9f;let _0x5060c6=new Set();return _0x33c650[_0x41712c(0x4854)](_0x2cf455=>{const _0x160aff=_0x41712c;''!==_0x2cf455['normal']&&_0x5060c6['add'](_0x2cf455[_0x160aff(0x4cb)]),_0x2cf455[_0x160aff(0x68)]&&_0x5060c6[_0x160aff(0x2fd8)]('%'+_0x2cf455[_0x160aff(0x68)]+'%'),_0x2cf455[_0x160aff(0x15c0)]&&_0x5060c6['add'](_0x2cf455[_0x160aff(0x15c0)]),_0x2cf455[_0x160aff(0x194)]&&_0x5060c6['add'](_0x2cf455['machine']),_0x2cf455[_0x160aff(0xdf8)]&&_0x5060c6[_0x160aff(0x2fd8)](_0x2cf455[_0x160aff(0xdf8)]),_0x2cf455[_0x160aff(0x1f89)]&&_0x2cf455['alias'][_0x160aff(0x4854)](_0x276158=>_0x5060c6[_0x160aff(0x2fd8)](_0x276158));let _0x4aacf9=Array['from'](_0x2cf455[_0x160aff(0x23d1)]);for(let _0x501871=0x0;_0x501871<_0x4aacf9['length'];_0x501871+=0x1)_0x5060c6[_0x160aff(0x2fd8)]('#'+_0x4aacf9[_0x501871]);}),_0x5060c6;});return _0x987688;},_0x3344cc={'cache':function(){const _0x2a5f38=_0x235866;return this[_0x2a5f38(0x1d5f)]=this[_0x2a5f38(0x8f)][_0x2a5f38(0x4116)][_0x2a5f38(0x403e)](this[_0x2a5f38(0x46d9)]),this;},'uncache':function(){const _0x5b4faf=_0x235866;return this[_0x5b4faf(0x1d5f)]=null,this;}},_0xc8d74f=function(_0x5dcbef){const _0x2f7cb3=_0x235866;Object[_0x2f7cb3(0x11e8)](_0x5dcbef[_0x2f7cb3(0x2b5c)],_0x3344cc);},_0x30866c={'api':_0xc8d74f,'compute':{'cache':function(_0x1f570f){const _0x263556=_0x235866;_0x1f570f[_0x263556(0x1d5f)]=_0x1f570f['methods'][_0x263556(0x4116)][_0x263556(0x403e)](_0x1f570f[_0x263556(0x46d9)]);}},'methods':{'one':{'cacheDoc':_0x3bd87f}}},_0x48b702=_0x37eb7b=>/^\p{Lu}[\p{Ll}'’]/u[_0x235866(0x34c)](_0x37eb7b)||/^\p{Lu}$/u['test'](_0x37eb7b),_0x1e2180=(_0x5e388e,_0x4ab43a,_0x81fc4c)=>{const _0x489d58=_0x235866;if(_0x81fc4c[_0x489d58(0x4854)](_0x122417=>_0x122417[_0x489d58(0x2e56)]=!0x0),_0x5e388e){let _0x10b7a9=[_0x4ab43a,0x0][_0x489d58(0x41bf)](_0x81fc4c);Array[_0x489d58(0x2b5c)][_0x489d58(0x506f)][_0x489d58(0x3138)](_0x5e388e,_0x10b7a9);}return _0x5e388e;},_0x4f84e0=function(_0x31b7a0){const _0x1440c3=_0x235866;let _0x52d9f4=_0x31b7a0[_0x31b7a0[_0x1440c3(0x205b)]-0x1];!_0x52d9f4||/ $/['test'](_0x52d9f4[_0x1440c3(0x9ce)])||/[-–—]/['test'](_0x52d9f4[_0x1440c3(0x9ce)])||(_0x52d9f4[_0x1440c3(0x9ce)]+='\x20');},_0x3223de=(_0x2bba24,_0x3fff03,_0x161b8c)=>{const _0x164028=_0x235866,_0x33934c=/[-.?!,;:)–—'"]/g;let _0x41efe0=_0x2bba24[_0x3fff03-0x1];if(!_0x41efe0)return;let _0x594e4e=_0x41efe0[_0x164028(0x9ce)];if(_0x33934c[_0x164028(0x34c)](_0x594e4e)){let _0x3ebfc2=_0x594e4e[_0x164028(0xdc0)](_0x33934c)['join'](''),_0x337c13=_0x161b8c[_0x161b8c['length']-0x1];_0x337c13[_0x164028(0x9ce)]=_0x3ebfc2+_0x337c13[_0x164028(0x9ce)],_0x41efe0[_0x164028(0x9ce)]=_0x41efe0[_0x164028(0x9ce)][_0x164028(0x1db7)](_0x33934c,'');}},_0x5d4d8f=function(_0x5cdaa9,_0xe677c9,_0x127b2b,_0x3f7feb){const _0x403a39=_0x235866;let [_0x103d5e,_0x244a8f,_0x5c4077]=_0xe677c9;0x0===_0x244a8f||_0x5c4077===_0x3f7feb[_0x103d5e][_0x403a39(0x205b)]?_0x4f84e0(_0x127b2b):(_0x4f84e0(_0x127b2b),_0x4f84e0([_0x5cdaa9[_0xe677c9[0x1]]])),function(_0xfad16c,_0x5b559c,_0x571646){const _0x32f9b7=_0x403a39;let _0x295de5=_0xfad16c[_0x5b559c];if(0x0!==_0x5b559c||!_0x48b702(_0x295de5[_0x32f9b7(0x2f35)]))return;_0x571646[0x0][_0x32f9b7(0x2f35)]=_0x571646[0x0]['text'][_0x32f9b7(0x1db7)](/^\p{Ll}/u,_0xff06ae=>_0xff06ae[_0x32f9b7(0x4447)]());let _0x511f2a=_0xfad16c[_0x5b559c];_0x511f2a[_0x32f9b7(0x23d1)][_0x32f9b7(0x5ec)](_0x32f9b7(0x374d))||_0x511f2a[_0x32f9b7(0x23d1)][_0x32f9b7(0x5ec)](_0x32f9b7(0x265b))||_0x48b702(_0x511f2a[_0x32f9b7(0x2f35)])&&_0x511f2a['text']['length']>0x1&&(_0x511f2a[_0x32f9b7(0x2f35)]=(_0x220d1d=_0x511f2a[_0x32f9b7(0x2f35)],_0x220d1d[_0x32f9b7(0x1db7)](/^\p{Lu}/u,_0x31a67a=>_0x31a67a['toLowerCase']())));var _0x220d1d;}(_0x5cdaa9,_0x244a8f,_0x127b2b),_0x1e2180(_0x5cdaa9,_0x244a8f,_0x127b2b);};let _0x2fb4c3=0x0;const _0x267102=_0x1ba3af=>(_0x1ba3af=_0x1ba3af[_0x235866(0x205b)]<0x3?'0'+_0x1ba3af:_0x1ba3af)[_0x235866(0x205b)]<0x3?'0'+_0x1ba3af:_0x1ba3af,_0x422de9=function(_0xa556ff){const _0x124680=_0x235866;let [_0x2d8856,_0x5cdb95]=_0xa556ff[_0x124680(0x1cf3)]||[0x0,0x0];_0x2fb4c3+=0x1,_0x2fb4c3=_0x2fb4c3>0xb63f?0x0:_0x2fb4c3,_0x2d8856=_0x2d8856>0xb63f?0x0:_0x2d8856,_0x5cdb95=_0x5cdb95>0x50e?0x0:_0x5cdb95;let _0x26de00=_0x267102(_0x2fb4c3[_0x124680(0x44de)](0x24));_0x26de00+=_0x267102(_0x2d8856[_0x124680(0x44de)](0x24));let _0x3227c5=_0x5cdb95[_0x124680(0x44de)](0x24);return _0x3227c5=_0x3227c5['length']<0x2?'0'+_0x3227c5:_0x3227c5,_0x26de00+=_0x3227c5,_0x26de00+=parseInt(0x24*Math['random'](),0xa)[_0x124680(0x44de)](0x24),_0xa556ff[_0x124680(0x4cb)]+'|'+_0x26de00['toUpperCase']();},_0x4c5341=function(_0x2bdff7){const _0x17ad30=_0x235866;_0x2bdff7[_0x17ad30(0x5ec)](_0x17ad30(0x40b1))&&_0x17ad30(0x3dfb)==typeof _0x2bdff7[_0x17ad30(0x3acb)]&&_0x2bdff7[_0x17ad30(0x1367)]('@hasContraction')[_0x17ad30(0x3acb)]()[_0x17ad30(0x380d)]();},_0x4ec2de=_0x1c916d=>_0x235866(0x4fba)===Object['prototype'][_0x235866(0x44de)][_0x235866(0x4c9d)](_0x1c916d),_0x43bd21=function(_0x1f322f,_0x376831,_0x68642c){const _0x1c137c=_0x235866,{document:_0x566fba,world:_0x3be8b7}=_0x376831;_0x376831['uncache']();let _0x4fc7e7=_0x376831['fullPointer'],_0x254d84=_0x376831['fullPointer'];_0x376831[_0x1c137c(0x4854)]((_0x4530aa,_0x55e20e)=>{const _0x396c7f=_0x1c137c;let _0x34a51b=_0x4530aa[_0x396c7f(0x48da)][0x0],[_0x336aef]=_0x34a51b,_0x5cfc84=_0x566fba[_0x336aef],_0x159f58=function(_0x5792ec,_0x28b78f){const _0x34f61b=_0x396c7f,{methods:_0x586484}=_0x28b78f;return _0x34f61b(0x4f7c)==typeof _0x5792ec?_0x586484[_0x34f61b(0x4116)]['tokenize'][_0x34f61b(0x2bf5)](_0x5792ec,_0x28b78f)[0x0]:'object'==typeof _0x5792ec&&_0x5792ec[_0x34f61b(0x2704)]?_0x5792ec[_0x34f61b(0x835)]()[_0x34f61b(0x3f72)][0x0]||[]:_0x4ec2de(_0x5792ec)?_0x4ec2de(_0x5792ec[0x0])?_0x5792ec[0x0]:_0x5792ec:[];}(_0x1f322f,_0x3be8b7);0x0!==_0x159f58[_0x396c7f(0x205b)]&&(_0x159f58=function(_0x39ab64){const _0x8ad646=_0x396c7f;return _0x39ab64[_0x8ad646(0x2c94)](_0x11bf3a=>(_0x11bf3a['id']=_0x422de9(_0x11bf3a),_0x11bf3a));}(_0x159f58),_0x68642c?(_0x4c5341(_0x376831[_0x396c7f(0xf93)]([_0x34a51b])['firstTerm']()),_0x5d4d8f(_0x5cfc84,_0x34a51b,_0x159f58,_0x566fba)):(_0x4c5341(_0x376831['update']([_0x34a51b])[_0x396c7f(0x2bbc)]()),function(_0x44b3bd,_0x39d09f,_0x501075,_0x2e4c18){const _0x5b2d2=_0x396c7f;let [_0x54c6cc,,_0x5370ea]=_0x39d09f,_0x202019=(_0x2e4c18[_0x54c6cc]||[])['length'];_0x5370ea<_0x202019?(_0x3223de(_0x44b3bd,_0x5370ea,_0x501075),_0x4f84e0(_0x501075)):_0x202019===_0x5370ea&&(_0x4f84e0(_0x44b3bd),_0x3223de(_0x44b3bd,_0x5370ea,_0x501075),_0x2e4c18[_0x54c6cc+0x1]&&(_0x501075[_0x501075[_0x5b2d2(0x205b)]-0x1][_0x5b2d2(0x9ce)]+='\x20')),_0x1e2180(_0x44b3bd,_0x39d09f[0x2],_0x501075),_0x39d09f[0x4]=_0x501075[_0x501075['length']-0x1]['id'];}(_0x5cfc84,_0x34a51b,_0x159f58,_0x566fba)),_0x566fba[_0x336aef]&&_0x566fba[_0x336aef][_0x34a51b[0x1]]&&(_0x34a51b[0x3]=_0x566fba[_0x336aef][_0x34a51b[0x1]]['id']),_0x254d84[_0x55e20e]=_0x34a51b,_0x34a51b[0x2]+=_0x159f58[_0x396c7f(0x205b)],_0x4fc7e7[_0x55e20e]=_0x34a51b);});let _0x3afafb=_0x376831[_0x1c137c(0xc6b)](_0x4fc7e7);return _0x376831[_0x1c137c(0x33fe)]=_0x254d84,_0x3afafb[_0x1c137c(0x210d)](['id',_0x1c137c(0x1cf3),_0x1c137c(0x2cba),_0x1c137c(0x4ab0)]),_0x3afafb[_0x1c137c(0x3e71)][_0x1c137c(0x210d)][_0x1c137c(0x530)]&&_0x3afafb[_0x1c137c(0x210d)](_0x1c137c(0x530)),_0x3afafb[_0x1c137c(0x210d)](_0x1c137c(0x483a)),_0x3afafb;},_0x51f3ad={'insertAfter':function(_0x372032){return _0x43bd21(_0x372032,this,!0x1);},'insertBefore':function(_0x38bcd6){return _0x43bd21(_0x38bcd6,this,!0x0);}};_0x51f3ad[_0x235866(0x180a)]=_0x51f3ad['insertAfter'],_0x51f3ad['prepend']=_0x51f3ad[_0x235866(0x3dd0)],_0x51f3ad[_0x235866(0x2e3f)]=_0x51f3ad[_0x235866(0x2d82)];const _0x7548f8=_0x51f3ad,_0x223257=/\$[0-9a-z]+/g,_0x39e2fb={};_0x39e2fb[_0x235866(0x6f5)]=function(_0x1f95bc,_0x19a40d={}){const _0x5616dd=_0x235866;let _0x57dc33=this[_0x5616dd(0x48da)],_0x1c4fe6=this;if(this['uncache'](),_0x5616dd(0x3dfb)==typeof _0x1f95bc)return function(_0x544ab6,_0x9a5132){const _0x3f7381=_0x5616dd;return _0x544ab6[_0x3f7381(0x4854)](_0x86e392=>{const _0x14098b=_0x3f7381;let _0x8dc09=_0x9a5132(_0x86e392);_0x86e392[_0x14098b(0x6f5)](_0x8dc09);}),_0x544ab6;}(_0x1c4fe6,_0x1f95bc);let _0x561052=_0x1c4fe6['docs'][0x0],_0x5712c9=_0x19a40d[_0x5616dd(0x2f0f)]&&_0x561052[_0x561052['length']-0x1][_0x5616dd(0x23d1)][_0x5616dd(0x5ec)](_0x5616dd(0x1e24));_0x1f95bc=function(_0x30a17b,_0x5c03b4){const _0x38b2af=_0x5616dd;if(_0x38b2af(0x4f7c)!=typeof _0x30a17b)return _0x30a17b;let _0x1ce914=_0x5c03b4[_0x38b2af(0xbbd)]();return _0x30a17b=_0x30a17b[_0x38b2af(0x1db7)](_0x223257,_0x36f9aa=>{const _0x4d0b96=_0x38b2af;let _0x341208=_0x36f9aa[_0x4d0b96(0x1db7)](/\$/,'');return _0x1ce914['hasOwnProperty'](_0x341208)?_0x1ce914[_0x341208][_0x4d0b96(0x2f35)]():_0x36f9aa;}),_0x30a17b;}(_0x1f95bc,_0x1c4fe6);let _0x3ca348=this[_0x5616dd(0xf93)](_0x57dc33);_0x57dc33=_0x57dc33[_0x5616dd(0x2c94)](_0x4f4dc0=>_0x4f4dc0[_0x5616dd(0x428e)](0x0,0x3));let _0x212f19=(_0x3ca348[_0x5616dd(0x3f72)][0x0]||[])[_0x5616dd(0x2c94)](_0x59bcae=>Array[_0x5616dd(0xc81)](_0x59bcae[_0x5616dd(0x23d1)]));(_0x5616dd(0x4f7c)==typeof _0x1f95bc&&(_0x1f95bc=this[_0x5616dd(0x3e8f)](_0x1f95bc)[_0x5616dd(0x210d)]('id')),_0x1c4fe6[_0x5616dd(0x2d82)](_0x1f95bc),_0x3ca348['has'](_0x5616dd(0x40b1))&&_0x1c4fe6[_0x5616dd(0x3acb)])&&_0x1c4fe6[_0x5616dd(0x1367)](_0x5616dd(0x480e))[_0x5616dd(0x3acb)]()['expand']();if(_0x1c4fe6['delete'](_0x3ca348),_0x5712c9){let _0x3aba0a=_0x1c4fe6[_0x5616dd(0x3f72)][0x0],_0x58f2d9=_0x3aba0a[_0x3aba0a[_0x5616dd(0x205b)]-0x1];_0x58f2d9[_0x5616dd(0x23d1)][_0x5616dd(0x5ec)](_0x5616dd(0x1e24))||(_0x58f2d9[_0x5616dd(0x2f35)]+='\x27s',_0x58f2d9[_0x5616dd(0x4cb)]+='\x27s',_0x58f2d9[_0x5616dd(0x23d1)][_0x5616dd(0x2fd8)](_0x5616dd(0x1e24)));}let _0x103b98=_0x1c4fe6[_0x5616dd(0xc6b)](_0x57dc33)['compute'](['index',_0x5616dd(0x2cba),_0x5616dd(0x4ab0)]);return _0x103b98['world'][_0x5616dd(0x210d)][_0x5616dd(0x530)]&&_0x103b98['compute'](_0x5616dd(0x530)),_0x103b98[_0x5616dd(0x210d)](_0x5616dd(0x483a)),_0x19a40d[_0x5616dd(0x23d1)]&&_0x103b98['terms']()[_0x5616dd(0x4854)]((_0x423a74,_0x2b8ac2)=>{const _0xbefb84=_0x5616dd;_0x423a74[_0xbefb84(0x1b7c)](_0x212f19[_0x2b8ac2]);}),_0x19a40d[_0x5616dd(0x1bf3)]&&_0x103b98[_0x5616dd(0x3f72)][0x0]&&_0x103b98['docs'][0x0][0x0]&&0x0===_0x103b98[_0x5616dd(0x3f72)][0x0][0x0]['index'][0x1]&&(_0x103b98[_0x5616dd(0x3f72)][0x0][0x0]['text']=_0x103b98[_0x5616dd(0x3f72)][0x0][0x0][_0x5616dd(0x2f35)][_0x5616dd(0x1db7)](/\w\S*/g,_0x537d44=>_0x537d44[_0x5616dd(0x32fe)](0x0)[_0x5616dd(0x4447)]()+_0x537d44[_0x5616dd(0x3934)](0x1)[_0x5616dd(0x1a57)]())),_0x103b98;},_0x39e2fb['replace']=function(_0x549b54,_0x29c46e,_0xa5e3fa){const _0x158dd4=_0x235866;if(_0x549b54&&!_0x29c46e)return this[_0x158dd4(0x6f5)](_0x549b54,_0xa5e3fa);let _0x14f0cd=this['match'](_0x549b54);return _0x14f0cd[_0x158dd4(0x622)]?(this[_0x158dd4(0x3ea2)](),_0x14f0cd[_0x158dd4(0x6f5)](_0x29c46e,_0xa5e3fa)):this;};const _0x2438eb=_0x39e2fb,_0x52fc02=function(_0x226b45,_0x34e393){const _0x5a589e=_0x235866;_0x34e393['forEach'](_0x433e54=>{const _0x4a55c5=a0_0x329b;let [_0xe48b3,_0x21b873,_0x4182d1]=_0x433e54,_0x274f59=_0x4182d1-_0x21b873;_0x226b45[_0xe48b3]&&(_0x4182d1===_0x226b45[_0xe48b3]['length']&&_0x4182d1>0x1&&function(_0x251002,_0x240f9b){const _0x259087=a0_0x329b;let _0x396340=_0x251002[_0x259087(0x205b)]-0x1,_0x4b1cc0=_0x251002[_0x396340],_0x45941f=_0x251002[_0x396340-_0x240f9b];_0x45941f&&_0x4b1cc0&&(_0x45941f[_0x259087(0x9ce)]+=_0x4b1cc0['post'],_0x45941f[_0x259087(0x9ce)]=_0x45941f[_0x259087(0x9ce)][_0x259087(0x1db7)](/ +([.?!,;:])/,'$1'),_0x45941f['post']=_0x45941f[_0x259087(0x9ce)][_0x259087(0x1db7)](/[,;:]+([.?!])/,'$1'));}(_0x226b45[_0xe48b3],_0x274f59),_0x226b45[_0xe48b3][_0x4a55c5(0x506f)](_0x21b873,_0x274f59));});for(let _0x97382b=_0x226b45['length']-0x1;_0x97382b>=0x0;_0x97382b-=0x1)if(0x0===_0x226b45[_0x97382b][_0x5a589e(0x205b)]&&(_0x226b45[_0x5a589e(0x506f)](_0x97382b,0x1),_0x97382b===_0x226b45[_0x5a589e(0x205b)]&&_0x226b45[_0x97382b-0x1])){let _0x9171f6=_0x226b45[_0x97382b-0x1],_0x5a3b0f=_0x9171f6[_0x9171f6['length']-0x1];_0x5a3b0f&&(_0x5a3b0f[_0x5a589e(0x9ce)]=_0x5a3b0f[_0x5a589e(0x9ce)][_0x5a589e(0x4782)]());}return _0x226b45;},_0x4d6dde={'remove':function(_0x459068){const _0x449ea9=_0x235866,{indexN:_0x1a297f}=this[_0x449ea9(0x8f)][_0x449ea9(0x4116)][_0x449ea9(0x1d95)];this[_0x449ea9(0x5d5)]();let _0x2309c9=this['all'](),_0x5bf7fd=this;_0x459068&&(_0x2309c9=this,_0x5bf7fd=this[_0x449ea9(0xdc0)](_0x459068));let _0x235443=!_0x2309c9[_0x449ea9(0x33fe)];_0x5bf7fd['has']('@hasContraction')&&_0x5bf7fd['contractions']&&_0x5bf7fd[_0x449ea9(0x1367)](_0x449ea9(0x40b1))['contractions']()[_0x449ea9(0x380d)]();let _0x48d133=_0x2309c9['fullPointer'],_0x127b36=_0x5bf7fd[_0x449ea9(0x48da)][_0x449ea9(0x2a4c)](),_0x5eb43b=_0x52fc02(this[_0x449ea9(0x46d9)],_0x127b36);return _0x48d133=function(_0x2968cc,_0x5daff6){const _0x50e5c2=_0x449ea9;return _0x2968cc=_0x2968cc[_0x50e5c2(0x2c94)](_0x5a6dcc=>{const _0x28d793=_0x50e5c2;let [_0x539c4a]=_0x5a6dcc;return _0x5daff6[_0x539c4a]?(_0x5daff6[_0x539c4a][_0x28d793(0x4854)](_0x1cb353=>{let _0x5728e2=_0x1cb353[0x2]-_0x1cb353[0x1];_0x5a6dcc[0x1]<=_0x1cb353[0x1]&&_0x5a6dcc[0x2]>=_0x1cb353[0x2]&&(_0x5a6dcc[0x2]-=_0x5728e2);}),_0x5a6dcc):_0x5a6dcc;}),_0x2968cc['forEach']((_0x1cfbb3,_0x5a0523)=>{const _0x252115=_0x50e5c2;if(0x0===_0x1cfbb3[0x1]&&0x0==_0x1cfbb3[0x2]){for(let _0x49a42a=_0x5a0523+0x1;_0x49a42a<_0x2968cc[_0x252115(0x205b)];_0x49a42a+=0x1)_0x2968cc[_0x49a42a][0x0]-=0x1,_0x2968cc[_0x49a42a][0x0]<0x0&&(_0x2968cc[_0x49a42a][0x0]=0x0);}}),_0x2968cc=(_0x2968cc=_0x2968cc[_0x50e5c2(0x295e)](_0x3c5a75=>_0x3c5a75[0x2]-_0x3c5a75[0x1]>0x0))[_0x50e5c2(0x2c94)](_0x41d19d=>(_0x41d19d[0x3]=null,_0x41d19d[0x4]=null,_0x41d19d));}(_0x48d133,_0x1a297f(_0x127b36)),_0x2309c9[_0x449ea9(0x33fe)]=_0x48d133,_0x2309c9[_0x449ea9(0x46d9)]=_0x5eb43b,_0x2309c9['compute'](_0x449ea9(0x1cf3)),_0x235443&&(_0x2309c9['ptrs']=void 0x0),_0x459068?_0x2309c9[_0x449ea9(0xc6b)](_0x48d133):(this[_0x449ea9(0x33fe)]=[],_0x2309c9[_0x449ea9(0x80b)]());}};_0x4d6dde[_0x235866(0x450b)]=_0x4d6dde['remove'];const _0x32ba5c=_0x4d6dde,_0x246fdf={'pre':function(_0x8f67f1,_0xbec26d){const _0x764dff=_0x235866;return void 0x0===_0x8f67f1&&this[_0x764dff(0x622)]?this[_0x764dff(0x3f72)][0x0][0x0][_0x764dff(0x1553)]:(this[_0x764dff(0x3f72)][_0x764dff(0x4854)](_0x420c72=>{const _0x17e65f=_0x764dff;let _0x51fc34=_0x420c72[0x0];!0x0===_0xbec26d?_0x51fc34[_0x17e65f(0x1553)]+=_0x8f67f1:_0x51fc34['pre']=_0x8f67f1;}),this);},'post':function(_0x2bc2d1,_0x2c0d59){const _0x557c23=_0x235866;if(void 0x0===_0x2bc2d1){let _0x2c93f3=this[_0x557c23(0x3f72)][this[_0x557c23(0x3f72)][_0x557c23(0x205b)]-0x1];return _0x2c93f3[_0x2c93f3['length']-0x1]['post'];}return this[_0x557c23(0x3f72)]['forEach'](_0x4bf3d1=>{const _0x5e6f66=_0x557c23;let _0x4f82f3=_0x4bf3d1[_0x4bf3d1[_0x5e6f66(0x205b)]-0x1];!0x0===_0x2c0d59?_0x4f82f3[_0x5e6f66(0x9ce)]+=_0x2bc2d1:_0x4f82f3['post']=_0x2bc2d1;}),this;},'trim':function(){const _0x34a26f=_0x235866;if(!this[_0x34a26f(0x622)])return this;let _0x58da7f=this[_0x34a26f(0x3f72)],_0xdeba16=_0x58da7f[0x0][0x0];_0xdeba16['pre']=_0xdeba16[_0x34a26f(0x1553)][_0x34a26f(0x1149)]();let _0x130dc2=_0x58da7f[_0x58da7f[_0x34a26f(0x205b)]-0x1],_0xaa1ddd=_0x130dc2[_0x130dc2['length']-0x1];return _0xaa1ddd[_0x34a26f(0x9ce)]=_0xaa1ddd['post']['trimEnd'](),this;},'hyphenate':function(){const _0x21faf5=_0x235866;return this['docs'][_0x21faf5(0x4854)](_0x14168b=>{const _0x176d06=_0x21faf5;_0x14168b[_0x176d06(0x4854)]((_0x33191b,_0x5e9143)=>{const _0x368352=_0x176d06;0x0!==_0x5e9143&&(_0x33191b[_0x368352(0x1553)]=''),_0x14168b[_0x5e9143+0x1]&&(_0x33191b[_0x368352(0x9ce)]='-');});}),this;},'dehyphenate':function(){const _0x22400b=_0x235866,_0x131afc=/[-–—]/;return this[_0x22400b(0x3f72)][_0x22400b(0x4854)](_0xde2888=>{const _0xdf6eb6=_0x22400b;_0xde2888[_0xdf6eb6(0x4854)](_0x2141b6=>{const _0x376798=_0xdf6eb6;_0x131afc['test'](_0x2141b6['post'])&&(_0x2141b6[_0x376798(0x9ce)]='\x20');});}),this;},'toQuotations':function(_0xc28895,_0x58d6b9){const _0x422430=_0x235866;return _0xc28895=_0xc28895||'\x22',_0x58d6b9=_0x58d6b9||'\x22',this[_0x422430(0x3f72)][_0x422430(0x4854)](_0x197897=>{const _0x29b1a3=_0x422430;_0x197897[0x0][_0x29b1a3(0x1553)]=_0xc28895+_0x197897[0x0][_0x29b1a3(0x1553)];let _0x1dc9b6=_0x197897[_0x197897[_0x29b1a3(0x205b)]-0x1];_0x1dc9b6[_0x29b1a3(0x9ce)]=_0x58d6b9+_0x1dc9b6[_0x29b1a3(0x9ce)];}),this;},'toParentheses':function(_0x25c0fd,_0x80e8d9){const _0x3f5391=_0x235866;return _0x25c0fd=_0x25c0fd||'(',_0x80e8d9=_0x80e8d9||')',this['docs'][_0x3f5391(0x4854)](_0x4c4bbb=>{const _0xfd7dc6=_0x3f5391;_0x4c4bbb[0x0]['pre']=_0x25c0fd+_0x4c4bbb[0x0][_0xfd7dc6(0x1553)];let _0x58e4ce=_0x4c4bbb[_0x4c4bbb[_0xfd7dc6(0x205b)]-0x1];_0x58e4ce[_0xfd7dc6(0x9ce)]=_0x80e8d9+_0x58e4ce[_0xfd7dc6(0x9ce)];}),this;}};_0x246fdf['deHyphenate']=_0x246fdf['dehyphenate'],_0x246fdf[_0x235866(0x242c)]=_0x246fdf[_0x235866(0x1516)];const _0x28599e=_0x246fdf,_0x5d7703={'alpha':(_0x273a26,_0x513611)=>_0x273a26[_0x235866(0x4cb)]<_0x513611[_0x235866(0x4cb)]?-0x1:_0x273a26[_0x235866(0x4cb)]>_0x513611[_0x235866(0x4cb)]?0x1:0x0,'length':(_0x35ca96,_0x54be7b)=>{const _0x1e9e90=_0x235866;let _0x3c5af6=_0x35ca96[_0x1e9e90(0x4cb)][_0x1e9e90(0x1d0e)]()['length'],_0x42da3a=_0x54be7b[_0x1e9e90(0x4cb)][_0x1e9e90(0x1d0e)]()[_0x1e9e90(0x205b)];return _0x3c5af6<_0x42da3a?0x1:_0x3c5af6>_0x42da3a?-0x1:0x0;},'wordCount':(_0x138d45,_0xdefbf4)=>_0x138d45[_0x235866(0x533)]<_0xdefbf4['words']?0x1:_0x138d45[_0x235866(0x533)]>_0xdefbf4[_0x235866(0x533)]?-0x1:0x0,'sequential':(_0x753af2,_0x1a6c63)=>_0x753af2[0x0]<_0x1a6c63[0x0]?0x1:_0x753af2[0x0]>_0x1a6c63[0x0]?-0x1:_0x753af2[0x1]>_0x1a6c63[0x1]?0x1:-0x1,'byFreq':function(_0x568999){const _0x37004d=_0x235866;let _0x3343f6={};return _0x568999[_0x37004d(0x4854)](_0x27787b=>{const _0x17a3a9=_0x37004d;_0x3343f6[_0x27787b[_0x17a3a9(0x4cb)]]=_0x3343f6[_0x27787b[_0x17a3a9(0x4cb)]]||0x0,_0x3343f6[_0x27787b[_0x17a3a9(0x4cb)]]+=0x1;}),_0x568999[_0x37004d(0x509)]((_0x32bc28,_0x532088)=>{const _0x1caf18=_0x37004d;let _0x2a5cc8=_0x3343f6[_0x32bc28['normal']],_0x17e903=_0x3343f6[_0x532088[_0x1caf18(0x4cb)]];return _0x2a5cc8<_0x17e903?0x1:_0x2a5cc8>_0x17e903?-0x1:0x0;}),_0x568999;}},_0x1dae14=new Set([_0x235866(0x1cf3),_0x235866(0xd4a),_0x235866(0x3d93),_0x235866(0x3359),_0x235866(0x3463),_0x235866(0x4c3d)]),_0x71c09e=new Set([_0x235866(0x142a),_0x235866(0x136a),_0x235866(0x26eb),'repeats']),_0x2bfb84=new Set(['alpha',_0x235866(0x4345)]),_0x32a776={'unique':function(){const _0x323648=_0x235866;let _0x57e828=new Set(),_0x24abd2=this[_0x323648(0x295e)](_0x2c5266=>{const _0x5e91f3=_0x323648;let _0x6cab08=_0x2c5266[_0x5e91f3(0x2f35)](_0x5e91f3(0x194));return!_0x57e828['has'](_0x6cab08)&&(_0x57e828[_0x5e91f3(0x2fd8)](_0x6cab08),!0x0);});return _0x24abd2;},'reverse':function(){const _0x249d67=_0x235866;let _0x5b0172=this[_0x249d67(0x1d95)]||this['docs'][_0x249d67(0x2c94)]((_0x1b82cd,_0x75c8ae)=>[_0x75c8ae]);return _0x5b0172=[][_0x249d67(0x41bf)](_0x5b0172),_0x5b0172=_0x5b0172['reverse'](),this['_cache']&&(this[_0x249d67(0x1d5f)]=this[_0x249d67(0x1d5f)][_0x249d67(0x2a4c)]()),this['update'](_0x5b0172);},'sort':function(_0x40eed0){const _0x10b5f3=_0x235866;let {docs:_0x2eeeb8,pointer:_0x555ee9}=this;if(this[_0x10b5f3(0x5d5)](),_0x10b5f3(0x3dfb)==typeof _0x40eed0)return function(_0x229b0d,_0x4e8527){const _0x39a700=_0x10b5f3;let _0x4e6690=_0x229b0d[_0x39a700(0x48da)];return _0x4e6690=_0x4e6690[_0x39a700(0x509)]((_0xcc8b4d,_0x5d9fa3)=>(_0xcc8b4d=_0x229b0d[_0x39a700(0xf93)]([_0xcc8b4d]),_0x5d9fa3=_0x229b0d['update']([_0x5d9fa3]),_0x4e8527(_0xcc8b4d,_0x5d9fa3))),_0x229b0d[_0x39a700(0x33fe)]=_0x4e6690,_0x229b0d;}(this,_0x40eed0);_0x40eed0=_0x40eed0||_0x10b5f3(0x271f);let _0x284fa3=_0x555ee9||_0x2eeeb8[_0x10b5f3(0x2c94)]((_0x621d0a,_0xa314a4)=>[_0xa314a4]),_0x15e8c3=_0x2eeeb8[_0x10b5f3(0x2c94)]((_0x45e119,_0x5051c9)=>({'index':_0x5051c9,'words':_0x45e119[_0x10b5f3(0x205b)],'normal':_0x45e119[_0x10b5f3(0x2c94)](_0x407ae7=>_0x407ae7[_0x10b5f3(0x194)]||_0x407ae7[_0x10b5f3(0x4cb)]||'')[_0x10b5f3(0x379c)]('\x20'),'pointer':_0x284fa3[_0x5051c9]}));return _0x1dae14[_0x10b5f3(0x5ec)](_0x40eed0)&&(_0x40eed0=_0x10b5f3(0x3359)),_0x2bfb84[_0x10b5f3(0x5ec)](_0x40eed0)&&(_0x40eed0=_0x10b5f3(0x271f)),_0x71c09e[_0x10b5f3(0x5ec)](_0x40eed0)?(_0x15e8c3=_0x5d7703[_0x10b5f3(0x280b)](_0x15e8c3),this[_0x10b5f3(0xf93)](_0x15e8c3[_0x10b5f3(0x2c94)](_0x35fb77=>_0x35fb77[_0x10b5f3(0x1d95)]))):_0x10b5f3(0x3dfb)==typeof _0x5d7703[_0x40eed0]?(_0x15e8c3=_0x15e8c3[_0x10b5f3(0x509)](_0x5d7703[_0x40eed0]),this['update'](_0x15e8c3[_0x10b5f3(0x2c94)](_0x5638a9=>_0x5638a9['pointer']))):this;}},_0xc27926=function(_0x556725,_0x5449cd){const _0x57d682=_0x235866;if(_0x556725[_0x57d682(0x205b)]>0x0){let _0x48af24=_0x556725[_0x556725[_0x57d682(0x205b)]-0x1],_0x2257e6=_0x48af24[_0x48af24['length']-0x1];!0x1===/ /['test'](_0x2257e6[_0x57d682(0x9ce)])&&(_0x2257e6[_0x57d682(0x9ce)]+='\x20');}return _0x556725=_0x556725[_0x57d682(0x41bf)](_0x5449cd);},_0x1498ad={'concat':function(_0x3a4ed4){const _0x4680ce=_0x235866;if(_0x4680ce(0x4f7c)==typeof _0x3a4ed4){let _0x3f2be6=this[_0x4680ce(0x3e8f)](_0x3a4ed4);if(this[_0x4680ce(0x622)]&&this[_0x4680ce(0x33fe)]){let _0x56f32f=this['fullPointer'],_0x2398ac=_0x56f32f[_0x56f32f['length']-0x1][0x0];this['document'][_0x4680ce(0x506f)](_0x2398ac,0x0,..._0x3f2be6[_0x4680ce(0x46d9)]);}else this['document']=this[_0x4680ce(0x46d9)][_0x4680ce(0x41bf)](_0x3f2be6[_0x4680ce(0x46d9)]);return this[_0x4680ce(0x1d1f)]()['compute'](_0x4680ce(0x1cf3));}if('object'==typeof _0x3a4ed4&&_0x3a4ed4[_0x4680ce(0x2704)])return function(_0xe2eb87,_0x5ebc95){const _0x1fcf97=_0x4680ce;if(_0xe2eb87['document']===_0x5ebc95[_0x1fcf97(0x46d9)]){let _0x1e6009=_0xe2eb87[_0x1fcf97(0x48da)][_0x1fcf97(0x41bf)](_0x5ebc95[_0x1fcf97(0x48da)]);return _0xe2eb87[_0x1fcf97(0xc6b)](_0x1e6009)[_0x1fcf97(0x210d)]('index');}return _0x5ebc95[_0x1fcf97(0x48da)][_0x1fcf97(0x4854)](_0x561bd5=>{const _0x669672=_0x1fcf97;_0x561bd5[0x0]+=_0xe2eb87[_0x669672(0x46d9)][_0x669672(0x205b)];}),_0xe2eb87[_0x1fcf97(0x46d9)]=_0xc27926(_0xe2eb87[_0x1fcf97(0x46d9)],_0x5ebc95['docs']),_0xe2eb87[_0x1fcf97(0x1d1f)]();}(this,_0x3a4ed4);if(_0x2c3ca4=_0x3a4ed4,_0x4680ce(0x4fba)===Object[_0x4680ce(0x2b5c)][_0x4680ce(0x44de)]['call'](_0x2c3ca4)){let _0xb4aec0=_0xc27926(this[_0x4680ce(0x46d9)],_0x3a4ed4);return this[_0x4680ce(0x46d9)]=_0xb4aec0,this[_0x4680ce(0x1d1f)]();}var _0x2c3ca4;return this;}},_0x1f63c8={'harden':function(){const _0x134597=_0x235866;return this['ptrs']=this[_0x134597(0x48da)],this;},'soften':function(){const _0x13789f=_0x235866;let _0x4ca15d=this[_0x13789f(0x33fe)];return!_0x4ca15d||_0x4ca15d[_0x13789f(0x205b)]<0x1||(_0x4ca15d=_0x4ca15d['map'](_0x448b66=>_0x448b66[_0x13789f(0x428e)](0x0,0x3)),this[_0x13789f(0x33fe)]=_0x4ca15d),this;}},_0x24e7a9=Object[_0x235866(0x11e8)]({},{'toLowerCase':function(){const _0x467cfc=_0x235866;return this[_0x467cfc(0x1772)]()[_0x467cfc(0x4854)](_0x2c3890=>{const _0x84dfec=_0x467cfc;_0x2c3890[_0x84dfec(0x2f35)]=_0x2c3890[_0x84dfec(0x2f35)][_0x84dfec(0x1a57)]();}),this;},'toUpperCase':function(){const _0x38b848=_0x235866;return this[_0x38b848(0x1772)]()[_0x38b848(0x4854)](_0x403120=>{const _0x1812e2=_0x38b848;_0x403120['text']=_0x403120[_0x1812e2(0x2f35)]['toUpperCase']();}),this;},'toTitleCase':function(){const _0x53b8f6=_0x235866;return this[_0x53b8f6(0x1772)]()['forEach'](_0x41e8a4=>{const _0x82bd89=_0x53b8f6;_0x41e8a4[_0x82bd89(0x2f35)]=_0x41e8a4[_0x82bd89(0x2f35)]['replace'](/^ *[a-z\u00C0-\u00FF]/,_0x35694c=>_0x35694c['toUpperCase']());}),this;},'toCamelCase':function(){const _0x4ef427=_0x235866;return this['docs'][_0x4ef427(0x4854)](_0x5703de=>{const _0x472e46=_0x4ef427;_0x5703de[_0x472e46(0x4854)]((_0x448e30,_0x4dc806)=>{const _0x290f1b=_0x472e46;0x0!==_0x4dc806&&(_0x448e30[_0x290f1b(0x2f35)]=_0x448e30['text'][_0x290f1b(0x1db7)](/^ *[a-z\u00C0-\u00FF]/,_0x537815=>_0x537815[_0x290f1b(0x4447)]())),_0x4dc806!==_0x5703de['length']-0x1&&(_0x448e30[_0x290f1b(0x9ce)]='');});}),this;}},_0x7548f8,_0x2438eb,_0x32ba5c,_0x28599e,_0x32a776,_0x1498ad,_0x1f63c8),_0x527af4=function(_0x2213e7){const _0xd35c99=_0x235866;Object[_0xd35c99(0x11e8)](_0x2213e7['prototype'],_0x24e7a9);},_0x37930e={'id':function(_0x5942d6){const _0x2f1e62=_0x235866;let _0x4397c8=_0x5942d6[_0x2f1e62(0x3f72)];for(let _0x1901e8=0x0;_0x1901e8<_0x4397c8[_0x2f1e62(0x205b)];_0x1901e8+=0x1)for(let _0x41ca26=0x0;_0x41ca26<_0x4397c8[_0x1901e8][_0x2f1e62(0x205b)];_0x41ca26+=0x1){let _0x4d659e=_0x4397c8[_0x1901e8][_0x41ca26];_0x4d659e['id']=_0x4d659e['id']||_0x422de9(_0x4d659e);}}},_0x40ef9a={'api':_0x527af4,'compute':_0x37930e},_0x19f5c7=!0x0,_0x5957b0={'one':{'contractions':[{'word':'@','out':['at']},{'word':_0x235866(0x18a7),'out':['are',_0x235866(0x4163)]},{'word':'alot','out':['a','lot']},{'word':_0x235866(0x4c36),'out':['be',_0x235866(0x11fd),'back']},{'word':_0x235866(0x1eb3),'out':[_0x235866(0x1cbb),'not']},{'word':_0x235866(0x1459),'out':['do','not']},{'word':_0x235866(0x4c0b),'out':['can','not']},{'word':'shan\x27t','out':[_0x235866(0x2316),_0x235866(0x4163)]},{'word':_0x235866(0x803),'out':[_0x235866(0x2160),_0x235866(0x4163)]},{'word':_0x235866(0x450e),'out':[_0x235866(0x4b7f),'is']},{'word':_0x235866(0x2c5f),'out':['what','is']},{'word':_0x235866(0x3396),'out':['let','us']},{'word':_0x235866(0x1dc2),'out':['do',_0x235866(0x4163),_0x235866(0x13cb)]},{'word':_0x235866(0x28d7),'out':[_0x235866(0x295d),'to']},{'word':_0x235866(0x1157),'out':[_0x235866(0xb66),'got','to']},{'word':_0x235866(0xb5b),'out':[_0x235866(0x3241),'me']},{'word':_0x235866(0x2900),'out':[_0x235866(0x4284),'of']},{'word':'tryna','out':[_0x235866(0x14c9),'to']},{'word':'gtg','out':[_0x235866(0xd17),'to','go']},{'word':'im','out':['i','am']},{'word':'imma','out':['I',_0x235866(0x2160)]},{'word':_0x235866(0x18e9),'out':['in','my',_0x235866(0x7e0)]},{'word':_0x235866(0xe1d),'out':['in','real','life']},{'word':'ive','out':['i',_0x235866(0xb66)]},{'word':'rn','out':[_0x235866(0x11fd),_0x235866(0x29c6)]},{'word':_0x235866(0x3ce),'out':['to','be','honest']},{'word':_0x235866(0x4cf7),'out':['want','to']},{'word':_0x235866(0x1c5),'out':[_0x235866(0x1da1),_0x235866(0x20ad)]},{'word':'c\x27mon','out':[_0x235866(0x1da1),'on']},{'word':_0x235866(0x3190),'out':[_0x235866(0x2316),_0x235866(0xb66)]},{'word':_0x235866(0x9e9),'out':[_0x235866(0x9e9),_0x235866(0xb66)]},{'word':_0x235866(0x1754),'out':[_0x235866(0x1754),_0x235866(0xb66)]},{'word':_0x235866(0x43ef),'out':['must','have']},{'word':'tis','out':['it','is']},{'word':_0x235866(0x10b6),'out':['it',_0x235866(0x2fdb)]},{'word':_0x235866(0x3c90),'out':['you',_0x235866(0x13cb)]},{'word':_0x235866(0x452),'out':[_0x235866(0x4b8c)]},{'word':_0x235866(0x4492),'out':[_0x235866(0x4e35)]},{'after':'ll','out':[_0x235866(0x2160)]},{'after':'ve','out':['have']},{'after':'re','out':[_0x235866(0x1f46)]},{'after':'m','out':['am']},{'before':'c','out':['ce']},{'before':'m','out':['me']},{'before':'n','out':['ne']},{'before':'qu','out':['que']},{'before':'s','out':['se']},{'before':'t','out':['tu']},{'word':_0x235866(0x2a69),'out':[_0x235866(0x2316),_0x235866(0x4163)]},{'word':_0x235866(0x7fe),'out':[_0x235866(0x86d),_0x235866(0x4163)]},{'word':'wouldnt','out':['would','not']},{'word':_0x235866(0x3fab),'out':[_0x235866(0x5ec),_0x235866(0x4163)]},{'word':_0x235866(0x2bae),'out':[_0x235866(0x2fdb),_0x235866(0x4163)]},{'word':_0x235866(0x4b9d),'out':['is',_0x235866(0x4163)]},{'word':_0x235866(0x4d29),'out':[_0x235866(0x1cbb),'not']},{'word':'dont','out':['do',_0x235866(0x4163)]},{'word':'wont','out':[_0x235866(0x2160),'not']},{'word':'howd','out':[_0x235866(0x3626),_0x235866(0x3516)]},{'word':'whatd','out':[_0x235866(0x2427),_0x235866(0x3516)]},{'word':_0x235866(0x418),'out':[_0x235866(0x489c),'did']},{'word':_0x235866(0x36e6),'out':['where',_0x235866(0x3516)]}],'numberSuffixes':{'st':_0x19f5c7,'nd':_0x19f5c7,'rd':_0x19f5c7,'th':_0x19f5c7,'am':_0x19f5c7,'pm':_0x19f5c7,'max':_0x19f5c7,'°':_0x19f5c7,'s':_0x19f5c7,'e':_0x19f5c7,'er':_0x19f5c7,'ère':_0x19f5c7,'ème':_0x19f5c7}}},_0xe1a4ab=function(_0x19d66f,_0x3163f0,_0x2b088a){const _0xcd33f5=_0x235866;let [_0x275d6e,_0x283efb]=_0x3163f0;_0x2b088a&&0x0!==_0x2b088a[_0xcd33f5(0x205b)]&&(_0x2b088a=_0x2b088a[_0xcd33f5(0x2c94)]((_0x5bbb97,_0x1eedb1)=>(_0x5bbb97['implicit']=_0x5bbb97['text'],_0x5bbb97[_0xcd33f5(0x194)]=_0x5bbb97['text'],_0x5bbb97[_0xcd33f5(0x1553)]='',_0x5bbb97[_0xcd33f5(0x9ce)]='',_0x5bbb97[_0xcd33f5(0x2f35)]='',_0x5bbb97[_0xcd33f5(0x4cb)]='',_0x5bbb97[_0xcd33f5(0x1cf3)]=[_0x275d6e,_0x283efb+_0x1eedb1],_0x5bbb97)),_0x2b088a[0x0]&&(_0x2b088a[0x0]['pre']=_0x19d66f[_0x275d6e][_0x283efb]['pre'],_0x2b088a[_0x2b088a[_0xcd33f5(0x205b)]-0x1][_0xcd33f5(0x9ce)]=_0x19d66f[_0x275d6e][_0x283efb][_0xcd33f5(0x9ce)],_0x2b088a[0x0][_0xcd33f5(0x2f35)]=_0x19d66f[_0x275d6e][_0x283efb]['text'],_0x2b088a[0x0][_0xcd33f5(0x4cb)]=_0x19d66f[_0x275d6e][_0x283efb]['normal']),_0x19d66f[_0x275d6e]['splice'](_0x283efb,0x1,..._0x2b088a));},_0x366741=/'/,_0xbd2f0e=new Set([_0x235866(0x2427),'how','when',_0x235866(0x43c),_0x235866(0xd15)]),_0xde10e8=new Set(['be','go','start','think',_0x235866(0x38f7)]),_0x8c031b=new Set([_0x235866(0x182e),'gone']),_0x5c3638=function(_0x3a5153,_0x49958f){const _0x2534b5=_0x235866;let _0x45e10f=_0x3a5153[_0x49958f][_0x2534b5(0x4cb)][_0x2534b5(0x29d0)](_0x366741)[0x0];if(_0xbd2f0e[_0x2534b5(0x5ec)](_0x45e10f))return[_0x45e10f,_0x2534b5(0x3516)];if(_0x3a5153[_0x49958f+0x1]){if(_0x8c031b[_0x2534b5(0x5ec)](_0x3a5153[_0x49958f+0x1][_0x2534b5(0x4cb)]))return[_0x45e10f,_0x2534b5(0x455a)];if(_0xde10e8[_0x2534b5(0x5ec)](_0x3a5153[_0x49958f+0x1][_0x2534b5(0x4cb)]))return[_0x45e10f,_0x2534b5(0x416a)];}return null;},_0x2b500f=function(_0x5de630,_0x1c9157){const _0x379df4=_0x235866;if(_0x379df4(0x2e85)===_0x5de630[_0x1c9157][_0x379df4(0x4cb)]||_0x379df4(0x284f)===_0x5de630[_0x1c9157]['normal'])return null;return[_0x5de630[_0x1c9157][_0x379df4(0x4cb)][_0x379df4(0x1db7)](/n't/,''),'not'];},_0xd02d6c=/'/,_0x508d8c=/(e|é|aison|sion|tion)$/,_0x2ad5c8=/(age|isme|acle|ege|oire)$/,_0x4ceaa4=(_0x1f7f4e,_0x372de5)=>['je',_0x1f7f4e[_0x372de5][_0x235866(0x4cb)][_0x235866(0x29d0)](_0xd02d6c)[0x1]],_0x302e0d=(_0x2b1e47,_0x4032b8)=>{const _0x7d7f8f=_0x235866;let _0x11f2e4=_0x2b1e47[_0x4032b8][_0x7d7f8f(0x4cb)][_0x7d7f8f(0x29d0)](_0xd02d6c)[0x1];return _0x11f2e4&&_0x11f2e4[_0x7d7f8f(0xe37)]('e')?['la',_0x11f2e4]:['le',_0x11f2e4];},_0x10429b=(_0xb23e04,_0x3fa4bc)=>{const _0x593b8b=_0x235866;let _0x4e7341=_0xb23e04[_0x3fa4bc][_0x593b8b(0x4cb)]['split'](_0xd02d6c)[0x1];return _0x4e7341&&_0x508d8c[_0x593b8b(0x34c)](_0x4e7341)&&!_0x2ad5c8[_0x593b8b(0x34c)](_0x4e7341)?['du',_0x4e7341]:_0x4e7341&&_0x4e7341[_0x593b8b(0xe37)]('s')?[_0x593b8b(0x130e),_0x4e7341]:['de',_0x4e7341];},_0x6d571f=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,_0x28a28c=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,_0x5166cc=/^[0-9]{3}-[0-9]{4}$/,_0x2293bc=function(_0x50cd42,_0x3e8535){const _0x5df97a=_0x235866;let _0x1db895=_0x50cd42[_0x3e8535],_0x440e7f=_0x1db895[_0x5df97a(0x2f35)][_0x5df97a(0xdc0)](_0x6d571f);return null!==_0x440e7f?!0x0===_0x1db895['tags']['has'](_0x5df97a(0x4db3))||_0x5166cc[_0x5df97a(0x34c)](_0x1db895[_0x5df97a(0x2f35)])?null:[_0x440e7f[0x1],'to',_0x440e7f[0x2]]:(_0x440e7f=_0x1db895[_0x5df97a(0x2f35)][_0x5df97a(0xdc0)](_0x28a28c),null!==_0x440e7f?[_0x440e7f[0x1],'to',_0x440e7f[0x4]]:null);},_0x4daf7c=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,_0x4c99c8=function(_0x4a3fdc,_0x2bf5b4,_0x45b83d){const _0x5a68e6=_0x235866,_0x2cfca2=_0x45b83d[_0x5a68e6(0x2c3e)][_0x5a68e6(0x4116)]['numberSuffixes']||{};let _0xc7bc8e=_0x4a3fdc[_0x2bf5b4][_0x5a68e6(0x2f35)][_0x5a68e6(0xdc0)](_0x4daf7c);if(null!==_0xc7bc8e){let _0x597237=_0xc7bc8e[0x2][_0x5a68e6(0x1a57)]()['trim']();return _0x2cfca2[_0x5a68e6(0x32b5)](_0x597237)?null:[_0xc7bc8e[0x1],_0x597237];}return null;},_0x3e3a21=/'/,_0x58478e=/^[0-9][^-–—]*[-–—].*?[0-9]/,_0x30e259=function(_0x356c26,_0x474e43,_0x21bcb7,_0x218418){const _0x17c3da=_0x235866;let _0x78a3c5=_0x474e43[_0x17c3da(0xf93)]();_0x78a3c5[_0x17c3da(0x46d9)]=[_0x356c26];let _0x247a05=_0x21bcb7+_0x218418;_0x21bcb7>0x0&&(_0x21bcb7-=0x1),_0x356c26[_0x247a05]&&(_0x247a05+=0x1),_0x78a3c5[_0x17c3da(0x33fe)]=[[0x0,_0x21bcb7,_0x247a05]];},_0xc1c4e9={'t':(_0x47bc16,_0x4e581b)=>_0x2b500f(_0x47bc16,_0x4e581b),'d':(_0x238c9d,_0x2d6edd)=>_0x5c3638(_0x238c9d,_0x2d6edd)},_0x553863={'j':(_0x145d55,_0x1f23c6)=>_0x4ceaa4(_0x145d55,_0x1f23c6),'l':(_0x390c20,_0x4ad767)=>_0x302e0d(_0x390c20,_0x4ad767),'d':(_0x30f352,_0xee31c8)=>_0x10429b(_0x30f352,_0xee31c8)},_0x145cd3=function(_0x3412cf,_0x26e4cf,_0x3cebce,_0x22a53a){const _0x39cb73=_0x235866;for(let _0x5b341c=0x0;_0x5b341c<_0x3412cf[_0x39cb73(0x205b)];_0x5b341c+=0x1){let _0x5749b6=_0x3412cf[_0x5b341c];if(_0x5749b6[_0x39cb73(0x2013)]===_0x26e4cf[_0x39cb73(0x4cb)])return _0x5749b6[_0x39cb73(0x4284)];if(null!==_0x22a53a&&_0x22a53a===_0x5749b6[_0x39cb73(0x1f69)])return[_0x3cebce]['concat'](_0x5749b6['out']);if(null!==_0x3cebce&&_0x3cebce===_0x5749b6[_0x39cb73(0x19f2)]&&_0x22a53a&&_0x22a53a[_0x39cb73(0x205b)]>0x2)return _0x5749b6[_0x39cb73(0x4284)]['concat'](_0x22a53a);}return null;},_0x20dd45=function(_0x52a5d0,_0x5ea257){const _0x1bccd5=_0x235866;let _0x30a5f1=_0x5ea257[_0x1bccd5(0x3e8f)](_0x52a5d0['join']('\x20'));return _0x30a5f1[_0x1bccd5(0x210d)](['id',_0x1bccd5(0x1f89)]),_0x30a5f1['docs'][0x0];},_0x393f25=function(_0x568419,_0xdbb62f){const _0x2ac814=_0x235866;for(let _0x3bd125=_0xdbb62f+0x1;_0x3bd125<0x5&&_0x568419[_0x3bd125];_0x3bd125+=0x1)if(_0x2ac814(0x182e)===_0x568419[_0x3bd125][_0x2ac814(0x4cb)])return[_0x2ac814(0x2105),_0x2ac814(0x5ec)];return[_0x2ac814(0x2105),'is'];},_0x4882e9=_0x37a4dd=>{const _0x3375e3=_0x235866;let {world:_0x38af82,document:_0x22217f}=_0x37a4dd;const {model:_0x3ace5f,methods:_0x22107b}=_0x38af82;let _0x2992a2=_0x3ace5f['one'][_0x3375e3(0x3acb)]||[];_0x22217f[_0x3375e3(0x4854)]((_0x1e9520,_0x661eee)=>{const _0x47fc31=_0x3375e3;for(let _0x1f385=_0x1e9520['length']-0x1;_0x1f385>=0x0;_0x1f385-=0x1){let _0x42181f=null,_0x5489b7=null;if(!0x0===_0x3e3a21[_0x47fc31(0x34c)](_0x1e9520[_0x1f385][_0x47fc31(0x4cb)])){let _0x595f85=_0x1e9520[_0x1f385][_0x47fc31(0x4cb)][_0x47fc31(0x29d0)](_0x3e3a21);_0x42181f=_0x595f85[0x0],_0x5489b7=_0x595f85[0x1];}let _0x573d0e=_0x145cd3(_0x2992a2,_0x1e9520[_0x1f385],_0x42181f,_0x5489b7);!_0x573d0e&&_0xc1c4e9[_0x47fc31(0x32b5)](_0x5489b7)&&(_0x573d0e=_0xc1c4e9[_0x5489b7](_0x1e9520,_0x1f385,_0x38af82)),!_0x573d0e&&_0x553863[_0x47fc31(0x32b5)](_0x42181f)&&(_0x573d0e=_0x553863[_0x42181f](_0x1e9520,_0x1f385)),'there'===_0x42181f&&'s'===_0x5489b7&&(_0x573d0e=_0x393f25(_0x1e9520,_0x1f385)),_0x573d0e?(_0x573d0e=_0x20dd45(_0x573d0e,_0x37a4dd),_0xe1a4ab(_0x22217f,[_0x661eee,_0x1f385],_0x573d0e),_0x30e259(_0x22217f[_0x661eee],_0x37a4dd,_0x1f385,_0x573d0e[_0x47fc31(0x205b)])):_0x58478e[_0x47fc31(0x34c)](_0x1e9520[_0x1f385][_0x47fc31(0x4cb)])?(_0x573d0e=_0x2293bc(_0x1e9520,_0x1f385),_0x573d0e&&(_0x573d0e=_0x20dd45(_0x573d0e,_0x37a4dd),_0xe1a4ab(_0x22217f,[_0x661eee,_0x1f385],_0x573d0e),_0x22107b[_0x47fc31(0x4116)]['setTag'](_0x573d0e,_0x47fc31(0x2bbf),_0x38af82),_0x573d0e[0x2]&&_0x573d0e[0x2][_0x47fc31(0x23d1)][_0x47fc31(0x5ec)](_0x47fc31(0x17ed))&&_0x22107b[_0x47fc31(0x4116)][_0x47fc31(0xe58)]([_0x573d0e[0x0]],'Time',_0x38af82,null,_0x47fc31(0x3bec)),_0x30e259(_0x22217f[_0x661eee],_0x37a4dd,_0x1f385,_0x573d0e[_0x47fc31(0x205b)]))):(_0x573d0e=_0x4c99c8(_0x1e9520,_0x1f385,_0x38af82),_0x573d0e&&(_0x573d0e=_0x20dd45(_0x573d0e,_0x37a4dd),_0xe1a4ab(_0x22217f,[_0x661eee,_0x1f385],_0x573d0e),_0x22107b[_0x47fc31(0x4116)][_0x47fc31(0xe58)]([_0x573d0e[0x1]],'Unit',_0x38af82,null,_0x47fc31(0x2aaa))));}});},_0x1876cc={'model':_0x5957b0,'compute':{'contractions':_0x4882e9},'hooks':[_0x235866(0x3acb)]},_0x1d290a=function(_0x47ecf8){const _0xf9b023=_0x235866,_0x53b06e=_0x47ecf8[_0xf9b023(0x3e71)],{model:_0x3973f6,methods:_0x26347c}=_0x47ecf8[_0xf9b023(0x3e71)],_0x435e97=_0x26347c[_0xf9b023(0x4116)][_0xf9b023(0xe58)],{frozenLex:_0x2221a8}=_0x3973f6[_0xf9b023(0x4116)],_0x2d4cd9=_0x3973f6[_0xf9b023(0x4116)]['_multiCache']||{};_0x47ecf8[_0xf9b023(0x3f72)][_0xf9b023(0x4854)](_0x2a47a5=>{const _0x4dca87=_0xf9b023;for(let _0x5f2037=0x0;_0x5f2037<_0x2a47a5['length'];_0x5f2037+=0x1){let _0x35dc9a=_0x2a47a5[_0x5f2037],_0x16f18a=_0x35dc9a[_0x4dca87(0x194)]||_0x35dc9a[_0x4dca87(0x4cb)];if(void 0x0!==_0x2d4cd9[_0x16f18a]&&_0x2a47a5[_0x5f2037+0x1])for(let _0x292632=_0x5f2037+_0x2d4cd9[_0x16f18a]-0x1;_0x292632>_0x5f2037;_0x292632-=0x1){let _0x4f11be=_0x2a47a5[_0x4dca87(0x428e)](_0x5f2037,_0x292632+0x1),_0x4223cf=_0x4f11be[_0x4dca87(0x2c94)](_0x9ade69=>_0x9ade69[_0x4dca87(0x194)]||_0x9ade69['normal'])['join']('\x20');!0x0!==_0x2221a8['hasOwnProperty'](_0x4223cf)||(_0x435e97(_0x4f11be,_0x2221a8[_0x4223cf],_0x53b06e,!0x1,_0x4dca87(0x228b)),_0x4f11be[_0x4dca87(0x4854)](_0x5df331=>_0x5df331['frozen']=!0x0));}void 0x0!==_0x2221a8[_0x16f18a]&&_0x2221a8[_0x4dca87(0x32b5)](_0x16f18a)&&(_0x435e97([_0x35dc9a],_0x2221a8[_0x16f18a],_0x53b06e,!0x1,_0x4dca87(0x1eaf)),_0x35dc9a['frozen']=!0x0);}});},_0x4b1deb=_0xfabcdf=>_0x235866(0x255c)+_0xfabcdf+_0x235866(0x4397),_0x536226=function(_0x302a88){const _0x818437=_0x235866;_0x302a88[_0x818437(0x3f72)]['forEach'](_0x5ee682=>{const _0x3a5203=_0x818437;_0x5ee682[_0x3a5203(0x4854)](_0x26bc45=>{const _0xa8942e=_0x3a5203;let _0x327214='\x20\x20'+_0x4b1deb('│')+'\x20\x20',_0x2a7ade=_0x26bc45[_0xa8942e(0x15c0)]||_0x26bc45['text']||'-';!0x0===_0x26bc45[_0xa8942e(0x2356)]?_0x327214+=(_0x3b1164=>_0xa8942e(0xc7d)+_0x3b1164+_0xa8942e(0x4397))(_0x2a7ade)+_0xa8942e(0x3bc4):_0x327214+=_0x4b1deb(_0x2a7ade);});});},_0x4cb09b={'compute':{'frozen':_0x1d290a,'freeze':_0x1d290a,'unfreeze':function(_0x2a02cb){const _0x537a5b=_0x235866;return _0x2a02cb[_0x537a5b(0x3f72)]['forEach'](_0x212721=>{_0x212721['forEach'](_0x3e30aa=>{const _0x4e78f9=a0_0x329b;delete _0x3e30aa[_0x4e78f9(0x2356)];});}),_0x2a02cb;}},'mutate':_0xf7ba2d=>{const _0x2a067d=_0x235866,_0x28bdff=_0xf7ba2d[_0x2a067d(0x8f)]['one'];_0x28bdff['termMethods']['isFrozen']=_0x12efa6=>!0x0===_0x12efa6[_0x2a067d(0x2356)],_0x28bdff[_0x2a067d(0x4e41)][_0x2a067d(0x2cba)]=_0x536226,_0x28bdff[_0x2a067d(0x4e41)][_0x2a067d(0x2356)]=_0x536226;},'api':function(_0x241f29){const _0x485f1f=_0x235866;_0x241f29['prototype'][_0x485f1f(0x2cba)]=function(){const _0x390772=_0x485f1f;return this['docs'][_0x390772(0x4854)](_0x204fdc=>{const _0x586704=_0x390772;_0x204fdc[_0x586704(0x4854)](_0x5338a7=>{const _0x57bb5c=_0x586704;_0x5338a7[_0x57bb5c(0x2356)]=!0x0;});}),this;},_0x241f29['prototype'][_0x485f1f(0x483a)]=function(){const _0x3df607=_0x485f1f;this[_0x3df607(0x210d)](_0x3df607(0x483a));},_0x241f29[_0x485f1f(0x2b5c)][_0x485f1f(0x31eb)]=function(){const _0x3d613e=_0x485f1f;return this[_0x3d613e(0xdc0)](_0x3d613e(0x291f));};},'hooks':[_0x235866(0x2cba)]},_0x38e6ee=function(_0x35a9a2,_0x1a2f19,_0x4f6157){const _0xd13cc5=_0x235866,{model:_0x44ac02,methods:_0x4c495b}=_0x4f6157,_0x32a933=_0x4c495b[_0xd13cc5(0x4116)]['setTag'],_0x285e58=_0x44ac02[_0xd13cc5(0x4116)][_0xd13cc5(0x1398)]||{},{lexicon:_0x562dee}=_0x44ac02[_0xd13cc5(0x4116)]||{};let _0x51a158=_0x35a9a2[_0x1a2f19],_0xeb1ab2=_0x51a158[_0xd13cc5(0x194)]||_0x51a158['normal'];if(void 0x0!==_0x285e58[_0xeb1ab2]&&_0x35a9a2[_0x1a2f19+0x1]){for(let _0x49a342=_0x1a2f19+_0x285e58[_0xeb1ab2]-0x1;_0x49a342>_0x1a2f19;_0x49a342-=0x1){let _0x99887e=_0x35a9a2[_0xd13cc5(0x428e)](_0x1a2f19,_0x49a342+0x1);if(_0x99887e[_0xd13cc5(0x205b)]<=0x1)return!0x1;let _0x5a8674=_0x99887e[_0xd13cc5(0x2c94)](_0x40e986=>_0x40e986[_0xd13cc5(0x194)]||_0x40e986[_0xd13cc5(0x4cb)])[_0xd13cc5(0x379c)]('\x20');if(!0x0===_0x562dee['hasOwnProperty'](_0x5a8674)){let _0x2c543d=_0x562dee[_0x5a8674];return _0x32a933(_0x99887e,_0x2c543d,_0x4f6157,!0x1,'1-multi-lexicon'),!_0x2c543d||0x2!==_0x2c543d['length']||_0xd13cc5(0x4634)!==_0x2c543d[0x0]&&_0xd13cc5(0x4634)!==_0x2c543d[0x1]||_0x32a933([_0x99887e[0x1]],_0xd13cc5(0x3b42),_0x4f6157,!0x1,_0xd13cc5(0x4dd9)),!0x0;}}return!0x1;}return null;},_0x24e7b2=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,_0x3193ce=new Set([_0x235866(0x41f2),_0x235866(0x24ba),_0x235866(0x2192),_0x235866(0x1e19),_0x235866(0x17a6),_0x235866(0x19b5),'Participle']),_0xcf7cb9=function(_0x4f7981,_0x235830,_0x55c9ce){const _0x12e67f=_0x235866,{model:_0x1e68e6,methods:_0x2c0a28}=_0x55c9ce,_0x561c54=_0x2c0a28['one'][_0x12e67f(0xe58)],{lexicon:_0x268684}=_0x1e68e6[_0x12e67f(0x4116)];let _0x336c3b=_0x4f7981[_0x235830],_0x5a2f3f=_0x336c3b[_0x12e67f(0x194)]||_0x336c3b['normal'];if(void 0x0!==_0x268684[_0x5a2f3f]&&_0x268684[_0x12e67f(0x32b5)](_0x5a2f3f))return _0x561c54([_0x336c3b],_0x268684[_0x5a2f3f],_0x55c9ce,!0x1,'1-lexicon'),!0x0;if(_0x336c3b[_0x12e67f(0x1f89)]){let _0x5be10e=_0x336c3b[_0x12e67f(0x1f89)][_0x12e67f(0x12b9)](_0x10bd05=>_0x268684['hasOwnProperty'](_0x10bd05));if(_0x5be10e)return _0x561c54([_0x336c3b],_0x268684[_0x5be10e],_0x55c9ce,!0x1,_0x12e67f(0x4933)),!0x0;}if(!0x0===_0x24e7b2['test'](_0x5a2f3f)){let _0x3ef3c1=_0x5a2f3f[_0x12e67f(0x1db7)](_0x24e7b2,'');if(_0x268684[_0x12e67f(0x32b5)](_0x3ef3c1)&&_0x3ef3c1[_0x12e67f(0x205b)]>0x3&&_0x3193ce[_0x12e67f(0x5ec)](_0x268684[_0x3ef3c1]))return _0x561c54([_0x336c3b],_0x268684[_0x3ef3c1],_0x55c9ce,!0x1,'1-lexicon-prefix'),!0x0;}return null;},_0x5aea05={'lexicon':function(_0x5d5301){const _0x2d62bf=_0x235866,_0x43e49=_0x5d5301['world'];_0x5d5301['docs'][_0x2d62bf(0x4854)](_0x5ee396=>{const _0x1a9f4e=_0x2d62bf;for(let _0xf17876=0x0;_0xf17876<_0x5ee396[_0x1a9f4e(0x205b)];_0xf17876+=0x1)if(0x0===_0x5ee396[_0xf17876][_0x1a9f4e(0x23d1)]['size']){let _0x1d7f1c=null;_0x1d7f1c=_0x1d7f1c||_0x38e6ee(_0x5ee396,_0xf17876,_0x43e49),_0x1d7f1c=_0x1d7f1c||_0xcf7cb9(_0x5ee396,_0xf17876,_0x43e49);}});}},_0x4e52d2=function(_0x1c7dbd){const _0x4fb12e=_0x235866;let _0x58b5d6={},_0x2fd281={};return Object[_0x4fb12e(0x2f75)](_0x1c7dbd)[_0x4fb12e(0x4854)](_0x3d22ac=>{const _0x4d93dc=_0x4fb12e;let _0x16d4d5=_0x1c7dbd[_0x3d22ac],_0x35ce4a=(_0x3d22ac=(_0x3d22ac=_0x3d22ac[_0x4d93dc(0x1a57)]()[_0x4d93dc(0x1d0e)]())['replace'](/'s\b/,''))[_0x4d93dc(0x29d0)](/ /);_0x35ce4a[_0x4d93dc(0x205b)]>0x1&&(void 0x0===_0x2fd281[_0x35ce4a[0x0]]||_0x35ce4a[_0x4d93dc(0x205b)]>_0x2fd281[_0x35ce4a[0x0]])&&(_0x2fd281[_0x35ce4a[0x0]]=_0x35ce4a[_0x4d93dc(0x205b)]),_0x58b5d6[_0x3d22ac]=_0x58b5d6[_0x3d22ac]||_0x16d4d5;}),delete _0x58b5d6[''],delete _0x58b5d6['null'],delete _0x58b5d6['\x20'],{'lex':_0x58b5d6,'_multi':_0x2fd281};},_0x1adf86={'addWords':function(_0xddd07d,_0x2e1c0d=!0x1){const _0x384679=_0x235866,_0x5be774=this['world'](),{methods:_0x4b0c35,model:_0x3cc195}=_0x5be774;if(!_0xddd07d)return;if(Object[_0x384679(0x2f75)](_0xddd07d)['forEach'](_0x5d3920=>{const _0x842a7e=_0x384679;_0x842a7e(0x4f7c)==typeof _0xddd07d[_0x5d3920]&&_0xddd07d[_0x5d3920][_0x842a7e(0xe6e)]('#')&&(_0xddd07d[_0x5d3920]=_0xddd07d[_0x5d3920][_0x842a7e(0x1db7)](/^#/,''));}),!0x0===_0x2e1c0d){let {lex:_0x273f4b,_multi:_0x18d3af}=_0x4b0c35['one']['expandLexicon'](_0xddd07d,_0x5be774);return Object[_0x384679(0x11e8)](_0x3cc195['one'][_0x384679(0x1398)],_0x18d3af),void Object[_0x384679(0x11e8)](_0x3cc195[_0x384679(0x4116)][_0x384679(0x417a)],_0x273f4b);}if(_0x4b0c35[_0x384679(0x141f)][_0x384679(0x24fd)]){let {lex:_0x413e08,_multi:_0x2ff9fa}=_0x4b0c35[_0x384679(0x141f)]['expandLexicon'](_0xddd07d,_0x5be774);Object[_0x384679(0x11e8)](_0x3cc195['one'][_0x384679(0x4ab0)],_0x413e08),Object['assign'](_0x3cc195['one'][_0x384679(0x1398)],_0x2ff9fa);}let {lex:_0x606a40,_multi:_0x44ef9f}=_0x4b0c35[_0x384679(0x4116)][_0x384679(0x24fd)](_0xddd07d,_0x5be774);Object[_0x384679(0x11e8)](_0x3cc195['one']['lexicon'],_0x606a40),Object[_0x384679(0x11e8)](_0x3cc195[_0x384679(0x4116)][_0x384679(0x1398)],_0x44ef9f);}},_0x1ec109={'model':{'one':{'lexicon':{},'_multiCache':{},'frozenLex':{}}},'methods':{'one':{'expandLexicon':_0x4e52d2}},'compute':_0x5aea05,'lib':_0x1adf86,'hooks':['lexicon']},_0x1ecdfb=function(_0x1a4416,_0x31a5c5){const _0x4a5ed5=_0x235866;let _0x1fc1c7=[{}],_0x2d6888=[null],_0x5d1fe7=[0x0],_0x138c93=[],_0x55d581=0x0;_0x1a4416[_0x4a5ed5(0x4854)](function(_0xa33e43){const _0x53111c=_0x4a5ed5;let _0x258c30=0x0,_0x202ea9=function(_0x4e6141,_0x260d0a){const _0x15cbad=a0_0x329b,{methods:_0x4c284c,model:_0x52c9e8}=_0x260d0a;let _0x3801e4=_0x4c284c[_0x15cbad(0x4116)][_0x15cbad(0x44f9)][_0x15cbad(0x1a47)](_0x4e6141,_0x52c9e8)['map'](_0x329041=>_0x4c284c[_0x15cbad(0x4116)][_0x15cbad(0x44f9)][_0x15cbad(0x486a)](_0x329041,_0x52c9e8));return _0x3801e4[_0x15cbad(0x2c94)](_0x2410d4=>_0x2410d4['text']['toLowerCase']());}(_0xa33e43,_0x31a5c5);for(let _0x582b86=0x0;_0x582b86<_0x202ea9[_0x53111c(0x205b)];_0x582b86++){let _0x3b74eb=_0x202ea9[_0x582b86];_0x1fc1c7[_0x258c30]&&_0x1fc1c7[_0x258c30]['hasOwnProperty'](_0x3b74eb)?_0x258c30=_0x1fc1c7[_0x258c30][_0x3b74eb]:(_0x55d581++,_0x1fc1c7[_0x258c30][_0x3b74eb]=_0x55d581,_0x1fc1c7[_0x55d581]={},_0x258c30=_0x55d581,_0x2d6888[_0x55d581]=null);}_0x2d6888[_0x258c30]=[_0x202ea9['length']];});for(let _0x2cc7a0 in _0x1fc1c7[0x0])_0x55d581=_0x1fc1c7[0x0][_0x2cc7a0],_0x5d1fe7[_0x55d581]=0x0,_0x138c93['push'](_0x55d581);for(;_0x138c93[_0x4a5ed5(0x205b)];){let _0xdbeec0=_0x138c93[_0x4a5ed5(0x13fc)](),_0x4676a2=Object[_0x4a5ed5(0x2f75)](_0x1fc1c7[_0xdbeec0]);for(let _0x38c484=0x0;_0x38c484<_0x4676a2['length'];_0x38c484+=0x1){let _0x50463a=_0x4676a2[_0x38c484],_0x4b1230=_0x1fc1c7[_0xdbeec0][_0x50463a];for(_0x138c93[_0x4a5ed5(0x4131)](_0x4b1230),_0x55d581=_0x5d1fe7[_0xdbeec0];_0x55d581>0x0&&!_0x1fc1c7[_0x55d581][_0x4a5ed5(0x32b5)](_0x50463a);)_0x55d581=_0x5d1fe7[_0x55d581];if(_0x1fc1c7[_0x4a5ed5(0x32b5)](_0x55d581)){let _0x4ff724=_0x1fc1c7[_0x55d581][_0x50463a];_0x5d1fe7[_0x4b1230]=_0x4ff724,_0x2d6888[_0x4ff724]&&(_0x2d6888[_0x4b1230]=_0x2d6888[_0x4b1230]||[],_0x2d6888[_0x4b1230]=_0x2d6888[_0x4b1230][_0x4a5ed5(0x41bf)](_0x2d6888[_0x4ff724]));}else _0x5d1fe7[_0x4b1230]=0x0;}}return{'goNext':_0x1fc1c7,'endAs':_0x2d6888,'failTo':_0x5d1fe7};},_0x1d9887=function(_0x5efe6f,_0x33eae9,_0x4be563){const _0x5f294f=_0x235866;let _0x4c2ef2=0x0,_0x1fbd7b=[];for(let _0x2aa4a2=0x0;_0x2aa4a2<_0x5efe6f[_0x5f294f(0x205b)];_0x2aa4a2++){let _0x131631=_0x5efe6f[_0x2aa4a2][_0x4be563[_0x5f294f(0x377b)]]||_0x5efe6f[_0x2aa4a2][_0x5f294f(0x4cb)];for(;_0x4c2ef2>0x0&&(void 0x0===_0x33eae9['goNext'][_0x4c2ef2]||!_0x33eae9[_0x5f294f(0x2da8)][_0x4c2ef2][_0x5f294f(0x32b5)](_0x131631));)_0x4c2ef2=_0x33eae9['failTo'][_0x4c2ef2]||0x0;if(_0x33eae9['goNext'][_0x4c2ef2][_0x5f294f(0x32b5)](_0x131631)&&(_0x4c2ef2=_0x33eae9['goNext'][_0x4c2ef2][_0x131631],_0x33eae9['endAs'][_0x4c2ef2])){let _0x375dc8=_0x33eae9[_0x5f294f(0x213)][_0x4c2ef2];for(let _0x2ee9f5=0x0;_0x2ee9f5<_0x375dc8[_0x5f294f(0x205b)];_0x2ee9f5++){let _0x10b9b9=_0x375dc8[_0x2ee9f5],_0x4cff2d=_0x5efe6f[_0x2aa4a2-_0x10b9b9+0x1],[_0x382440,_0x51b28c]=_0x4cff2d[_0x5f294f(0x1cf3)];_0x1fbd7b[_0x5f294f(0x4131)]([_0x382440,_0x51b28c,_0x51b28c+_0x10b9b9,_0x4cff2d['id']]);}}}return _0x1fbd7b;},_0x504fa3=function(_0x30258a,_0x40fc14){const _0x501eb8=_0x235866;for(let _0x59a823=0x0;_0x59a823<_0x30258a[_0x501eb8(0x205b)];_0x59a823+=0x1)if(!0x0===_0x40fc14[_0x501eb8(0x5ec)](_0x30258a[_0x59a823]))return!0x1;return!0x0;},_0x3c1ac8=function(_0x538fda,_0x1e2643,_0x4d7a7e){const _0x3e8f87=_0x235866;let _0x1afc56=[];_0x4d7a7e['form']=_0x4d7a7e[_0x3e8f87(0x377b)]||_0x3e8f87(0x4cb);let _0x39ab3a=_0x538fda[_0x3e8f87(0x3f72)];if(!_0x1e2643[_0x3e8f87(0x2da8)]||!_0x1e2643[_0x3e8f87(0x2da8)][0x0])return _0x538fda['none']();let _0xd68068=Object[_0x3e8f87(0x2f75)](_0x1e2643['goNext'][0x0]);for(let _0x19db53=0x0;_0x19db53<_0x39ab3a[_0x3e8f87(0x205b)];_0x19db53++){if(_0x538fda[_0x3e8f87(0x1d5f)]&&_0x538fda[_0x3e8f87(0x1d5f)][_0x19db53]&&!0x0===_0x504fa3(_0xd68068,_0x538fda[_0x3e8f87(0x1d5f)][_0x19db53]))continue;let _0x1007a8=_0x39ab3a[_0x19db53],_0x34db4e=_0x1d9887(_0x1007a8,_0x1e2643,_0x4d7a7e);_0x34db4e[_0x3e8f87(0x205b)]>0x0&&(_0x1afc56=_0x1afc56[_0x3e8f87(0x41bf)](_0x34db4e));}return _0x538fda['update'](_0x1afc56);},_0x176b91=(_0x2af7aa,_0x3d997d)=>{const _0x14595f=_0x235866;for(let _0x214616=_0x2af7aa[_0x14595f(0x205b)]-0x1;_0x214616>=0x0;_0x214616-=0x1)if(_0x2af7aa[_0x214616]!==_0x3d997d)return _0x2af7aa=_0x2af7aa[_0x14595f(0x428e)](0x0,_0x214616+0x1);return _0x2af7aa;},_0x5e57b3=function(_0x4b8bef){const _0x5edd19=_0x235866;return _0x4b8bef[_0x5edd19(0x2da8)]=_0x4b8bef[_0x5edd19(0x2da8)][_0x5edd19(0x2c94)](_0x200151=>{const _0x5013bd=_0x5edd19;if(0x0!==Object[_0x5013bd(0x2f75)](_0x200151)[_0x5013bd(0x205b)])return _0x200151;}),_0x4b8bef['goNext']=_0x176b91(_0x4b8bef[_0x5edd19(0x2da8)],void 0x0),_0x4b8bef[_0x5edd19(0x2f48)]=_0x176b91(_0x4b8bef[_0x5edd19(0x2f48)],0x0),_0x4b8bef['endAs']=_0x176b91(_0x4b8bef[_0x5edd19(0x213)],null),_0x4b8bef;},_0x426045={'buildTrie':function(_0x203003){const _0x2ae611=_0x1ecdfb(_0x203003,this['world']());return _0x5e57b3(_0x2ae611);}};_0x426045[_0x235866(0x39c)]=_0x426045[_0x235866(0x1836)];const _0x2fa8bb={'api':function(_0x2ffddf){const _0x1cc924=_0x235866;_0x2ffddf['prototype'][_0x1cc924(0x4bad)]=function(_0x2c3370,_0x23612b={}){const _0xc565ae=_0x1cc924;if(!_0x2c3370)return this[_0xc565ae(0x80b)]();'string'==typeof _0x2c3370&&(_0x2c3370=[_0x2c3370]);let _0xd087ad=(_0x1c4d00=_0x2c3370,_0xc565ae(0x2f7a)===Object[_0xc565ae(0x2b5c)][_0xc565ae(0x44de)][_0xc565ae(0x4c9d)](_0x1c4d00)?_0x2c3370:_0x1ecdfb(_0x2c3370,this[_0xc565ae(0x3e71)]));var _0x1c4d00;let _0xae8f52=_0x3c1ac8(this,_0xd087ad,_0x23612b);return _0xae8f52=_0xae8f52[_0xc565ae(0x4db4)](),_0xae8f52;};},'lib':_0x426045},_0x31ab9d=function(_0x6201e,_0x5f59b0){const _0x2f1521=_0x235866;return _0x5f59b0?(_0x6201e[_0x2f1521(0x4854)](_0x3d89cd=>{let _0x1103ef=_0x3d89cd[0x0];_0x5f59b0[_0x1103ef]&&(_0x3d89cd[0x0]=_0x5f59b0[_0x1103ef][0x0],_0x3d89cd[0x1]+=_0x5f59b0[_0x1103ef][0x1],_0x3d89cd[0x2]+=_0x5f59b0[_0x1103ef][0x1]);}),_0x6201e):_0x6201e;},_0x1c6145=function(_0x2c1693,_0x2212b0){const _0x4de0db=_0x235866;let {ptrs:_0x423047,byGroup:_0x18d279}=_0x2c1693;return _0x423047=_0x31ab9d(_0x423047,_0x2212b0),Object[_0x4de0db(0x2f75)](_0x18d279)[_0x4de0db(0x4854)](_0x1d567d=>{_0x18d279[_0x1d567d]=_0x31ab9d(_0x18d279[_0x1d567d],_0x2212b0);}),{'ptrs':_0x423047,'byGroup':_0x18d279};},_0x308991=function(_0x1c487,_0x4f4e7c,_0x395f66){const _0x40df1e=_0x235866,_0x21531e=_0x395f66['methods'][_0x40df1e(0x4116)];return _0x40df1e(0x1ed7)==typeof _0x1c487&&(_0x1c487=String(_0x1c487)),'string'==typeof _0x1c487&&(_0x1c487=_0x21531e[_0x40df1e(0x28c5)](_0x1c487,_0x395f66),_0x1c487=_0x21531e[_0x40df1e(0x763)](_0x1c487,_0x4f4e7c,_0x395f66)),_0x1c487;},_0x831d4d=_0x54c034=>_0x235866(0x2f7a)===Object[_0x235866(0x2b5c)][_0x235866(0x44de)][_0x235866(0x4c9d)](_0x54c034),_0x374748=_0x473631=>_0x473631&&_0x831d4d(_0x473631)&&!0x0===_0x473631[_0x235866(0x2704)],_0x240940=_0x28a6bc=>_0x28a6bc&&_0x831d4d(_0x28a6bc)&&!0x0===_0x28a6bc['isNet'],_0x2756a2={'matchOne':function(_0x18093a,_0x57b1c3,_0xeaef20){const _0x31da95=_0x235866,_0x2e1d25=this[_0x31da95(0x8f)][_0x31da95(0x4116)];if(_0x374748(_0x18093a))return this[_0x31da95(0x31f9)](_0x18093a)['eq'](0x0);if(_0x240940(_0x18093a))return this[_0x31da95(0x1380)](_0x18093a,{'tagger':!0x1,'matchOne':!0x0})[_0x31da95(0x21af)];let _0x280d25={'regs':_0x18093a=_0x308991(_0x18093a,_0xeaef20,this[_0x31da95(0x3e71)]),'group':_0x57b1c3,'justOne':!0x0},_0x3235cc=_0x2e1d25[_0x31da95(0xdc0)](this[_0x31da95(0x3f72)],_0x280d25,this['_cache']),{ptrs:_0x38d496,byGroup:_0x5800ff}=_0x1c6145(_0x3235cc,this[_0x31da95(0x48da)]),_0x45188d=this[_0x31da95(0xc6b)](_0x38d496);return _0x45188d[_0x31da95(0x50b3)]=_0x5800ff,_0x45188d;},'match':function(_0xc5ed3f,_0x5e6274,_0x1b9574){const _0x52a5e4=_0x235866,_0x3c96ce=this[_0x52a5e4(0x8f)][_0x52a5e4(0x4116)];if(_0x374748(_0xc5ed3f))return this['intersection'](_0xc5ed3f);if(_0x240940(_0xc5ed3f))return this['sweep'](_0xc5ed3f,{'tagger':!0x1})[_0x52a5e4(0x21af)]['settle']();let _0x5f46ea={'regs':_0xc5ed3f=_0x308991(_0xc5ed3f,_0x1b9574,this['world']),'group':_0x5e6274},_0xf24f56=_0x3c96ce['match'](this[_0x52a5e4(0x3f72)],_0x5f46ea,this[_0x52a5e4(0x1d5f)]),{ptrs:_0xf66c45,byGroup:_0x41df84}=_0x1c6145(_0xf24f56,this[_0x52a5e4(0x48da)]),_0x1d7b4e=this[_0x52a5e4(0xc6b)](_0xf66c45);return _0x1d7b4e[_0x52a5e4(0x50b3)]=_0x41df84,_0x1d7b4e;},'has':function(_0x40d266,_0x478f1c,_0xe128b2){const _0x1c0dd5=_0x235866,_0x53d747=this['methods'][_0x1c0dd5(0x4116)];if(_0x374748(_0x40d266))return this[_0x1c0dd5(0x31f9)](_0x40d266)[_0x1c0dd5(0x48da)][_0x1c0dd5(0x205b)]>0x0;if(_0x240940(_0x40d266))return this[_0x1c0dd5(0x1380)](_0x40d266,{'tagger':!0x1})[_0x1c0dd5(0x21af)][_0x1c0dd5(0x622)];let _0x5b3748={'regs':_0x40d266=_0x308991(_0x40d266,_0xe128b2,this[_0x1c0dd5(0x3e71)]),'group':_0x478f1c,'justOne':!0x0};return _0x53d747[_0x1c0dd5(0xdc0)](this[_0x1c0dd5(0x3f72)],_0x5b3748,this[_0x1c0dd5(0x1d5f)])[_0x1c0dd5(0x33fe)]['length']>0x0;},'if':function(_0x5b59c8,_0x533268,_0x2e108f){const _0x43e0ee=_0x235866,_0x1996f8=this[_0x43e0ee(0x8f)][_0x43e0ee(0x4116)];if(_0x374748(_0x5b59c8))return this[_0x43e0ee(0x295e)](_0x2f2689=>_0x2f2689[_0x43e0ee(0x31f9)](_0x5b59c8)[_0x43e0ee(0x622)]);if(_0x240940(_0x5b59c8)){let _0xa195e9=this[_0x43e0ee(0x1380)](_0x5b59c8,{'tagger':!0x1})[_0x43e0ee(0x21af)][_0x43e0ee(0x4db4)]();return this['if'](_0xa195e9);}let _0x4d3711={'regs':_0x5b59c8=_0x308991(_0x5b59c8,_0x2e108f,this[_0x43e0ee(0x3e71)]),'group':_0x533268,'justOne':!0x0},_0x51b2c1=this[_0x43e0ee(0x48da)],_0x5eac68=this[_0x43e0ee(0x1d5f)]||[];_0x51b2c1=_0x51b2c1[_0x43e0ee(0x295e)]((_0x21ca8d,_0xc71dca)=>{const _0xbe90ed=_0x43e0ee;let _0x5bb0e1=this[_0xbe90ed(0xf93)]([_0x21ca8d]);return _0x1996f8[_0xbe90ed(0xdc0)](_0x5bb0e1[_0xbe90ed(0x3f72)],_0x4d3711,_0x5eac68[_0xc71dca])[_0xbe90ed(0x33fe)][_0xbe90ed(0x205b)]>0x0;});let _0x2d930a=this[_0x43e0ee(0xf93)](_0x51b2c1);return this[_0x43e0ee(0x1d5f)]&&(_0x2d930a[_0x43e0ee(0x1d5f)]=_0x51b2c1[_0x43e0ee(0x2c94)](_0x3713ec=>_0x5eac68[_0x3713ec[0x0]])),_0x2d930a;},'ifNo':function(_0xd3d393,_0x3ea763,_0x14b0da){const _0x4e3ee0=_0x235866,{methods:_0x4c0ee4}=this,_0x50a1ec=_0x4c0ee4[_0x4e3ee0(0x4116)];if(_0x374748(_0xd3d393))return this[_0x4e3ee0(0x295e)](_0x412252=>!_0x412252[_0x4e3ee0(0x31f9)](_0xd3d393)[_0x4e3ee0(0x622)]);if(_0x240940(_0xd3d393)){let _0x2dad11=this['sweep'](_0xd3d393,{'tagger':!0x1})[_0x4e3ee0(0x21af)][_0x4e3ee0(0x4db4)]();return this[_0x4e3ee0(0x4641)](_0x2dad11);}_0xd3d393=_0x308991(_0xd3d393,_0x14b0da,this[_0x4e3ee0(0x3e71)]);let _0x118692=this[_0x4e3ee0(0x1d5f)]||[],_0x402df0=this[_0x4e3ee0(0x295e)]((_0x2507d8,_0x2a8e95)=>{const _0x10623b=_0x4e3ee0;let _0xe5765f={'regs':_0xd3d393,'group':_0x3ea763,'justOne':!0x0};return 0x0===_0x50a1ec['match'](_0x2507d8[_0x10623b(0x3f72)],_0xe5765f,_0x118692[_0x2a8e95])[_0x10623b(0x33fe)]['length'];});return this[_0x4e3ee0(0x1d5f)]&&(_0x402df0['_cache']=_0x402df0['ptrs']['map'](_0xc2aa0d=>_0x118692[_0xc2aa0d[0x0]])),_0x402df0;}},_0x3f2af8={'before':function(_0x2dd651,_0x472aa4,_0x32ef37){const _0x5ad1ee=_0x235866,{indexN:_0x275baa}=this[_0x5ad1ee(0x8f)][_0x5ad1ee(0x4116)]['pointer'];let _0x56b603=[],_0x3eb2c2=_0x275baa(this[_0x5ad1ee(0x48da)]);Object[_0x5ad1ee(0x2f75)](_0x3eb2c2)[_0x5ad1ee(0x4854)](_0x531c5a=>{const _0x39b476=_0x5ad1ee;let _0xb0ace1=_0x3eb2c2[_0x531c5a][_0x39b476(0x509)]((_0x1e46c5,_0x132a9c)=>_0x1e46c5[0x1]>_0x132a9c[0x1]?0x1:-0x1)[0x0];_0xb0ace1[0x1]>0x0&&_0x56b603[_0x39b476(0x4131)]([_0xb0ace1[0x0],0x0,_0xb0ace1[0x1]]);});let _0x3911c1=this[_0x5ad1ee(0xc6b)](_0x56b603);return _0x2dd651?_0x3911c1[_0x5ad1ee(0xdc0)](_0x2dd651,_0x472aa4,_0x32ef37):_0x3911c1;},'after':function(_0x2f4f83,_0x4d8c66,_0x4b2f93){const _0x33b7a2=_0x235866,{indexN:_0x1a672b}=this[_0x33b7a2(0x8f)]['one'][_0x33b7a2(0x1d95)];let _0x5e2e77=[],_0x34d894=_0x1a672b(this[_0x33b7a2(0x48da)]),_0x224fc5=this[_0x33b7a2(0x46d9)];Object['keys'](_0x34d894)['forEach'](_0x23774a=>{const _0x3d9dab=_0x33b7a2;let _0x588f0e=_0x34d894[_0x23774a][_0x3d9dab(0x509)]((_0x3f5567,_0x46e38d)=>_0x3f5567[0x1]>_0x46e38d[0x1]?-0x1:0x1)[0x0],[_0x5f5082,,_0x379f87]=_0x588f0e;_0x379f87<_0x224fc5[_0x5f5082][_0x3d9dab(0x205b)]&&_0x5e2e77[_0x3d9dab(0x4131)]([_0x5f5082,_0x379f87,_0x224fc5[_0x5f5082]['length']]);});let _0x1417c8=this[_0x33b7a2(0xc6b)](_0x5e2e77);return _0x2f4f83?_0x1417c8[_0x33b7a2(0xdc0)](_0x2f4f83,_0x4d8c66,_0x4b2f93):_0x1417c8;},'growLeft':function(_0x478626,_0x322cf8,_0x47df42){const _0x4ea000=_0x235866;_0x4ea000(0x4f7c)==typeof _0x478626&&(_0x478626=this[_0x4ea000(0x3e71)][_0x4ea000(0x8f)][_0x4ea000(0x4116)][_0x4ea000(0x763)](_0x478626,_0x47df42,this[_0x4ea000(0x3e71)])),_0x478626[_0x478626[_0x4ea000(0x205b)]-0x1][_0x4ea000(0x721)]=!0x0;let _0x4d430c=this[_0x4ea000(0x48da)];return this[_0x4ea000(0x4854)]((_0xdc11ba,_0x5894c4)=>{const _0x179182=_0x4ea000;let _0x2ccdff=_0xdc11ba['before'](_0x478626,_0x322cf8);if(_0x2ccdff['found']){let _0x48a3b7=_0x2ccdff[_0x179182(0x18a5)]();_0x4d430c[_0x5894c4][0x1]-=_0x48a3b7[_0x179182(0x205b)],_0x4d430c[_0x5894c4][0x3]=_0x48a3b7[_0x179182(0x3f72)][0x0][0x0]['id'];}}),this[_0x4ea000(0xf93)](_0x4d430c);},'growRight':function(_0x34fe5d,_0x3c08c5,_0x25fa57){const _0x39c0ad=_0x235866;'string'==typeof _0x34fe5d&&(_0x34fe5d=this[_0x39c0ad(0x3e71)][_0x39c0ad(0x8f)][_0x39c0ad(0x4116)][_0x39c0ad(0x763)](_0x34fe5d,_0x25fa57,this[_0x39c0ad(0x3e71)])),_0x34fe5d[0x0]['start']=!0x0;let _0x40845a=this['fullPointer'];return this['forEach']((_0x4795a8,_0x5d3340)=>{const _0x3165cf=_0x39c0ad;let _0x50d00d=_0x4795a8[_0x3165cf(0x1f69)](_0x34fe5d,_0x3c08c5);if(_0x50d00d[_0x3165cf(0x622)]){let _0x306dbd=_0x50d00d[_0x3165cf(0x18a5)]();_0x40845a[_0x5d3340][0x2]+=_0x306dbd[_0x3165cf(0x205b)],_0x40845a[_0x5d3340][0x4]=null;}}),this[_0x39c0ad(0xf93)](_0x40845a);},'grow':function(_0x466dd5,_0x5cff45,_0x8fc3ab){const _0x3234da=_0x235866;return this[_0x3234da(0x45a3)](_0x466dd5,_0x5cff45,_0x8fc3ab)[_0x3234da(0x4da5)](_0x466dd5,_0x5cff45,_0x8fc3ab);}},_0x2bc210=function(_0x45f72c,_0x1d5564){return[_0x45f72c[0x0],_0x45f72c[0x1],_0x1d5564[0x2]];},_0x4ab1cb=(_0x2548bd,_0x42bacc,_0x188d61)=>{const _0x1042ad=_0x235866;return _0x1042ad(0x4f7c)==typeof _0x2548bd||(_0x190e65=_0x2548bd,'[object\x20Array]'===Object['prototype']['toString'][_0x1042ad(0x4c9d)](_0x190e65))?_0x42bacc[_0x1042ad(0xdc0)](_0x2548bd,_0x188d61):_0x2548bd||_0x42bacc[_0x1042ad(0x80b)]();var _0x190e65;},_0xcbb244=function(_0x46bd59,_0x22fe7e){const _0x174f57=_0x235866;let [_0x25987f,_0x24a61f,_0x49e9f5]=_0x46bd59;return _0x22fe7e[_0x174f57(0x46d9)][_0x25987f]&&_0x22fe7e['document'][_0x25987f][_0x24a61f]&&(_0x46bd59[0x3]=_0x46bd59[0x3]||_0x22fe7e['document'][_0x25987f][_0x24a61f]['id'],_0x22fe7e[_0x174f57(0x46d9)][_0x25987f][_0x49e9f5-0x1]&&(_0x46bd59[0x4]=_0x46bd59[0x4]||_0x22fe7e['document'][_0x25987f][_0x49e9f5-0x1]['id'])),_0x46bd59;},_0x3a1c45={'splitOn':function(_0x128ed7,_0x224074){const _0x145230=_0x235866,{splitAll:_0x27f4ad}=this['methods']['one'][_0x145230(0x1d95)];let _0x4ab032=_0x4ab1cb(_0x128ed7,this,_0x224074)[_0x145230(0x48da)],_0x30a2db=_0x27f4ad(this[_0x145230(0x48da)],_0x4ab032),_0x354853=[];return _0x30a2db[_0x145230(0x4854)](_0x2e7e9d=>{const _0x56d022=_0x145230;_0x354853['push'](_0x2e7e9d[_0x56d022(0x2fdf)]),_0x354853[_0x56d022(0x4131)](_0x2e7e9d[_0x56d022(0x19f2)]),_0x354853['push'](_0x2e7e9d[_0x56d022(0xdc0)]),_0x354853[_0x56d022(0x4131)](_0x2e7e9d[_0x56d022(0x1f69)]);}),_0x354853=_0x354853['filter'](_0xbfb265=>_0xbfb265),_0x354853=_0x354853[_0x145230(0x2c94)](_0x2079da=>_0xcbb244(_0x2079da,this)),this[_0x145230(0xf93)](_0x354853);},'splitBefore':function(_0xd1460d,_0x5f33c0){const _0x37c59a=_0x235866,{splitAll:_0x197b1f}=this[_0x37c59a(0x8f)][_0x37c59a(0x4116)][_0x37c59a(0x1d95)];let _0x4ac24d=_0x4ab1cb(_0xd1460d,this,_0x5f33c0)['fullPointer'],_0x31804f=_0x197b1f(this[_0x37c59a(0x48da)],_0x4ac24d);for(let _0x1420e3=0x0;_0x1420e3<_0x31804f[_0x37c59a(0x205b)];_0x1420e3+=0x1)!_0x31804f[_0x1420e3][_0x37c59a(0x1f69)]&&_0x31804f[_0x1420e3+0x1]&&_0x31804f[_0x1420e3+0x1][_0x37c59a(0x19f2)]&&_0x31804f[_0x1420e3][_0x37c59a(0xdc0)]&&_0x31804f[_0x1420e3]['match'][0x0]===_0x31804f[_0x1420e3+0x1]['before'][0x0]&&(_0x31804f[_0x1420e3][_0x37c59a(0x1f69)]=_0x31804f[_0x1420e3+0x1][_0x37c59a(0x19f2)],delete _0x31804f[_0x1420e3+0x1]['before']);let _0x5f2c69=[];return _0x31804f['forEach'](_0x54bc06=>{const _0x2635b1=_0x37c59a;_0x5f2c69[_0x2635b1(0x4131)](_0x54bc06[_0x2635b1(0x2fdf)]),_0x5f2c69[_0x2635b1(0x4131)](_0x54bc06[_0x2635b1(0x19f2)]),_0x54bc06[_0x2635b1(0xdc0)]&&_0x54bc06[_0x2635b1(0x1f69)]?_0x5f2c69['push'](_0x2bc210(_0x54bc06[_0x2635b1(0xdc0)],_0x54bc06[_0x2635b1(0x1f69)])):_0x5f2c69[_0x2635b1(0x4131)](_0x54bc06['match']);}),_0x5f2c69=_0x5f2c69[_0x37c59a(0x295e)](_0xd35a4=>_0xd35a4),_0x5f2c69=_0x5f2c69['map'](_0x179e4f=>_0xcbb244(_0x179e4f,this)),this[_0x37c59a(0xf93)](_0x5f2c69);},'splitAfter':function(_0x32aa3d,_0x1ce32e){const _0x355781=_0x235866,{splitAll:_0x224cb9}=this[_0x355781(0x8f)][_0x355781(0x4116)][_0x355781(0x1d95)];let _0x34f354=_0x4ab1cb(_0x32aa3d,this,_0x1ce32e)[_0x355781(0x48da)],_0x507411=_0x224cb9(this['fullPointer'],_0x34f354),_0x1c8a35=[];return _0x507411[_0x355781(0x4854)](_0x414597=>{const _0x3a7966=_0x355781;_0x1c8a35[_0x3a7966(0x4131)](_0x414597[_0x3a7966(0x2fdf)]),_0x414597[_0x3a7966(0x19f2)]&&_0x414597['match']?_0x1c8a35[_0x3a7966(0x4131)](_0x2bc210(_0x414597[_0x3a7966(0x19f2)],_0x414597[_0x3a7966(0xdc0)])):(_0x1c8a35[_0x3a7966(0x4131)](_0x414597[_0x3a7966(0x19f2)]),_0x1c8a35[_0x3a7966(0x4131)](_0x414597['match'])),_0x1c8a35[_0x3a7966(0x4131)](_0x414597['after']);}),_0x1c8a35=_0x1c8a35[_0x355781(0x295e)](_0x45486b=>_0x45486b),_0x1c8a35=_0x1c8a35['map'](_0x8a3db1=>_0xcbb244(_0x8a3db1,this)),this['update'](_0x1c8a35);}};_0x3a1c45[_0x235866(0x29d0)]=_0x3a1c45[_0x235866(0x2810)];const _0x4cc32a=_0x3a1c45,_0x4571cf=function(_0x1274a8,_0x2eaa35){return!(!_0x1274a8||!_0x2eaa35)&&(_0x1274a8[0x0]===_0x2eaa35[0x0]&&_0x1274a8[0x2]===_0x2eaa35[0x1]);},_0x3b0847=function(_0x449b27,_0x38cded,_0x26ef05){const _0xd91919=_0x235866,_0x4d63e1=_0x449b27[_0xd91919(0x3e71)],_0x29b7cd=_0x4d63e1[_0xd91919(0x8f)][_0xd91919(0x4116)]['parseMatch'];_0x26ef05=_0x26ef05||'^.';let _0x23e8a8=_0x29b7cd(_0x38cded=_0x38cded||'.$',{},_0x4d63e1),_0x212243=_0x29b7cd(_0x26ef05,{},_0x4d63e1);_0x23e8a8[_0x23e8a8['length']-0x1]['end']=!0x0,_0x212243[0x0][_0xd91919(0x1698)]=!0x0;let _0x5a8b96=_0x449b27[_0xd91919(0x48da)],_0x580c18=[_0x5a8b96[0x0]];for(let _0xac29ba=0x1;_0xac29ba<_0x5a8b96['length'];_0xac29ba+=0x1){let _0x3d4f58=_0x580c18[_0x580c18[_0xd91919(0x205b)]-0x1],_0x51bdbc=_0x5a8b96[_0xac29ba],_0x27f113=_0x449b27[_0xd91919(0xf93)]([_0x3d4f58]),_0x101083=_0x449b27['update']([_0x51bdbc]);_0x4571cf(_0x3d4f58,_0x51bdbc)&&_0x27f113[_0xd91919(0x5ec)](_0x23e8a8)&&_0x101083['has'](_0x212243)?_0x580c18[_0x580c18['length']-0x1]=[_0x3d4f58[0x0],_0x3d4f58[0x1],_0x51bdbc[0x2],_0x3d4f58[0x3],_0x51bdbc[0x4]]:_0x580c18[_0xd91919(0x4131)](_0x51bdbc);}return _0x449b27[_0xd91919(0xf93)](_0x580c18);},_0x345ec1={'joinIf':function(_0x5da830,_0x4cb868){return _0x3b0847(this,_0x5da830,_0x4cb868);},'join':function(){return _0x3b0847(this);}},_0x1783e9=Object[_0x235866(0x11e8)]({},_0x2756a2,_0x3f2af8,_0x4cc32a,_0x345ec1);_0x1783e9['lookBehind']=_0x1783e9[_0x235866(0x19f2)],_0x1783e9[_0x235866(0x1513)]=_0x1783e9[_0x235866(0x19f2)],_0x1783e9[_0x235866(0x1df9)]=_0x1783e9[_0x235866(0x1f69)],_0x1783e9[_0x235866(0x83a)]=_0x1783e9[_0x235866(0x1f69)],_0x1783e9['notIf']=_0x1783e9['ifNo'];const _0x27d28d=function(_0x4183d9){const _0x5ce248=_0x235866;Object[_0x5ce248(0x11e8)](_0x4183d9[_0x5ce248(0x2b5c)],_0x1783e9);},_0x136555=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,_0xb1cd0=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_0x480819=/ /g,_0x1af7ef=_0x3876fe=>/^[![^]*(<[^<]*>)?\//['test'](_0x3876fe)&&/\/[?\]+*$~]*$/[_0x235866(0x34c)](_0x3876fe),_0x102e3d=function(_0x1c3a43){const _0x4d2b57=_0x235866;return _0x1c3a43=(_0x1c3a43=_0x1c3a43[_0x4d2b57(0x2c94)](_0x4c0834=>_0x4c0834[_0x4d2b57(0x1d0e)]()))[_0x4d2b57(0x295e)](_0x3b49c8=>_0x3b49c8);},_0x5edb39=function(_0x2a6ab6){const _0x291e18=_0x235866;let _0x30b5a7=_0x2a6ab6[_0x291e18(0x29d0)](_0x136555),_0x4152e3=[];_0x30b5a7[_0x291e18(0x4854)](_0x20c29c=>{const _0xa9f3e=_0x291e18;_0x1af7ef(_0x20c29c)?_0x4152e3[_0xa9f3e(0x4131)](_0x20c29c):_0x4152e3=_0x4152e3[_0xa9f3e(0x41bf)](_0x20c29c[_0xa9f3e(0x29d0)](_0xb1cd0));}),_0x4152e3=_0x102e3d(_0x4152e3);let _0x5d47f0=[];return _0x4152e3['forEach'](_0x2cddf4=>{const _0x2a4027=_0x291e18;(_0x2a6d53=>/^[![^]*(<[^<]*>)?\(/['test'](_0x2a6d53)&&/\)[?\]+*$~]*$/['test'](_0x2a6d53))(_0x2cddf4)||_0x1af7ef(_0x2cddf4)?_0x5d47f0[_0x2a4027(0x4131)](_0x2cddf4):_0x5d47f0=_0x5d47f0[_0x2a4027(0x41bf)](_0x2cddf4[_0x2a4027(0x29d0)](_0x480819));}),_0x5d47f0=_0x102e3d(_0x5d47f0),_0x5d47f0;},_0x2002e2=/\{([0-9]+)?(, *[0-9]*)?\}/,_0x4f0984=/&&/,_0x4aba7e=new RegExp(/^<\s*(\S+)\s*>/),_0x81f271=_0x2c1c98=>_0x2c1c98['charAt'](0x0)[_0x235866(0x4447)]()+_0x2c1c98[_0x235866(0x3934)](0x1),_0x622ced=_0x2004bf=>_0x2004bf['charAt'](_0x2004bf['length']-0x1),_0x1f4a92=_0x2471bd=>_0x2471bd[_0x235866(0x32fe)](0x0),_0x22a720=_0x59441e=>_0x59441e[_0x235866(0x3934)](0x1),_0x543e07=_0x8d949d=>_0x8d949d[_0x235866(0x3934)](0x0,_0x8d949d[_0x235866(0x205b)]-0x1),_0x2946c4=function(_0x481e95){return _0x481e95=_0x22a720(_0x481e95),_0x481e95=_0x543e07(_0x481e95);},_0x7e6f8c=function(_0x38ec4d,_0x4edbe2){const _0x240ddf=_0x235866;let _0x343e47={};for(let _0x2bfbd3=0x0;_0x2bfbd3<0x2;_0x2bfbd3+=0x1){if('$'===_0x622ced(_0x38ec4d)&&(_0x343e47[_0x240ddf(0x721)]=!0x0,_0x38ec4d=_0x543e07(_0x38ec4d)),'^'===_0x1f4a92(_0x38ec4d)&&(_0x343e47['start']=!0x0,_0x38ec4d=_0x22a720(_0x38ec4d)),'?'===_0x622ced(_0x38ec4d)&&(_0x343e47[_0x240ddf(0x180e)]=!0x0,_0x38ec4d=_0x543e07(_0x38ec4d)),('['===_0x1f4a92(_0x38ec4d)||']'===_0x622ced(_0x38ec4d))&&(_0x343e47[_0x240ddf(0x4941)]=null,'['===_0x1f4a92(_0x38ec4d)&&(_0x343e47[_0x240ddf(0x4dc3)]=!0x0),']'===_0x622ced(_0x38ec4d)&&(_0x343e47[_0x240ddf(0xfa2)]=!0x0),_0x38ec4d=(_0x38ec4d=_0x38ec4d[_0x240ddf(0x1db7)](/^\[/,''))['replace'](/\]$/,''),'<'===_0x1f4a92(_0x38ec4d))){const _0x5de0eb=_0x4aba7e['exec'](_0x38ec4d);_0x5de0eb[_0x240ddf(0x205b)]>=0x2&&(_0x343e47[_0x240ddf(0x4941)]=_0x5de0eb[0x1],_0x38ec4d=_0x38ec4d[_0x240ddf(0x1db7)](_0x5de0eb[0x0],''));}if('+'===_0x622ced(_0x38ec4d)&&(_0x343e47[_0x240ddf(0x188a)]=!0x0,_0x38ec4d=_0x543e07(_0x38ec4d)),'*'!==_0x38ec4d&&'*'===_0x622ced(_0x38ec4d)&&'\x5c*'!==_0x38ec4d&&(_0x343e47[_0x240ddf(0x188a)]=!0x0,_0x38ec4d=_0x543e07(_0x38ec4d)),'!'===_0x1f4a92(_0x38ec4d)&&(_0x343e47[_0x240ddf(0x3fbe)]=!0x0,_0x38ec4d=_0x22a720(_0x38ec4d)),'~'===_0x1f4a92(_0x38ec4d)&&'~'===_0x622ced(_0x38ec4d)&&_0x38ec4d[_0x240ddf(0x205b)]>0x2&&(_0x38ec4d=_0x2946c4(_0x38ec4d),_0x343e47[_0x240ddf(0x4bcb)]=!0x0,_0x343e47[_0x240ddf(0x12f9)]=_0x4edbe2[_0x240ddf(0x4bcb)]||0.85,!0x1===/\(/['test'](_0x38ec4d)))return _0x343e47[_0x240ddf(0x2013)]=_0x38ec4d,_0x343e47;if('/'===_0x1f4a92(_0x38ec4d)&&'/'===_0x622ced(_0x38ec4d))return _0x38ec4d=_0x2946c4(_0x38ec4d),_0x4edbe2[_0x240ddf(0x2b73)]&&(_0x343e47[_0x240ddf(0x3903)]=_0x240ddf(0x2f35)),_0x343e47[_0x240ddf(0x12ab)]=new RegExp(_0x38ec4d),_0x343e47;if(!0x0===_0x2002e2[_0x240ddf(0x34c)](_0x38ec4d)&&(_0x38ec4d=_0x38ec4d['replace'](_0x2002e2,(_0x461d2e,_0x3829ae,_0x6ec2f)=>(void 0x0===_0x6ec2f?(_0x343e47['min']=Number(_0x3829ae),_0x343e47[_0x240ddf(0x28c)]=Number(_0x3829ae)):(_0x6ec2f=_0x6ec2f[_0x240ddf(0x1db7)](/, */,''),void 0x0===_0x3829ae?(_0x343e47['min']=0x0,_0x343e47[_0x240ddf(0x28c)]=Number(_0x6ec2f)):(_0x343e47[_0x240ddf(0x12f9)]=Number(_0x3829ae),_0x343e47['max']=Number(_0x6ec2f||0x3e7))),_0x343e47['greedy']=!0x0,_0x343e47[_0x240ddf(0x12f9)]||(_0x343e47[_0x240ddf(0x180e)]=!0x0),''))),'('===_0x1f4a92(_0x38ec4d)&&')'===_0x622ced(_0x38ec4d)){_0x4f0984[_0x240ddf(0x34c)](_0x38ec4d)?(_0x343e47['choices']=_0x38ec4d[_0x240ddf(0x29d0)](_0x4f0984),_0x343e47[_0x240ddf(0x5d3)]=_0x240ddf(0x43ea)):(_0x343e47[_0x240ddf(0x2607)]=_0x38ec4d[_0x240ddf(0x29d0)]('|'),_0x343e47[_0x240ddf(0x5d3)]='or'),_0x343e47[_0x240ddf(0x2607)][0x0]=_0x22a720(_0x343e47[_0x240ddf(0x2607)][0x0]);let _0x72aecf=_0x343e47[_0x240ddf(0x2607)]['length']-0x1;_0x343e47['choices'][_0x72aecf]=_0x543e07(_0x343e47[_0x240ddf(0x2607)][_0x72aecf]),_0x343e47['choices']=_0x343e47[_0x240ddf(0x2607)][_0x240ddf(0x2c94)](_0x1f44db=>_0x1f44db[_0x240ddf(0x1d0e)]()),_0x343e47['choices']=_0x343e47[_0x240ddf(0x2607)][_0x240ddf(0x295e)](_0x26e622=>_0x26e622),_0x343e47[_0x240ddf(0x2607)]=_0x343e47[_0x240ddf(0x2607)][_0x240ddf(0x2c94)](_0x509492=>_0x509492['split'](/ /g)[_0x240ddf(0x2c94)](_0x4ee4d4=>_0x7e6f8c(_0x4ee4d4,_0x4edbe2))),_0x38ec4d='';}if('{'===_0x1f4a92(_0x38ec4d)&&'}'===_0x622ced(_0x38ec4d)){if(_0x38ec4d=_0x2946c4(_0x38ec4d),_0x343e47[_0x240ddf(0xdf8)]=_0x38ec4d,/\//[_0x240ddf(0x34c)](_0x38ec4d)){let _0x48eac8=_0x343e47[_0x240ddf(0xdf8)][_0x240ddf(0x29d0)](/\//);_0x343e47[_0x240ddf(0xdf8)]=_0x48eac8[0x0],_0x343e47[_0x240ddf(0x44ff)]=_0x48eac8[0x1],_0x240ddf(0xa49)===_0x343e47[_0x240ddf(0x44ff)]&&(_0x343e47[_0x240ddf(0x44ff)]=_0x240ddf(0x19b5)),_0x343e47[_0x240ddf(0x44ff)]=_0x343e47[_0x240ddf(0x44ff)][_0x240ddf(0x32fe)](0x0)[_0x240ddf(0x4447)]()+_0x343e47[_0x240ddf(0x44ff)][_0x240ddf(0x32a4)](0x1)[_0x240ddf(0x1a57)](),void 0x0!==_0x48eac8[0x2]&&(_0x343e47[_0x240ddf(0x14f6)]=_0x48eac8[0x2]);}return _0x343e47;}if('<'===_0x1f4a92(_0x38ec4d)&&'>'===_0x622ced(_0x38ec4d))return _0x38ec4d=_0x2946c4(_0x38ec4d),_0x343e47[_0x240ddf(0x1637)]=_0x81f271(_0x38ec4d),_0x343e47[_0x240ddf(0x188a)]=!0x0,_0x343e47;if('%'===_0x1f4a92(_0x38ec4d)&&'%'===_0x622ced(_0x38ec4d))return _0x38ec4d=_0x2946c4(_0x38ec4d),_0x343e47[_0x240ddf(0x68)]=_0x38ec4d,_0x343e47;}return'#'===_0x1f4a92(_0x38ec4d)?(_0x343e47[_0x240ddf(0x17a2)]=_0x22a720(_0x38ec4d),_0x343e47[_0x240ddf(0x17a2)]=_0x81f271(_0x343e47[_0x240ddf(0x17a2)]),_0x343e47):'@'===_0x1f4a92(_0x38ec4d)?(_0x343e47[_0x240ddf(0xd7c)]=_0x22a720(_0x38ec4d),_0x343e47):'.'===_0x38ec4d?(_0x343e47[_0x240ddf(0x42e3)]=!0x0,_0x343e47):'*'===_0x38ec4d?(_0x343e47[_0x240ddf(0x42e3)]=!0x0,_0x343e47[_0x240ddf(0x188a)]=!0x0,_0x343e47[_0x240ddf(0x180e)]=!0x0,_0x343e47):(_0x38ec4d&&(_0x38ec4d=(_0x38ec4d=_0x38ec4d['replace']('\x5c*','*'))[_0x240ddf(0x1db7)]('\x5c.','.'),_0x4edbe2[_0x240ddf(0x2b73)]?_0x343e47['use']='text':_0x38ec4d=_0x38ec4d[_0x240ddf(0x1a57)](),_0x343e47[_0x240ddf(0x2013)]=_0x38ec4d),_0x343e47);},_0x1c7e56=_0x7e6f8c,_0x5e46c9=/[a-z0-9][-–—][a-z]/i,_0x214e70=function(_0x255400,_0x249e6f){const _0x3bdc3b=_0x235866;let _0x40adce=_0x249e6f['model']['one']['prefixes'];for(let _0x232cd6=_0x255400[_0x3bdc3b(0x205b)]-0x1;_0x232cd6>=0x0;_0x232cd6-=0x1){let _0x3cab9a=_0x255400[_0x232cd6];if(_0x3cab9a[_0x3bdc3b(0x2013)]&&_0x5e46c9[_0x3bdc3b(0x34c)](_0x3cab9a['word'])){let _0x4e7cb4=_0x3cab9a[_0x3bdc3b(0x2013)][_0x3bdc3b(0x29d0)](/[-–—]/g);if(_0x40adce['hasOwnProperty'](_0x4e7cb4[0x0]))continue;_0x4e7cb4=_0x4e7cb4[_0x3bdc3b(0x295e)](_0x3d7bd2=>_0x3d7bd2)[_0x3bdc3b(0x2a4c)](),_0x255400[_0x3bdc3b(0x506f)](_0x232cd6,0x1),_0x4e7cb4['forEach'](_0x457591=>{const _0x50e08c=_0x3bdc3b;let _0x599895=Object[_0x50e08c(0x11e8)]({},_0x3cab9a);_0x599895['word']=_0x457591,_0x255400[_0x50e08c(0x506f)](_0x232cd6,0x0,_0x599895);});}}return _0x255400;},_0x7e246=function(_0x476d69,_0x4eb1e1){const _0x576461=_0x235866;let {all:_0x48d445}=_0x4eb1e1[_0x576461(0x8f)][_0x576461(0x141f)][_0x576461(0x560)][_0x576461(0x91)]||{},_0x3a927f=_0x476d69[_0x576461(0xdf8)];return _0x48d445?_0x48d445(_0x3a927f,_0x4eb1e1[_0x576461(0x2c3e)]):[];},_0x2d5a00=function(_0x1084c5,_0x2b770d){const _0x594828=_0x235866;let {all:_0x5d25c3}=_0x2b770d[_0x594828(0x8f)][_0x594828(0x141f)][_0x594828(0x560)][_0x594828(0x3c45)]||{};return _0x5d25c3?_0x5d25c3(_0x1084c5[_0x594828(0xdf8)],_0x2b770d[_0x594828(0x2c3e)]):[_0x1084c5[_0x594828(0xdf8)]];},_0xdcf779=function(_0x587188,_0x5790a7){const _0x430688=_0x235866;let {all:_0x159648}=_0x5790a7[_0x430688(0x8f)][_0x430688(0x141f)][_0x430688(0x560)][_0x430688(0x2c03)]||{};return _0x159648?_0x159648(_0x587188[_0x430688(0xdf8)],_0x5790a7[_0x430688(0x2c3e)]):[_0x587188[_0x430688(0xdf8)]];},_0x9ecca8=function(_0x5e2ae9,_0x3490c6){const _0x397b6e=_0x235866;return _0x5e2ae9=_0x5e2ae9[_0x397b6e(0x2c94)](_0x4ae61c=>{const _0x4fe8ce=_0x397b6e;if(_0x4ae61c[_0x4fe8ce(0xdf8)]){if(_0x3490c6[_0x4fe8ce(0x8f)][_0x4fe8ce(0x141f)]&&_0x3490c6[_0x4fe8ce(0x8f)][_0x4fe8ce(0x141f)]['transform']){let _0x521e2a=[];_0x4ae61c['pos']?_0x4fe8ce(0x41f2)===_0x4ae61c[_0x4fe8ce(0x44ff)]?_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0x7e246(_0x4ae61c,_0x3490c6)):_0x4fe8ce(0x1ce5)===_0x4ae61c['pos']?_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0x2d5a00(_0x4ae61c,_0x3490c6)):'Adjective'===_0x4ae61c[_0x4fe8ce(0x44ff)]&&(_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0xdcf779(_0x4ae61c,_0x3490c6))):(_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0x7e246(_0x4ae61c,_0x3490c6)),_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0x2d5a00(_0x4ae61c,_0x3490c6)),_0x521e2a=_0x521e2a[_0x4fe8ce(0x41bf)](_0xdcf779(_0x4ae61c,_0x3490c6))),_0x521e2a=_0x521e2a['filter'](_0x413dd7=>_0x413dd7),_0x521e2a[_0x4fe8ce(0x205b)]>0x0&&(_0x4ae61c['operator']='or',_0x4ae61c['fastOr']=new Set(_0x521e2a));}else _0x4ae61c[_0x4fe8ce(0x194)]=_0x4ae61c['root'],delete _0x4ae61c['id'],delete _0x4ae61c['root'];}return _0x4ae61c;}),_0x5e2ae9;},_0x3165cb=function(_0x4e87c1){const _0x37c813=_0x235866;return _0x4e87c1=function(_0x28e6e1){const _0x1ef7e3=a0_0x329b;let _0x4972e5=0x0,_0x31807c=null;for(let _0x5a417d=0x0;_0x5a417d<_0x28e6e1[_0x1ef7e3(0x205b)];_0x5a417d++){const _0x1bd644=_0x28e6e1[_0x5a417d];!0x0===_0x1bd644[_0x1ef7e3(0x4dc3)]&&(_0x31807c=_0x1bd644[_0x1ef7e3(0x4941)],null===_0x31807c&&(_0x31807c=String(_0x4972e5),_0x4972e5+=0x1)),null!==_0x31807c&&(_0x1bd644['group']=_0x31807c),!0x0===_0x1bd644['groupEnd']&&(_0x31807c=null);}return _0x28e6e1;}(_0x4e87c1),_0x4e87c1=_0x4e87c1[_0x37c813(0x2c94)](_0x16d5a9=>{const _0x10bb99=_0x37c813;if(void 0x0!==_0x16d5a9[_0x10bb99(0x2607)]){if('or'!==_0x16d5a9['operator'])return _0x16d5a9;if(!0x0===_0x16d5a9[_0x10bb99(0x4bcb)])return _0x16d5a9;let _0x1c3fc0=_0x16d5a9['choices']['every'](_0x416e9f=>{const _0x48bc22=_0x10bb99;if(0x1!==_0x416e9f['length'])return!0x1;let _0x2d8142=_0x416e9f[0x0];return!0x0!==_0x2d8142[_0x48bc22(0x4bcb)]&&!_0x2d8142['start']&&!_0x2d8142['end']&&void 0x0!==_0x2d8142[_0x48bc22(0x2013)]&&!0x0!==_0x2d8142['negative']&&!0x0!==_0x2d8142[_0x48bc22(0x180e)]&&!0x0!==_0x2d8142[_0x48bc22(0xd7c)];});!0x0===_0x1c3fc0&&(_0x16d5a9[_0x10bb99(0x4eec)]=new Set(),_0x16d5a9[_0x10bb99(0x2607)][_0x10bb99(0x4854)](_0x4718e9=>{const _0x38706d=_0x10bb99;_0x16d5a9[_0x38706d(0x4eec)][_0x38706d(0x2fd8)](_0x4718e9[0x0][_0x38706d(0x2013)]);}),delete _0x16d5a9[_0x10bb99(0x2607)]);}return _0x16d5a9;}),_0x4e87c1=function(_0x3f7aa6){const _0x30a748=_0x37c813;return _0x3f7aa6[_0x30a748(0x2c94)](_0xb57b6d=>(_0xb57b6d[_0x30a748(0x4bcb)]&&_0xb57b6d[_0x30a748(0x2607)]&&_0xb57b6d[_0x30a748(0x2607)][_0x30a748(0x4854)](_0x20c16a=>{const _0x497de9=_0x30a748;0x1===_0x20c16a[_0x497de9(0x205b)]&&_0x20c16a[0x0][_0x497de9(0x2013)]&&(_0x20c16a[0x0][_0x497de9(0x4bcb)]=!0x0,_0x20c16a[0x0][_0x497de9(0x12f9)]=_0xb57b6d[_0x497de9(0x12f9)]);}),_0xb57b6d));}(_0x4e87c1),_0x4e87c1;},_0x996130=function(_0x5d9313,_0xfa3c7,_0x29f533){const _0x11729a=_0x235866;if(null==_0x5d9313||''===_0x5d9313)return[];_0xfa3c7=_0xfa3c7||{},_0x11729a(0x1ed7)==typeof _0x5d9313&&(_0x5d9313=String(_0x5d9313));let _0x58c33b=_0x5edb39(_0x5d9313);return _0x58c33b=_0x58c33b['map'](_0x2f9621=>_0x1c7e56(_0x2f9621,_0xfa3c7)),_0x58c33b=_0x214e70(_0x58c33b,_0x29f533),_0x58c33b=_0x9ecca8(_0x58c33b,_0x29f533),_0x58c33b=_0x3165cb(_0x58c33b,_0xfa3c7),_0x58c33b;},_0x21e24c=function(_0x162b1a,_0x365d2d){for(let _0x483d6e of _0x365d2d)if(_0x162b1a['has'](_0x483d6e))return!0x0;return!0x1;},_0x8c4700=function(_0x58e914,_0x375365){const _0x4ef50b=_0x235866;for(let _0x242032=0x0;_0x242032<_0x58e914[_0x4ef50b(0x205b)];_0x242032+=0x1){let _0x647d6c=_0x58e914[_0x242032];if(!0x0!==_0x647d6c[_0x4ef50b(0x180e)]&&!0x0!==_0x647d6c[_0x4ef50b(0x3fbe)]&&!0x0!==_0x647d6c['fuzzy']){if(void 0x0!==_0x647d6c[_0x4ef50b(0x2013)]&&!0x1===_0x375365[_0x4ef50b(0x5ec)](_0x647d6c['word']))return!0x0;if(void 0x0!==_0x647d6c['tag']&&!0x1===_0x375365[_0x4ef50b(0x5ec)]('#'+_0x647d6c['tag']))return!0x0;if(_0x647d6c[_0x4ef50b(0x4eec)]&&!0x1===_0x21e24c(_0x647d6c[_0x4ef50b(0x4eec)],_0x375365))return!0x1;}}return!0x1;},_0x526d59=function(_0x59938e,_0x2a9c8b,_0x365c33=0x3){const _0x4908a6=_0x235866;if(_0x59938e===_0x2a9c8b)return 0x1;if(_0x59938e['length']<_0x365c33||_0x2a9c8b[_0x4908a6(0x205b)]<_0x365c33)return 0x0;const _0x6d86bc=function(_0x2c5e36,_0x1b005a){const _0x2e57a8=_0x4908a6;let _0x56523a=_0x2c5e36[_0x2e57a8(0x205b)],_0x191b43=_0x1b005a['length'];if(0x0===_0x56523a)return _0x191b43;if(0x0===_0x191b43)return _0x56523a;let _0x23b288=(_0x191b43>_0x56523a?_0x191b43:_0x56523a)+0x1;if(Math[_0x2e57a8(0x444c)](_0x56523a-_0x191b43)>(_0x23b288||0x64))return _0x23b288||0x64;let _0x197aa3,_0x36ddc0,_0x565247,_0x3f2c1c,_0x176da6,_0x1a04e7,_0x2c6aad=[];for(let _0x4fb37b=0x0;_0x4fb37b<_0x23b288;_0x4fb37b++)_0x2c6aad[_0x4fb37b]=[_0x4fb37b],_0x2c6aad[_0x4fb37b][_0x2e57a8(0x205b)]=_0x23b288;for(let _0x674263=0x0;_0x674263<_0x23b288;_0x674263++)_0x2c6aad[0x0][_0x674263]=_0x674263;for(let _0x3e9ad1=0x1;_0x3e9ad1<=_0x56523a;++_0x3e9ad1)for(_0x36ddc0=_0x2c5e36[_0x3e9ad1-0x1],_0x197aa3=0x1;_0x197aa3<=_0x191b43;++_0x197aa3){if(_0x3e9ad1===_0x197aa3&&_0x2c6aad[_0x3e9ad1][_0x197aa3]>0x4)return _0x56523a;_0x565247=_0x1b005a[_0x197aa3-0x1],_0x3f2c1c=_0x36ddc0===_0x565247?0x0:0x1,_0x176da6=_0x2c6aad[_0x3e9ad1-0x1][_0x197aa3]+0x1,(_0x1a04e7=_0x2c6aad[_0x3e9ad1][_0x197aa3-0x1]+0x1)<_0x176da6&&(_0x176da6=_0x1a04e7),(_0x1a04e7=_0x2c6aad[_0x3e9ad1-0x1][_0x197aa3-0x1]+_0x3f2c1c)<_0x176da6&&(_0x176da6=_0x1a04e7);let _0x47887f=_0x3e9ad1>0x1&&_0x197aa3>0x1&&_0x36ddc0===_0x1b005a[_0x197aa3-0x2]&&_0x2c5e36[_0x3e9ad1-0x2]===_0x565247&&(_0x1a04e7=_0x2c6aad[_0x3e9ad1-0x2][_0x197aa3-0x2]+_0x3f2c1c)<_0x176da6;_0x2c6aad[_0x3e9ad1][_0x197aa3]=_0x47887f?_0x1a04e7:_0x176da6;}return _0x2c6aad[_0x56523a][_0x191b43];}(_0x59938e,_0x2a9c8b);let _0x24867c=Math[_0x4908a6(0x28c)](_0x59938e[_0x4908a6(0x205b)],_0x2a9c8b[_0x4908a6(0x205b)]);return 0x1-(0x0===_0x24867c?0x0:_0x6d86bc/_0x24867c);},_0xd885b8=/([\u0022\uFF02\u0027\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F])/,_0x189141=/([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/,_0xaaf537=/^[-–—]$/,_0x1ef0b9=/ [-–—]{1,3} /,_0x3db438=(_0x35eac7,_0x2fcffc)=>-0x1!==_0x35eac7['post'][_0x235866(0x3458)](_0x2fcffc),_0x346944={'hasQuote':_0x132974=>_0xd885b8[_0x235866(0x34c)](_0x132974[_0x235866(0x1553)])||_0x189141[_0x235866(0x34c)](_0x132974[_0x235866(0x9ce)]),'hasComma':_0x7036c7=>_0x3db438(_0x7036c7,','),'hasPeriod':_0x570311=>!0x0===_0x3db438(_0x570311,'.')&&!0x1===_0x3db438(_0x570311,_0x235866(0x23a)),'hasExclamation':_0x2a1dc6=>_0x3db438(_0x2a1dc6,'!'),'hasQuestionMark':_0x512720=>_0x3db438(_0x512720,'?')||_0x3db438(_0x512720,'¿'),'hasEllipses':_0x17a866=>_0x3db438(_0x17a866,'..')||_0x3db438(_0x17a866,'…'),'hasSemicolon':_0x1cfea7=>_0x3db438(_0x1cfea7,';'),'hasColon':_0x33cc36=>_0x3db438(_0x33cc36,':'),'hasSlash':_0x36118f=>/\//['test'](_0x36118f['text']),'hasHyphen':_0x4bd4d8=>_0xaaf537[_0x235866(0x34c)](_0x4bd4d8['post'])||_0xaaf537[_0x235866(0x34c)](_0x4bd4d8[_0x235866(0x1553)]),'hasDash':_0x4b59ad=>_0x1ef0b9[_0x235866(0x34c)](_0x4b59ad['post'])||_0x1ef0b9[_0x235866(0x34c)](_0x4b59ad[_0x235866(0x1553)]),'hasContraction':_0x3bd054=>Boolean(_0x3bd054[_0x235866(0x15c0)]),'isAcronym':_0x5a9d0b=>_0x5a9d0b[_0x235866(0x23d1)][_0x235866(0x5ec)](_0x235866(0x265b)),'isKnown':_0x170608=>_0x170608[_0x235866(0x23d1)][_0x235866(0x3b53)]>0x0,'isTitleCase':_0x57a08d=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u[_0x235866(0x34c)](_0x57a08d[_0x235866(0x2f35)]),'isUpperCase':_0x206cd2=>/^\p{Lu}+$/u['test'](_0x206cd2[_0x235866(0x2f35)])};_0x346944['hasQuotation']=_0x346944[_0x235866(0x85e)];const _0x16bdae=_0x346944;let _0x20ab4c=function(){};_0x20ab4c=function(_0x10ce74,_0x4344aa,_0x586f23,_0xc39d0f){const _0x507e12=_0x235866;let _0x30f2b8=function(_0x39b4d2,_0x388b26,_0x8f2edd,_0x1bb78d){const _0x288688=a0_0x329b;if(!0x0===_0x388b26['anything'])return!0x0;if(!0x0===_0x388b26[_0x288688(0x1698)]&&0x0!==_0x8f2edd)return!0x1;if(!0x0===_0x388b26[_0x288688(0x721)]&&_0x8f2edd!==_0x1bb78d-0x1)return!0x1;if(void 0x0!==_0x388b26['id']&&_0x388b26['id']===_0x39b4d2['id'])return!0x0;if(void 0x0!==_0x388b26[_0x288688(0x2013)]){if(_0x388b26[_0x288688(0x3903)])return _0x388b26['word']===_0x39b4d2[_0x388b26[_0x288688(0x3903)]];if(null!==_0x39b4d2[_0x288688(0x194)]&&_0x39b4d2[_0x288688(0x194)]===_0x388b26[_0x288688(0x2013)])return!0x0;if(void 0x0!==_0x39b4d2[_0x288688(0x1f89)]&&_0x39b4d2[_0x288688(0x1f89)][_0x288688(0x32b5)](_0x388b26[_0x288688(0x2013)]))return!0x0;if(!0x0===_0x388b26[_0x288688(0x4bcb)]){if(_0x388b26[_0x288688(0x2013)]===_0x39b4d2[_0x288688(0xdf8)])return!0x0;if(_0x526d59(_0x388b26[_0x288688(0x2013)],_0x39b4d2[_0x288688(0x4cb)])>=_0x388b26[_0x288688(0x12f9)])return!0x0;}return!(!_0x39b4d2[_0x288688(0x1f89)]||!_0x39b4d2[_0x288688(0x1f89)]['some'](_0x18f25a=>_0x18f25a===_0x388b26[_0x288688(0x2013)]))||_0x388b26[_0x288688(0x2013)]===_0x39b4d2[_0x288688(0x2f35)]||_0x388b26[_0x288688(0x2013)]===_0x39b4d2['normal'];}if(void 0x0!==_0x388b26[_0x288688(0x17a2)])return!0x0===_0x39b4d2[_0x288688(0x23d1)][_0x288688(0x5ec)](_0x388b26[_0x288688(0x17a2)]);if(void 0x0!==_0x388b26[_0x288688(0xd7c)])return _0x288688(0x3dfb)==typeof _0x16bdae[_0x388b26[_0x288688(0xd7c)]]&&!0x0===_0x16bdae[_0x388b26[_0x288688(0xd7c)]](_0x39b4d2);if(void 0x0!==_0x388b26[_0x288688(0x1553)])return _0x39b4d2[_0x288688(0x1553)]&&_0x39b4d2[_0x288688(0x1553)]['includes'](_0x388b26[_0x288688(0x1553)]);if(void 0x0!==_0x388b26[_0x288688(0x9ce)])return _0x39b4d2[_0x288688(0x9ce)]&&_0x39b4d2[_0x288688(0x9ce)][_0x288688(0x1fa2)](_0x388b26[_0x288688(0x9ce)]);if(void 0x0!==_0x388b26['regex']){let _0x556023=_0x39b4d2[_0x288688(0x4cb)];return _0x388b26[_0x288688(0x3903)]&&(_0x556023=_0x39b4d2[_0x388b26[_0x288688(0x3903)]]),_0x388b26[_0x288688(0x12ab)]['test'](_0x556023);}if(void 0x0!==_0x388b26[_0x288688(0x1637)])return _0x39b4d2['chunk']===_0x388b26['chunk'];if(void 0x0!==_0x388b26['switch'])return _0x39b4d2['switch']===_0x388b26[_0x288688(0x68)];if(void 0x0!==_0x388b26['machine'])return _0x39b4d2['normal']===_0x388b26['machine']||_0x39b4d2[_0x288688(0x194)]===_0x388b26[_0x288688(0x194)]||_0x39b4d2[_0x288688(0xdf8)]===_0x388b26[_0x288688(0x194)];if(void 0x0!==_0x388b26['sense'])return _0x39b4d2[_0x288688(0x14f6)]===_0x388b26[_0x288688(0x14f6)];if(void 0x0!==_0x388b26['fastOr']){if(_0x388b26[_0x288688(0x44ff)]&&!_0x39b4d2[_0x288688(0x23d1)][_0x288688(0x5ec)](_0x388b26[_0x288688(0x44ff)]))return null;let _0x4e337d=_0x39b4d2[_0x288688(0xdf8)]||_0x39b4d2[_0x288688(0x15c0)]||_0x39b4d2[_0x288688(0x194)]||_0x39b4d2['normal'];return _0x388b26[_0x288688(0x4eec)][_0x288688(0x5ec)](_0x4e337d)||_0x388b26[_0x288688(0x4eec)][_0x288688(0x5ec)](_0x39b4d2[_0x288688(0x2f35)]);}return void 0x0!==_0x388b26[_0x288688(0x2607)]&&('and'===_0x388b26[_0x288688(0x5d3)]?_0x388b26[_0x288688(0x2607)][_0x288688(0x464d)](_0x4353fa=>_0x20ab4c(_0x39b4d2,_0x4353fa,_0x8f2edd,_0x1bb78d)):_0x388b26['choices'][_0x288688(0x3f5f)](_0x520158=>_0x20ab4c(_0x39b4d2,_0x520158,_0x8f2edd,_0x1bb78d)));}(_0x10ce74,_0x4344aa,_0x586f23,_0xc39d0f);return!0x0===_0x4344aa[_0x507e12(0x3fbe)]?!_0x30f2b8:_0x30f2b8;};const _0x4dea73=_0x20ab4c,_0x1836a6=function(_0xbbbd3e,_0x1b4ed8){const _0x26aa40=_0x235866;if(!0x0===_0xbbbd3e[_0x26aa40(0x721)]&&!0x0===_0xbbbd3e[_0x26aa40(0x188a)]&&_0x1b4ed8[_0x26aa40(0x3ef4)]+_0x1b4ed8['t']<_0x1b4ed8['phrase_length']-0x1){let _0x539687=Object['assign']({},_0xbbbd3e,{'end':!0x1});if(!0x0===_0x4dea73(_0x1b4ed8['terms'][_0x1b4ed8['t']],_0x539687,_0x1b4ed8['start_i']+_0x1b4ed8['t'],_0x1b4ed8[_0x26aa40(0xe13)]))return!0x0;}return!0x1;},_0x42da34=function(_0x3a6c77,_0x5770fb){const _0x3a2969=_0x235866;return _0x3a6c77[_0x3a2969(0xbbd)][_0x3a6c77[_0x3a2969(0xa7a)]]||(_0x3a6c77['groups'][_0x3a6c77[_0x3a2969(0xa7a)]]={'start':_0x5770fb,'length':0x0}),_0x3a6c77[_0x3a2969(0xbbd)][_0x3a6c77[_0x3a2969(0xa7a)]];},_0x11edc3=function(_0x2f4c9a){const _0x380003=_0x235866;let {regs:_0x3e4add}=_0x2f4c9a,_0x4e4880=_0x3e4add[_0x2f4c9a['r']],_0x1c9bcd=function(_0x49abf0,_0x4e765d){const _0xa6d118=a0_0x329b;let _0x476823=_0x49abf0['t'];if(!_0x4e765d)return _0x49abf0[_0xa6d118(0x18a5)][_0xa6d118(0x205b)];for(;_0x476823<_0x49abf0['terms']['length'];_0x476823+=0x1)if(!0x0===_0x4dea73(_0x49abf0[_0xa6d118(0x18a5)][_0x476823],_0x4e765d,_0x49abf0[_0xa6d118(0x3ef4)]+_0x476823,_0x49abf0[_0xa6d118(0xe13)]))return _0x476823;return null;}(_0x2f4c9a,_0x3e4add[_0x2f4c9a['r']+0x1]);if(null===_0x1c9bcd||0x0===_0x1c9bcd)return null;if(void 0x0!==_0x4e4880[_0x380003(0x12f9)]&&_0x1c9bcd-_0x2f4c9a['t']<_0x4e4880[_0x380003(0x12f9)])return null;if(void 0x0!==_0x4e4880['max']&&_0x1c9bcd-_0x2f4c9a['t']>_0x4e4880[_0x380003(0x28c)])return _0x2f4c9a['t']=_0x2f4c9a['t']+_0x4e4880[_0x380003(0x28c)],!0x0;return!0x0===_0x2f4c9a['hasGroup']&&(_0x42da34(_0x2f4c9a,_0x2f4c9a['t'])[_0x380003(0x205b)]=_0x1c9bcd-_0x2f4c9a['t']),(_0x2f4c9a['t']=_0x1c9bcd,!0x0);},_0x26a92d=function(_0x563328,_0x1c9697=0x0){const _0x590931=_0x235866;let _0x5ba639=_0x563328[_0x590931(0x4176)][_0x563328['r']],_0xe533df=!0x1;for(let _0x5ccc40=0x0;_0x5ccc40<_0x5ba639[_0x590931(0x2607)][_0x590931(0x205b)];_0x5ccc40+=0x1){let _0x20aa45=_0x5ba639[_0x590931(0x2607)][_0x5ccc40];if(_0x5284cf=_0x20aa45,_0x590931(0x4fba)!==Object['prototype']['toString'][_0x590931(0x4c9d)](_0x5284cf))return!0x1;if(_0xe533df=_0x20aa45[_0x590931(0x464d)]((_0x50e3c6,_0x136729)=>{const _0x179c2c=_0x590931;let _0x2033a4=0x0,_0x24dfa5=_0x563328['t']+_0x136729+_0x1c9697+_0x2033a4;if(void 0x0===_0x563328[_0x179c2c(0x18a5)][_0x24dfa5])return!0x1;let _0x338c73=_0x4dea73(_0x563328[_0x179c2c(0x18a5)][_0x24dfa5],_0x50e3c6,_0x24dfa5+_0x563328['start_i'],_0x563328[_0x179c2c(0xe13)]);if(!0x0===_0x338c73&&!0x0===_0x50e3c6[_0x179c2c(0x188a)])for(let _0x3c91d8=0x1;_0x3c91d8<_0x563328[_0x179c2c(0x18a5)][_0x179c2c(0x205b)];_0x3c91d8+=0x1){let _0xecffa5=_0x563328[_0x179c2c(0x18a5)][_0x24dfa5+_0x3c91d8];if(_0xecffa5){if(!0x0!==_0x4dea73(_0xecffa5,_0x50e3c6,_0x563328[_0x179c2c(0x3ef4)]+_0x3c91d8,_0x563328[_0x179c2c(0xe13)]))break;_0x2033a4+=0x1;}}return _0x1c9697+=_0x2033a4,_0x338c73;}),_0xe533df){_0x1c9697+=_0x20aa45[_0x590931(0x205b)];break;}}var _0x5284cf;return _0xe533df&&!0x0===_0x5ba639[_0x590931(0x188a)]?_0x26a92d(_0x563328,_0x1c9697):_0x1c9697;},_0x1f2512=function(_0x4af8f7){const _0x303760=_0x235866,{regs:_0x1a3019}=_0x4af8f7;let _0x292864=_0x1a3019[_0x4af8f7['r']],_0x3be85d=_0x26a92d(_0x4af8f7);if(_0x3be85d){if(!0x0===_0x292864['negative'])return null;!0x0===_0x4af8f7[_0x303760(0x1d68)]&&(_0x42da34(_0x4af8f7,_0x4af8f7['t'])[_0x303760(0x205b)]+=_0x3be85d);if(!0x0===_0x292864['end']){let _0x11f5c0=_0x4af8f7[_0x303760(0xe13)];if(_0x4af8f7['t']+_0x4af8f7[_0x303760(0x3ef4)]+_0x3be85d!==_0x11f5c0)return null;}return _0x4af8f7['t']+=_0x3be85d,!0x0;}return!!_0x292864[_0x303760(0x180e)]||null;},_0x200da2=function(_0x5b69ca){const _0x429ada=_0x235866,{regs:_0x53fb19}=_0x5b69ca;let _0x7ba0a0=_0x53fb19[_0x5b69ca['r']],_0x2169c6=function(_0x435c8f){const _0x48b0b1=a0_0x329b;let _0x37dee5=0x0,_0x152d94=_0x435c8f[_0x48b0b1(0x4176)][_0x435c8f['r']]['choices'][_0x48b0b1(0x464d)](_0x1d96f9=>{const _0x16489b=_0x48b0b1;let _0x35eabd=_0x1d96f9[_0x16489b(0x464d)]((_0x2ff9a0,_0x39e727)=>{const _0x3c726c=_0x16489b;let _0x46fedf=_0x435c8f['t']+_0x39e727;return void 0x0!==_0x435c8f[_0x3c726c(0x18a5)][_0x46fedf]&&_0x4dea73(_0x435c8f[_0x3c726c(0x18a5)][_0x46fedf],_0x2ff9a0,_0x46fedf,_0x435c8f[_0x3c726c(0xe13)]);});return!0x0===_0x35eabd&&_0x1d96f9[_0x16489b(0x205b)]>_0x37dee5&&(_0x37dee5=_0x1d96f9[_0x16489b(0x205b)]),_0x35eabd;});return!0x0===_0x152d94&&_0x37dee5;}(_0x5b69ca);if(_0x2169c6){if(!0x0===_0x7ba0a0[_0x429ada(0x3fbe)])return null;!0x0===_0x5b69ca[_0x429ada(0x1d68)]&&(_0x42da34(_0x5b69ca,_0x5b69ca['t'])[_0x429ada(0x205b)]+=_0x2169c6);if(!0x0===_0x7ba0a0['end']){let _0x58d06d=_0x5b69ca[_0x429ada(0xe13)]-0x1;if(_0x5b69ca['t']+_0x5b69ca['start_i']!==_0x58d06d)return null;}return _0x5b69ca['t']+=_0x2169c6,!0x0;}return!!_0x7ba0a0[_0x429ada(0x180e)]||null;},_0x30270a=function(_0x7f1dab,_0x3d61c4,_0x20305f){const _0x58f455=_0x235866;let _0x46edb9=0x0;for(let _0x40f678=_0x7f1dab['t'];_0x40f678<_0x7f1dab[_0x58f455(0x18a5)][_0x58f455(0x205b)];_0x40f678+=0x1){let _0x5eac96=_0x4dea73(_0x7f1dab['terms'][_0x40f678],_0x3d61c4,_0x7f1dab[_0x58f455(0x3ef4)]+_0x7f1dab['t'],_0x7f1dab[_0x58f455(0xe13)]);if(_0x5eac96)break;if(_0x20305f&&(_0x5eac96=_0x4dea73(_0x7f1dab['terms'][_0x40f678],_0x20305f,_0x7f1dab['start_i']+_0x7f1dab['t'],_0x7f1dab[_0x58f455(0xe13)]),_0x5eac96))break;if(_0x46edb9+=0x1,void 0x0!==_0x3d61c4['max']&&_0x46edb9===_0x3d61c4[_0x58f455(0x28c)])break;}return 0x0!==_0x46edb9&&(!(_0x3d61c4['min']&&_0x3d61c4[_0x58f455(0x12f9)]>_0x46edb9)&&(_0x7f1dab['t']+=_0x46edb9,!0x0));},_0x4190c2=function(_0x1645d5){const _0x26a81c=_0x235866,{regs:_0x332123}=_0x1645d5;let _0x15a855=_0x332123[_0x1645d5['r']],_0x41aa65=Object[_0x26a81c(0x11e8)]({},_0x15a855);if(_0x41aa65[_0x26a81c(0x3fbe)]=!0x1,_0x4dea73(_0x1645d5[_0x26a81c(0x18a5)][_0x1645d5['t']],_0x41aa65,_0x1645d5['start_i']+_0x1645d5['t'],_0x1645d5[_0x26a81c(0xe13)]))return!0x1;if(_0x15a855[_0x26a81c(0x180e)]){let _0x477fcb=_0x332123[_0x1645d5['r']+0x1];if(_0x477fcb){if(_0x4dea73(_0x1645d5[_0x26a81c(0x18a5)][_0x1645d5['t']],_0x477fcb,_0x1645d5[_0x26a81c(0x3ef4)]+_0x1645d5['t'],_0x1645d5[_0x26a81c(0xe13)]))_0x1645d5['r']+=0x1;else _0x477fcb[_0x26a81c(0x180e)]&&_0x332123[_0x1645d5['r']+0x2]&&(_0x4dea73(_0x1645d5['terms'][_0x1645d5['t']],_0x332123[_0x1645d5['r']+0x2],_0x1645d5[_0x26a81c(0x3ef4)]+_0x1645d5['t'],_0x1645d5[_0x26a81c(0xe13)])&&(_0x1645d5['r']+=0x2));}}return _0x15a855[_0x26a81c(0x188a)]?_0x30270a(_0x1645d5,_0x41aa65,_0x332123[_0x1645d5['r']+0x1]):(_0x1645d5['t']+=0x1,!0x0);},_0x534e50=function(_0x5144ca){const _0x1cedbc=_0x235866,{regs:_0x134cc7}=_0x5144ca;let _0x37579d=_0x134cc7[_0x5144ca['r']],_0x5ac269=_0x5144ca[_0x1cedbc(0x18a5)][_0x5144ca['t']],_0x502ca6=_0x4dea73(_0x5ac269,_0x134cc7[_0x5144ca['r']+0x1],_0x5144ca[_0x1cedbc(0x3ef4)]+_0x5144ca['t'],_0x5144ca[_0x1cedbc(0xe13)]);if(_0x37579d['negative']||_0x502ca6){let _0x196e71=_0x5144ca[_0x1cedbc(0x18a5)][_0x5144ca['t']+0x1];_0x196e71&&_0x4dea73(_0x196e71,_0x134cc7[_0x5144ca['r']+0x1],_0x5144ca[_0x1cedbc(0x3ef4)]+_0x5144ca['t'],_0x5144ca[_0x1cedbc(0xe13)])||(_0x5144ca['r']+=0x1);}},_0x3ec437=function(_0x49adc5){const _0x1af436=_0x235866,{regs:_0x5a5be7,phrase_length:_0x43db79}=_0x49adc5;let _0x25ba1e=_0x5a5be7[_0x49adc5['r']];return _0x49adc5['t']=function(_0x4434ea,_0x149317){const _0x8bbc26=a0_0x329b;let _0x25dbfc=Object['assign']({},_0x4434ea[_0x8bbc26(0x4176)][_0x4434ea['r']],{'start':!0x1,'end':!0x1}),_0x8c82b2=_0x4434ea['t'];for(;_0x4434ea['t']<_0x4434ea['terms'][_0x8bbc26(0x205b)];_0x4434ea['t']+=0x1){if(_0x149317&&_0x4dea73(_0x4434ea['terms'][_0x4434ea['t']],_0x149317,_0x4434ea[_0x8bbc26(0x3ef4)]+_0x4434ea['t'],_0x4434ea[_0x8bbc26(0xe13)]))return _0x4434ea['t'];let _0x5d0cc5=_0x4434ea['t']-_0x8c82b2+0x1;if(void 0x0!==_0x25dbfc[_0x8bbc26(0x28c)]&&_0x5d0cc5===_0x25dbfc['max'])return _0x4434ea['t'];if(!0x1===_0x4dea73(_0x4434ea[_0x8bbc26(0x18a5)][_0x4434ea['t']],_0x25dbfc,_0x4434ea['start_i']+_0x4434ea['t'],_0x4434ea['phrase_length']))return void 0x0!==_0x25dbfc[_0x8bbc26(0x12f9)]&&_0x5d0cc5<_0x25dbfc['min']?null:_0x4434ea['t'];}return _0x4434ea['t'];}(_0x49adc5,_0x5a5be7[_0x49adc5['r']+0x1]),null===_0x49adc5['t']||_0x25ba1e['min']&&_0x25ba1e['min']>_0x49adc5['t']?null:!0x0!==_0x25ba1e['end']||_0x49adc5[_0x1af436(0x3ef4)]+_0x49adc5['t']===_0x43db79||null;},_0x3b1d6a=function(_0xfe2a14){const _0x12be92=_0x235866;let _0x44643f=_0xfe2a14[_0x12be92(0x18a5)][_0xfe2a14['t']],_0x156b18=_0xfe2a14[_0x12be92(0x4176)][_0xfe2a14['r']];if(_0x44643f['implicit']&&_0xfe2a14['terms'][_0xfe2a14['t']+0x1]){if(!_0xfe2a14[_0x12be92(0x18a5)][_0xfe2a14['t']+0x1]['implicit'])return;_0x156b18[_0x12be92(0x2013)]===_0x44643f[_0x12be92(0x4cb)]&&(_0xfe2a14['t']+=0x1),_0x12be92(0x2043)===_0x156b18[_0x12be92(0xd7c)]&&(_0xfe2a14['t']+=0x1);}},_0x22354c=function(_0x4f7729){const _0x591b38=_0x235866,{regs:_0x506a2d}=_0x4f7729;let _0xa7a396=_0x506a2d[_0x4f7729['r']],_0x4180d1=_0x4f7729[_0x591b38(0x18a5)][_0x4f7729['t']],_0x57a2b5=_0x4f7729['t'];if(_0xa7a396[_0x591b38(0x180e)]&&_0x506a2d[_0x4f7729['r']+0x1]&&_0xa7a396[_0x591b38(0x3fbe)])return!0x0;if(_0xa7a396[_0x591b38(0x180e)]&&_0x506a2d[_0x4f7729['r']+0x1]&&_0x534e50(_0x4f7729),_0x4180d1[_0x591b38(0x15c0)]&&_0x4f7729[_0x591b38(0x18a5)][_0x4f7729['t']+0x1]&&_0x3b1d6a(_0x4f7729),_0x4f7729['t']+=0x1,!0x0===_0xa7a396[_0x591b38(0x721)]&&_0x4f7729['t']!==_0x4f7729[_0x591b38(0x18a5)][_0x591b38(0x205b)]&&!0x0!==_0xa7a396[_0x591b38(0x188a)])return null;if(!0x0===_0xa7a396[_0x591b38(0x188a)]){if(!_0x3ec437(_0x4f7729))return null;}return!0x0===_0x4f7729[_0x591b38(0x1d68)]&&function(_0x5398ac,_0x746461){const _0x56ba7f=_0x591b38;let _0x4d5f2d=_0x5398ac[_0x56ba7f(0x4176)][_0x5398ac['r']];const _0xde3103=_0x42da34(_0x5398ac,_0x746461);_0x5398ac['t']>0x1&&_0x4d5f2d[_0x56ba7f(0x188a)]?_0xde3103[_0x56ba7f(0x205b)]+=_0x5398ac['t']-_0x746461:_0xde3103[_0x56ba7f(0x205b)]++;}(_0x4f7729,_0x57a2b5),!0x0;},_0x109d1d=function(_0x17d862,_0x11b634,_0x5a2671,_0x2f0aea){const _0x38bd24=_0x235866;if(0x0===_0x17d862[_0x38bd24(0x205b)]||0x0===_0x11b634[_0x38bd24(0x205b)])return null;let _0x46e3da={'t':0x0,'terms':_0x17d862,'r':0x0,'regs':_0x11b634,'groups':{},'start_i':_0x5a2671,'phrase_length':_0x2f0aea,'inGroup':null};for(;_0x46e3da['r']<_0x11b634[_0x38bd24(0x205b)];_0x46e3da['r']+=0x1){let _0x3a2485=_0x11b634[_0x46e3da['r']];if(_0x46e3da[_0x38bd24(0x1d68)]=Boolean(_0x3a2485[_0x38bd24(0x4941)]),!0x0===_0x46e3da[_0x38bd24(0x1d68)]?_0x46e3da[_0x38bd24(0xa7a)]=_0x3a2485[_0x38bd24(0x4941)]:_0x46e3da[_0x38bd24(0xa7a)]=null,!_0x46e3da[_0x38bd24(0x18a5)][_0x46e3da['t']]){if(!0x1===_0x11b634[_0x38bd24(0x428e)](_0x46e3da['r'])['some'](_0x23fdc8=>!_0x23fdc8[_0x38bd24(0x180e)]))break;return null;}if(!0x0!==_0x3a2485[_0x38bd24(0x42e3)]||!0x0!==_0x3a2485[_0x38bd24(0x188a)]){if(void 0x0===_0x3a2485[_0x38bd24(0x2607)]||'or'!==_0x3a2485[_0x38bd24(0x5d3)]){if(void 0x0===_0x3a2485[_0x38bd24(0x2607)]||_0x38bd24(0x43ea)!==_0x3a2485[_0x38bd24(0x5d3)]){if(!0x0!==_0x3a2485[_0x38bd24(0x42e3)]){if(!0x0!==_0x1836a6(_0x3a2485,_0x46e3da)){if(_0x3a2485[_0x38bd24(0x3fbe)]){if(!_0x4190c2(_0x46e3da))return null;}else{if(!0x0!==_0x4dea73(_0x46e3da['terms'][_0x46e3da['t']],_0x3a2485,_0x46e3da[_0x38bd24(0x3ef4)]+_0x46e3da['t'],_0x46e3da[_0x38bd24(0xe13)])){if(!0x0!==_0x3a2485['optional'])return null;}else{if(!_0x22354c(_0x46e3da))return null;}}}else{if(!_0x22354c(_0x46e3da))return null;}}else{if(_0x3a2485[_0x38bd24(0x3fbe)]&&_0x3a2485[_0x38bd24(0x42e3)])return null;if(!_0x22354c(_0x46e3da))return null;}}else{if(!_0x200da2(_0x46e3da))return null;}}else{if(!_0x1f2512(_0x46e3da))return null;}}else{if(!_0x11edc3(_0x46e3da))return null;}}let _0x14f2e5=[null,_0x5a2671,_0x46e3da['t']+_0x5a2671];if(_0x14f2e5[0x1]===_0x14f2e5[0x2])return null;let _0x459cb4={};return Object[_0x38bd24(0x2f75)](_0x46e3da['groups'])[_0x38bd24(0x4854)](_0x4e3aa9=>{const _0x561441=_0x38bd24;let _0x1f44cf=_0x46e3da[_0x561441(0xbbd)][_0x4e3aa9],_0x18c173=_0x5a2671+_0x1f44cf[_0x561441(0x1698)];_0x459cb4[_0x4e3aa9]=[null,_0x18c173,_0x18c173+_0x1f44cf[_0x561441(0x205b)]];}),{'pointer':_0x14f2e5,'groups':_0x459cb4};},_0x3d99ef=function(_0xfbe6ae,_0x50b651){const _0x278d4b=_0x235866;let _0x5a404c=[],_0x1f09ab={};return 0x0===_0xfbe6ae[_0x278d4b(0x205b)]||(_0x278d4b(0x1ed7)==typeof _0x50b651&&(_0x50b651=String(_0x50b651)),_0x50b651?_0xfbe6ae[_0x278d4b(0x4854)](_0x13a03a=>{const _0x189725=_0x278d4b;_0x13a03a[_0x189725(0xbbd)][_0x50b651]&&_0x5a404c[_0x189725(0x4131)](_0x13a03a[_0x189725(0xbbd)][_0x50b651]);}):_0xfbe6ae[_0x278d4b(0x4854)](_0x565453=>{const _0x450c20=_0x278d4b;_0x5a404c[_0x450c20(0x4131)](_0x565453[_0x450c20(0x1d95)]),Object['keys'](_0x565453[_0x450c20(0xbbd)])[_0x450c20(0x4854)](_0x586def=>{const _0x98ed82=_0x450c20;_0x1f09ab[_0x586def]=_0x1f09ab[_0x586def]||[],_0x1f09ab[_0x586def][_0x98ed82(0x4131)](_0x565453['groups'][_0x586def]);});})),{'ptrs':_0x5a404c,'byGroup':_0x1f09ab};},_0x4f4ee5=function(_0x1e69e3,_0x2cfe86,_0x1b05ee){const _0x13b4cc=_0x235866;return _0x1e69e3=_0x1e69e3[_0x13b4cc(0x295e)](_0x30fae0=>{const _0x3c1801=_0x13b4cc;let [_0x40f64e,_0x5613b,_0x3d2680]=_0x30fae0[_0x3c1801(0x1d95)],_0xb3fd53=_0x1b05ee[_0x40f64e][_0x3c1801(0x428e)](_0x5613b,_0x3d2680);for(let _0x3bcc31=0x0;_0x3bcc31<_0xb3fd53[_0x3c1801(0x205b)];_0x3bcc31+=0x1){let _0x93d748=_0xb3fd53[_0x3c1801(0x428e)](_0x3bcc31);if(null!==_0x109d1d(_0x93d748,_0x2cfe86,_0x3bcc31,_0xb3fd53[_0x3c1801(0x205b)]))return!0x1;}return!0x0;}),_0x1e69e3;},_0x168a0d=function(_0xa0ecfe,_0x1f7a5a){const _0x498018=_0x235866;return _0xa0ecfe['pointer'][0x0]=_0x1f7a5a,Object['keys'](_0xa0ecfe['groups'])[_0x498018(0x4854)](_0x48f923=>{const _0x215b29=_0x498018;_0xa0ecfe[_0x215b29(0xbbd)][_0x48f923][0x0]=_0x1f7a5a;}),_0xa0ecfe;},_0x7dad22=function(_0x115044,_0x4d0769,_0x3c533f){const _0x45fd09=_0x235866;let _0x505d15=_0x109d1d(_0x115044,_0x4d0769,0x0,_0x115044[_0x45fd09(0x205b)]);return _0x505d15?(_0x505d15=_0x168a0d(_0x505d15,_0x3c533f),_0x505d15):null;},_0x381967=function(_0xff7c27,_0x247dd6,_0x287ac8){const _0x2697e0=_0x235866;_0x287ac8=_0x287ac8||[];let {regs:_0x4fdb4d,group:_0x38ca5e,justOne:_0x1d2ea1}=_0x247dd6,_0xf29cfb=[];if(!_0x4fdb4d||0x0===_0x4fdb4d[_0x2697e0(0x205b)])return{'ptrs':[],'byGroup':{}};const _0x323fb2=_0x4fdb4d['filter'](_0x509ce2=>!0x0!==_0x509ce2[_0x2697e0(0x180e)]&&!0x0!==_0x509ce2[_0x2697e0(0x3fbe)])['length'];_0x45b515:for(let _0x292459=0x0;_0x292459<_0xff7c27[_0x2697e0(0x205b)];_0x292459+=0x1){let _0x4e07ec=_0xff7c27[_0x292459];if(!_0x287ac8[_0x292459]||!_0x8c4700(_0x4fdb4d,_0x287ac8[_0x292459])){if(!0x0!==_0x4fdb4d[0x0][_0x2697e0(0x1698)])for(let _0x5d3334=0x0;_0x5d3334<_0x4e07ec[_0x2697e0(0x205b)];_0x5d3334+=0x1){let _0x17c2cf=_0x4e07ec[_0x2697e0(0x428e)](_0x5d3334);if(_0x17c2cf[_0x2697e0(0x205b)]<_0x323fb2)break;let _0x366538=_0x109d1d(_0x17c2cf,_0x4fdb4d,_0x5d3334,_0x4e07ec['length']);if(_0x366538){if(_0x366538=_0x168a0d(_0x366538,_0x292459),_0xf29cfb[_0x2697e0(0x4131)](_0x366538),!0x0===_0x1d2ea1)break _0x45b515;let _0x1e0813=_0x366538[_0x2697e0(0x1d95)][0x2];Math[_0x2697e0(0x444c)](_0x1e0813-0x1)>_0x5d3334&&(_0x5d3334=Math[_0x2697e0(0x444c)](_0x1e0813-0x1));}}else{let _0x154ef6=_0x7dad22(_0x4e07ec,_0x4fdb4d,_0x292459);_0x154ef6&&_0xf29cfb[_0x2697e0(0x4131)](_0x154ef6);}}}return!0x0===_0x4fdb4d[_0x4fdb4d[_0x2697e0(0x205b)]-0x1][_0x2697e0(0x721)]&&(_0xf29cfb=_0xf29cfb[_0x2697e0(0x295e)](_0x381b86=>{const _0x5bbc9f=_0x2697e0;let _0x13e101=_0x381b86['pointer'][0x0];return _0xff7c27[_0x13e101]['length']===_0x381b86[_0x5bbc9f(0x1d95)][0x2];})),_0x247dd6[_0x2697e0(0xfba)]&&(_0xf29cfb=_0x4f4ee5(_0xf29cfb,_0x247dd6[_0x2697e0(0xfba)],_0xff7c27)),_0xf29cfb=_0x3d99ef(_0xf29cfb,_0x38ca5e),_0xf29cfb[_0x2697e0(0x33fe)][_0x2697e0(0x4854)](_0xbfc309=>{let [_0x3c00a6,_0x10b13d,_0x3a3d31]=_0xbfc309;_0xbfc309[0x3]=_0xff7c27[_0x3c00a6][_0x10b13d]['id'],_0xbfc309[0x4]=_0xff7c27[_0x3c00a6][_0x3a3d31-0x1]['id'];}),_0xf29cfb;},_0x5c7b74={'api':_0x27d28d,'methods':{'one':{'termMethods':_0x16bdae,'parseMatch':_0x996130,'match':_0x381967}},'lib':{'parseMatch':function(_0xc1d621,_0x439e87){const _0x196f51=_0x235866,_0xd2dd0d=this[_0x196f51(0x3e71)]();let _0x172f7e=_0xd2dd0d[_0x196f51(0x8f)][_0x196f51(0x4116)]['killUnicode'];return _0x172f7e&&(_0xc1d621=_0x172f7e(_0xc1d621,_0xd2dd0d)),_0xd2dd0d['methods'][_0x196f51(0x4116)][_0x196f51(0x763)](_0xc1d621,_0x439e87,_0xd2dd0d);}}},_0x1931fb=/^\../,_0x5a3feb=/^#./,_0x2febdc=function(_0x1fc863,_0x124e16){const _0x5656ea=_0x235866;let _0x27d397={},_0x5445d9={};return Object[_0x5656ea(0x2f75)](_0x124e16)[_0x5656ea(0x4854)](_0x92b9c=>{const _0x54151e=_0x5656ea;let _0x5014f2=_0x124e16[_0x92b9c],_0x98d0d4=function(_0x32c02f){const _0x529fb0=a0_0x329b;let _0x3e87ee='',_0x53f08f=_0x529fb0(0x3de);return _0x32c02f=_0x32c02f[_0x529fb0(0x1db7)](/&/g,_0x529fb0(0x4924))[_0x529fb0(0x1db7)](//g,_0x529fb0(0xc10))['replace'](/"/g,'"')[_0x529fb0(0x1db7)](/'/g,_0x529fb0(0x34eb)),_0x1931fb[_0x529fb0(0x34c)](_0x32c02f)?_0x3e87ee=_0x529fb0(0x36e3)+_0x32c02f[_0x529fb0(0x1db7)](/^\./,'')+'\x22':_0x5a3feb[_0x529fb0(0x34c)](_0x32c02f)?_0x3e87ee=_0x529fb0(0x3fc4)+_0x32c02f[_0x529fb0(0x1db7)](/^#/,'')+'\x22':(_0x3e87ee='<'+_0x32c02f,_0x53f08f=''),_0x3e87ee+='>',{'start':_0x3e87ee,'end':_0x53f08f};}(_0x92b9c);_0x54151e(0x4f7c)==typeof _0x5014f2&&(_0x5014f2=_0x1fc863['match'](_0x5014f2)),_0x5014f2['docs'][_0x54151e(0x4854)](_0xafd47e=>{const _0x57c8f8=_0x54151e;if(_0xafd47e[_0x57c8f8(0x464d)](_0x20358b=>_0x20358b['implicit']))return;let _0x52ce64=_0xafd47e[0x0]['id'];_0x27d397[_0x52ce64]=_0x27d397[_0x52ce64]||[],_0x27d397[_0x52ce64][_0x57c8f8(0x4131)](_0x98d0d4[_0x57c8f8(0x1698)]);let _0x430620=_0xafd47e[_0xafd47e[_0x57c8f8(0x205b)]-0x1]['id'];_0x5445d9[_0x430620]=_0x5445d9[_0x430620]||[],_0x5445d9[_0x430620][_0x57c8f8(0x4131)](_0x98d0d4['end']);});}),{'starts':_0x27d397,'ends':_0x5445d9};},_0x227b58={'html':function(_0x37228e){const _0x257e5d=_0x235866;let {starts:_0x326399,ends:_0xef4a80}=_0x2febdc(this,_0x37228e),_0x512ea2='';return this['docs'][_0x257e5d(0x4854)](_0x58be72=>{const _0x51cd4f=_0x257e5d;for(let _0x2ccf8f=0x0;_0x2ccf8f<_0x58be72[_0x51cd4f(0x205b)];_0x2ccf8f+=0x1){let _0x4b0ae8=_0x58be72[_0x2ccf8f];_0x326399['hasOwnProperty'](_0x4b0ae8['id'])&&(_0x512ea2+=_0x326399[_0x4b0ae8['id']]['join']('')),_0x512ea2+=_0x4b0ae8[_0x51cd4f(0x1553)]||'',_0x512ea2+=_0x4b0ae8[_0x51cd4f(0x2f35)]||'',_0xef4a80['hasOwnProperty'](_0x4b0ae8['id'])&&(_0x512ea2+=_0xef4a80[_0x4b0ae8['id']][_0x51cd4f(0x379c)]('')),_0x512ea2+=_0x4b0ae8[_0x51cd4f(0x9ce)]||'';}}),_0x512ea2;}},_0x126231=/[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/,_0x9a3d0f=/^[(['"*~\uFF02\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F]+/,_0x1a4a4f=/[,:;)('"\u201D\]]/,_0x72951d=/^[-–—]$/,_0x5d9ad3=/ /,_0x5ada9f=function(_0xa0fa9b,_0x37932e,_0x57d6a8=!0x0){const _0x46407d=_0x235866;let _0x457593='';return _0xa0fa9b[_0x46407d(0x4854)](_0x4912cd=>{const _0x3e6208=_0x46407d;let _0x517b3f=_0x4912cd[_0x3e6208(0x1553)]||'',_0x11892d=_0x4912cd[_0x3e6208(0x9ce)]||'';'some'===_0x37932e[_0x3e6208(0x42e1)]&&(_0x517b3f=_0x517b3f['replace'](_0x9a3d0f,''),_0x72951d['test'](_0x11892d)&&(_0x11892d='\x20'),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](_0x1a4a4f,''),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](/\?!+/,'?'),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](/!+/,'!'),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](/\?+/,'?'),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](/\.{2,}/,''),_0x4912cd['tags'][_0x3e6208(0x5ec)]('Abbreviation')&&(_0x11892d=_0x11892d['replace'](/\./,''))),_0x3e6208(0x3f5f)===_0x37932e[_0x3e6208(0x2505)]&&(_0x517b3f=_0x517b3f['replace'](/\s/,''),_0x11892d=_0x11892d[_0x3e6208(0x1db7)](/\s+/,'\x20')),_0x37932e['keepPunct']||(_0x517b3f=_0x517b3f[_0x3e6208(0x1db7)](_0x9a3d0f,''),_0x11892d='-'===_0x11892d?'\x20':_0x11892d[_0x3e6208(0x1db7)](_0x126231,''));let _0x22d527=_0x4912cd[_0x37932e['form']||_0x3e6208(0x2f35)]||_0x4912cd['normal']||'';_0x3e6208(0x15c0)===_0x37932e[_0x3e6208(0x377b)]&&(_0x22d527=_0x4912cd['implicit']||_0x4912cd['text']),_0x3e6208(0xdf8)===_0x37932e[_0x3e6208(0x377b)]&&_0x4912cd['implicit']&&(_0x22d527=_0x4912cd[_0x3e6208(0xdf8)]||_0x4912cd[_0x3e6208(0x15c0)]||_0x4912cd[_0x3e6208(0x4cb)]),_0x3e6208(0x194)!==_0x37932e['form']&&'implicit'!==_0x37932e[_0x3e6208(0x377b)]&&_0x3e6208(0xdf8)!==_0x37932e[_0x3e6208(0x377b)]||!_0x4912cd['implicit']||_0x11892d&&_0x5d9ad3[_0x3e6208(0x34c)](_0x11892d)||(_0x11892d+='\x20'),_0x457593+=_0x517b3f+_0x22d527+_0x11892d;}),!0x1===_0x57d6a8&&(_0x457593=_0x457593[_0x46407d(0x1d0e)]()),!0x0===_0x37932e[_0x46407d(0x50c8)]&&(_0x457593=_0x457593[_0x46407d(0x1a57)]()),_0x457593;},_0x38f638={'text':{'form':_0x235866(0x2f35)},'normal':{'whitespace':'some','punctuation':_0x235866(0x3f5f),'case':_0x235866(0x3f5f),'unicode':_0x235866(0x3f5f),'form':_0x235866(0x4cb)},'machine':{'keepSpace':!0x1,'whitespace':_0x235866(0x3f5f),'punctuation':_0x235866(0x3f5f),'case':_0x235866(0x80b),'unicode':_0x235866(0x3f5f),'form':'machine'},'root':{'keepSpace':!0x1,'whitespace':_0x235866(0x3f5f),'punctuation':_0x235866(0x3f5f),'case':_0x235866(0x3f5f),'unicode':'some','form':_0x235866(0xdf8)},'implicit':{'form':_0x235866(0x15c0)}};_0x38f638[_0x235866(0x3646)]=_0x38f638[_0x235866(0x4cb)],_0x38f638[_0x235866(0x475b)]=_0x38f638[_0x235866(0xdf8)];const _0x4fb733=_0x38f638;let _0x20b31c=[],_0x3ebf73=0x0;for(;_0x3ebf73<0x40;)_0x20b31c[_0x3ebf73]=0x0|0x100000000*Math[_0x235866(0x423c)](++_0x3ebf73%Math['PI']);const _0x10ad1a=function(_0x3db207){const _0x57a053=_0x235866;let _0x1542e4,_0x58b4ef,_0x15db05,_0x21343d=[_0x1542e4=0x67452301,_0x58b4ef=0xefcdab89,~_0x1542e4,~_0x58b4ef],_0x3a3afa=[],_0x1ce116=decodeURI(encodeURI(_0x3db207))+'\u0080',_0x578a5f=_0x1ce116[_0x57a053(0x205b)];for(_0x3db207=--_0x578a5f/0x4+0x2|0xf,_0x3a3afa[--_0x3db207]=0x8*_0x578a5f;~_0x578a5f;)_0x3a3afa[_0x578a5f>>0x2]|=_0x1ce116[_0x57a053(0x1806)](_0x578a5f)<<0x8*_0x578a5f--;for(_0x3ebf73=_0x1ce116=0x0;_0x3ebf73<_0x3db207;_0x3ebf73+=0x10){for(_0x578a5f=_0x21343d;_0x1ce116<0x40;_0x578a5f=[_0x15db05=_0x578a5f[0x3],_0x1542e4+((_0x15db05=_0x578a5f[0x0]+[_0x1542e4&_0x58b4ef|~_0x1542e4&_0x15db05,_0x15db05&_0x1542e4|~_0x15db05&_0x58b4ef,_0x1542e4^_0x58b4ef^_0x15db05,_0x58b4ef^(_0x1542e4|~_0x15db05)][_0x578a5f=_0x1ce116>>0x4]+_0x20b31c[_0x1ce116]+~~_0x3a3afa[_0x3ebf73|0xf&[_0x1ce116,0x5*_0x1ce116+0x1,0x3*_0x1ce116+0x5,0x7*_0x1ce116][_0x578a5f]])<<(_0x578a5f=[0x7,0xc,0x11,0x16,0x5,0x9,0xe,0x14,0x4,0xb,0x10,0x17,0x6,0xa,0xf,0x15][0x4*_0x578a5f+_0x1ce116++%0x4])|_0x15db05>>>-_0x578a5f),_0x1542e4,_0x58b4ef])_0x1542e4=0x0|_0x578a5f[0x1],_0x58b4ef=_0x578a5f[0x2];for(_0x1ce116=0x4;_0x1ce116;)_0x21343d[--_0x1ce116]+=_0x578a5f[_0x1ce116];}for(_0x3db207='';_0x1ce116<0x20;)_0x3db207+=(_0x21343d[_0x1ce116>>0x3]>>0x4*(0x1^_0x1ce116++)&0xf)['toString'](0x10);return _0x3db207;},_0x534d97={'text':!0x0,'terms':!0x0};let _0x32d6cc={'case':_0x235866(0x80b),'unicode':_0x235866(0x3f5f),'form':_0x235866(0x194),'punctuation':'some'};const _0x23d7d1=function(_0x5fc8e,_0x4cbaba){const _0x1c1c49=_0x235866;return Object[_0x1c1c49(0x11e8)]({},_0x5fc8e,_0x4cbaba);},_0x2b4d1e={'text':_0x223e71=>_0x5ada9f(_0x223e71,{'keepPunct':!0x0},!0x1),'normal':_0x106ed8=>_0x5ada9f(_0x106ed8,_0x23d7d1(_0x4fb733[_0x235866(0x4cb)],{'keepPunct':!0x0}),!0x1),'implicit':_0x31b45a=>_0x5ada9f(_0x31b45a,_0x23d7d1(_0x4fb733[_0x235866(0x15c0)],{'keepPunct':!0x0}),!0x1),'machine':_0xb7cd81=>_0x5ada9f(_0xb7cd81,_0x32d6cc,!0x1),'root':_0x84323f=>_0x5ada9f(_0x84323f,_0x23d7d1(_0x32d6cc,{'form':'root'}),!0x1),'hash':_0x19c4eb=>_0x10ad1a(_0x5ada9f(_0x19c4eb,{'keepPunct':!0x0},!0x1)),'offset':_0x3a9cc7=>{const _0x337b1f=_0x235866;let _0x302a03=_0x2b4d1e['text'](_0x3a9cc7)[_0x337b1f(0x205b)];return{'index':_0x3a9cc7[0x0][_0x337b1f(0x3a59)][_0x337b1f(0x1cf3)],'start':_0x3a9cc7[0x0][_0x337b1f(0x3a59)]['start'],'length':_0x302a03};},'terms':_0x119629=>_0x119629[_0x235866(0x2c94)](_0x514e0b=>{const _0x5ec5d1=_0x235866;let _0x234339=Object[_0x5ec5d1(0x11e8)]({},_0x514e0b);return _0x234339[_0x5ec5d1(0x23d1)]=Array['from'](_0x514e0b[_0x5ec5d1(0x23d1)]),_0x234339;}),'confidence':(_0x18696d,_0x301967,_0x3abf38)=>_0x301967['eq'](_0x3abf38)[_0x235866(0x2ab9)](),'syllables':(_0x3a2c75,_0x11c659,_0x43006f)=>_0x11c659['eq'](_0x43006f)[_0x235866(0x6eb)](),'sentence':(_0x2ce4bc,_0x54a7c1,_0x336cdc)=>_0x54a7c1['eq'](_0x336cdc)[_0x235866(0x12f)]()['text'](),'dirty':_0x879a9d=>_0x879a9d[_0x235866(0x3f5f)](_0x49d15c=>!0x0===_0x49d15c[_0x235866(0x2e56)])};_0x2b4d1e[_0x235866(0xb8c)]=_0x2b4d1e[_0x235866(0x3cfb)],_0x2b4d1e[_0x235866(0x3646)]=_0x2b4d1e[_0x235866(0x4cb)],_0x2b4d1e['reduced']=_0x2b4d1e[_0x235866(0xdf8)];const _0x2be190={'json':function(_0x446ca2){const _0xe55bee=_0x235866;let _0x58335d=(_0x2aea0b=this,'string'==typeof(_0x4969fb=(_0x4969fb=_0x446ca2)||{})&&(_0x4969fb={}),(_0x4969fb=Object[_0xe55bee(0x11e8)]({},_0x534d97,_0x4969fb))[_0xe55bee(0x3a59)]&&_0x2aea0b[_0xe55bee(0x210d)](_0xe55bee(0x3a59)),_0x2aea0b['docs'][_0xe55bee(0x2c94)]((_0x1fea98,_0x1111fe)=>{const _0x4003b0=_0xe55bee;let _0x230697={};return Object['keys'](_0x4969fb)[_0x4003b0(0x4854)](_0x17ae00=>{_0x4969fb[_0x17ae00]&&_0x2b4d1e[_0x17ae00]&&(_0x230697[_0x17ae00]=_0x2b4d1e[_0x17ae00](_0x1fea98,_0x2aea0b,_0x1111fe));}),_0x230697;}));var _0x2aea0b,_0x4969fb;return _0xe55bee(0x1ed7)==typeof _0x446ca2?_0x58335d[_0x446ca2]:_0x58335d;}};_0x2be190[_0x235866(0x2a43)]=_0x2be190[_0x235866(0x25b9)];const _0x5208cc=_0x2be190,_0x40d595=function(_0x509701){const _0x44ac98=_0x235866;let _0x4cefb6=this[_0x44ac98(0x8f)]['one'][_0x44ac98(0x4e41)]||{};return _0x509701&&_0x4cefb6[_0x44ac98(0x32b5)](_0x509701)?(_0x4cefb6[_0x509701](this),this):'undefined'!=typeof window&&window[_0x44ac98(0x46d9)]?(_0x4cefb6[_0x44ac98(0xbf2)](this),this):(_0x4cefb6[_0x44ac98(0x23d1)](this),this);},_0x507a0a=function(_0x108a4b){const _0x15683f=_0x235866;let _0x10c36d=_0x108a4b[_0x15683f(0x1553)]||'',_0x351155=_0x108a4b['post']||'';return _0x10c36d+_0x108a4b[_0x15683f(0x2f35)]+_0x351155;},_0x23a905=function(_0x6e7b9d,_0x3df425){const _0x551cca=_0x235866;let _0xcd73e6=function(_0xd6afad,_0x287401){const _0x4f55f1=a0_0x329b;let _0x44568f={};return Object['keys'](_0x287401)[_0x4f55f1(0x4854)](_0x341d29=>{const _0x4c5d0a=_0x4f55f1;_0xd6afad[_0x4c5d0a(0xdc0)](_0x341d29)[_0x4c5d0a(0x48da)][_0x4c5d0a(0x4854)](_0x5255fd=>{_0x44568f[_0x5255fd[0x3]]={'fn':_0x287401[_0x341d29],'end':_0x5255fd[0x2]};});}),_0x44568f;}(_0x6e7b9d,_0x3df425),_0x44c0d='';return _0x6e7b9d[_0x551cca(0x3f72)]['forEach']((_0x430291,_0x513622)=>{const _0x5be43c=_0x551cca;for(let _0x295ff7=0x0;_0x295ff7<_0x430291[_0x5be43c(0x205b)];_0x295ff7+=0x1){let _0xc9713d=_0x430291[_0x295ff7];if(_0xcd73e6[_0x5be43c(0x32b5)](_0xc9713d['id'])){let {fn:_0x57377b,end:_0x3e49f1}=_0xcd73e6[_0xc9713d['id']],_0x3acd5e=_0x6e7b9d['update']([[_0x513622,_0x295ff7,_0x3e49f1]]);_0x44c0d+=_0x430291[_0x295ff7]['pre']||'',_0x44c0d+=_0x57377b(_0x3acd5e),_0x295ff7=_0x3e49f1-0x1,_0x44c0d+=_0x430291[_0x295ff7][_0x5be43c(0x9ce)]||'';}else _0x44c0d+=_0x507a0a(_0xc9713d);}}),_0x44c0d;},_0x10206a={'debug':_0x40d595,'out':function(_0x4aac77){const _0x4daed6=_0x235866;if(_0x5d7636=_0x4aac77,_0x4daed6(0x2f7a)===Object[_0x4daed6(0x2b5c)][_0x4daed6(0x44de)][_0x4daed6(0x4c9d)](_0x5d7636))return _0x23a905(this,_0x4aac77);var _0x5d7636;if(_0x4daed6(0x2f35)===_0x4aac77)return this[_0x4daed6(0x2f35)]();if(_0x4daed6(0x4cb)===_0x4aac77)return this['text'](_0x4daed6(0x4cb));if('root'===_0x4aac77)return this[_0x4daed6(0x2f35)]('root');if('machine'===_0x4aac77||'reduced'===_0x4aac77)return this[_0x4daed6(0x2f35)]('machine');if(_0x4daed6(0x37e1)===_0x4aac77||'md5'===_0x4aac77)return _0x10ad1a(this['text']());if('json'===_0x4aac77)return this[_0x4daed6(0x25b9)]();if(_0x4daed6(0x3a59)===_0x4aac77||_0x4daed6(0x4628)===_0x4aac77)return this[_0x4daed6(0x210d)](_0x4daed6(0x3a59)),this[_0x4daed6(0x25b9)]({'offset':!0x0});if(_0x4daed6(0x47f8)===_0x4aac77){let _0x19abc6=this[_0x4daed6(0x3f72)][_0x4daed6(0x2c94)](_0x21d788=>_0x21d788[_0x4daed6(0xf33)]((_0x499036,_0x563be4)=>_0x499036+_0x563be4[_0x4daed6(0x1553)]+_0x563be4['text']+_0x563be4[_0x4daed6(0x9ce)],'')['trim']());return _0x19abc6['filter'](_0x327a20=>_0x327a20);}if(_0x4daed6(0x142a)===_0x4aac77||'frequency'===_0x4aac77||_0x4daed6(0x26eb)===_0x4aac77)return function(_0x3ce1d0){const _0x207117=_0x4daed6;let _0x2d419e={};_0x3ce1d0[_0x207117(0x4854)](_0x588ead=>{_0x2d419e[_0x588ead]=_0x2d419e[_0x588ead]||0x0,_0x2d419e[_0x588ead]+=0x1;});let _0x1822a5=Object[_0x207117(0x2f75)](_0x2d419e)[_0x207117(0x2c94)](_0x34d7d2=>({'normal':_0x34d7d2,'count':_0x2d419e[_0x34d7d2]}));return _0x1822a5[_0x207117(0x509)]((_0x4a4d82,_0xaf78c7)=>_0x4a4d82['count']>_0xaf78c7[_0x207117(0x4d47)]?-0x1:0x0);}(this[_0x4daed6(0x25b9)]({'normal':!0x0})['map'](_0x16f12c=>_0x16f12c[_0x4daed6(0x4cb)]));if(_0x4daed6(0x18a5)===_0x4aac77){let _0x45b013=[];return this[_0x4daed6(0x3f72)]['forEach'](_0x5b2c5a=>{const _0x55586c=_0x4daed6;let _0x107bd4=_0x5b2c5a['map'](_0x28b280=>_0x28b280[_0x55586c(0x2f35)]);_0x107bd4=_0x107bd4[_0x55586c(0x295e)](_0x706134=>_0x706134),_0x45b013=_0x45b013[_0x55586c(0x41bf)](_0x107bd4);}),_0x45b013;}return _0x4daed6(0x23d1)===_0x4aac77?this[_0x4daed6(0x3f72)]['map'](_0xd031e=>_0xd031e[_0x4daed6(0xf33)]((_0x2a73ae,_0x55961e)=>(_0x2a73ae[_0x55961e[_0x4daed6(0x15c0)]||_0x55961e[_0x4daed6(0x4cb)]]=Array[_0x4daed6(0xc81)](_0x55961e['tags']),_0x2a73ae),{})):_0x4daed6(0x4e41)===_0x4aac77?this[_0x4daed6(0x4e41)]():this[_0x4daed6(0x2f35)]();},'wrap':function(_0x2f4730){return _0x23a905(this,_0x2f4730);}},_0x242ebb=_0x10206a,_0x49476f={'text':function(_0x5be369){const _0x5efbda=_0x235866;let _0x3f05e4={};var _0x2b145d;if(_0x5be369&&_0x5efbda(0x4f7c)==typeof _0x5be369&&_0x4fb733[_0x5efbda(0x32b5)](_0x5be369)?_0x3f05e4=Object['assign']({},_0x4fb733[_0x5be369]):_0x5be369&&(_0x2b145d=_0x5be369,'[object\x20Object]'===Object['prototype'][_0x5efbda(0x44de)][_0x5efbda(0x4c9d)](_0x2b145d))&&(_0x3f05e4=Object[_0x5efbda(0x11e8)]({},_0x5be369)),void 0x0!==_0x3f05e4[_0x5efbda(0x33a2)]||this['isFull']()||(_0x3f05e4['keepSpace']=!0x1),void 0x0===_0x3f05e4[_0x5efbda(0x4b39)]&&this[_0x5efbda(0x1d95)]){let _0x223deb=this[_0x5efbda(0x1d95)][0x0];_0x223deb&&_0x223deb[0x1]?_0x3f05e4[_0x5efbda(0x4b39)]=!0x1:_0x3f05e4[_0x5efbda(0x4b39)]=!0x0;}return void 0x0===_0x3f05e4[_0x5efbda(0x3902)]&&(_0x3f05e4[_0x5efbda(0x3902)]=!0x0),void 0x0===_0x3f05e4[_0x5efbda(0x33a2)]&&(_0x3f05e4['keepSpace']=!0x0),function(_0x2db1bc,_0x2407ff){const _0x3f33bc=_0x5efbda;let _0x4c20e4='';if(!_0x2db1bc||!_0x2db1bc[0x0]||!_0x2db1bc[0x0][0x0])return _0x4c20e4;for(let _0x4388f2=0x0;_0x4388f2<_0x2db1bc[_0x3f33bc(0x205b)];_0x4388f2+=0x1)_0x4c20e4+=_0x5ada9f(_0x2db1bc[_0x4388f2],_0x2407ff,!0x0);if(_0x2407ff[_0x3f33bc(0x33a2)]||(_0x4c20e4=_0x4c20e4[_0x3f33bc(0x1d0e)]()),!0x1===_0x2407ff[_0x3f33bc(0x4b39)]){_0x2db1bc[0x0][0x0][_0x3f33bc(0x23d1)]['has'](_0x3f33bc(0x1242))||(_0x4c20e4=_0x4c20e4[_0x3f33bc(0x1db7)](_0x9a3d0f,''));let _0x698683=_0x2db1bc[_0x2db1bc[_0x3f33bc(0x205b)]-0x1];_0x698683[_0x698683[_0x3f33bc(0x205b)]-0x1][_0x3f33bc(0x23d1)][_0x3f33bc(0x5ec)](_0x3f33bc(0x1242))||(_0x4c20e4=_0x4c20e4[_0x3f33bc(0x1db7)](_0x126231,'')),_0x4c20e4[_0x3f33bc(0xe37)]('\x27')&&!_0x4c20e4[_0x3f33bc(0xe37)]('s\x27')&&(_0x4c20e4=_0x4c20e4[_0x3f33bc(0x1db7)](/'/,''));}return!0x0===_0x2407ff['cleanWhitespace']&&(_0x4c20e4=_0x4c20e4[_0x3f33bc(0x1d0e)]()),_0x4c20e4;}(this['docs'],_0x3f05e4);}},_0x1ec2ed=Object[_0x235866(0x11e8)]({},_0x242ebb,_0x49476f,_0x5208cc,_0x227b58),_0x13a591=function(_0xca1b29){const _0x9fd2fb=_0x235866;Object[_0x9fd2fb(0x11e8)](_0xca1b29[_0x9fd2fb(0x2b5c)],_0x1ec2ed);},_0x33e58f=function(_0x5a2a0c){const _0x57cba0=_0x235866;_0x5a2a0c[_0x57cba0(0x4854)](_0x146a44=>{const _0x1c9eb5=_0x57cba0;_0x146a44[_0x1c9eb5(0x3f72)][0x0][_0x1c9eb5(0x2c94)](_0x5ace9a=>{const _0x1ea5c1=_0x1c9eb5;let _0x42d39e=_0x5ace9a[_0x1ea5c1(0x2f35)]||'-';return _0x5ace9a[_0x1ea5c1(0x15c0)]&&(_0x42d39e='['+_0x5ace9a[_0x1ea5c1(0x15c0)]+']'),{'text':_0x42d39e,'tags':'['+Array['from'](_0x5ace9a[_0x1ea5c1(0x23d1)])[_0x1ea5c1(0x379c)](',\x20')+']'};});});},_0x238c9f=_0x235866(0x4397),_0x26eb25={'green':_0x24be74=>_0x235866(0x2dc7)+_0x24be74+_0x238c9f,'red':_0x5321a4=>'\x1b[31m'+_0x5321a4+_0x238c9f,'blue':_0x365322=>_0x235866(0xc7d)+_0x365322+_0x238c9f,'magenta':_0x245f06=>_0x235866(0x16c4)+_0x245f06+_0x238c9f,'cyan':_0x7ad6d7=>'\x1b[36m'+_0x7ad6d7+_0x238c9f,'yellow':_0x36d5bc=>_0x235866(0x3e95)+_0x36d5bc+_0x238c9f,'black':_0x225e5e=>_0x235866(0x1f20)+_0x225e5e+_0x238c9f,'dim':_0x915eb2=>'\x1b[2m'+_0x915eb2+_0x238c9f,'i':_0x5f5aa3=>_0x235866(0x1b39)+_0x5f5aa3+_0x238c9f},_0x2615aa=function(_0x570c8b){const _0x340b1c=_0x235866;let {docs:_0x22260b,model:_0x3bd5d5}=_0x570c8b;_0x22260b[_0x340b1c(0x205b)],_0x22260b[_0x340b1c(0x4854)](_0x53c212=>{const _0x562ae8=_0x340b1c;_0x53c212[_0x562ae8(0x4854)](_0x502ca8=>{const _0x105f77=_0x562ae8;let _0x408b9f=[..._0x502ca8[_0x105f77(0x23d1)]||[]],_0x5e66ab=_0x502ca8[_0x105f77(0x2f35)]||'-';_0x502ca8[_0x105f77(0x14f6)]&&(_0x5e66ab='{'+_0x502ca8['normal']+'/'+_0x502ca8['sense']+'}'),_0x502ca8['implicit']&&(_0x5e66ab='['+_0x502ca8[_0x105f77(0x15c0)]+']'),_0x5e66ab=_0x26eb25[_0x105f77(0x1df)](_0x5e66ab);let _0x5088c9='\x27'+_0x5e66ab+'\x27';if(_0x502ca8[_0x105f77(0x3085)]){let _0x501028=_0x570c8b[_0x105f77(0xf93)]([_0x502ca8[_0x105f77(0x3085)]])['text'](_0x105f77(0x4cb));_0x5088c9+='\x20-\x20'+_0x26eb25[_0x105f77(0x25de)](_0x26eb25['i']('['+_0x501028+']'));}_0x5088c9=_0x5088c9['padEnd'](0x12),(_0x26eb25['blue']('\x20\x20│\x20'),_0x26eb25['i'](_0x5088c9),function(_0x2597be,_0x5d7f03){const _0x493784=_0x105f77;_0x5d7f03['one'][_0x493784(0x1720)]&&(_0x2597be=_0x2597be[_0x493784(0x2c94)](_0x1f3a8c=>{const _0x3f69dc=_0x493784;if(!_0x5d7f03[_0x3f69dc(0x4116)][_0x3f69dc(0x1720)][_0x3f69dc(0x32b5)](_0x1f3a8c))return _0x1f3a8c;const _0x45cf1a=_0x5d7f03['one'][_0x3f69dc(0x1720)][_0x1f3a8c][_0x3f69dc(0x378f)]||'blue';return _0x26eb25[_0x45cf1a](_0x1f3a8c);})),_0x2597be['join'](',\x20');}(_0x408b9f,_0x3bd5d5));});});},_0x3c1bda=function(_0x4529d4){const _0x16b84f=_0x235866;let {docs:_0x3ea08a}=_0x4529d4;_0x3ea08a[_0x16b84f(0x4854)](_0x1812eb=>{const _0x1c42b8=_0x16b84f;let _0x10fd73=[];_0x1812eb[_0x1c42b8(0x4854)](_0x524e96=>{const _0x53f38e=_0x1c42b8;'Noun'===_0x524e96[_0x53f38e(0x1637)]?_0x10fd73[_0x53f38e(0x4131)](_0x26eb25[_0x53f38e(0x316d)](_0x524e96[_0x53f38e(0x15c0)]||_0x524e96['normal'])):'Verb'===_0x524e96[_0x53f38e(0x1637)]?_0x10fd73[_0x53f38e(0x4131)](_0x26eb25[_0x53f38e(0x399)](_0x524e96['implicit']||_0x524e96[_0x53f38e(0x4cb)])):'Adjective'===_0x524e96['chunk']?_0x10fd73['push'](_0x26eb25[_0x53f38e(0x1df)](_0x524e96[_0x53f38e(0x15c0)]||_0x524e96['normal'])):_0x53f38e(0x2dc9)===_0x524e96[_0x53f38e(0x1637)]?_0x10fd73[_0x53f38e(0x4131)](_0x26eb25[_0x53f38e(0x3219)](_0x524e96[_0x53f38e(0x15c0)]||_0x524e96['normal'])):_0x10fd73[_0x53f38e(0x4131)](_0x524e96[_0x53f38e(0x15c0)]||_0x524e96[_0x53f38e(0x4cb)]);});});},_0x43363a=function(_0x4050c1){const _0x42e8ab=_0x235866;if(!_0x4050c1[_0x42e8ab(0x622)])return;let _0x43e6d1={};_0x4050c1[_0x42e8ab(0x48da)][_0x42e8ab(0x4854)](_0x30f7ba=>{const _0x485d5e=_0x42e8ab;_0x43e6d1[_0x30f7ba[0x0]]=_0x43e6d1[_0x30f7ba[0x0]]||[],_0x43e6d1[_0x30f7ba[0x0]][_0x485d5e(0x4131)](_0x30f7ba);}),Object[_0x42e8ab(0x2f75)](_0x43e6d1)[_0x42e8ab(0x4854)](_0xb55ce2=>{const _0x4e40e3=_0x42e8ab;let _0x162dd0=_0x4050c1['update']([[Number(_0xb55ce2)]])['text']();_0x4050c1['update'](_0x43e6d1[_0xb55ce2])[_0x4e40e3(0x25b9)]({'offset':!0x0})[_0x4e40e3(0x4854)]((_0x19ebf5,_0x16f8fc)=>{const _0x16981d=_0x4e40e3;_0x162dd0=function(_0x301a89,_0xdcad8,_0x5415a4){const _0x7f78c1=a0_0x329b;let _0x2fde4c=((_0x268d21,_0x1b41ce,_0xd73eb7)=>{const _0x5dc321=a0_0x329b;let _0x3c4088=0x9*_0xd73eb7,_0x1a279a=_0x1b41ce[_0x5dc321(0x1698)]+_0x3c4088,_0x35c6f6=_0x1a279a+_0x1b41ce[_0x5dc321(0x205b)];return[_0x268d21[_0x5dc321(0x3934)](0x0,_0x1a279a),_0x268d21[_0x5dc321(0x3934)](_0x1a279a,_0x35c6f6),_0x268d21['substring'](_0x35c6f6,_0x268d21[_0x5dc321(0x205b)])];})(_0x301a89,_0xdcad8,_0x5415a4);return''+_0x2fde4c[0x0]+_0x26eb25[_0x7f78c1(0x316d)](_0x2fde4c[0x1])+_0x2fde4c[0x2];}(_0x162dd0,_0x19ebf5[_0x16981d(0x3a59)],_0x16f8fc);});});},_0x1e9079={'api':_0x13a591,'methods':{'one':{'hash':_0x10ad1a,'debug':{'tags':_0x2615aa,'clientSide':_0x33e58f,'chunks':_0x3c1bda,'highlight':_0x43363a}}}},_0x299188=function(_0xa371ef,_0x32db7a){if(_0xa371ef[0x0]!==_0x32db7a[0x0])return!0x1;let [,_0xf6b367,_0x8a8ce6]=_0xa371ef,[,_0x4a552a,_0x4e0d4a]=_0x32db7a;return _0xf6b367<=_0x4a552a&&_0x8a8ce6>_0x4a552a||_0x4a552a<=_0xf6b367&&_0x4e0d4a>_0xf6b367;},_0x203447=function(_0x3ee8ad){const _0x38f6ad=_0x235866;let _0x16f90d={};return _0x3ee8ad[_0x38f6ad(0x4854)](_0x43c395=>{const _0x145de6=_0x38f6ad;_0x16f90d[_0x43c395[0x0]]=_0x16f90d[_0x43c395[0x0]]||[],_0x16f90d[_0x43c395[0x0]][_0x145de6(0x4131)](_0x43c395);}),_0x16f90d;},_0x13751d=function(_0x38a948,_0x2c2fec){const _0x2bac18=_0x235866;let _0x4c19f7=_0x203447(_0x2c2fec),_0x1ba943=[];return _0x38a948[_0x2bac18(0x4854)](_0x2bcea3=>{const _0x127395=_0x2bac18;let [_0x3ebd0d]=_0x2bcea3,_0x403f61=_0x4c19f7[_0x3ebd0d]||[];if(_0x403f61=_0x403f61[_0x127395(0x295e)](_0x26158e=>function(_0x2eda84,_0x4541f7){return _0x2eda84[0x1]<=_0x4541f7[0x1]&&_0x4541f7[0x2]<=_0x2eda84[0x2];}(_0x2bcea3,_0x26158e)),0x0===_0x403f61['length'])return void _0x1ba943[_0x127395(0x4131)]({'passthrough':_0x2bcea3});_0x403f61=_0x403f61[_0x127395(0x509)]((_0x21dbce,_0x186588)=>_0x21dbce[0x1]-_0x186588[0x1]);let _0x3f5ab4=_0x2bcea3;_0x403f61[_0x127395(0x4854)]((_0x174db5,_0x19bf66)=>{const _0x59c7bd=_0x127395;let _0x63c24c=function(_0x523137,_0x47b583){const _0xa7d2c0=a0_0x329b;let [_0x9294a9,_0x53b4b8]=_0x523137,_0x3ad1e0=_0x47b583[0x1],_0x425063=_0x47b583[0x2],_0x3a2c08={};if(_0x53b4b8<_0x3ad1e0){let _0x25282f=_0x3ad1e0<_0x523137[0x2]?_0x3ad1e0:_0x523137[0x2];_0x3a2c08[_0xa7d2c0(0x19f2)]=[_0x9294a9,_0x53b4b8,_0x25282f];}return _0x3a2c08['match']=_0x47b583,_0x523137[0x2]>_0x425063&&(_0x3a2c08[_0xa7d2c0(0x1f69)]=[_0x9294a9,_0x425063,_0x523137[0x2]]),_0x3a2c08;}(_0x3f5ab4,_0x174db5);_0x403f61[_0x19bf66+0x1]?(_0x1ba943[_0x59c7bd(0x4131)]({'before':_0x63c24c['before'],'match':_0x63c24c['match']}),_0x63c24c[_0x59c7bd(0x1f69)]&&(_0x3f5ab4=_0x63c24c[_0x59c7bd(0x1f69)])):_0x1ba943[_0x59c7bd(0x4131)](_0x63c24c);});}),_0x1ba943;},_0x80d5cf=function(_0x329109,_0x2bdd37){const _0x3c9fcf=_0x235866;let _0xb4ff73=[];return _0x329109['forEach']((_0x4cb640,_0x37a110)=>{const _0x5b44d1=a0_0x329b;if(!_0x4cb640)return;let [_0x1b7f4e,_0x186d66,_0x11a747,_0x13659f,_0x469d97]=_0x4cb640,_0x237c57=_0x2bdd37[_0x1b7f4e]||[];if(void 0x0===_0x186d66&&(_0x186d66=0x0),void 0x0===_0x11a747&&(_0x11a747=_0x237c57['length']),!_0x13659f||_0x237c57[_0x186d66]&&_0x237c57[_0x186d66]['id']===_0x13659f)_0x237c57=_0x237c57[_0x5b44d1(0x428e)](_0x186d66,_0x11a747);else{let _0x4a3375=function(_0x15faa6,_0x3e1abb,_0x2dffd0){const _0x5f086c=_0x5b44d1;for(let _0x4d41e3=0x0;_0x4d41e3<0x14;_0x4d41e3+=0x1){if(_0x3e1abb[_0x2dffd0-_0x4d41e3]){let _0xc206d5=_0x3e1abb[_0x2dffd0-_0x4d41e3][_0x5f086c(0x734)](_0x5f3239=>_0x5f3239['id']===_0x15faa6);if(-0x1!==_0xc206d5)return[_0x2dffd0-_0x4d41e3,_0xc206d5];}if(_0x3e1abb[_0x2dffd0+_0x4d41e3]){let _0x41258f=_0x3e1abb[_0x2dffd0+_0x4d41e3][_0x5f086c(0x734)](_0x36d1f3=>_0x36d1f3['id']===_0x15faa6);if(-0x1!==_0x41258f)return[_0x2dffd0+_0x4d41e3,_0x41258f];}}return null;}(_0x13659f,_0x2bdd37,_0x1b7f4e);if(null!==_0x4a3375){let _0x42e06a=_0x11a747-_0x186d66;_0x237c57=_0x2bdd37[_0x4a3375[0x0]][_0x5b44d1(0x428e)](_0x4a3375[0x1],_0x4a3375[0x1]+_0x42e06a);let _0x4b7f40=_0x237c57[0x0]?_0x237c57[0x0]['id']:null;_0x329109[_0x37a110]=[_0x4a3375[0x0],_0x4a3375[0x1],_0x4a3375[0x1]+_0x42e06a,_0x4b7f40];}}0x0!==_0x237c57['length']&&_0x186d66!==_0x11a747&&(_0x469d97&&_0x237c57[_0x237c57['length']-0x1]['id']!==_0x469d97&&(_0x237c57=function(_0x58108d,_0x5daa2c){const _0xc073a7=_0x5b44d1;let [_0x3c3841,_0x3587fb,,,_0xc30363]=_0x58108d,_0xf6b184=_0x5daa2c[_0x3c3841],_0x4749d5=_0xf6b184[_0xc073a7(0x734)](_0x1d120c=>_0x1d120c['id']===_0xc30363);return-0x1===_0x4749d5?(_0x58108d[0x2]=_0x5daa2c[_0x3c3841][_0xc073a7(0x205b)],_0x58108d[0x4]=_0xf6b184['length']?_0xf6b184[_0xf6b184[_0xc073a7(0x205b)]-0x1]['id']:null):_0x58108d[0x2]=_0x4749d5,_0x5daa2c[_0x3c3841][_0xc073a7(0x428e)](_0x3587fb,_0x58108d[0x2]+0x1);}(_0x4cb640,_0x2bdd37)),_0xb4ff73[_0x5b44d1(0x4131)](_0x237c57));}),_0xb4ff73=_0xb4ff73[_0x3c9fcf(0x295e)](_0x997516=>_0x997516[_0x3c9fcf(0x205b)]>0x0),_0xb4ff73;},_0x18f6eb={'one':{'termList':function(_0x580ccc){const _0x477df8=_0x235866;let _0x23e9d7=[];for(let _0x132537=0x0;_0x132537<_0x580ccc[_0x477df8(0x205b)];_0x132537+=0x1)for(let _0x34b110=0x0;_0x34b110<_0x580ccc[_0x132537]['length'];_0x34b110+=0x1)_0x23e9d7[_0x477df8(0x4131)](_0x580ccc[_0x132537][_0x34b110]);return _0x23e9d7;},'getDoc':_0x80d5cf,'pointer':{'indexN':_0x203447,'splitAll':_0x13751d}}},_0x3d07bb=function(_0x33524e,_0x4b5132){const _0x27e3e4=_0x235866;let _0x1b4e48=_0x33524e['concat'](_0x4b5132),_0x4e3f8d=_0x203447(_0x1b4e48),_0x20b7b3=[];return _0x1b4e48[_0x27e3e4(0x4854)](_0x20a516=>{const _0x457523=_0x27e3e4;let [_0x47e5d0]=_0x20a516;if(0x1===_0x4e3f8d[_0x47e5d0][_0x457523(0x205b)])return void _0x20b7b3[_0x457523(0x4131)](_0x20a516);let _0x14add3=_0x4e3f8d[_0x47e5d0]['filter'](_0x4da15b=>_0x299188(_0x20a516,_0x4da15b));_0x14add3[_0x457523(0x4131)](_0x20a516);let _0x1e8e32=function(_0x54e75b){const _0x5202c4=_0x457523;let _0x5979df=_0x54e75b[0x0][0x1],_0x52d706=_0x54e75b[0x0][0x2];return _0x54e75b[_0x5202c4(0x4854)](_0x2f0cd2=>{_0x2f0cd2[0x1]<_0x5979df&&(_0x5979df=_0x2f0cd2[0x1]),_0x2f0cd2[0x2]>_0x52d706&&(_0x52d706=_0x2f0cd2[0x2]);}),[_0x54e75b[0x0][0x0],_0x5979df,_0x52d706];}(_0x14add3);_0x20b7b3[_0x457523(0x4131)](_0x1e8e32);}),_0x20b7b3=function(_0x87b972){const _0x194d65=_0x27e3e4;let _0x2e695d={};for(let _0x5b5e56=0x0;_0x5b5e56<_0x87b972[_0x194d65(0x205b)];_0x5b5e56+=0x1)_0x2e695d[_0x87b972[_0x5b5e56][_0x194d65(0x379c)](',')]=_0x87b972[_0x5b5e56];return Object['values'](_0x2e695d);}(_0x20b7b3),_0x20b7b3;},_0x5b9858=function(_0x3170e4,_0x821d10){const _0x1ba01d=_0x235866;let _0x26ea10=[];return _0x13751d(_0x3170e4,_0x821d10)[_0x1ba01d(0x4854)](_0x551682=>{const _0x22f0c9=_0x1ba01d;_0x551682[_0x22f0c9(0x2fdf)]&&_0x26ea10[_0x22f0c9(0x4131)](_0x551682[_0x22f0c9(0x2fdf)]),_0x551682[_0x22f0c9(0x19f2)]&&_0x26ea10[_0x22f0c9(0x4131)](_0x551682[_0x22f0c9(0x19f2)]),_0x551682[_0x22f0c9(0x1f69)]&&_0x26ea10[_0x22f0c9(0x4131)](_0x551682[_0x22f0c9(0x1f69)]);}),_0x26ea10;},_0x3ee362=function(_0x42d26f,_0xfe8367){const _0x4de637=_0x235866;let _0x5c15a7=_0x203447(_0xfe8367),_0x29820f=[];return _0x42d26f[_0x4de637(0x4854)](_0x344920=>{const _0x3b320c=_0x4de637;let _0xabc8c7=_0x5c15a7[_0x344920[0x0]]||[];_0xabc8c7=_0xabc8c7['filter'](_0xc13ea4=>_0x299188(_0x344920,_0xc13ea4)),0x0!==_0xabc8c7[_0x3b320c(0x205b)]&&_0xabc8c7[_0x3b320c(0x4854)](_0x51c403=>{const _0x2249e3=_0x3b320c;let _0x558792=function(_0x1b39ac,_0x1143ed){let _0x2f311a=_0x1b39ac[0x1]<_0x1143ed[0x1]?_0x1143ed[0x1]:_0x1b39ac[0x1],_0x588817=_0x1b39ac[0x2]>_0x1143ed[0x2]?_0x1143ed[0x2]:_0x1b39ac[0x2];return _0x2f311a<_0x588817?[_0x1b39ac[0x0],_0x2f311a,_0x588817]:null;}(_0x344920,_0x51c403);_0x558792&&_0x29820f[_0x2249e3(0x4131)](_0x558792);});}),_0x29820f;},_0x1585a3=(_0x225960,_0x415735)=>{const _0x3c980d=_0x235866;return _0x3c980d(0x4f7c)==typeof _0x225960||(_0x1a8575=_0x225960,_0x3c980d(0x4fba)===Object[_0x3c980d(0x2b5c)][_0x3c980d(0x44de)][_0x3c980d(0x4c9d)](_0x1a8575))?_0x415735[_0x3c980d(0xdc0)](_0x225960):_0x225960||_0x415735[_0x3c980d(0x80b)]();var _0x1a8575;},_0x52dddc=function(_0xc9a56b,_0x14df08){return _0xc9a56b['map'](_0x170851=>{let [_0x4cd1cd,_0xbf6e43]=_0x170851;return _0x14df08[_0x4cd1cd]&&_0x14df08[_0x4cd1cd][_0xbf6e43]&&(_0x170851[0x3]=_0x14df08[_0x4cd1cd][_0xbf6e43]['id']),_0x170851;});},_0x25b350={'union':function(_0x1a5ac6){const _0x373e8e=_0x235866;_0x1a5ac6=_0x1585a3(_0x1a5ac6,this);let _0x1f77fd=_0x3d07bb(this[_0x373e8e(0x48da)],_0x1a5ac6[_0x373e8e(0x48da)]);return _0x1f77fd=_0x52dddc(_0x1f77fd,this[_0x373e8e(0x46d9)]),this[_0x373e8e(0xc6b)](_0x1f77fd);}};_0x25b350[_0x235866(0x43ea)]=_0x25b350['union'],_0x25b350[_0x235866(0x31f9)]=function(_0x847017){const _0x5e605b=_0x235866;_0x847017=_0x1585a3(_0x847017,this);let _0x34169d=_0x3ee362(this['fullPointer'],_0x847017[_0x5e605b(0x48da)]);return _0x34169d=_0x52dddc(_0x34169d,this[_0x5e605b(0x46d9)]),this[_0x5e605b(0xc6b)](_0x34169d);},_0x25b350['not']=function(_0xa8407b){const _0x46af9b=_0x235866;_0xa8407b=_0x1585a3(_0xa8407b,this);let _0x243340=_0x5b9858(this[_0x46af9b(0x48da)],_0xa8407b[_0x46af9b(0x48da)]);return _0x243340=_0x52dddc(_0x243340,this[_0x46af9b(0x46d9)]),this[_0x46af9b(0xc6b)](_0x243340);},_0x25b350[_0x235866(0xd35)]=_0x25b350['not'],_0x25b350[_0x235866(0x17f0)]=function(){const _0x1b7f89=_0x235866;let _0x5be786=this['all'](),_0x231fe8=_0x5b9858(_0x5be786[_0x1b7f89(0x48da)],this[_0x1b7f89(0x48da)]);return _0x231fe8=_0x52dddc(_0x231fe8,this[_0x1b7f89(0x46d9)]),this[_0x1b7f89(0xc6b)](_0x231fe8);},_0x25b350[_0x235866(0x4db4)]=function(){const _0x1c9e6e=_0x235866;let _0x25cc15=this[_0x1c9e6e(0x48da)];return _0x25cc15[_0x1c9e6e(0x4854)](_0x3ab678=>{_0x25cc15=_0x3d07bb(_0x25cc15,[_0x3ab678]);}),_0x25cc15=_0x52dddc(_0x25cc15,this[_0x1c9e6e(0x46d9)]),this['update'](_0x25cc15);};const _0x19affd=function(_0x1042d6){Object['assign'](_0x1042d6['prototype'],_0x25b350);},_0x282ee5={'methods':_0x18f6eb,'api':_0x19affd},_0x442e86=function(_0x138ca9){const _0x2d9d65=_0x235866;_0x138ca9[_0x2d9d65(0x2b5c)][_0x2d9d65(0x1380)]=function(_0x30e7d7,_0x3745d0={}){const _0xb8ad6f=_0x2d9d65,{world:_0x2da844,docs:_0x28ec02}=this,{methods:_0x288b61}=_0x2da844;let _0x25c91f=_0x288b61[_0xb8ad6f(0x4116)]['bulkMatch'](_0x28ec02,_0x30e7d7,this[_0xb8ad6f(0x8f)],_0x3745d0);!0x1!==_0x3745d0[_0xb8ad6f(0x2c29)]&&_0x288b61['one'][_0xb8ad6f(0x47e1)](_0x25c91f,_0x28ec02,this[_0xb8ad6f(0x3e71)]),_0x25c91f=_0x25c91f[_0xb8ad6f(0x2c94)](_0x189049=>{const _0x2f797c=_0xb8ad6f;let _0x289599=_0x189049[_0x2f797c(0x1d95)],_0x271ee5=_0x28ec02[_0x289599[0x0]][_0x289599[0x1]],_0x4de402=_0x289599[0x2]-_0x289599[0x1];return _0x271ee5[_0x2f797c(0x1cf3)]&&(_0x189049['pointer']=[_0x271ee5[_0x2f797c(0x1cf3)][0x0],_0x271ee5[_0x2f797c(0x1cf3)][0x1],_0x289599[0x1]+_0x4de402]),_0x189049;});let _0x5c8aca=_0x25c91f[_0xb8ad6f(0x2c94)](_0x105065=>_0x105065[_0xb8ad6f(0x1d95)]);return _0x25c91f=_0x25c91f['map'](_0x521047=>(_0x521047[_0xb8ad6f(0x21af)]=this[_0xb8ad6f(0xf93)]([_0x521047[_0xb8ad6f(0x1d95)]]),delete _0x521047[_0xb8ad6f(0x4176)],delete _0x521047[_0xb8ad6f(0x2646)],delete _0x521047['pointer'],delete _0x521047['_expanded'],_0x521047)),{'view':this[_0xb8ad6f(0xf93)](_0x5c8aca),'found':_0x25c91f};};},_0x1d1e1f=function(_0xcf1fff){const _0x3ac665=_0x235866;return!0x0===_0xcf1fff[_0x3ac665(0x180e)]||!0x0===_0xcf1fff['negative']?null:_0xcf1fff['tag']?'#'+_0xcf1fff[_0x3ac665(0x17a2)]:_0xcf1fff['word']?_0xcf1fff[_0x3ac665(0x2013)]:_0xcf1fff['switch']?'%'+_0xcf1fff[_0x3ac665(0x68)]+'%':null;},_0x5e24c3=function(_0x13b7ba,_0x2c0c1e){const _0xbd27c8=_0x235866,_0x570ff8=_0x2c0c1e[_0xbd27c8(0x8f)][_0xbd27c8(0x4116)][_0xbd27c8(0x763)];return _0x13b7ba[_0xbd27c8(0x4854)](_0x4cb5b6=>{const _0x26392e=_0xbd27c8;_0x4cb5b6[_0x26392e(0x4176)]=_0x570ff8(_0x4cb5b6[_0x26392e(0xdc0)],{},_0x2c0c1e),'string'==typeof _0x4cb5b6[_0x26392e(0x4641)]&&(_0x4cb5b6['ifNo']=[_0x4cb5b6['ifNo']]),_0x4cb5b6['notIf']&&(_0x4cb5b6['notIf']=_0x570ff8(_0x4cb5b6[_0x26392e(0xfba)],{},_0x2c0c1e)),_0x4cb5b6[_0x26392e(0x2646)]=function(_0x1ad5de){const _0x3aec44=_0x26392e;let _0x162170=[];return _0x1ad5de['forEach'](_0x3482d0=>{const _0x3197c1=a0_0x329b;_0x162170['push'](_0x1d1e1f(_0x3482d0)),_0x3197c1(0x43ea)===_0x3482d0[_0x3197c1(0x5d3)]&&_0x3482d0[_0x3197c1(0x2607)]&&_0x3482d0['choices']['forEach'](_0xcfdaab=>{const _0x23a8f7=_0x3197c1;_0xcfdaab[_0x23a8f7(0x4854)](_0x22c23f=>{const _0x2df6b9=_0x23a8f7;_0x162170[_0x2df6b9(0x4131)](_0x1d1e1f(_0x22c23f));});});}),_0x162170[_0x3aec44(0x295e)](_0x55790b=>_0x55790b);}(_0x4cb5b6[_0x26392e(0x4176)]);let {wants:_0x4804e1,count:_0x23cf19}=function(_0x3a2a93){const _0xb785b1=_0x26392e;let _0x98bebd=[],_0x281dbf=0x0;return _0x3a2a93[_0xb785b1(0x4854)](_0x581867=>{const _0x2f1ac3=_0xb785b1;'or'!==_0x581867[_0x2f1ac3(0x5d3)]||_0x581867[_0x2f1ac3(0x180e)]||_0x581867[_0x2f1ac3(0x3fbe)]||(_0x581867[_0x2f1ac3(0x4eec)]&&Array[_0x2f1ac3(0xc81)](_0x581867[_0x2f1ac3(0x4eec)])[_0x2f1ac3(0x4854)](_0x1b73a7=>{_0x98bebd['push'](_0x1b73a7);}),_0x581867[_0x2f1ac3(0x2607)]&&_0x581867[_0x2f1ac3(0x2607)][_0x2f1ac3(0x4854)](_0x1805b3=>{const _0x255e82=_0x2f1ac3;_0x1805b3[_0x255e82(0x4854)](_0x4dedbe=>{const _0x33fb25=_0x255e82;let _0x5d46f9=_0x1d1e1f(_0x4dedbe);_0x5d46f9&&_0x98bebd[_0x33fb25(0x4131)](_0x5d46f9);});}),_0x281dbf+=0x1);}),{'wants':_0x98bebd,'count':_0x281dbf};}(_0x4cb5b6['regs']);_0x4cb5b6[_0x26392e(0x306d)]=_0x4804e1,_0x4cb5b6[_0x26392e(0x4365)]=_0x23cf19,_0x4cb5b6[_0x26392e(0x2b69)]=_0x4cb5b6[_0x26392e(0x4176)][_0x26392e(0x295e)](_0x16fb82=>!_0x16fb82['optional'])[_0x26392e(0x205b)];}),_0x13b7ba;},_0x2a6085=function(_0x37da9d,_0x55fe1d){const _0x5a632c=_0x235866;_0x37da9d=_0x5e24c3(_0x37da9d,_0x55fe1d);let _0x1904d3={};_0x37da9d['forEach'](_0x558770=>{const _0xacdee1=a0_0x329b;_0x558770['needs'][_0xacdee1(0x4854)](_0x5ab33f=>{const _0x406280=_0xacdee1;_0x1904d3[_0x5ab33f]=Array[_0x406280(0x477f)](_0x1904d3[_0x5ab33f])?_0x1904d3[_0x5ab33f]:[],_0x1904d3[_0x5ab33f][_0x406280(0x4131)](_0x558770);}),_0x558770[_0xacdee1(0x306d)]['forEach'](_0x30894d=>{const _0x417a09=_0xacdee1;_0x1904d3[_0x30894d]=Array[_0x417a09(0x477f)](_0x1904d3[_0x30894d])?_0x1904d3[_0x30894d]:[],_0x1904d3[_0x30894d][_0x417a09(0x4131)](_0x558770);});}),Object[_0x5a632c(0x2f75)](_0x1904d3)['forEach'](_0x53533e=>{const _0x22249c=_0x5a632c;let _0xe971de={};_0x1904d3[_0x53533e]=_0x1904d3[_0x53533e][_0x22249c(0x295e)](_0x3b35e4=>'boolean'!=typeof _0xe971de[_0x3b35e4[_0x22249c(0xdc0)]]&&(_0xe971de[_0x3b35e4[_0x22249c(0xdc0)]]=!0x0,!0x0));});let _0xce21d6=_0x37da9d[_0x5a632c(0x295e)](_0x490fcd=>0x0===_0x490fcd['needs']['length']&&0x0===_0x490fcd[_0x5a632c(0x306d)]['length']);return{'hooks':_0x1904d3,'always':_0xce21d6};},_0x5eea8a=function(_0x22c507,_0x128a6c){const _0x2724dc=_0x235866;return _0x22c507[_0x2724dc(0x2c94)]((_0x4353b0,_0x1e9804)=>{const _0x2b5709=_0x2724dc;let _0x1c8dcc=[];Object['keys'](_0x128a6c)['forEach'](_0x57288c=>{const _0x5bc397=a0_0x329b;_0x22c507[_0x1e9804][_0x5bc397(0x5ec)](_0x57288c)&&(_0x1c8dcc=_0x1c8dcc[_0x5bc397(0x41bf)](_0x128a6c[_0x57288c]));});let _0x3e954b={};return _0x1c8dcc=_0x1c8dcc[_0x2b5709(0x295e)](_0x3ecc09=>'boolean'!=typeof _0x3e954b[_0x3ecc09[_0x2b5709(0xdc0)]]&&(_0x3e954b[_0x3ecc09[_0x2b5709(0xdc0)]]=!0x0,!0x0)),_0x1c8dcc;});},_0x1034d9=function(_0x146b09,_0x53ba66){const _0x14eeb5=_0x235866;return _0x146b09[_0x14eeb5(0x2c94)]((_0x45ef29,_0x21eee8)=>{const _0x59293e=_0x14eeb5;let _0x33c483=_0x53ba66[_0x21eee8];return _0x45ef29=(_0x45ef29=(_0x45ef29=_0x45ef29[_0x59293e(0x295e)](_0x157474=>_0x157474['needs'][_0x59293e(0x464d)](_0x577409=>_0x33c483[_0x59293e(0x5ec)](_0x577409))))['filter'](_0x57619e=>void 0x0===_0x57619e[_0x59293e(0x4641)]||!0x0!==_0x57619e[_0x59293e(0x4641)][_0x59293e(0x3f5f)](_0x2d3344=>_0x33c483[_0x59293e(0x5ec)](_0x2d3344))))['filter'](_0x3aef89=>{const _0x1ae0e5=_0x59293e;if(0x0===_0x3aef89['wants'][_0x1ae0e5(0x205b)])return!0x0;return _0x3aef89[_0x1ae0e5(0x306d)][_0x1ae0e5(0x295e)](_0x2e25bc=>_0x33c483['has'](_0x2e25bc))[_0x1ae0e5(0x205b)]>=_0x3aef89[_0x1ae0e5(0x4365)];});});},_0x2e2f95=function(_0x24d0dc,_0x1a6e06,_0xd6027d,_0xc71b7a,_0x9545a5){const _0x5160ea=_0x235866;let _0x4a6356=[];for(let _0x352415=0x0;_0x352415<_0x24d0dc[_0x5160ea(0x205b)];_0x352415+=0x1)for(let _0x47ce10=0x0;_0x47ce10<_0x24d0dc[_0x352415][_0x5160ea(0x205b)];_0x47ce10+=0x1){let _0x2d027d=_0x24d0dc[_0x352415][_0x47ce10],_0x43685b=_0xc71b7a[_0x5160ea(0x4116)][_0x5160ea(0xdc0)]([_0x1a6e06[_0x352415]],_0x2d027d);if(_0x43685b[_0x5160ea(0x33fe)]['length']>0x0&&(_0x43685b['ptrs']['forEach'](_0x345b0b=>{const _0x59c484=_0x5160ea;_0x345b0b[0x0]=_0x352415;let _0x28dd55=Object[_0x59c484(0x11e8)]({},_0x2d027d,{'pointer':_0x345b0b});void 0x0!==_0x2d027d[_0x59c484(0x1af8)]&&(_0x28dd55[_0x59c484(0x1af8)]=_0x2d027d[_0x59c484(0x1af8)]),_0x4a6356['push'](_0x28dd55);}),!0x0===_0x9545a5['matchOne']))return[_0x4a6356[0x0]];}return _0x4a6356;},_0x5eae=function(_0x46fae5,_0xb6c96c,_0x1d6680,_0x30447f={}){const _0x100c8a=_0x235866;let _0x4ac751=_0x1d6680['one']['cacheDoc'](_0x46fae5),_0x4fd721=_0x5eea8a(_0x4ac751,_0xb6c96c['hooks']);return _0x4fd721=_0x1034d9(_0x4fd721,_0x4ac751,_0x46fae5),_0xb6c96c[_0x100c8a(0x4e4)][_0x100c8a(0x205b)]>0x0&&(_0x4fd721=_0x4fd721[_0x100c8a(0x2c94)](_0x187886=>_0x187886[_0x100c8a(0x41bf)](_0xb6c96c[_0x100c8a(0x4e4)]))),_0x4fd721=function(_0x5e6638,_0x724836){return _0x5e6638['map']((_0x180d1f,_0x1e6e15)=>{const _0x35cab3=a0_0x329b;let _0x5662d1=_0x724836[_0x1e6e15]['length'];return _0x180d1f=_0x180d1f[_0x35cab3(0x295e)](_0x40b639=>_0x5662d1>=_0x40b639[_0x35cab3(0x2b69)]),_0x180d1f;});}(_0x4fd721,_0x46fae5),_0x2e2f95(_0x4fd721,_0x46fae5,_0x4ac751,_0x1d6680,_0x30447f);},_0x41ab02=function(_0x2c7d7a,_0xc80661,_0x20faab){const _0xf47719=_0x235866;let _0x165b9b=_0x20faab['one'][_0xf47719(0x1720)];if(!_0x165b9b[_0xf47719(0x32b5)](_0xc80661))return!0x0;let _0x21ba32=_0x165b9b[_0xc80661][_0xf47719(0x4163)]||[];for(let _0x269111=0x0;_0x269111<_0x2c7d7a['length'];_0x269111+=0x1){let _0x116f5f=_0x2c7d7a[_0x269111];for(let _0x561c7f=0x0;_0x561c7f<_0x21ba32['length'];_0x561c7f+=0x1)if(!0x0===_0x116f5f['tags'][_0xf47719(0x5ec)](_0x21ba32[_0x561c7f]))return!0x1;}return!0x0;},_0x110dc0=function(_0x14406a,_0x402d09,_0x456f0f){const _0x6fa03a=_0x235866,{model:_0x317498,methods:_0x75ff1a}=_0x456f0f,{getDoc:_0x20102f,setTag:_0x1ecf56,unTag:_0x44da39}=_0x75ff1a[_0x6fa03a(0x4116)],_0x3f79c3=_0x75ff1a[_0x6fa03a(0x141f)]['looksPlural'];if(0x0===_0x14406a['length'])return _0x14406a;return(_0x6fa03a(0x2c3)!=typeof process&&process[_0x6fa03a(0x2f9e)]?process[_0x6fa03a(0x2f9e)]:self[_0x6fa03a(0x2f9e)]||{})[_0x6fa03a(0x2108)],_0x14406a[_0x6fa03a(0x2c94)](_0x584ffd=>{const _0x3ad9b4=_0x6fa03a;if(!_0x584ffd[_0x3ad9b4(0x17a2)]&&!_0x584ffd[_0x3ad9b4(0x1637)]&&!_0x584ffd[_0x3ad9b4(0x1af8)])return;let _0x3d0417=_0x584ffd['reason']||_0x584ffd['match'],_0x8a5fff=_0x20102f([_0x584ffd[_0x3ad9b4(0x1d95)]],_0x402d09)[0x0];if(!0x0===_0x584ffd[_0x3ad9b4(0xc00)]){if(!0x1===_0x41ab02(_0x8a5fff,_0x584ffd[_0x3ad9b4(0x17a2)],_0x317498))return;if('-'===_0x8a5fff[_0x8a5fff[_0x3ad9b4(0x205b)]-0x1][_0x3ad9b4(0x9ce)])return;}if(void 0x0!==_0x584ffd[_0x3ad9b4(0x17a2)]){if(_0x1ecf56(_0x8a5fff,_0x584ffd[_0x3ad9b4(0x17a2)],_0x456f0f,_0x584ffd[_0x3ad9b4(0xc00)],_0x3ad9b4(0x3c01)+_0x3d0417+'\x27'),_0x3ad9b4(0x1ce5)===_0x584ffd[_0x3ad9b4(0x17a2)]&&_0x3f79c3){let _0x178bba=_0x8a5fff[_0x8a5fff['length']-0x1];_0x3f79c3(_0x178bba[_0x3ad9b4(0x2f35)])?_0x1ecf56([_0x178bba],_0x3ad9b4(0x27b3),_0x456f0f,_0x584ffd[_0x3ad9b4(0xc00)],'quick-plural'):_0x1ecf56([_0x178bba],_0x3ad9b4(0x3faa),_0x456f0f,_0x584ffd[_0x3ad9b4(0xc00)],_0x3ad9b4(0x3f0a));}!0x0===_0x584ffd[_0x3ad9b4(0x2cba)]&&_0x8a5fff[_0x3ad9b4(0x4854)](_0x17105c=>_0x17105c[_0x3ad9b4(0x2356)]=!0x0);}void 0x0!==_0x584ffd[_0x3ad9b4(0x1af8)]&&_0x44da39(_0x8a5fff,_0x584ffd['unTag'],_0x456f0f,_0x584ffd['safe'],_0x3d0417),_0x584ffd[_0x3ad9b4(0x1637)]&&_0x8a5fff[_0x3ad9b4(0x4854)](_0x3e4ef9=>_0x3e4ef9[_0x3ad9b4(0x1637)]=_0x584ffd['chunk']);});},_0x4539be={'lib':{'buildNet':function(_0x4deab7){const _0x5c7e4f=_0x235866;let _0x5256e3=this[_0x5c7e4f(0x8f)]()['one'][_0x5c7e4f(0x4b51)](_0x4deab7,this['world']());return _0x5256e3[_0x5c7e4f(0xba1)]=!0x0,_0x5256e3;}},'api':_0x442e86,'methods':{'one':{'buildNet':_0x2a6085,'bulkMatch':_0x5eae,'bulkTagger':_0x110dc0}}},_0x1ffdfe=/ /,_0x42feb=function(_0x2829f0,_0x4db94f){const _0x1f464d=_0x235866;_0x1f464d(0x1ce5)===_0x4db94f&&(_0x2829f0[_0x1f464d(0x1637)]=_0x4db94f),_0x1f464d(0x41f2)===_0x4db94f&&(_0x2829f0[_0x1f464d(0x1637)]=_0x4db94f);},_0x3b99b2=function(_0xce335,_0x526237,_0x19ff8e,_0x5b1e9d){const _0x54fecf=_0x235866;if(!0x0===_0xce335['tags'][_0x54fecf(0x5ec)](_0x526237))return null;if('.'===_0x526237)return null;!0x0===_0xce335['frozen']&&(_0x5b1e9d=!0x0);let _0x463ba0=_0x19ff8e[_0x526237];if(_0x463ba0){if(_0x463ba0[_0x54fecf(0x4163)]&&_0x463ba0[_0x54fecf(0x4163)][_0x54fecf(0x205b)]>0x0)for(let _0x47f1a3=0x0;_0x47f1a3<_0x463ba0['not'][_0x54fecf(0x205b)];_0x47f1a3+=0x1){if(!0x0===_0x5b1e9d&&_0xce335[_0x54fecf(0x23d1)]['has'](_0x463ba0[_0x54fecf(0x4163)][_0x47f1a3]))return null;_0xce335[_0x54fecf(0x23d1)][_0x54fecf(0x450b)](_0x463ba0[_0x54fecf(0x4163)][_0x47f1a3]);}if(_0x463ba0[_0x54fecf(0x2ec0)]&&_0x463ba0['parents']['length']>0x0){for(let _0x5b9a35=0x0;_0x5b9a35<_0x463ba0[_0x54fecf(0x2ec0)][_0x54fecf(0x205b)];_0x5b9a35+=0x1)_0xce335['tags'][_0x54fecf(0x2fd8)](_0x463ba0[_0x54fecf(0x2ec0)][_0x5b9a35]),_0x42feb(_0xce335,_0x463ba0[_0x54fecf(0x2ec0)][_0x5b9a35]);}}return _0xce335[_0x54fecf(0x23d1)][_0x54fecf(0x2fd8)](_0x526237),_0xce335[_0x54fecf(0x2e56)]=!0x0,_0x42feb(_0xce335,_0x526237),!0x0;},_0x2c36e8=function(_0x57ee4f,_0x4ff4e7,_0x26e868={},_0x1e9eca,_0x4d2d42){const _0x5b895b=_0x235866,_0x2f90d1=_0x26e868[_0x5b895b(0x2c3e)][_0x5b895b(0x4116)][_0x5b895b(0x1720)]||{};if(!_0x4ff4e7)return;const _0x521d7a=_0x5b895b(0x2c3)!=typeof process&&process[_0x5b895b(0x2f9e)]?process[_0x5b895b(0x2f9e)]:self[_0x5b895b(0x2f9e)]||{};var _0x199335;if(_0x521d7a&&_0x521d7a['DEBUG_TAGS']&&((_0x255947,_0x4d1409,_0xa550fe='')=>{const _0x5823b3=_0x5b895b;_0x255947['map'](_0x573271=>_0x573271[_0x5823b3(0x2f35)]||'['+_0x573271[_0x5823b3(0x15c0)]+']')[_0x5823b3(0x379c)]('\x20'),'string'!=typeof _0x4d1409&&_0x4d1409['length']>0x2&&(_0x4d1409=_0x4d1409[_0x5823b3(0x428e)](0x0,0x2)[_0x5823b3(0x379c)](',\x20#')+'\x20+'),_0x4d1409=_0x5823b3(0x4f7c)!=typeof _0x4d1409?_0x4d1409[_0x5823b3(0x379c)](_0x5823b3(0x12bc)):_0x4d1409;})(_0x57ee4f,_0x4ff4e7,_0x4d2d42),!0x0!=(_0x199335=_0x4ff4e7,_0x5b895b(0x4fba)===Object['prototype'][_0x5b895b(0x44de)][_0x5b895b(0x4c9d)](_0x199335))){if('string'==typeof _0x4ff4e7){if(_0x4ff4e7=_0x4ff4e7['trim'](),_0x1ffdfe[_0x5b895b(0x34c)](_0x4ff4e7))!function(_0x3ba508,_0x519bf1,_0x2e725e,_0x25cf8b){const _0x1f4405=_0x5b895b;let _0x50bf15=_0x519bf1['split'](_0x1ffdfe);_0x3ba508[_0x1f4405(0x4854)]((_0x5a26dd,_0x3a449a)=>{const _0x505fe6=_0x1f4405;let _0x2be8f9=_0x50bf15[_0x3a449a];_0x2be8f9&&(_0x2be8f9=_0x2be8f9[_0x505fe6(0x1db7)](/^#/,''),_0x3b99b2(_0x5a26dd,_0x2be8f9,_0x2e725e,_0x25cf8b));});}(_0x57ee4f,_0x4ff4e7,_0x2f90d1,_0x1e9eca);else{_0x4ff4e7=_0x4ff4e7[_0x5b895b(0x1db7)](/^#/,'');for(let _0x2116bd=0x0;_0x2116bd<_0x57ee4f[_0x5b895b(0x205b)];_0x2116bd+=0x1)_0x3b99b2(_0x57ee4f[_0x2116bd],_0x4ff4e7,_0x2f90d1,_0x1e9eca);}}}else _0x4ff4e7[_0x5b895b(0x4854)](_0x162265=>_0x2c36e8(_0x57ee4f,_0x162265,_0x26e868,_0x1e9eca));},_0x38e352=_0x2c36e8,_0x161036=function(_0x3ae99c,_0x2e149f,_0x4a27d6){const _0x5f4311=_0x235866;_0x2e149f=_0x2e149f[_0x5f4311(0x1d0e)]()[_0x5f4311(0x1db7)](/^#/,'');for(let _0x2425a5=0x0;_0x2425a5<_0x3ae99c[_0x5f4311(0x205b)];_0x2425a5+=0x1){let _0x3eb05c=_0x3ae99c[_0x2425a5];if(!0x0===_0x3eb05c[_0x5f4311(0x2356)])continue;if('*'===_0x2e149f){_0x3eb05c[_0x5f4311(0x23d1)][_0x5f4311(0x30a1)]();continue;}let _0x13b94f=_0x4a27d6[_0x2e149f];if(_0x13b94f&&_0x13b94f[_0x5f4311(0x4538)]['length']>0x0){for(let _0x33f711=0x0;_0x33f711<_0x13b94f['children'][_0x5f4311(0x205b)];_0x33f711+=0x1)_0x3eb05c['tags'][_0x5f4311(0x450b)](_0x13b94f[_0x5f4311(0x4538)][_0x33f711]);}_0x3eb05c[_0x5f4311(0x23d1)][_0x5f4311(0x450b)](_0x2e149f);}},_0x36fe77=function(_0x1e4ac9,_0x2e52a1,_0x126539){const _0x1ea83d=_0x235866;if(!_0x126539[_0x1ea83d(0x32b5)](_0x2e52a1))return!0x0;let _0x128f9f=_0x126539[_0x2e52a1][_0x1ea83d(0x4163)]||[];for(let _0x79a554=0x0;_0x79a554<_0x128f9f[_0x1ea83d(0x205b)];_0x79a554+=0x1)if(_0x1e4ac9[_0x1ea83d(0x23d1)]['has'](_0x128f9f[_0x79a554]))return!0x1;return!0x0;},_0x3704e7=function(_0x2b7479){const _0x3862ea=_0x235866;return _0x2b7479['children']=_0x2b7479['children']||[],_0x2b7479[_0x3862ea(0x1d5f)]=_0x2b7479[_0x3862ea(0x1d5f)]||{},_0x2b7479['props']=_0x2b7479['props']||{},_0x2b7479[_0x3862ea(0x1d5f)]['parents']=_0x2b7479['_cache'][_0x3862ea(0x2ec0)]||[],_0x2b7479[_0x3862ea(0x1d5f)][_0x3862ea(0x4538)]=_0x2b7479['_cache'][_0x3862ea(0x4538)]||[],_0x2b7479;},_0x17a478=/^ *(#|\/\/)/,_0x38c8d4=function(_0x419e13){const _0x1b8c3b=_0x235866;let _0x40fe6d=_0x419e13[_0x1b8c3b(0x1d0e)]()[_0x1b8c3b(0x29d0)](/->/),_0x2bd567=[];_0x40fe6d[_0x1b8c3b(0x4854)](_0x350dc4=>{const _0x1652c7=_0x1b8c3b;_0x2bd567=_0x2bd567[_0x1652c7(0x41bf)](function(_0x241f3a){const _0x4255bf=_0x1652c7;if(!(_0x241f3a=_0x241f3a[_0x4255bf(0x1d0e)]()))return null;if(/^\[/[_0x4255bf(0x34c)](_0x241f3a)&&/\]$/['test'](_0x241f3a)){let _0x25eb81=(_0x241f3a=(_0x241f3a=_0x241f3a[_0x4255bf(0x1db7)](/^\[/,''))[_0x4255bf(0x1db7)](/\]$/,''))[_0x4255bf(0x29d0)](/,/);return _0x25eb81=_0x25eb81[_0x4255bf(0x2c94)](_0x362227=>_0x362227[_0x4255bf(0x1d0e)]())[_0x4255bf(0x295e)](_0x22eefc=>_0x22eefc),_0x25eb81=_0x25eb81['map'](_0x33a168=>_0x3704e7({'id':_0x33a168})),_0x25eb81;}return[_0x3704e7({'id':_0x241f3a})];}(_0x350dc4));}),_0x2bd567=_0x2bd567['filter'](_0x47cc8f=>_0x47cc8f);let _0x10289d=_0x2bd567[0x0];for(let _0x38e12c=0x1;_0x38e12c<_0x2bd567[_0x1b8c3b(0x205b)];_0x38e12c+=0x1)_0x10289d[_0x1b8c3b(0x4538)][_0x1b8c3b(0x4131)](_0x2bd567[_0x38e12c]),_0x10289d=_0x2bd567[_0x38e12c];return _0x2bd567[0x0];},_0x23b9f9=(_0x1c94ba,_0x338fdf)=>{const _0x2983c0=_0x235866;let _0x79329e=[],_0xc58b0=[_0x1c94ba];for(;_0xc58b0[_0x2983c0(0x205b)]>0x0;){let _0x5ae51=_0xc58b0['pop']();_0x79329e[_0x2983c0(0x4131)](_0x5ae51),_0x5ae51[_0x2983c0(0x4538)]&&_0x5ae51[_0x2983c0(0x4538)]['forEach'](_0x161f49=>{_0x338fdf&&_0x338fdf(_0x5ae51,_0x161f49),_0xc58b0['push'](_0x161f49);});}return _0x79329e;},_0x57e75e=_0x14edca=>_0x235866(0x4fba)===Object[_0x235866(0x2b5c)]['toString'][_0x235866(0x4c9d)](_0x14edca),_0x3e58bc=_0x324e17=>(_0x324e17=_0x324e17||'')[_0x235866(0x1d0e)](),_0x2f5eba=function(_0xd645e4=[]){const _0x3cd367=_0x235866;return _0x3cd367(0x4f7c)==typeof _0xd645e4?function(_0x2621d8){const _0x2c54fc=_0x3cd367;let _0x42a693=_0x2621d8[_0x2c54fc(0x29d0)](/\r?\n/),_0x4cbfb3=[];_0x42a693['forEach'](_0x499108=>{const _0x1edcdf=_0x2c54fc;if(!_0x499108[_0x1edcdf(0x1d0e)]()||_0x17a478[_0x1edcdf(0x34c)](_0x499108))return;let _0x57161f=(_0x2075a8=>{const _0x5dff23=/^( {2}|\t)/;let _0x3a89a2=0x0;for(;_0x5dff23['test'](_0x2075a8);)_0x2075a8=_0x2075a8['replace'](_0x5dff23,''),_0x3a89a2+=0x1;return _0x3a89a2;})(_0x499108);_0x4cbfb3[_0x1edcdf(0x4131)]({'indent':_0x57161f,'node':_0x38c8d4(_0x499108)});});let _0x394de6=function(_0x50c87f){const _0x5864a4=_0x2c54fc;let _0x213fa0={'children':[]};return _0x50c87f[_0x5864a4(0x4854)]((_0x1fed60,_0x12eb69)=>{const _0x44b0ad=_0x5864a4;0x0===_0x1fed60[_0x44b0ad(0x3136)]?_0x213fa0[_0x44b0ad(0x4538)]=_0x213fa0[_0x44b0ad(0x4538)][_0x44b0ad(0x41bf)](_0x1fed60[_0x44b0ad(0x3169)]):_0x50c87f[_0x12eb69-0x1]&&function(_0x52f887,_0x57c994){const _0x518a9f=_0x44b0ad;let _0xb1070c=_0x52f887[_0x57c994][_0x518a9f(0x3136)];for(;_0x57c994>=0x0;_0x57c994-=0x1)if(_0x52f887[_0x57c994]['indent']<_0xb1070c)return _0x52f887[_0x57c994];return _0x52f887[0x0];}(_0x50c87f,_0x12eb69)[_0x44b0ad(0x3169)][_0x44b0ad(0x4538)]['push'](_0x1fed60['node']);}),_0x213fa0;}(_0x4cbfb3);return _0x394de6=_0x3704e7(_0x394de6),_0x394de6;}(_0xd645e4):_0x57e75e(_0xd645e4)?function(_0x559019){const _0x440528=_0x3cd367;let _0xed6135={};_0x559019[_0x440528(0x4854)](_0x58f5d6=>{_0xed6135[_0x58f5d6['id']]=_0x58f5d6;});let _0x6b6179=_0x3704e7({});return _0x559019[_0x440528(0x4854)](_0x436471=>{const _0x102628=_0x440528;if((_0x436471=_0x3704e7(_0x436471))[_0x102628(0x2667)]){if(_0xed6135['hasOwnProperty'](_0x436471[_0x102628(0x2667)])){let _0x117e3a=_0xed6135[_0x436471[_0x102628(0x2667)]];delete _0x436471[_0x102628(0x2667)],_0x117e3a[_0x102628(0x4538)]['push'](_0x436471);}}else _0x6b6179['children']['push'](_0x436471);}),_0x6b6179;}(_0xd645e4):(_0x23b9f9(_0x5bae97=_0xd645e4)[_0x3cd367(0x4854)](_0x3704e7),_0x5bae97);var _0x5bae97;},_0x353458=function(_0x5187dd,_0x3e1532){const _0xaa8333=_0x235866;let _0x108e7a='->\x20';_0x3e1532&&(_0x108e7a=(_0x229a72=>_0xaa8333(0x225c)+_0x229a72+_0xaa8333(0x4397))('→\x20'));let _0x45ae56='';return _0x23b9f9(_0x5187dd)[_0xaa8333(0x4854)]((_0x2c9ed7,_0x2773fa)=>{const _0x2b65db=_0xaa8333;let _0x2fe7b7=_0x2c9ed7['id']||'';if(_0x3e1532&&(_0x2fe7b7=(_0xa4acc0=>_0x2b65db(0x478f)+_0xa4acc0+_0x2b65db(0x4397))(_0x2fe7b7)),0x0===_0x2773fa&&!_0x2c9ed7['id'])return;let _0x291066=_0x2c9ed7[_0x2b65db(0x1d5f)]['parents'][_0x2b65db(0x205b)];_0x45ae56+=_0x2b65db(0x115)[_0x2b65db(0x16da)](_0x291066)+_0x108e7a+_0x2fe7b7+'\x0a';}),_0x45ae56;},_0x4de863=function(_0x24016e){const _0x3e745a=_0x235866;let _0x509c55=_0x23b9f9(_0x24016e);_0x509c55[_0x3e745a(0x4854)](_0x25e0dc=>{const _0x15ab56=_0x3e745a;delete(_0x25e0dc=Object[_0x15ab56(0x11e8)]({},_0x25e0dc))[_0x15ab56(0x4538)];});let _0x5d469d=_0x509c55[0x0];return _0x5d469d&&!_0x5d469d['id']&&0x0===Object[_0x3e745a(0x2f75)](_0x5d469d[_0x3e745a(0x21c7)])[_0x3e745a(0x205b)]&&_0x509c55[_0x3e745a(0x13fc)](),_0x509c55;},_0x4944b9={'text':_0x353458,'txt':_0x353458,'array':_0x4de863,'flat':_0x4de863},_0x5bbb8a=function(_0x3993e9,_0x193da0){const _0x154491=_0x235866;return _0x154491(0x32a6)===_0x193da0||_0x154491(0x25b9)===_0x193da0?_0x3993e9:_0x154491(0x4e41)===_0x193da0?null:_0x4944b9[_0x154491(0x32b5)](_0x193da0)?_0x4944b9[_0x193da0](_0x3993e9):_0x3993e9;},_0x52e758=_0x41b08f=>{_0x23b9f9(_0x41b08f,(_0x4d09fe,_0x395b54)=>{const _0x3ed24e=a0_0x329b;_0x4d09fe['id']&&(_0x4d09fe[_0x3ed24e(0x1d5f)][_0x3ed24e(0x2ec0)]=_0x4d09fe[_0x3ed24e(0x1d5f)][_0x3ed24e(0x2ec0)]||[],_0x395b54[_0x3ed24e(0x1d5f)][_0x3ed24e(0x2ec0)]=_0x4d09fe['_cache'][_0x3ed24e(0x2ec0)][_0x3ed24e(0x41bf)]([_0x4d09fe['id']]));});},_0x4e9965=/\//;class _0x51bd10{constructor(_0x41bb45={}){const _0x1f1ef1=_0x235866;Object[_0x1f1ef1(0x1012)](this,_0x1f1ef1(0x25b9),{'enumerable':!0x1,'value':_0x41bb45,'writable':!0x0});}get[_0x235866(0x4538)](){return this['json']['children'];}get['id'](){const _0x8fe143=_0x235866;return this[_0x8fe143(0x25b9)]['id'];}get[_0x235866(0x622)](){const _0x88dc1a=_0x235866;return this[_0x88dc1a(0x25b9)]['id']||this[_0x88dc1a(0x25b9)][_0x88dc1a(0x4538)]['length']>0x0;}[_0x235866(0x21c7)](_0x84180e={}){const _0x18d7b8=_0x235866;let _0x206368=this[_0x18d7b8(0x25b9)][_0x18d7b8(0x21c7)]||{};return _0x18d7b8(0x4f7c)==typeof _0x84180e&&(_0x206368[_0x84180e]=!0x0),this['json']['props']=Object['assign'](_0x206368,_0x84180e),this;}[_0x235866(0x2685)](_0x45dad4){const _0x2f04d3=_0x235866;if(_0x45dad4=_0x3e58bc(_0x45dad4),!_0x4e9965[_0x2f04d3(0x34c)](_0x45dad4)){let _0x513973=this[_0x2f04d3(0x25b9)][_0x2f04d3(0x4538)][_0x2f04d3(0x12b9)](_0x4691dd=>_0x4691dd['id']===_0x45dad4);return new _0x51bd10(_0x513973);}let _0x5bbdec=((_0x5cc835,_0x4af997)=>{const _0x54ac4f=_0x2f04d3;let _0x151ee3=(_0x34b388=>'string'!=typeof _0x34b388?_0x34b388:(_0x34b388=_0x34b388['replace'](/^\//,''))[_0x54ac4f(0x29d0)](/\//))(_0x4af997=_0x4af997||'');for(let _0x5be9fc=0x0;_0x5be9fc<_0x151ee3[_0x54ac4f(0x205b)];_0x5be9fc+=0x1){let _0x563b28=_0x5cc835['children'][_0x54ac4f(0x12b9)](_0x3e7113=>_0x3e7113['id']===_0x151ee3[_0x5be9fc]);if(!_0x563b28)return null;_0x5cc835=_0x563b28;}return _0x5cc835;})(this[_0x2f04d3(0x25b9)],_0x45dad4)||_0x3704e7({});return new _0x51bd10(_0x5bbdec);}[_0x235866(0x2fd8)](_0x5af070,_0x3d2a73={}){const _0x46fb74=_0x235866;if(_0x57e75e(_0x5af070))return _0x5af070[_0x46fb74(0x4854)](_0x3afe0a=>this['add'](_0x3e58bc(_0x3afe0a),_0x3d2a73)),this;_0x5af070=_0x3e58bc(_0x5af070);let _0x1aff12=_0x3704e7({'id':_0x5af070,'props':_0x3d2a73});return this[_0x46fb74(0x25b9)][_0x46fb74(0x4538)][_0x46fb74(0x4131)](_0x1aff12),new _0x51bd10(_0x1aff12);}[_0x235866(0x80a)](_0x4e3f22){const _0x2904cb=_0x235866;return _0x4e3f22=_0x3e58bc(_0x4e3f22),this[_0x2904cb(0x25b9)]['children']=this['json'][_0x2904cb(0x4538)][_0x2904cb(0x295e)](_0x2d8ac5=>_0x2d8ac5['id']!==_0x4e3f22),this;}['nodes'](){const _0x5252b7=_0x235866;return _0x23b9f9(this[_0x5252b7(0x25b9)])[_0x5252b7(0x2c94)](_0x3599b7=>(delete(_0x3599b7=Object[_0x5252b7(0x11e8)]({},_0x3599b7))[_0x5252b7(0x4538)],_0x3599b7));}[_0x235866(0x14f4)](){const _0x8f8fd6=_0x235866;return(_0xeb4d46=>{const _0x545d24=a0_0x329b;let _0x52a2f0=_0x23b9f9(_0xeb4d46,(_0x43b73b,_0x46797c)=>{const _0x57c01e=a0_0x329b;_0x43b73b['id']&&(_0x43b73b[_0x57c01e(0x1d5f)][_0x57c01e(0x2ec0)]=_0x43b73b[_0x57c01e(0x1d5f)][_0x57c01e(0x2ec0)]||[],_0x43b73b[_0x57c01e(0x1d5f)][_0x57c01e(0x4538)]=_0x43b73b[_0x57c01e(0x1d5f)][_0x57c01e(0x4538)]||[],_0x46797c['_cache'][_0x57c01e(0x2ec0)]=_0x43b73b[_0x57c01e(0x1d5f)][_0x57c01e(0x2ec0)][_0x57c01e(0x41bf)]([_0x43b73b['id']]));}),_0x4b5ffa={};_0x52a2f0['forEach'](_0x58368d=>{_0x58368d['id']&&(_0x4b5ffa[_0x58368d['id']]=_0x58368d);}),_0x52a2f0[_0x545d24(0x4854)](_0x5f4683=>{const _0x1daabc=_0x545d24;_0x5f4683['_cache']['parents'][_0x1daabc(0x4854)](_0x4ce7aa=>{const _0x38ab00=_0x1daabc;_0x4b5ffa[_0x38ab00(0x32b5)](_0x4ce7aa)&&_0x4b5ffa[_0x4ce7aa]['_cache']['children'][_0x38ab00(0x4131)](_0x5f4683['id']);});}),_0xeb4d46[_0x545d24(0x1d5f)][_0x545d24(0x4538)]=Object[_0x545d24(0x2f75)](_0x4b5ffa);})(this[_0x8f8fd6(0x25b9)]),this;}[_0x235866(0x20cf)](){const _0x478a3b=_0x235866;return _0x23b9f9(this[_0x478a3b(0x25b9)]);}[_0x235866(0x1287)](){const _0x802b63=_0x235866;var _0x4a624d;return _0x4a624d=this[_0x802b63(0x25b9)],_0x23b9f9(_0x4a624d,(_0x18ea2e,_0x2bcedd)=>{const _0x328dc7=_0x802b63;_0x2bcedd[_0x328dc7(0x21c7)]=((_0x3a6401,_0xbb4502)=>(Object[_0x328dc7(0x2f75)](_0xbb4502)['forEach'](_0x39f247=>{const _0x5b0d1d=_0x328dc7;if(_0xbb4502[_0x39f247]instanceof Set){let _0x51663b=_0x3a6401[_0x39f247]||new Set();_0x3a6401[_0x39f247]=new Set([..._0x51663b,..._0xbb4502[_0x39f247]]);}else{if((_0x6d0c2d=>_0x6d0c2d&&_0x5b0d1d(0x2b58)==typeof _0x6d0c2d&&!Array[_0x5b0d1d(0x477f)](_0x6d0c2d))(_0xbb4502[_0x39f247])){let _0x1c11d4=_0x3a6401[_0x39f247]||{};_0x3a6401[_0x39f247]=Object[_0x5b0d1d(0x11e8)]({},_0xbb4502[_0x39f247],_0x1c11d4);}else _0x57e75e(_0xbb4502[_0x39f247])?_0x3a6401[_0x39f247]=_0xbb4502[_0x39f247][_0x5b0d1d(0x41bf)](_0x3a6401[_0x39f247]||[]):void 0x0===_0x3a6401[_0x39f247]&&(_0x3a6401[_0x39f247]=_0xbb4502[_0x39f247]);}}),_0x3a6401))(_0x2bcedd[_0x328dc7(0x21c7)],_0x18ea2e['props']);}),this;}[_0x235866(0x4f77)](){const _0x4e8d38=_0x235866;_0x52e758(this[_0x4e8d38(0x25b9)]);let _0x45834c=_0x23b9f9(this[_0x4e8d38(0x25b9)]),_0x438eef=_0x45834c[_0x4e8d38(0x205b)]>0x1?0x1:0x0;return _0x45834c[_0x4e8d38(0x4854)](_0x229611=>{const _0x2f049d=_0x4e8d38;if(0x0===_0x229611[_0x2f049d(0x1d5f)][_0x2f049d(0x2ec0)][_0x2f049d(0x205b)])return;let _0x2d6166=_0x229611['_cache'][_0x2f049d(0x2ec0)][_0x2f049d(0x205b)]+0x1;_0x2d6166>_0x438eef&&(_0x438eef=_0x2d6166);}),_0x438eef;}[_0x235866(0x4284)](_0x2de8b3){return _0x52e758(this['json']),_0x5bbb8a(this['json'],_0x2de8b3);}[_0x235866(0x4e41)](){const _0x29c27b=_0x235866;return _0x52e758(this['json']),_0x5bbb8a(this[_0x29c27b(0x25b9)],_0x29c27b(0x4e41)),this;}}const _0x550ba9=function(_0x515d77){let _0x41632d=_0x2f5eba(_0x515d77);return new _0x51bd10(_0x41632d);};_0x550ba9[_0x235866(0x2b5c)][_0x235866(0x4c30)]=function(_0x35f5cd){_0x35f5cd(this);};const _0x138c65={'Noun':_0x235866(0x316d),'Verb':_0x235866(0x399),'Negative':_0x235866(0x399),'Date':'red','Value':_0x235866(0x3219),'Adjective':_0x235866(0x29b8),'Preposition':_0x235866(0x496c),'Conjunction':_0x235866(0x496c),'Determiner':'cyan','Hyphenated':_0x235866(0x496c),'Adverb':_0x235866(0x496c)},_0xc7ce21=function(_0x4c0164){const _0x268b91=_0x235866;if(_0x138c65[_0x268b91(0x32b5)](_0x4c0164['id']))return _0x138c65[_0x4c0164['id']];if(_0x138c65[_0x268b91(0x32b5)](_0x4c0164['is']))return _0x138c65[_0x4c0164['is']];let _0x38613d=_0x4c0164['_cache']['parents'][_0x268b91(0x12b9)](_0x286de5=>_0x138c65[_0x286de5]);return _0x138c65[_0x38613d];},_0x66f640=function(_0x5901b2){const _0x384b96=_0x235866,_0xe72f79={};return _0x5901b2[_0x384b96(0x4854)](_0xf591c7=>{const _0x543ea5=_0x384b96;let {not:_0x3571f3,also:_0x904680,is:_0x720f27,novel:_0x2eb7c0}=_0xf591c7[_0x543ea5(0x21c7)],_0x5ef006=_0xf591c7[_0x543ea5(0x1d5f)]['parents'];_0x904680&&(_0x5ef006=_0x5ef006['concat'](_0x904680)),_0xe72f79[_0xf591c7['id']]={'is':_0x720f27,'not':_0x3571f3,'novel':_0x2eb7c0,'also':_0x904680,'parents':_0x5ef006,'children':_0xf591c7[_0x543ea5(0x1d5f)]['children'],'color':_0xc7ce21(_0xf591c7)};}),Object['keys'](_0xe72f79)[_0x384b96(0x4854)](_0x5de824=>{const _0x275d1e=_0x384b96;let _0x43dd19=new Set(_0xe72f79[_0x5de824][_0x275d1e(0x4163)]);_0xe72f79[_0x5de824][_0x275d1e(0x4163)][_0x275d1e(0x4854)](_0x4c9b58=>{const _0x53a605=_0x275d1e;_0xe72f79[_0x4c9b58]&&_0xe72f79[_0x4c9b58][_0x53a605(0x4538)][_0x53a605(0x4854)](_0x47bffc=>_0x43dd19[_0x53a605(0x2fd8)](_0x47bffc));}),_0xe72f79[_0x5de824][_0x275d1e(0x4163)]=Array['from'](_0x43dd19);}),_0xe72f79;},_0x4fcb43=function(_0x4cfd5d){return _0x4cfd5d?'string'==typeof _0x4cfd5d?[_0x4cfd5d]:_0x4cfd5d:[];},_0x1e8357=function(_0x14d396,_0x13bf27){const _0x4dbcf=_0x235866;return _0x14d396=function(_0x5935f6,_0x208ad0){const _0x1754b2=a0_0x329b;return Object[_0x1754b2(0x2f75)](_0x5935f6)[_0x1754b2(0x4854)](_0x24a1ec=>{const _0x250d99=_0x1754b2;_0x5935f6[_0x24a1ec][_0x250d99(0x1462)]&&(_0x5935f6[_0x24a1ec]['is']=_0x5935f6[_0x24a1ec]['isA']),_0x5935f6[_0x24a1ec][_0x250d99(0x4bae)]&&(_0x5935f6[_0x24a1ec][_0x250d99(0x4163)]=_0x5935f6[_0x24a1ec][_0x250d99(0x4bae)]),_0x5935f6[_0x24a1ec]['is']&&_0x250d99(0x4f7c)==typeof _0x5935f6[_0x24a1ec]['is']&&(_0x208ad0['hasOwnProperty'](_0x5935f6[_0x24a1ec]['is'])||_0x5935f6['hasOwnProperty'](_0x5935f6[_0x24a1ec]['is'])||(_0x5935f6[_0x5935f6[_0x24a1ec]['is']]={})),_0x5935f6[_0x24a1ec][_0x250d99(0x4163)]&&'string'==typeof _0x5935f6[_0x24a1ec][_0x250d99(0x4163)]&&!_0x5935f6[_0x250d99(0x32b5)](_0x5935f6[_0x24a1ec][_0x250d99(0x4163)])&&(_0x208ad0[_0x250d99(0x32b5)](_0x5935f6[_0x24a1ec]['not'])||_0x5935f6['hasOwnProperty'](_0x5935f6[_0x24a1ec]['not'])||(_0x5935f6[_0x5935f6[_0x24a1ec][_0x250d99(0x4163)]]={}));}),_0x5935f6;}(_0x14d396,_0x13bf27),Object[_0x4dbcf(0x2f75)](_0x14d396)[_0x4dbcf(0x4854)](_0x526a22=>{const _0x26a10e=_0x4dbcf;_0x14d396[_0x526a22]['children']=_0x4fcb43(_0x14d396[_0x526a22][_0x26a10e(0x4538)]),_0x14d396[_0x526a22][_0x26a10e(0x4163)]=_0x4fcb43(_0x14d396[_0x526a22][_0x26a10e(0x4163)]);}),Object['keys'](_0x14d396)['forEach'](_0x3bdb84=>{const _0x466078=_0x4dbcf;(_0x14d396[_0x3bdb84][_0x466078(0x4163)]||[])[_0x466078(0x4854)](_0x4311d9=>{const _0x308732=_0x466078;_0x14d396[_0x4311d9]&&_0x14d396[_0x4311d9][_0x308732(0x4163)]&&_0x14d396[_0x4311d9]['not'][_0x308732(0x4131)](_0x3bdb84);});}),_0x14d396;},_0xb686c4=function(_0x228616,_0x2732c7){const _0x52f617=_0x235866;Object[_0x52f617(0x2f75)](_0x2732c7)[_0x52f617(0x205b)]>0x0&&(_0x228616=function(_0x47a187){const _0xdc0de1=_0x52f617;return Object[_0xdc0de1(0x2f75)](_0x47a187)['forEach'](_0x51907d=>{const _0x5bf6a4=_0xdc0de1;_0x47a187[_0x51907d]=Object[_0x5bf6a4(0x11e8)]({},_0x47a187[_0x51907d]),_0x47a187[_0x51907d][_0x5bf6a4(0x39e0)]=!0x0;}),_0x47a187;}(_0x228616)),_0x228616=_0x1e8357(_0x228616,_0x2732c7);const _0x59f80b=function(_0x58b2b2){const _0x4db542=_0x52f617,_0x11ef70=Object[_0x4db542(0x2f75)](_0x58b2b2)[_0x4db542(0x2c94)](_0x1aad2c=>{const _0x4500b2=_0x4db542;let _0x5414bb=_0x58b2b2[_0x1aad2c];const _0x3b9e8f={'not':new Set(_0x5414bb[_0x4500b2(0x4163)]),'also':_0x5414bb['also'],'is':_0x5414bb['is'],'novel':_0x5414bb[_0x4500b2(0x39e0)]};return{'id':_0x1aad2c,'parent':_0x5414bb['is'],'props':_0x3b9e8f,'children':[]};});return _0x550ba9(_0x11ef70)[_0x4db542(0x14f4)]()[_0x4db542(0x1287)]()[_0x4db542(0x4284)](_0x4db542(0x47f8));}(Object[_0x52f617(0x11e8)]({},_0x2732c7,_0x228616));return _0x66f640(_0x59f80b);},_0x518974={'one':{'setTag':_0x38e352,'unTag':_0x161036,'addTags':_0xb686c4,'canBe':_0x36fe77}},_0x54698f=function(_0x403b76){const _0x273323=_0x235866;return _0x273323(0x4fba)===Object[_0x273323(0x2b5c)]['toString'][_0x273323(0x4c9d)](_0x403b76);},_0x59a94d={'tag':function(_0x4e67b8,_0x1b901c='',_0x5c64bc){const _0x4c4b7c=_0x235866;if(!this[_0x4c4b7c(0x622)]||!_0x4e67b8)return this;let _0x3c4529=this[_0x4c4b7c(0x1772)]();if(0x0===_0x3c4529[_0x4c4b7c(0x205b)])return this;const {methods:_0x2c62a6,verbose:_0x57aec5,world:_0x74bff}=this;return _0x54698f(_0x4e67b8)?_0x4e67b8['forEach'](_0x103c2c=>_0x2c62a6[_0x4c4b7c(0x4116)][_0x4c4b7c(0xe58)](_0x3c4529,_0x103c2c,_0x74bff,_0x5c64bc,_0x1b901c)):_0x2c62a6[_0x4c4b7c(0x4116)]['setTag'](_0x3c4529,_0x4e67b8,_0x74bff,_0x5c64bc,_0x1b901c),this[_0x4c4b7c(0x5d5)](),this;},'tagSafe':function(_0x5ad409,_0x468267=''){const _0xdb2993=_0x235866;return this[_0xdb2993(0x17a2)](_0x5ad409,_0x468267,!0x0);},'unTag':function(_0x27edd1,_0x32a2a7){const _0x5e2a55=_0x235866;if(!this[_0x5e2a55(0x622)]||!_0x27edd1)return this;let _0x3e1e15=this[_0x5e2a55(0x1772)]();if(0x0===_0x3e1e15[_0x5e2a55(0x205b)])return this;const {methods:_0x27e01f,verbose:_0x10fa0f,model:_0x2a7b85}=this;let _0x13c756=_0x2a7b85['one'][_0x5e2a55(0x1720)];return _0x54698f(_0x27edd1)?_0x27edd1['forEach'](_0x55aa43=>_0x27e01f['one']['unTag'](_0x3e1e15,_0x55aa43,_0x13c756)):_0x27e01f[_0x5e2a55(0x4116)][_0x5e2a55(0x1af8)](_0x3e1e15,_0x27edd1,_0x13c756),this[_0x5e2a55(0x5d5)](),this;},'canBe':function(_0x15aa0a){const _0x4537de=_0x235866;_0x15aa0a=_0x15aa0a[_0x4537de(0x1db7)](/^#/,'');let _0x144f2f=this['model'][_0x4537de(0x4116)]['tagSet'],_0x5aa6b4=this[_0x4537de(0x8f)][_0x4537de(0x4116)]['canBe'],_0x3e1d66=[];this[_0x4537de(0x46d9)][_0x4537de(0x4854)]((_0x12a331,_0x1802ea)=>{const _0x7debaf=_0x4537de;_0x12a331[_0x7debaf(0x4854)]((_0x106010,_0x10694b)=>{const _0x555f8f=_0x7debaf;_0x5aa6b4(_0x106010,_0x15aa0a,_0x144f2f)||_0x3e1d66[_0x555f8f(0x4131)]([_0x1802ea,_0x10694b,_0x10694b+0x1]);});});let _0x480788=this[_0x4537de(0xf93)](_0x3e1d66);return this[_0x4537de(0xd35)](_0x480788);}},_0x2eaaaa=_0x59a94d,_0x5dacfc=function(_0xb3fbc6){const _0x23c1c3=_0x235866;Object[_0x23c1c3(0x11e8)](_0xb3fbc6[_0x23c1c3(0x2b5c)],_0x2eaaaa);},_0xe43c1a={'addTags':function(_0x135d9b){const _0x4870c5=_0x235866,{model:_0x4d0e98,methods:_0x44c4e1}=this[_0x4870c5(0x3e71)](),_0x1e523b=_0x4d0e98[_0x4870c5(0x4116)][_0x4870c5(0x1720)];let _0xe4b15f=(0x0,_0x44c4e1[_0x4870c5(0x4116)][_0x4870c5(0x1f54)])(_0x135d9b,_0x1e523b);return _0x4d0e98['one'][_0x4870c5(0x1720)]=_0xe4b15f,this;}},_0xb0566d=new Set(['Auxiliary',_0x235866(0x1e24)]),_0xdb45be=function(_0x410c16){const _0x5c94b1=_0x235866,{document:_0x38b8f2,world:_0x244d0c}=_0x410c16,_0x5610b5=_0x244d0c[_0x5c94b1(0x2c3e)]['one'][_0x5c94b1(0x1720)];_0x38b8f2['forEach'](_0xac6564=>{const _0x5a1b61=_0x5c94b1;_0xac6564[_0x5a1b61(0x4854)](_0x15c3ca=>{const _0x95e0b4=_0x5a1b61;let _0x16f541=Array[_0x95e0b4(0xc81)](_0x15c3ca[_0x95e0b4(0x23d1)]);_0x15c3ca['tagRank']=function(_0x35ddbb,_0x1282dc){const _0x747103=_0x95e0b4;return _0x35ddbb=_0x35ddbb[_0x747103(0x509)]((_0x40c8d3,_0x20bf8b)=>{const _0x5cb58e=_0x747103;if(_0xb0566d[_0x5cb58e(0x5ec)](_0x40c8d3)||!_0x1282dc['hasOwnProperty'](_0x20bf8b))return 0x1;if(_0xb0566d['has'](_0x20bf8b)||!_0x1282dc['hasOwnProperty'](_0x40c8d3))return-0x1;let _0x298ebd=_0x1282dc[_0x40c8d3]['children']||[],_0x4649d3=_0x298ebd[_0x5cb58e(0x205b)];return _0x298ebd=_0x1282dc[_0x20bf8b][_0x5cb58e(0x4538)]||[],_0x4649d3-_0x298ebd[_0x5cb58e(0x205b)];}),_0x35ddbb;}(_0x16f541,_0x5610b5);});});},_0x557f42={'model':{'one':{'tagSet':{}}},'compute':{'tagRank':_0xdb45be},'methods':_0x518974,'api':_0x5dacfc,'lib':_0xe43c1a},_0x5b8826=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,_0x90c12e=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,_0x24fe33=/((?:\r?\n|\r)+)/,_0x4489f4=function(_0x54afd7){const _0x12738e=_0x235866;let _0x3ddc6f=[],_0x1ee3c8=_0x54afd7[_0x12738e(0x29d0)](_0x24fe33);for(let _0x2f17e6=0x0;_0x2f17e6<_0x1ee3c8[_0x12738e(0x205b)];_0x2f17e6++){let _0x3d1fb5=_0x1ee3c8[_0x2f17e6]['split'](_0x5b8826);for(let _0x5bfb05=0x0;_0x5bfb05<_0x3d1fb5['length'];_0x5bfb05++)_0x3d1fb5[_0x5bfb05+0x1]&&!0x0===_0x90c12e[_0x12738e(0x34c)](_0x3d1fb5[_0x5bfb05+0x1])&&(_0x3d1fb5[_0x5bfb05]+=_0x3d1fb5[_0x5bfb05+0x1],_0x3d1fb5[_0x5bfb05+0x1]=''),''!==_0x3d1fb5[_0x5bfb05]&&_0x3ddc6f[_0x12738e(0x4131)](_0x3d1fb5[_0x5bfb05]);}return _0x3ddc6f;},_0x242292=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,_0x22815f=/\S/,_0x159a66=function(_0x5d0edf){const _0x1a3868=_0x235866;let _0x6adaff=[];for(let _0x725edd=0x0;_0x725edd<_0x5d0edf[_0x1a3868(0x205b)];_0x725edd++){let _0x11e3e2=_0x5d0edf[_0x725edd];if(void 0x0!==_0x11e3e2&&''!==_0x11e3e2){if(!0x1===_0x22815f['test'](_0x11e3e2)||!0x1===_0x242292[_0x1a3868(0x34c)](_0x11e3e2)){if(_0x6adaff[_0x6adaff[_0x1a3868(0x205b)]-0x1]){_0x6adaff[_0x6adaff[_0x1a3868(0x205b)]-0x1]+=_0x11e3e2;continue;}if(_0x5d0edf[_0x725edd+0x1]){_0x5d0edf[_0x725edd+0x1]=_0x11e3e2+_0x5d0edf[_0x725edd+0x1];continue;}}_0x6adaff[_0x1a3868(0x4131)](_0x11e3e2);}}return _0x6adaff;},_0x67cd49=function(_0x42d4c7,_0x1dbc35){const _0x16d912=_0x235866,_0xfb58d3=_0x1dbc35[_0x16d912(0x8f)]['one'][_0x16d912(0x44f9)][_0x16d912(0x1e00)],_0x5bb676=_0x1dbc35[_0x16d912(0x2c3e)][_0x16d912(0x4116)]['abbreviations']||new Set();let _0x10d322=[];for(let _0x1aca20=0x0;_0x1aca20<_0x42d4c7[_0x16d912(0x205b)];_0x1aca20++){let _0x143a3=_0x42d4c7[_0x1aca20];_0x42d4c7[_0x1aca20+0x1]&&!0x1===_0xfb58d3(_0x143a3,_0x5bb676)?_0x42d4c7[_0x1aca20+0x1]=_0x143a3+(_0x42d4c7[_0x1aca20+0x1]||''):_0x143a3&&_0x143a3['length']>0x0&&(_0x10d322[_0x16d912(0x4131)](_0x143a3),_0x42d4c7[_0x1aca20]='');}return _0x10d322;},_0x42f963={'\x22':'\x22','"':'"','“':'”','‟':'”','„':'”','⹂':'”','‚':'’','«':'»','‹':'›','‵':'′','‶':'″','‷':'‴','〝':'〞','〟':'〞'},_0x2a07ea=RegExp('['+Object[_0x235866(0x2f75)](_0x42f963)[_0x235866(0x379c)]('')+']','g'),_0xe2c203=RegExp('['+Object[_0x235866(0x4a3e)](_0x42f963)['join']('')+']','g'),_0x1518ee=function(_0xf19e93){const _0x42c9d2=_0x235866;if(!_0xf19e93)return!0x1;let _0x2d5e89=_0xf19e93[_0x42c9d2(0xdc0)](_0xe2c203);return null!==_0x2d5e89&&0x1===_0x2d5e89['length'];},_0x1b7e77=function(_0x22a3ad){const _0x333375=_0x235866;let _0x22be78=[];for(let _0x31d9d9=0x0;_0x31d9d9<_0x22a3ad[_0x333375(0x205b)];_0x31d9d9+=0x1){let _0x380279=_0x22a3ad[_0x31d9d9]['match'](_0x2a07ea);if(null!==_0x380279&&0x1===_0x380279[_0x333375(0x205b)]){if(_0x1518ee(_0x22a3ad[_0x31d9d9+0x1])&&_0x22a3ad[_0x31d9d9+0x1][_0x333375(0x205b)]<0x118){_0x22a3ad[_0x31d9d9]+=_0x22a3ad[_0x31d9d9+0x1],_0x22be78[_0x333375(0x4131)](_0x22a3ad[_0x31d9d9]),_0x22a3ad[_0x31d9d9+0x1]='',_0x31d9d9+=0x1;continue;}if(_0x1518ee(_0x22a3ad[_0x31d9d9+0x2])){let _0x7ecf23=_0x22a3ad[_0x31d9d9+0x1]+_0x22a3ad[_0x31d9d9+0x2];if(_0x7ecf23['length']<0x118){_0x22a3ad[_0x31d9d9]+=_0x7ecf23,_0x22be78[_0x333375(0x4131)](_0x22a3ad[_0x31d9d9]),_0x22a3ad[_0x31d9d9+0x1]='',_0x22a3ad[_0x31d9d9+0x2]='',_0x31d9d9+=0x2;continue;}}}_0x22be78[_0x333375(0x4131)](_0x22a3ad[_0x31d9d9]);}return _0x22be78;},_0x4152aa=/\(/g,_0x48876f=/\)/g,_0xf86f96=function(_0x514ab4){const _0x4612ea=_0x235866;let _0x45c4e7=[];for(let _0x1c13fa=0x0;_0x1c13fa<_0x514ab4[_0x4612ea(0x205b)];_0x1c13fa+=0x1){let _0x6863e8=_0x514ab4[_0x1c13fa][_0x4612ea(0xdc0)](_0x4152aa);if(null!==_0x6863e8&&0x1===_0x6863e8[_0x4612ea(0x205b)]&&_0x514ab4[_0x1c13fa+0x1]&&_0x514ab4[_0x1c13fa+0x1][_0x4612ea(0x205b)]<0xfa){if(null!==_0x514ab4[_0x1c13fa+0x1][_0x4612ea(0xdc0)](_0x48876f)&&0x1===_0x6863e8[_0x4612ea(0x205b)]&&!_0x4152aa['test'](_0x514ab4[_0x1c13fa+0x1])){_0x514ab4[_0x1c13fa]+=_0x514ab4[_0x1c13fa+0x1],_0x45c4e7['push'](_0x514ab4[_0x1c13fa]),_0x514ab4[_0x1c13fa+0x1]='',_0x1c13fa+=0x1;continue;}}_0x45c4e7[_0x4612ea(0x4131)](_0x514ab4[_0x1c13fa]);}return _0x45c4e7;},_0x242b73=/\S/,_0x1671f1=/^\s+/,_0x2c4dfb=function(_0x166f06,_0x4db974){const _0x5026a5=_0x235866;if(_0x166f06=_0x166f06||'',!(_0x166f06=String(_0x166f06))||_0x5026a5(0x4f7c)!=typeof _0x166f06||!0x1===_0x242b73[_0x5026a5(0x34c)](_0x166f06))return[];_0x166f06=_0x166f06['replace']('\u00a0','\x20');let _0xa90efd=_0x4489f4(_0x166f06),_0x40da25=_0x159a66(_0xa90efd);if(_0x40da25=_0x67cd49(_0x40da25,_0x4db974),_0x40da25=_0x1b7e77(_0x40da25),_0x40da25=_0xf86f96(_0x40da25),0x0===_0x40da25[_0x5026a5(0x205b)])return[_0x166f06];for(let _0x6a03ef=0x1;_0x6a03ef<_0x40da25[_0x5026a5(0x205b)];_0x6a03ef+=0x1){let _0x5ac1cb=_0x40da25[_0x6a03ef][_0x5026a5(0xdc0)](_0x1671f1);null!==_0x5ac1cb&&(_0x40da25[_0x6a03ef-0x1]+=_0x5ac1cb[0x0],_0x40da25[_0x6a03ef]=_0x40da25[_0x6a03ef][_0x5026a5(0x1db7)](_0x1671f1,''));}return _0x40da25;},_0xccc440=function(_0x59e6b9,_0x174be1){const _0x5272d8=_0x235866;let _0x5bb4e9=_0x59e6b9[_0x5272d8(0x29d0)](/[-–—]/);if(_0x5bb4e9[_0x5272d8(0x205b)]<=0x1)return!0x1;const {prefixes:_0x85a293,suffixes:_0x5f3557}=_0x174be1[_0x5272d8(0x4116)];if(0x1===_0x5bb4e9[0x0]['length']&&/[a-z]/i[_0x5272d8(0x34c)](_0x5bb4e9[0x0]))return!0x1;if(_0x85a293[_0x5272d8(0x32b5)](_0x5bb4e9[0x0]))return!0x1;if(_0x5bb4e9[0x1]=_0x5bb4e9[0x1][_0x5272d8(0x1d0e)]()[_0x5272d8(0x1db7)](/[.?!]$/,''),_0x5f3557[_0x5272d8(0x32b5)](_0x5bb4e9[0x1]))return!0x1;if(!0x0===/^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i['test'](_0x59e6b9))return!0x0;return!0x0===/^[('"]?([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i[_0x5272d8(0x34c)](_0x59e6b9);},_0x5cc57a=function(_0x2033c6){const _0x2de4f4=_0x235866;let _0x3039e0=[];const _0x426592=_0x2033c6[_0x2de4f4(0x29d0)](/[-–—]/);let _0x12e253='-',_0x445ec0=_0x2033c6['match'](/[-–—]/);_0x445ec0&&_0x445ec0[0x0]&&(_0x12e253=_0x445ec0);for(let _0x3ae7b2=0x0;_0x3ae7b2<_0x426592[_0x2de4f4(0x205b)];_0x3ae7b2++)_0x3ae7b2===_0x426592[_0x2de4f4(0x205b)]-0x1?_0x3039e0[_0x2de4f4(0x4131)](_0x426592[_0x3ae7b2]):_0x3039e0[_0x2de4f4(0x4131)](_0x426592[_0x3ae7b2]+_0x12e253);return _0x3039e0;},_0x56b7e1=function(_0x16ea36){const _0x231ee8=_0x235866,_0x4f4fee=/^[0-9]{1,4}(:[0-9][0-9])?([a-z]{1,2})? ?[-–—] ?$/,_0x5ce8ae=/^[0-9]{1,4}([a-z]{1,2})? ?$/;for(let _0x3483ac=0x0;_0x3483ac<_0x16ea36['length']-0x1;_0x3483ac+=0x1)_0x16ea36[_0x3483ac+0x1]&&_0x4f4fee[_0x231ee8(0x34c)](_0x16ea36[_0x3483ac])&&_0x5ce8ae[_0x231ee8(0x34c)](_0x16ea36[_0x3483ac+0x1])&&(_0x16ea36[_0x3483ac]=_0x16ea36[_0x3483ac]+_0x16ea36[_0x3483ac+0x1],_0x16ea36[_0x3483ac+0x1]=null);return _0x16ea36;},_0x3294ad=/\p{L} ?\/ ?\p{L}+$/u,_0x57488c=function(_0x3e9614){const _0x1ce5a2=_0x235866;for(let _0x5a5ebf=0x1;_0x5a5ebf<_0x3e9614[_0x1ce5a2(0x205b)]-0x1;_0x5a5ebf++)_0x3294ad[_0x1ce5a2(0x34c)](_0x3e9614[_0x5a5ebf])&&(_0x3e9614[_0x5a5ebf-0x1]+=_0x3e9614[_0x5a5ebf]+_0x3e9614[_0x5a5ebf+0x1],_0x3e9614[_0x5a5ebf]=null,_0x3e9614[_0x5a5ebf+0x1]=null);return _0x3e9614;},_0x4cce73=/\S/,_0x1d5fbf=/^[!?.]+$/,_0x3c60c4=/(\S+)/;let _0x495961=['.','?','!',':',';','-','–','—','--',_0x235866(0x23a),'(',')','[',']','\x22','\x27','`','«','»','*','•'];_0x495961=_0x495961[_0x235866(0xf33)]((_0x4262a0,_0xd52269)=>(_0x4262a0[_0xd52269]=!0x0,_0x4262a0),{});const _0x5bcd12=function(_0x8317d9,_0x288a7e){const _0x50d988=_0x235866;let _0x105285=[],_0x42f3af=[];if(_0x50d988(0x1ed7)==typeof(_0x8317d9=_0x8317d9||'')&&(_0x8317d9=String(_0x8317d9)),function(_0x5d34c3){const _0x12efc7=_0x50d988;return _0x12efc7(0x4fba)===Object[_0x12efc7(0x2b5c)][_0x12efc7(0x44de)]['call'](_0x5d34c3);}(_0x8317d9))return _0x8317d9;const _0x42f1cc=_0x8317d9[_0x50d988(0x29d0)](_0x3c60c4);for(let _0x3a2051=0x0;_0x3a2051<_0x42f1cc[_0x50d988(0x205b)];_0x3a2051++)!0x0!==_0xccc440(_0x42f1cc[_0x3a2051],_0x288a7e)?_0x42f3af[_0x50d988(0x4131)](_0x42f1cc[_0x3a2051]):_0x42f3af=_0x42f3af[_0x50d988(0x41bf)](_0x5cc57a(_0x42f1cc[_0x3a2051]));let _0x5d6dd8='';for(let _0x43c102=0x0;_0x43c102<_0x42f3af[_0x50d988(0x205b)];_0x43c102++){let _0x59880e=_0x42f3af[_0x43c102];!0x0===_0x4cce73[_0x50d988(0x34c)](_0x59880e)&&!0x1===_0x495961[_0x50d988(0x32b5)](_0x59880e)&&!0x1===_0x1d5fbf['test'](_0x59880e)?(_0x105285[_0x50d988(0x205b)]>0x0?(_0x105285[_0x105285[_0x50d988(0x205b)]-0x1]+=_0x5d6dd8,_0x105285[_0x50d988(0x4131)](_0x59880e)):_0x105285[_0x50d988(0x4131)](_0x5d6dd8+_0x59880e),_0x5d6dd8=''):_0x5d6dd8+=_0x59880e;}return _0x5d6dd8&&(0x0===_0x105285[_0x50d988(0x205b)]&&(_0x105285[0x0]=''),_0x105285[_0x105285['length']-0x1]+=_0x5d6dd8),_0x105285=_0x57488c(_0x105285),_0x105285=_0x56b7e1(_0x105285),_0x105285=_0x105285[_0x50d988(0x295e)](_0x4aef72=>_0x4aef72),_0x105285;},_0x3d1c10=/\p{Letter}/u,_0x44c761=/[\p{Number}\p{Currency_Symbol}]/u,_0x1d2552=/^[a-z]\.([a-z]\.)+/i,_0x15d5c2=/[sn]['’]$/,_0x509e4a=function(_0x76d683,_0x24472b){const _0x5157b1=_0x235866;let {prePunctuation:_0x37135b,postPunctuation:_0x381447,emoticons:_0x2d97ef}=_0x24472b[_0x5157b1(0x4116)],_0x368dc9=_0x76d683,_0x66edaf='',_0x113ae3='',_0x5669cc=Array['from'](_0x76d683);if(_0x2d97ef[_0x5157b1(0x32b5)](_0x76d683[_0x5157b1(0x1d0e)]()))return{'str':_0x76d683[_0x5157b1(0x1d0e)](),'pre':_0x66edaf,'post':'\x20'};let _0x58a43b=_0x5669cc[_0x5157b1(0x205b)];for(let _0x30ae6f=0x0;_0x30ae6f<_0x58a43b;_0x30ae6f+=0x1){let _0x374ad0=_0x5669cc[0x0];if(!0x0!==_0x37135b[_0x374ad0]){if(('+'===_0x374ad0||'-'===_0x374ad0)&&_0x44c761[_0x5157b1(0x34c)](_0x5669cc[0x1]))break;if('\x27'===_0x374ad0&&0x3===_0x374ad0['length']&&_0x44c761[_0x5157b1(0x34c)](_0x5669cc[0x1]))break;if(_0x3d1c10[_0x5157b1(0x34c)](_0x374ad0)||_0x44c761[_0x5157b1(0x34c)](_0x374ad0))break;_0x66edaf+=_0x5669cc[_0x5157b1(0x13fc)]();}}_0x58a43b=_0x5669cc[_0x5157b1(0x205b)];for(let _0x41455a=0x0;_0x41455a<_0x58a43b;_0x41455a+=0x1){let _0x5e6acf=_0x5669cc[_0x5669cc[_0x5157b1(0x205b)]-0x1];if(!0x0!==_0x381447[_0x5e6acf]){if(_0x3d1c10[_0x5157b1(0x34c)](_0x5e6acf)||_0x44c761[_0x5157b1(0x34c)](_0x5e6acf))break;'.'===_0x5e6acf&&!0x0===_0x1d2552['test'](_0x368dc9)||'\x27'===_0x5e6acf&&!0x0===_0x15d5c2[_0x5157b1(0x34c)](_0x368dc9)||(_0x113ae3=_0x5669cc[_0x5157b1(0x2895)]()+_0x113ae3);}}return''===(_0x76d683=_0x5669cc[_0x5157b1(0x379c)](''))&&(_0x368dc9=_0x368dc9[_0x5157b1(0x1db7)](/ *$/,_0x559cb3=>(_0x113ae3=_0x559cb3||'','')),_0x76d683=_0x368dc9,_0x66edaf=''),{'str':_0x76d683,'pre':_0x66edaf,'post':_0x113ae3};},_0x29f932=(_0x4bd85c,_0x4acf7b)=>{let {str:_0x534367,pre:_0x5271a6,post:_0x2cc975}=_0x509e4a(_0x4bd85c,_0x4acf7b);return{'text':_0x534367,'pre':_0x5271a6,'post':_0x2cc975,'tags':new Set()};},_0x4370c0=function(_0x5509b0,_0x1bf1d0){const _0x4d6540=_0x235866,_0x2a6987=_0x1bf1d0[_0x4d6540(0x2c3e)]['one'][_0x4d6540(0x4755)]||{};let _0x5139e4=(_0x5509b0=_0x5509b0||'')[_0x4d6540(0x29d0)]('');return _0x5139e4[_0x4d6540(0x4854)]((_0x320f73,_0x44554f)=>{_0x2a6987[_0x320f73]&&(_0x5139e4[_0x44554f]=_0x2a6987[_0x320f73]);}),_0x5139e4['join']('');},_0x15f8df=function(_0x14c80f){const _0x37133e=_0x235866;let _0x4f1fb6=_0x14c80f=(_0x14c80f=(_0x14c80f=_0x14c80f||'')[_0x37133e(0x1a57)]())['trim']();return _0x14c80f=(_0x14c80f=(_0x14c80f=_0x14c80f[_0x37133e(0x1db7)](/[,;.!?]+$/,''))['replace'](/\u2026/g,_0x37133e(0x23a)))[_0x37133e(0x1db7)](/\u2013/g,'-'),!0x1===/^[:;]/['test'](_0x14c80f)&&(_0x14c80f=(_0x14c80f=(_0x14c80f=_0x14c80f[_0x37133e(0x1db7)](/\.{3,}$/g,''))['replace'](/[",.!:;?)]+$/g,''))[_0x37133e(0x1db7)](/^['"(]+/g,'')),''===(_0x14c80f=(_0x14c80f=_0x14c80f[_0x37133e(0x1db7)](/[\u200B-\u200D\uFEFF]/g,''))['trim']())&&(_0x14c80f=_0x4f1fb6),_0x14c80f=_0x14c80f[_0x37133e(0x1db7)](/([0-9]),([0-9])/g,_0x37133e(0x2a8));},_0x3baa83=/([A-Z]\.)+[A-Z]?,?$/,_0x187b95=/^[A-Z]\.,?$/,_0xd21b42=/[A-Z]{2,}('s|,)?$/,_0x56b3e3=/([a-z]\.)+[a-z]\.?$/,_0x428b86=function(_0x34356d){const _0x41b27f=_0x235866;return function(_0x18710c){const _0x1651ce=a0_0x329b;return!0x0===_0x3baa83['test'](_0x18710c)||!0x0===_0x56b3e3[_0x1651ce(0x34c)](_0x18710c)||!0x0===_0x187b95[_0x1651ce(0x34c)](_0x18710c)||!0x0===_0xd21b42['test'](_0x18710c);}(_0x34356d)&&(_0x34356d=_0x34356d[_0x41b27f(0x1db7)](/\./g,'')),_0x34356d;},_0x5b0e58=function(_0x53194a,_0x2241e2){const _0x31eb57=_0x235866,_0x425b2a=_0x2241e2['methods']['one'][_0x31eb57(0x28c5)];let _0x1be71a=_0x53194a['text']||'';_0x1be71a=_0x15f8df(_0x1be71a),_0x1be71a=_0x425b2a(_0x1be71a,_0x2241e2),_0x1be71a=_0x428b86(_0x1be71a),_0x53194a['normal']=_0x1be71a;},_0xb452d4=function(_0x42102b,_0x22ca03){const _0x53d8d7=_0x235866,{methods:_0x2b967d,model:_0x439f9b}=_0x22ca03,{splitSentences:_0x511e27,splitTerms:_0x5d763b,splitWhitespace:_0x1dd0af}=_0x2b967d[_0x53d8d7(0x4116)][_0x53d8d7(0x44f9)];return _0x42102b=_0x511e27(_0x42102b=_0x42102b||'',_0x22ca03)['map'](_0x380470=>{const _0x4482db=_0x53d8d7;let _0x5c72ba=_0x5d763b(_0x380470,_0x439f9b);return _0x5c72ba=_0x5c72ba[_0x4482db(0x2c94)](_0x511738=>_0x1dd0af(_0x511738,_0x439f9b)),_0x5c72ba[_0x4482db(0x4854)](_0x110a45=>{_0x5b0e58(_0x110a45,_0x22ca03);}),_0x5c72ba;}),_0x42102b;},_0x485e96=/[ .][A-Z]\.? *$/i,_0x3b29b4=/(?:\u2026|\.{2,}) *$/,_0x1d9c51=/\p{L}/u,_0x4450ec=/\. *$/,_0xcab3de=/^[A-Z]\. $/,_0x20ee5d={'one':{'killUnicode':_0x4370c0,'tokenize':{'splitSentences':_0x2c4dfb,'isSentence':function(_0x10e926,_0x3fbec2){const _0x3ebd85=_0x235866;if(!0x1===_0x1d9c51[_0x3ebd85(0x34c)](_0x10e926))return!0x1;if(!0x0===_0x485e96[_0x3ebd85(0x34c)](_0x10e926))return!0x1;if(0x3===_0x10e926['length']&&_0xcab3de[_0x3ebd85(0x34c)](_0x10e926))return!0x1;if(!0x0===_0x3b29b4[_0x3ebd85(0x34c)](_0x10e926))return!0x1;let _0x26cfa9=_0x10e926['replace'](/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,'')[_0x3ebd85(0x29d0)]('\x20'),_0x42d4e7=_0x26cfa9[_0x26cfa9[_0x3ebd85(0x205b)]-0x1][_0x3ebd85(0x1a57)]();return!0x0!==_0x3fbec2[_0x3ebd85(0x32b5)](_0x42d4e7)||!0x0!==_0x4450ec['test'](_0x10e926);},'splitTerms':_0x5bcd12,'splitWhitespace':_0x29f932,'fromString':_0xb452d4}}},_0x1e60bf={'&':_0x235866(0x43ea),'@':'at','%':'percent','plz':'please','bein':_0x235866(0x491e)};let _0x434353={},_0x40faae={};[[[_0x235866(0x2984),_0x235866(0x49af),'bc',_0x235866(0x2367),'eg',_0x235866(0x164c),_0x235866(0x4164),'etc','ex',_0x235866(0x3904),'prob',_0x235866(0x4445),_0x235866(0x2344),_0x235866(0x12f9),'pseud',_0x235866(0x3c8),'jd','lat',_0x235866(0x3426),'vol','fm','def','misc','plz','ea','ps',_0x235866(0x688),'pt',_0x235866(0x17d3),'pl','pp','qt','fr','sq',_0x235866(0x2f31),'ss',_0x235866(0x3874),_0x235866(0x4e82),'vet',_0x235866(0x22f5),_0x235866(0x4ea2),_0x235866(0x11bc),_0x235866(0x4559),_0x235866(0xa49),'vb','rb',_0x235866(0x144d),'situ',_0x235866(0xbc),_0x235866(0x2dff),'wr']],[['dl','ml','gal','qt','pt',_0x235866(0x2e38),_0x235866(0x3552),_0x235866(0x1f8b),'km','dm','cm','mm','mi','td','hr','hrs','kg','hg','dg','cg','mg','µg','lb','oz','sq\x20ft','hz',_0x235866(0x4eb5),'mph',_0x235866(0x22e6),'kb','mb','tb','lx','lm',_0x235866(0x6fa),'yb'],_0x235866(0x283a)],[['ad','al',_0x235866(0x1d48),'ba','bl','ca','cca',_0x235866(0x35a4),'corp','ft','fy','ie',_0x235866(0x1adf),'ma','md','pd',_0x235866(0x638)],_0x235866(0x1ce5)],[[_0x235866(0xa49),_0x235866(0xe86),_0x235866(0x10e3),_0x235866(0x47dc),_0x235866(0x3d23),_0x235866(0x1347),_0x235866(0x4ce6),_0x235866(0x42b0),'cmdr','comdr','cpl','det','dr',_0x235866(0x31b7),'gen',_0x235866(0x66c),_0x235866(0x29df),'jr',_0x235866(0x4843),'lt',_0x235866(0x3ce5),'messrs',_0x235866(0x116c),_0x235866(0xc62),'mr',_0x235866(0x4867),'ms',_0x235866(0x31d3),_0x235866(0x2a5c),_0x235866(0x1f65),_0x235866(0x3941),_0x235866(0x30b4),_0x235866(0x4602),_0x235866(0x1b4d),_0x235866(0x34a),_0x235866(0x9d0),_0x235866(0x2e9d),_0x235866(0x206b),'sgt',_0x235866(0xf24),'sr',_0x235866(0x69d),_0x235866(0x3272)],'Honorific'],[['jan',_0x235866(0x508d),_0x235866(0x3a2b),'apr',_0x235866(0xf8f),_0x235866(0x2aac),_0x235866(0x1322),_0x235866(0xc0c),_0x235866(0x434b),_0x235866(0x2f8),_0x235866(0x4fc3),_0x235866(0xb45)],_0x235866(0x1d0a)],[[_0x235866(0x102a),_0x235866(0x30a7),_0x235866(0x1658),_0x235866(0x28c0),'inc',_0x235866(0x39ae),'co'],_0x235866(0x28cf)],[['rd','st','dist','mt',_0x235866(0x1503),_0x235866(0x28ee),'cl',_0x235866(0x1787),_0x235866(0x43d3),'ariz',_0x235866(0x4833),_0x235866(0x10e2),'colo','conn',_0x235866(0x2914),'fl','ga',_0x235866(0x1298),'ia','kan','kans',_0x235866(0x1ebf),_0x235866(0x1a45),'nebr',_0x235866(0x3925),_0x235866(0x42eb),_0x235866(0x4750),'pa',_0x235866(0x1a4e),_0x235866(0x22fc),_0x235866(0x122a),'ut','vt','va',_0x235866(0x2556),_0x235866(0xd34),'wy',_0x235866(0x1333),_0x235866(0x4848),_0x235866(0x508f),'ont',_0x235866(0x42a7),_0x235866(0x2a5b)],'Place']][_0x235866(0x4854)](_0x46c2d8=>{_0x46c2d8[0x0]['forEach'](_0x324897=>{const _0x4b2dfc=a0_0x329b;_0x434353[_0x324897]=!0x0,_0x40faae[_0x324897]=_0x4b2dfc(0x256d),void 0x0!==_0x46c2d8[0x1]&&(_0x40faae[_0x324897]=[_0x40faae[_0x324897],_0x46c2d8[0x1]]);});});const _0x21594e=[_0x235866(0x459b),'bi','co',_0x235866(0x2f54),'de','extra','infra','inter','intra','macro',_0x235866(0x331a),_0x235866(0x234a),_0x235866(0x35d5),'multi',_0x235866(0x1722),_0x235866(0x1553),'pro',_0x235866(0x48ff),'pseudo','re',_0x235866(0xde4),_0x235866(0x27e1),_0x235866(0x29cc),'tri','un','out','ex']['reduce']((_0x252589,_0x52c2c7)=>(_0x252589[_0x52c2c7]=!0x0,_0x252589),{});let _0x2128cb={'!':'¡','?':'¿Ɂ','\x22':_0x235866(0x2ef5),'\x27':'‘‛❛❜’','-':'—–','a':_0x235866(0x2fbb),'b':_0x235866(0x2310),'c':_0x235866(0x4cf5),'d':_0x235866(0xf4a),'e':'ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗễ','f':_0x235866(0x26dc),'g':_0x235866(0x50ab),'h':_0x235866(0x3ab5),'I':_0x235866(0x35fb),'i':_0x235866(0x231f),'j':_0x235866(0xb94),'k':_0x235866(0x13f1),'l':_0x235866(0x2cf7),'m':_0x235866(0x1118),'n':_0x235866(0x6c7),'o':_0x235866(0x3643),'p':'ƤΡρϷϸϼРрҎҏÞ','q':'Ɋɋ','r':_0x235866(0x1704),'s':_0x235866(0x2066),'t':_0x235866(0x49ca),'u':_0x235866(0x44ea),'v':'νѴѵѶѷ','w':_0x235866(0x479),'x':_0x235866(0x2613),'y':_0x235866(0x3aca),'z':_0x235866(0x10be)},_0x348626={};Object['keys'](_0x2128cb)[_0x235866(0x4854)](function(_0x112196){const _0x13149f=_0x235866;_0x2128cb[_0x112196][_0x13149f(0x29d0)]('')[_0x13149f(0x4854)](function(_0x3cbc13){_0x348626[_0x3cbc13]=_0x112196;});});const _0x5b0b18=/\//,_0x1fa956=/[a-z]\.[a-z]/i,_0x12bb98=/[0-9]/,_0x465430=function(_0x4b9722,_0x559099){const _0x1cc031=_0x235866;let _0x511b0f=_0x4b9722['normal']||_0x4b9722[_0x1cc031(0x2f35)]||_0x4b9722[_0x1cc031(0x194)];const _0x598df5=_0x559099[_0x1cc031(0x2c3e)][_0x1cc031(0x4116)][_0x1cc031(0x1dce)];if(_0x598df5[_0x1cc031(0x32b5)](_0x511b0f)&&(_0x4b9722[_0x1cc031(0x1f89)]=_0x4b9722[_0x1cc031(0x1f89)]||[],_0x4b9722[_0x1cc031(0x1f89)][_0x1cc031(0x4131)](_0x598df5[_0x511b0f])),_0x5b0b18[_0x1cc031(0x34c)](_0x511b0f)&&!_0x1fa956[_0x1cc031(0x34c)](_0x511b0f)&&!_0x12bb98[_0x1cc031(0x34c)](_0x511b0f)){let _0x3ad884=_0x511b0f[_0x1cc031(0x29d0)](_0x5b0b18);_0x3ad884[_0x1cc031(0x205b)]<=0x3&&_0x3ad884[_0x1cc031(0x4854)](_0x3cc566=>{const _0x2c8f99=_0x1cc031;''!==(_0x3cc566=_0x3cc566['trim']())&&(_0x4b9722['alias']=_0x4b9722['alias']||[],_0x4b9722[_0x2c8f99(0x1f89)][_0x2c8f99(0x4131)](_0x3cc566));});}return _0x4b9722;},_0x28f49a=/^\p{Letter}+-\p{Letter}+$/u,_0x46cfa9=function(_0x40cdb5){const _0x1c2f2a=_0x235866;let _0x1e2104=_0x40cdb5[_0x1c2f2a(0x15c0)]||_0x40cdb5['normal']||_0x40cdb5[_0x1c2f2a(0x2f35)];_0x1e2104=_0x1e2104[_0x1c2f2a(0x1db7)](/['’]s$/,''),_0x1e2104=_0x1e2104['replace'](/s['’]$/,'s'),_0x1e2104=_0x1e2104[_0x1c2f2a(0x1db7)](/([aeiou][ktrp])in'$/,_0x1c2f2a(0x4b0b)),_0x28f49a[_0x1c2f2a(0x34c)](_0x1e2104)&&(_0x1e2104=_0x1e2104[_0x1c2f2a(0x1db7)](/-/g,'')),_0x1e2104=_0x1e2104[_0x1c2f2a(0x1db7)](/^[#@]/,''),_0x1e2104!==_0x40cdb5[_0x1c2f2a(0x4cb)]&&(_0x40cdb5[_0x1c2f2a(0x194)]=_0x1e2104);},_0x5a9b8c=function(_0x29e9c9){const _0x111adb=_0x235866;let _0x1db7d3=_0x29e9c9[_0x111adb(0x3f72)],_0x4efb11={};for(let _0x877ed9=0x0;_0x877ed9<_0x1db7d3[_0x111adb(0x205b)];_0x877ed9+=0x1)for(let _0x5a6208=0x0;_0x5a6208<_0x1db7d3[_0x877ed9][_0x111adb(0x205b)];_0x5a6208+=0x1){let _0x31ef9e=_0x1db7d3[_0x877ed9][_0x5a6208],_0x28d982=_0x31ef9e[_0x111adb(0x194)]||_0x31ef9e['normal'];_0x4efb11[_0x28d982]=_0x4efb11[_0x28d982]||0x0,_0x4efb11[_0x28d982]+=0x1;}for(let _0x496bec=0x0;_0x496bec<_0x1db7d3[_0x111adb(0x205b)];_0x496bec+=0x1)for(let _0x2b2a51=0x0;_0x2b2a51<_0x1db7d3[_0x496bec][_0x111adb(0x205b)];_0x2b2a51+=0x1){let _0x38968c=_0x1db7d3[_0x496bec][_0x2b2a51],_0x41e48f=_0x38968c[_0x111adb(0x194)]||_0x38968c[_0x111adb(0x4cb)];_0x38968c['freq']=_0x4efb11[_0x41e48f];}},_0x587636=function(_0x39e8bd){const _0x336ee8=_0x235866;let _0x473305=0x0,_0x194493=0x0,_0x4c431c=_0x39e8bd[_0x336ee8(0x46d9)];for(let _0xd08668=0x0;_0xd08668<_0x4c431c[_0x336ee8(0x205b)];_0xd08668+=0x1)for(let _0x16d968=0x0;_0x16d968<_0x4c431c[_0xd08668]['length'];_0x16d968+=0x1){let _0x3860df=_0x4c431c[_0xd08668][_0x16d968];_0x3860df[_0x336ee8(0x3a59)]={'index':_0x194493,'start':_0x473305+_0x3860df[_0x336ee8(0x1553)]['length'],'length':_0x3860df[_0x336ee8(0x2f35)][_0x336ee8(0x205b)]},_0x473305+=_0x3860df[_0x336ee8(0x1553)]['length']+_0x3860df[_0x336ee8(0x2f35)][_0x336ee8(0x205b)]+_0x3860df[_0x336ee8(0x9ce)][_0x336ee8(0x205b)],_0x194493+=0x1;}},_0x1be165=function(_0x49e9b6){const _0xf619e0=_0x235866;let _0x2e59a1=_0x49e9b6[_0xf619e0(0x46d9)];for(let _0x36080a=0x0;_0x36080a<_0x2e59a1['length'];_0x36080a+=0x1)for(let _0x5a8a7f=0x0;_0x5a8a7f<_0x2e59a1[_0x36080a][_0xf619e0(0x205b)];_0x5a8a7f+=0x1)_0x2e59a1[_0x36080a][_0x5a8a7f]['index']=[_0x36080a,_0x5a8a7f];},_0x77d297=function(_0x5bfd3e){const _0x23a940=_0x235866;let _0x1d641e=0x0,_0x1909aa=_0x5bfd3e['docs'];for(let _0x2bfb77=0x0;_0x2bfb77<_0x1909aa[_0x23a940(0x205b)];_0x2bfb77+=0x1)for(let _0x42b7ae=0x0;_0x42b7ae<_0x1909aa[_0x2bfb77]['length'];_0x42b7ae+=0x1)''!==_0x1909aa[_0x2bfb77][_0x42b7ae][_0x23a940(0x4cb)]&&(_0x1d641e+=0x1,_0x1909aa[_0x2bfb77][_0x42b7ae]['wordCount']=_0x1d641e);},_0x1c72d0=function(_0x77f0db,_0x212e8c){const _0x55232b=_0x235866;let _0x23be91=_0x77f0db[_0x55232b(0x3f72)];for(let _0x4bdadd=0x0;_0x4bdadd<_0x23be91[_0x55232b(0x205b)];_0x4bdadd+=0x1)for(let _0xe287ba=0x0;_0xe287ba<_0x23be91[_0x4bdadd]['length'];_0xe287ba+=0x1)_0x212e8c(_0x23be91[_0x4bdadd][_0xe287ba],_0x77f0db[_0x55232b(0x3e71)]);},_0x4fccbd={'compute':{'alias':_0x3803d9=>_0x1c72d0(_0x3803d9,_0x465430),'machine':_0x53f955=>_0x1c72d0(_0x53f955,_0x46cfa9),'normal':_0x5cb665=>_0x1c72d0(_0x5cb665,_0x5b0e58),'freq':_0x5a9b8c,'offset':_0x587636,'index':_0x1be165,'wordCount':_0x77d297},'methods':_0x20ee5d,'model':{'one':{'aliases':_0x1e60bf,'abbreviations':_0x434353,'prefixes':_0x21594e,'suffixes':{'like':!0x0,'ish':!0x0,'less':!0x0,'able':!0x0,'elect':!0x0,'type':!0x0,'designate':!0x0},'prePunctuation':{'#':!0x0,'@':!0x0,'_':!0x0,'°':!0x0,'​':!0x0,'‌':!0x0,'‍':!0x0,'\ufeff':!0x0},'postPunctuation':{'%':!0x0,'_':!0x0,'°':!0x0,'​':!0x0,'‌':!0x0,'‍':!0x0,'\ufeff':!0x0},'lexicon':_0x40faae,'unicode':_0x348626,'emoticons':{'<3':!0x0,'{const _0x34a570=_0x47a3af;let _0x18d85b=(_0x5de489=_0x5de489[_0x34a570(0x1a57)]()[_0x34a570(0x1d0e)]())[_0x34a570(0x205b)];_0x1c819f['max']&&_0x18d85b>_0x1c819f[_0x34a570(0x28c)]&&(_0x18d85b=_0x1c819f['max']);for(let _0x3416b0=_0x1c819f[_0x34a570(0x12f9)];_0x3416b0<_0x18d85b;_0x3416b0+=0x1){let _0x139641=_0x5de489['substring'](0x0,_0x3416b0);_0x1c819f['safe']&&_0xf8a34e['model'][_0x34a570(0x4116)][_0x34a570(0x4ab0)][_0x34a570(0x32b5)](_0x139641)||(!0x0!==_0x3e9a8f['hasOwnProperty'](_0x139641)&&!0x0!==_0x29168b[_0x34a570(0x32b5)](_0x139641)?_0x29168b[_0x139641]=_0x5de489:_0x3840ef[_0x34a570(0x4131)](_0x139641));}}),_0x29168b=Object['assign']({},_0x3e9a8f,_0x29168b),_0x3840ef[_0x47a3af(0x4854)](_0x2abbc8=>{delete _0x29168b[_0x2abbc8];}),_0x29168b;},_0x4ca555={'safe':!0x0,'min':0x3},_0x2a531f={'typeahead':function(_0x2b0030=[],_0x45e0f8={}){const _0x57b91d=_0x235866;let _0x37ae4a=this[_0x57b91d(0x2c3e)]();var _0x457203;_0x45e0f8=Object['assign']({},_0x4ca555,_0x45e0f8),_0x457203=_0x2b0030,'[object\x20Object]'===Object[_0x57b91d(0x2b5c)]['toString']['call'](_0x457203)&&(Object['assign'](_0x37ae4a[_0x57b91d(0x4116)][_0x57b91d(0x4ab0)],_0x2b0030),_0x2b0030=Object['keys'](_0x2b0030));let _0x25766a=_0x1415aa(_0x2b0030,_0x45e0f8,this[_0x57b91d(0x3e71)]());return Object[_0x57b91d(0x2f75)](_0x25766a)[_0x57b91d(0x4854)](_0x3c8bac=>{const _0x2bd5de=_0x57b91d;_0x37ae4a[_0x2bd5de(0x4116)]['typeahead'][_0x2bd5de(0x32b5)](_0x3c8bac)?delete _0x37ae4a[_0x2bd5de(0x4116)][_0x2bd5de(0x1d56)][_0x3c8bac]:_0x37ae4a[_0x2bd5de(0x4116)][_0x2bd5de(0x1d56)][_0x3c8bac]=_0x25766a[_0x3c8bac];}),this;}},_0x646b0f={'model':{'one':{'typeahead':{}}},'api':_0x317e3f,'lib':_0x2a531f,'compute':_0x5a6ce2,'hooks':[_0x235866(0x1d56)]};_0x5d20a7['extend'](_0x40ef9a),_0x5d20a7[_0x235866(0x389d)](_0x1e9079),_0x5d20a7['extend'](_0x5c7b74),_0x5d20a7[_0x235866(0x389d)](_0x282ee5),_0x5d20a7[_0x235866(0x389d)](_0x557f42),_0x5d20a7[_0x235866(0x4c30)](_0x1876cc),_0x5d20a7[_0x235866(0x389d)](_0x4fccbd),_0x5d20a7[_0x235866(0x389d)](_0x4cb09b),_0x5d20a7[_0x235866(0x4c30)](_0x30866c),_0x5d20a7[_0x235866(0x389d)](_0x2fa8bb),_0x5d20a7[_0x235866(0x389d)](_0x646b0f),_0x5d20a7[_0x235866(0x389d)](_0x1ec109),_0x5d20a7[_0x235866(0x389d)](_0x4539be);const _0x3a5c82=_0x5d20a7,_0x49642c={'addendum':_0x235866(0x4030),'corpus':'corpora','criterion':_0x235866(0x1651),'curriculum':'curricula','genus':_0x235866(0x40ae),'memorandum':'memoranda','opus':'opera','ovum':_0x235866(0x48ea),'phenomenon':_0x235866(0x978),'referendum':'referenda','alga':_0x235866(0xc16),'alumna':'alumnae','antenna':_0x235866(0x4e03),'formula':_0x235866(0x235f),'larva':'larvae','nebula':'nebulae','vertebra':_0x235866(0x4d35),'analysis':_0x235866(0x490c),'axis':_0x235866(0x187d),'diagnosis':_0x235866(0x286e),'parenthesis':'parentheses','prognosis':_0x235866(0x2f28),'synopsis':'synopses','thesis':_0x235866(0x613),'neurosis':_0x235866(0xf8b),'appendix':_0x235866(0x3cf0),'index':'indices','matrix':_0x235866(0x17ef),'ox':_0x235866(0x1f78),'sex':_0x235866(0x2e7),'alumnus':_0x235866(0x2ee8),'bacillus':_0x235866(0x467e),'cactus':_0x235866(0x4c48),'fungus':_0x235866(0x38dc),'hippopotamus':_0x235866(0x2796),'libretto':'libretti','modulus':_0x235866(0x2b19),'nucleus':_0x235866(0x2009),'octopus':'octopi','radius':'radii','stimulus':'stimuli','syllabus':_0x235866(0x2158),'cookie':_0x235866(0x699),'calorie':_0x235866(0x5119),'auntie':_0x235866(0x28e0),'movie':_0x235866(0x1b90),'pie':_0x235866(0x129e),'rookie':_0x235866(0x4e67),'tie':'ties','zombie':_0x235866(0x9c8),'leaf':_0x235866(0x2d40),'loaf':_0x235866(0x3dd2),'thief':_0x235866(0x375f),'foot':_0x235866(0x6b7),'goose':'geese','tooth':_0x235866(0x3545),'beau':_0x235866(0x38e2),'chateau':'chateaux','tableau':_0x235866(0x39a7),'bus':_0x235866(0x2d62),'gas':_0x235866(0xc3c),'circus':_0x235866(0x2813),'crisis':_0x235866(0x3fcc),'virus':_0x235866(0x34cb),'database':_0x235866(0x46a3),'excuse':'excuses','abuse':_0x235866(0x2469),'avocado':'avocados','barracks':_0x235866(0x1a83),'child':_0x235866(0x4538),'clothes':'clothes','echo':'echoes','embargo':_0x235866(0x2341),'epoch':_0x235866(0x2150),'deer':_0x235866(0x3a03),'halo':_0x235866(0x329),'man':_0x235866(0x356c),'woman':_0x235866(0x177e),'mosquito':_0x235866(0x5006),'mouse':_0x235866(0x22f9),'person':'people','quiz':'quizzes','rodeo':_0x235866(0x3875),'shoe':_0x235866(0x24f),'sombrero':_0x235866(0x3515),'stomach':'stomachs','tornado':_0x235866(0x2587),'tuxedo':_0x235866(0x19c4),'volcano':_0x235866(0x1d62)},_0x21316d={'Comparative':_0x235866(0x3b3b),'Superlative':_0x235866(0xb5f),'PresentTense':'true¦bests,sounds','Condition':_0x235866(0xae4),'PastTense':_0x235866(0x43fe),'Participle':_0x235866(0x1f41),'Gerund':'true¦accord0be0doin,go0result0stain0;ing','Expression':_0x235866(0x4f4f),'Negative':'true¦n0;ever,o0;n,t','QuestionWord':_0x235866(0x2a8a),'Reflexive':_0x235866(0x4a83),'Plural':_0x235866(0x4ddd),'Unit|Noun':'true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s','Value':'true¦a\x20few','Imperative':_0x235866(0x118),'Plural|Verb':_0x235866(0x5c1),'Demonym':'true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto\x20r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an','Organization':_0x235866(0x4d44),'Possessive':'true¦its,my,our0thy;!s','Noun|Verb':'true¦0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se','Actor':_0x235866(0x387e),'Adj|Noun':_0x235866(0x3bf4),'Adj|Past':_0x235866(0xe3a),'Singular':_0x235866(0x3386),'Person|Noun':'true¦a0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma','Actor|Verb':_0x235866(0x2254),'MaleName':_0x235866(0x237f),'Uncountable':_0x235866(0x2e7b),'Infinitive':_0x235866(0x1dd0),'Person':_0x235866(0x2482),'Adjective':_0x235866(0x22f8),'Pronoun':_0x235866(0x1c4e),'Preposition':_0x235866(0x1838),'SportsTeam':_0x235866(0x2ec),'Unit':_0x235866(0x3701),'Noun|Gerund':_0x235866(0x27c0),'PhrasalVerb':'true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet\x20Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero\x20Dip\x20LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel\x20Di0S;aLiKn33;gh\x203Wrd0;n\x20Dr\x20K;do1in,oJ;it\x2079k5lk\x20Lrm\x2069sh\x20Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e\x202herE;a00eYhViRoQrMuKypP;ckErn\x20K;do1in,oJup;aLiKot0y\x2030;ckl7Zp\x20F;ck\x20HdK;e\x205Y;n7Wp\x203Es5K;ck\x20MdLe\x20Kghten\x206me0p\x20o0Rre0;aw3ba4do1in,up;e\x20Iy\x202;by,oG;ink\x20Lrow\x20K;aw3ba4in,up;ba4ov9up;aKe\x2077ll62;m\x202r\x205M;ckBke\x20Llk\x20K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch\x20K;aw3ba4o8K;\x20by;cKi6Bm\x202ss0;k\x2064;aReQiPoNrKud35;aigh2Det75iK;ke\x207Sng\x20K;al6Yup;p\x20Krm2F;by,in,oG;c3Ln3Lr\x202tc4O;p\x20F;c3Jmp0nd\x20LrKveAy\x202O;e\x20Ht\x202L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it\x206H;c5ll\x20o3Cn\x202;ak\x20Fe1Xll0;a3Bber\x202rt0und\x20like;ap\x205Vow\x20Duggl5;ash\x206Noke0;eep\x20NiKow\x206;cLp\x20K;o6Dup;e\x2068;in,oK;ff,v9;de19gn\x204NnKt\x206Gz5;gKkE;\x20al6Ale0;aMoKu5W;ot\x20Kut0w\x207M;aw3ba4f48oC;c2WdeEk6EveA;e\x20Pll1Nnd\x20Orv5tK;\x20Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew\x206J;ilAv5;aXeUiSoOuK;b\x205Yle0n\x20Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll\x20Mot\x20LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng\x2068p\x20oKs5;ff,p18;aKelAinEnt0;c6Hd\x20K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll\x20Mn5Kt\x20K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess\x20KiNop\x202;ah2Fon;iLp\x20Kr4Zu1Gwer\x206N;do1in,o6Nup;nt0;aLuK;gEmp\x206;ce\x20u20y\x206D;ck\x20Kg0le\x204An\x206p5B;oJup;el\x205NncilE;c53ir\x2039n0ss\x20MtLy\x20K;ba4oG;\x20Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt\x20D;aLerd0oK;dAt53;il\x20Hrrow\x20H;aTeQiPoLuK;ddl5ll\x20I;c1FnkeyMp\x206uthAve\x20K;aKdo1in,o4Lup;l4Nw3;\x20wi4K;ss0x\x202;asur5e3SlLss\x20K;a21up;t\x206;ke\x20Ln\x206rKs2Ax0;k\x206ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st\x20I;aNc4Fg\x20MoKse0;k\x20Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d\x206;e\x20NghtMnLsKve\x2000;ten\x20F;e\x202k\x202;\x202e46;ar8do1in;aMt\x20LvelK;\x20oC;do1go,in,o7up;nEve\x20K;in,oK;pKut;en;c5p\x202sh\x20LtchBughAy\x20K;do1o59;in4Po7;eMick\x20Lnock\x20K;do1oCup;oCup;eLy\x20K;in,up;l\x20Ip\x20K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St\x20H;c43zz\x202;a01eWiToPuK;nLrrKsh\x206;y\x202;keLt\x20K;ar8do1;r\x20H;lKneErse3K;d\x20Ke\x202;ba4dKfast,o0Cup;ear,o1;de\x20Lt\x20K;ba4on,up;aw3o7;aKlp0;d\x20Ml\x20Ir\x20Kt\x202;fKof;rom;f11in,o03uW;cPm\x202nLsh0ve\x20Kz2P;at,it,to;d\x20Lg\x20KkerP;do1in,o2Tup;do1in,oK;ut,v9;k\x202;aZeTive\x20Rloss\x20IoMrLunK;\x20f0S;ab\x20hold,in43ow\x202U;\x20Kof\x202I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar\x206ek0t\x20K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d\x20aKng\x202;bo7;a0Ee07iYlUoQrMuK;ck\x20Ke2N;ar8up;eLighten\x20KownBy\x202;aw3oG;eKshe27;\x202z5;g\x202lMol\x20Krk\x20I;aKwi20;bo7r8;d\x206low\x202;aLeKip0;sh0;g\x206ke0mKrKtten\x20H;e\x20F;gRlPnNrLsKzzle0;h\x20F;e\x20Km\x202;aw3ba4up;d0isK;h\x202;e\x20Kl\x201T;aw3fPin,o7;ht\x20ba4ure0;ePnLsK;s\x202;cMd\x20K;fKoG;or;e\x20D;d04l\x202;cNll\x20Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e\x20K;do1oGup;at\x20Kdge0nd\x2012y5;in,o7up;aOi1HoNrK;aLess\x206op\x20KuN;aw3b03in,oC;gBwB;\x20Ile0ubl1B;m\x202;a0Ah05l02oOrLut\x20K;aw3ba4do1oCup;ackBeep\x20LoKy0;ss\x20Dwd0;by,do1in,o0Uup;me\x20NoLuntK;\x20o2A;k\x206l\x20K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose\x20K;in,oCup;n\x206r\x20F;aNeLiK;ll0pE;ck\x20Der\x20Kw\x20F;on,up;t\x202;lRncel0rOsMtch\x20LveE;\x20in;o1Nup;h\x20Dt\x20K;doubt,oG;ry\x20LvK;e\x2008;aw3oJ;l\x20Km\x20H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk\x206ndl05rLsKtMy\x20FzzA;t\x2000;n\x200HsK;t\x20D;e\x20I;ov9;anWeaUiLush\x20K;oGup;ghQng\x20K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n\x202;k\x20K;do1in,o7up;ch0;arTg\x206iRn5oPrNssMttlLunce\x20Kx\x20D;aw3ba4;e\x206;\x20ar8;e\x20H;do1;k\x20Dt\x202;e\x202;l\x206;do1up;d\x202;aPeed0oKurt0;cMw\x20K;aw3ba4do1o7up;ck;k\x20K;in,oC;ck0nk0stA;\x20oQaNef\x202lt0nd\x20K;do1ov9up;er;up;r\x20Lt\x20K;do1in,oCup;do1o7;ff,nK;to;ck\x20Pil0nMrgLsK;h\x20D;ainBe\x20D;g\x20DkB;\x20on;in,o7;aw3do1in,oCup;ff,ut;ay;ct\x20FdQir0sk\x20MuctionA;\x20oG;ff;ar8o7;ouK;nd;\x20o7;d\x20K;do1oKup;ff,n;wn;o7up;ut','ProperNoun':_0x235866(0x19a5),'Person|Place':_0x235866(0x15da),'LastName':_0x235866(0x3106),'Ordinal':_0x235866(0xd5e),'Cardinal':_0x235866(0x3c8a),'Multiple':_0x235866(0x1799),'City':'true¦0:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan\x20bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui;\x20hag62ssaloni2H;gucigal26hr0l\x20av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten\x20is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int\x20ClBn5o\x20paulo,ppo3Rrajevo;\x207aa,t5;a\x205o\x20domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t\x20lake\x20ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;!\x20de\x20janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0;\x205la4Co;au\x20prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom\x20pe1Aoenix;ki1r21tah\x20tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc;\x205cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s\x20angel26;d2g\x20bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27;\x20ma39i5;c5pzig;est16;\x20p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala\x20lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W;\x20chi\x20mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld\x20coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0;\x20wor6ale5;za;th;d5indhov0Pl\x20paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr\x20es\x20sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang\x20m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe\x20town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos\x20air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o\x20horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan\x20n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja\x20lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis\x20aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am;\x207buquerq6eppo,giers,ma5;ty;ue;basrah\x20al\x20qadim5mawsil\x20al\x20jadid5;ah;ab5;ad;la;ba;ra;idj0u\x20dha5;bi;an;lbo6rh5;us;rg','Region':_0x235866(0x363),'Country':'true¦0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis\x20and\x20futu2Y;a3enezue32ietnam;nuatu,tican\x20city;gTk6nited\x204ruXs3zbeE;\x202Ca,sr;arab\x20emirat0Kkingdom,states3;!\x20of\x20am2Y;!raiV;a8haCimor\x20les0Co7rinidad\x205u3;nis0rk3valu;ey,me2Zs\x20and\x20caic1V;and\x20t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri\x20lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth\x203;afr2KkMsud2;ak0en0;erra\x20leoFn3;gapo1Yt\x20maart3;en;negLrb0ychellZ;int\x203moa,n\x20marino,udi\x20arab0;hele26luc0mart21;epublic\x20of\x20ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto\x20riN;l1rtugF;ki2Dl4nama,pua\x20new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay;\x20k3ern\x20mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw\x20zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory\x20coast;le\x20of\x20m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng\x20kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;!\x20biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench\x203;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast\x20tim7cu6gypt,l\x20salv6ngl1quatorial4ritr5st3thiop0;on0;\x20guin3;ea;ad3;or;enmark,jibou5ominica4r\x20con3;go;!n\x20C;ti;aBentral\x20african\x20Ah8o5roat0u4yprRzech3;\x209ia;ba,racao;c4lo3morQngo\x20brazzaville,okGsta\x20r04te\x20de\x20ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe\x20verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina\x20faso,ma,undi;azil,itish\x203unei;virgin3;\x20is3;lands;liv0nai5snia\x20and\x20herzegoviHtswaHuvet3;\x20isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua\x20and\x20barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an','Place':_0x235866(0x17d7),'FirstName':_0x235866(0xfd3),'WeekDay':_0x235866(0x23d4),'Month':_0x235866(0xac2),'Date':_0x235866(0x4920),'Duration':_0x235866(0x26d8),'FemaleName':'true¦0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya','Honorific':_0x235866(0x409d),'Adj|Gerund':_0x235866(0xe94),'Comparable':_0x235866(0x35cc),'Adverb':_0x235866(0x3ded),'Conjunction':_0x235866(0x31fe),'Currency':_0x235866(0x33fd),'Determiner':_0x235866(0x105e),'Adj|Present':_0x235866(0xdd4),'Person|Adj':_0x235866(0x4d59),'Modal':_0x235866(0x3033),'Verb':'true¦born,cannot,gonna,has,keep\x20tabs,msg','Person|Verb':'true¦b8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom','Person|Date':_0x235866(0x3b02)},_0x9fd43a=0x24,_0x5557a7=_0x235866(0xad7),_0x96f540=_0x5557a7[_0x235866(0x29d0)]('')['reduce'](function(_0x523a70,_0x4a6fef,_0x158594){return _0x523a70[_0x4a6fef]=_0x158594,_0x523a70;},{}),_0x2dadb2=function(_0x11042d){const _0x90c910=_0x235866;if(void 0x0!==_0x96f540[_0x11042d])return _0x96f540[_0x11042d];let _0xd72045=0x0,_0x5bf346=0x1,_0x4cbbe4=_0x9fd43a,_0x1c85cc=0x1;for(;_0x5bf346<_0x11042d['length'];_0xd72045+=_0x4cbbe4,_0x5bf346++,_0x4cbbe4*=_0x9fd43a);for(let _0x1bab07=_0x11042d[_0x90c910(0x205b)]-0x1;_0x1bab07>=0x0;_0x1bab07--,_0x1c85cc*=_0x9fd43a){let _0x506e99=_0x11042d[_0x90c910(0x1806)](_0x1bab07)-0x30;_0x506e99>0xa&&(_0x506e99-=0x7),_0xd72045+=_0x506e99*_0x1c85cc;}return _0xd72045;},_0xe1efd8=function(_0x1ad2fc){const _0x5516b3=_0x235866,_0x3ccf62=new RegExp('([0-9A-Z]+):([0-9A-Z]+)');for(let _0x52b036=0x0;_0x52b036<_0x1ad2fc[_0x5516b3(0x298b)][_0x5516b3(0x205b)];_0x52b036++){const _0x452ba4=_0x3ccf62[_0x5516b3(0x3bbd)](_0x1ad2fc['nodes'][_0x52b036]);if(!_0x452ba4){_0x1ad2fc['symCount']=_0x52b036;break;}_0x1ad2fc['syms'][_0x2dadb2(_0x452ba4[0x1])]=_0x2dadb2(_0x452ba4[0x2]);}_0x1ad2fc[_0x5516b3(0x298b)]=_0x1ad2fc['nodes'][_0x5516b3(0x428e)](_0x1ad2fc[_0x5516b3(0x3a56)],_0x1ad2fc[_0x5516b3(0x298b)][_0x5516b3(0x205b)]);},_0x5b77ee=function(_0x31d3d4,_0x5ff85d,_0x388963){const _0x1e1b22=_0x235866,_0x1dc2d1=_0x2dadb2(_0x5ff85d);return _0x1dc2d1<_0x31d3d4[_0x1e1b22(0x3a56)]?_0x31d3d4[_0x1e1b22(0x1fa8)][_0x1dc2d1]:_0x388963+_0x1dc2d1+0x1-_0x31d3d4['symCount'];},_0xe259c6=function(_0x34ca74){const _0x4a7c4f=_0x235866,_0x21e166={'nodes':_0x34ca74['split'](';'),'syms':[],'symCount':0x0};return _0x34ca74[_0x4a7c4f(0xdc0)](':')&&_0xe1efd8(_0x21e166),function(_0x252914){const _0x10ed40=[],_0x3d210a=(_0x4afafa,_0x21ea30)=>{const _0x16297e=a0_0x329b;let _0x2e5d1d=_0x252914['nodes'][_0x4afafa];'!'===_0x2e5d1d[0x0]&&(_0x10ed40[_0x16297e(0x4131)](_0x21ea30),_0x2e5d1d=_0x2e5d1d['slice'](0x1));const _0x23d61c=_0x2e5d1d[_0x16297e(0x29d0)](/([A-Z0-9,]+)/g);for(let _0x5a3630=0x0;_0x5a3630<_0x23d61c[_0x16297e(0x205b)];_0x5a3630+=0x2){const _0x688389=_0x23d61c[_0x5a3630],_0x162c7c=_0x23d61c[_0x5a3630+0x1];if(!_0x688389)continue;const _0x425cf4=_0x21ea30+_0x688389;if(','===_0x162c7c||void 0x0===_0x162c7c){_0x10ed40[_0x16297e(0x4131)](_0x425cf4);continue;}const _0x19aa73=_0x5b77ee(_0x252914,_0x162c7c,_0x4afafa);_0x3d210a(_0x19aa73,_0x425cf4);}};return _0x3d210a(0x0,''),_0x10ed40;}(_0x21e166);},_0x3affc5=function(_0x5290e1){const _0x1ae727=_0x235866;if(!_0x5290e1)return{};const _0x470e28=_0x5290e1['split']('|')[_0x1ae727(0xf33)]((_0x10445a,_0x33ad35)=>{const _0x118b36=_0x33ad35['split']('¦');return _0x10445a[_0x118b36[0x0]]=_0x118b36[0x1],_0x10445a;},{}),_0x319649={};return Object['keys'](_0x470e28)[_0x1ae727(0x4854)](function(_0x21f873){const _0x25b7bd=_0x1ae727,_0x550dcb=_0xe259c6(_0x470e28[_0x21f873]);'true'===_0x21f873&&(_0x21f873=!0x0);for(let _0xfe4969=0x0;_0xfe4969<_0x550dcb[_0x25b7bd(0x205b)];_0xfe4969++){const _0x310cac=_0x550dcb[_0xfe4969];!0x0===_0x319649['hasOwnProperty'](_0x310cac)?!0x1===Array[_0x25b7bd(0x477f)](_0x319649[_0x310cac])?_0x319649[_0x310cac]=[_0x319649[_0x310cac],_0x21f873]:_0x319649[_0x310cac]['push'](_0x21f873):_0x319649[_0x310cac]=_0x21f873;}}),_0x319649;},_0x4eae8d=[_0x235866(0x1e24),_0x235866(0x1ab5)],_0x2d339a={'a':[[/(antenn|formul|nebul|vertebr|vit)a$/i,_0x235866(0x412a)],[/ia$/i,'ia']],'e':[[/(kn|l|w)ife$/i,_0x235866(0x44c5)],[/(hive)$/i,_0x235866(0x118a)],[/([m|l])ouse$/i,_0x235866(0x17de)],[/([m|l])ice$/i,'$1ice']],'f':[[/^(dwar|handkerchie|hoo|scar|whar)f$/i,'$1ves'],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)f$/i,_0x235866(0x502)]],'i':[[/(octop|vir)i$/i,_0x235866(0x2a26)]],'m':[[/([ti])um$/i,_0x235866(0x2a1c)]],'n':[[/^(oxen)$/i,'$1']],'o':[[/(al|ad|at|er|et|ed)o$/i,_0x235866(0x4a6d)]],'s':[[/(ax|test)is$/i,_0x235866(0x2e86)],[/(alias|status)$/i,_0x235866(0x2e86)],[/sis$/i,_0x235866(0x9ae)],[/(bu)s$/i,_0x235866(0x3f9)],[/(sis)$/i,_0x235866(0x9ae)],[/^(?!talis|.*hu)(.*)man$/i,_0x235866(0x21c6)],[/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,_0x235866(0x2a26)]],'x':[[/(matr|vert|ind|cort)(ix|ex)$/i,_0x235866(0x1544)],[/^(ox)$/i,_0x235866(0xb2c)]],'y':[[/([^aeiouy]|qu)y$/i,_0x235866(0x271a)]],'z':[[/(quiz)$/i,_0x235866(0x41d7)]]},_0x2e8224=/([xsz]|ch|sh)$/,_0x4a950c=function(_0xc517bc='',_0x5454b8){const _0x20d704=_0x235866;let {irregularPlurals:_0x172007,uncountable:_0x1b813a}=_0x5454b8[_0x20d704(0x141f)];if(_0x1b813a[_0x20d704(0x32b5)](_0xc517bc))return _0xc517bc;if(_0x172007[_0x20d704(0x32b5)](_0xc517bc))return _0x172007[_0xc517bc];let _0x1e7aa6=function(_0x20bac4){const _0x198dea=_0x20d704;let _0x465d6f=_0x20bac4[_0x20bac4[_0x198dea(0x205b)]-0x1];if(!0x0===_0x2d339a[_0x198dea(0x32b5)](_0x465d6f))for(let _0x402c42=0x0;_0x402c42<_0x2d339a[_0x465d6f][_0x198dea(0x205b)];_0x402c42+=0x1){let _0x215292=_0x2d339a[_0x465d6f][_0x402c42][0x0];if(!0x0===_0x215292['test'](_0x20bac4))return _0x20bac4[_0x198dea(0x1db7)](_0x215292,_0x2d339a[_0x465d6f][_0x402c42][0x1]);}return null;}(_0xc517bc);return null!==_0x1e7aa6?_0x1e7aa6:_0x2e8224[_0x20d704(0x34c)](_0xc517bc)?_0xc517bc+'es':_0xc517bc+'s';},_0x12d07e=/\|/;let _0x41e396={'20th\x20century\x20fox':_0x235866(0x28cf),'7\x20eleven':_0x235866(0x28cf),'motel\x206':_0x235866(0x28cf),'g8':_0x235866(0x28cf),'vh1':'Organization','76ers':_0x235866(0x18d1),'49ers':_0x235866(0x18d1),'q1':_0x235866(0x3c98),'q2':_0x235866(0x3c98),'q3':'Date','q4':_0x235866(0x3c98),'km2':'Unit','m2':'Unit','dm2':_0x235866(0x283a),'cm2':_0x235866(0x283a),'mm2':'Unit','mile2':_0x235866(0x283a),'in2':_0x235866(0x283a),'yd2':'Unit','ft2':_0x235866(0x283a),'m3':_0x235866(0x283a),'dm3':_0x235866(0x283a),'cm3':_0x235866(0x283a),'in3':'Unit','ft3':_0x235866(0x283a),'yd3':_0x235866(0x283a),'at&t':_0x235866(0x28cf),'black\x20&\x20decker':_0x235866(0x28cf),'h\x20&\x20m':'Organization','johnson\x20&\x20johnson':_0x235866(0x28cf),'procter\x20&\x20gamble':'Organization','ben\x20&\x20jerry\x27s':'Organization','&':_0x235866(0x846),'i':['Pronoun',_0x235866(0x3faa)],'he':[_0x235866(0x1ab5),_0x235866(0x3faa)],'she':[_0x235866(0x1ab5),_0x235866(0x3faa)],'it':[_0x235866(0x1ab5),_0x235866(0x3faa)],'they':[_0x235866(0x1ab5),_0x235866(0x27b3)],'we':[_0x235866(0x1ab5),_0x235866(0x27b3)],'was':[_0x235866(0x49fb),_0x235866(0x2192)],'is':['Copula',_0x235866(0x17a6)],'are':[_0x235866(0x49fb),_0x235866(0x17a6)],'am':[_0x235866(0x49fb),_0x235866(0x17a6)],'were':[_0x235866(0x49fb),'PastTense'],'her':_0x4eae8d,'his':_0x4eae8d,'hers':_0x4eae8d,'their':_0x4eae8d,'theirs':_0x4eae8d,'themselves':_0x4eae8d,'your':_0x4eae8d,'our':_0x4eae8d,'ours':_0x4eae8d,'my':_0x4eae8d,'its':_0x4eae8d,'vs':[_0x235866(0x846),_0x235866(0x256d)],'if':[_0x235866(0x2451),_0x235866(0xcf)],'closer':'Comparative','closest':'Superlative','much':'Adverb','may':'Modal','babysat':_0x235866(0x2192),'blew':_0x235866(0x2192),'drank':_0x235866(0x2192),'drove':_0x235866(0x2192),'forgave':'PastTense','skiied':_0x235866(0x2192),'spilt':_0x235866(0x2192),'stung':_0x235866(0x2192),'swam':'PastTense','swung':_0x235866(0x2192),'guaranteed':_0x235866(0x2192),'shrunk':_0x235866(0x2192),'nears':'PresentTense','nearing':_0x235866(0x1e19),'neared':_0x235866(0x2192),'no':[_0x235866(0x8cb),_0x235866(0x766)]},_0x458a80={};const _0x621782={'two':{'irregularPlurals':_0x49642c,'uncountable':{}}};Object[_0x235866(0x2f75)](_0x21316d)[_0x235866(0x4854)](_0x183193=>{const _0x2ccd2d=_0x235866;let _0x2090e3=_0x3affc5(_0x21316d[_0x183193]);_0x12d07e['test'](_0x183193)?Object[_0x2ccd2d(0x2f75)](_0x2090e3)[_0x2ccd2d(0x4854)](_0x69c363=>{const _0x2ca97f=_0x2ccd2d;if(_0x458a80[_0x69c363]=_0x183193,_0x2ca97f(0xd1)===_0x183193){let _0x1eb79b=_0x4a950c(_0x69c363,_0x621782);_0x458a80[_0x1eb79b]=_0x2ca97f(0x2d41);}}):Object['keys'](_0x2090e3)[_0x2ccd2d(0x4854)](_0x1342ce=>{_0x41e396[_0x1342ce]=_0x183193;});}),[':(',':)',':P',':p',':O',';(',';)',';P',';p',';O',':3',':|',':/',':\x5c',':$',':*',':@',_0x235866(0x4e4c),_0x235866(0x131f),_0x235866(0x3ee0),_0x235866(0x35f3),_0x235866(0x1fca),_0x235866(0x2279),_0x235866(0x25d2),':-/',_0x235866(0x4c2e),_0x235866(0x195d),_0x235866(0x4c5c),_0x235866(0x62d),_0x235866(0x11a7),_0x235866(0x2a61),_0x235866(0x32d),_0x235866(0x33f5),_0x235866(0x1a9a),_0x235866(0x4e8e),_0x235866(0x394a),_0x235866(0xe8b),_0x235866(0x3493),_0x235866(0x322d),_0x235866(0x2300),_0x235866(0x18cd),'):','(:','$:','*:',')-:',_0x235866(0x2029),_0x235866(0x1c77),_0x235866(0xd5f),_0x235866(0x8b8),'(^:','$^:',_0x235866(0x3c8b),'<3','_0x41e396[_0x5cffb4]=_0x235866(0x1242)),delete _0x41e396[''],delete _0x41e396[_0x235866(0x15f0)],delete _0x41e396['\x20'];const _0x59e77a=_0x235866(0x3faa),_0x86b88f={'beforeTags':{'Determiner':_0x59e77a,'Possessive':_0x59e77a,'Acronym':_0x59e77a,'Noun':_0x59e77a,'Adjective':_0x59e77a,'PresentTense':_0x59e77a,'Gerund':_0x59e77a,'PastTense':_0x59e77a,'Infinitive':_0x59e77a,'Date':_0x59e77a,'Ordinal':_0x59e77a,'Demonym':_0x59e77a},'afterTags':{'Value':_0x59e77a,'Modal':_0x59e77a,'Copula':_0x59e77a,'PresentTense':_0x59e77a,'PastTense':_0x59e77a,'Demonym':_0x59e77a,'Actor':_0x59e77a},'beforeWords':{'the':_0x59e77a,'with':_0x59e77a,'without':_0x59e77a,'of':_0x59e77a,'for':_0x59e77a,'any':_0x59e77a,'all':_0x59e77a,'on':_0x59e77a,'cut':_0x59e77a,'cuts':_0x59e77a,'increase':_0x59e77a,'decrease':_0x59e77a,'raise':_0x59e77a,'drop':_0x59e77a,'save':_0x59e77a,'saved':_0x59e77a,'saves':_0x59e77a,'make':_0x59e77a,'makes':_0x59e77a,'made':_0x59e77a,'minus':_0x59e77a,'plus':_0x59e77a,'than':_0x59e77a,'another':_0x59e77a,'versus':_0x59e77a,'neither':_0x59e77a,'about':_0x59e77a,'favorite':_0x59e77a,'best':_0x59e77a,'daily':_0x59e77a,'weekly':_0x59e77a,'linear':_0x59e77a,'binary':_0x59e77a,'mobile':_0x59e77a,'lexical':_0x59e77a,'technical':_0x59e77a,'computer':_0x59e77a,'scientific':_0x59e77a,'security':_0x59e77a,'government':_0x59e77a,'popular':_0x59e77a,'formal':_0x59e77a,'no':_0x59e77a,'more':_0x59e77a,'one':_0x59e77a,'let':_0x59e77a,'her':_0x59e77a,'his':_0x59e77a,'their':_0x59e77a,'our':_0x59e77a,'us':_0x59e77a,'sheer':_0x59e77a,'monthly':_0x59e77a,'yearly':_0x59e77a,'current':_0x59e77a,'previous':_0x59e77a,'upcoming':_0x59e77a,'last':_0x59e77a,'next':_0x59e77a,'main':_0x59e77a,'initial':_0x59e77a,'final':_0x59e77a,'beginning':_0x59e77a,'end':_0x59e77a,'top':_0x59e77a,'bottom':_0x59e77a,'future':_0x59e77a,'past':_0x59e77a,'major':_0x59e77a,'minor':_0x59e77a,'side':_0x59e77a,'central':_0x59e77a,'peripheral':_0x59e77a,'public':_0x59e77a,'private':_0x59e77a},'afterWords':{'of':_0x59e77a,'system':_0x59e77a,'aid':_0x59e77a,'method':_0x59e77a,'utility':_0x59e77a,'tool':_0x59e77a,'reform':_0x59e77a,'therapy':_0x59e77a,'philosophy':_0x59e77a,'room':_0x59e77a,'authority':_0x59e77a,'says':_0x59e77a,'said':_0x59e77a,'wants':_0x59e77a,'wanted':_0x59e77a,'is':_0x59e77a,'did':_0x59e77a,'do':_0x59e77a,'can':_0x59e77a,'wise':_0x59e77a}},_0x135ca2='Infinitive',_0x12f830={'beforeTags':{'Modal':_0x135ca2,'Adverb':_0x135ca2,'Negative':_0x135ca2,'Plural':_0x135ca2},'afterTags':{'Determiner':_0x135ca2,'Adverb':_0x135ca2,'Possessive':_0x135ca2,'Reflexive':_0x135ca2,'Preposition':_0x135ca2,'Cardinal':_0x135ca2,'Comparative':_0x135ca2,'Superlative':_0x135ca2},'beforeWords':{'i':_0x135ca2,'we':_0x135ca2,'you':_0x135ca2,'they':_0x135ca2,'to':_0x135ca2,'please':_0x135ca2,'will':_0x135ca2,'have':_0x135ca2,'had':_0x135ca2,'would':_0x135ca2,'could':_0x135ca2,'should':_0x135ca2,'do':_0x135ca2,'did':_0x135ca2,'does':_0x135ca2,'can':_0x135ca2,'must':_0x135ca2,'us':_0x135ca2,'me':_0x135ca2,'let':_0x135ca2,'even':_0x135ca2,'when':_0x135ca2,'help':_0x135ca2,'he':_0x135ca2,'she':_0x135ca2,'it':_0x135ca2,'being':_0x135ca2,'bi':_0x135ca2,'co':_0x135ca2,'contra':_0x135ca2,'de':_0x135ca2,'inter':_0x135ca2,'intra':_0x135ca2,'mis':_0x135ca2,'pre':_0x135ca2,'out':_0x135ca2,'counter':_0x135ca2,'nobody':_0x135ca2,'somebody':_0x135ca2,'anybody':_0x135ca2,'everybody':_0x135ca2},'afterWords':{'the':_0x135ca2,'me':_0x135ca2,'you':_0x135ca2,'him':_0x135ca2,'us':_0x135ca2,'her':_0x135ca2,'his':_0x135ca2,'them':_0x135ca2,'they':_0x135ca2,'it':_0x135ca2,'himself':_0x135ca2,'herself':_0x135ca2,'itself':_0x135ca2,'myself':_0x135ca2,'ourselves':_0x135ca2,'themselves':_0x135ca2,'something':_0x135ca2,'anything':_0x135ca2,'a':_0x135ca2,'an':_0x135ca2,'up':_0x135ca2,'down':_0x135ca2,'by':_0x135ca2,'out':_0x135ca2,'off':_0x135ca2,'under':_0x135ca2,'what':_0x135ca2,'all':_0x135ca2,'to':_0x135ca2,'because':_0x135ca2,'although':_0x135ca2,'how':_0x135ca2,'otherwise':_0x135ca2,'together':_0x135ca2,'though':_0x135ca2,'into':_0x135ca2,'yet':_0x135ca2,'more':_0x135ca2,'here':_0x135ca2,'there':_0x135ca2,'away':_0x135ca2}},_0x18d6da={'beforeTags':Object[_0x235866(0x11e8)]({},_0x12f830['beforeTags'],_0x86b88f[_0x235866(0x4142)],{}),'afterTags':Object[_0x235866(0x11e8)]({},_0x12f830[_0x235866(0x3916)],_0x86b88f['afterTags'],{}),'beforeWords':Object[_0x235866(0x11e8)]({},_0x12f830['beforeWords'],_0x86b88f[_0x235866(0x4af9)],{}),'afterWords':Object[_0x235866(0x11e8)]({},_0x12f830[_0x235866(0x298f)],_0x86b88f['afterWords'],{})},_0x2f7be6='Adjective',_0x13cfe4={'beforeTags':{'Determiner':_0x2f7be6,'Possessive':_0x2f7be6,'Hyphenated':_0x2f7be6},'afterTags':{'Adjective':_0x2f7be6},'beforeWords':{'seem':_0x2f7be6,'seemed':_0x2f7be6,'seems':_0x2f7be6,'feel':_0x2f7be6,'feels':_0x2f7be6,'felt':_0x2f7be6,'stay':_0x2f7be6,'appear':_0x2f7be6,'appears':_0x2f7be6,'appeared':_0x2f7be6,'also':_0x2f7be6,'over':_0x2f7be6,'under':_0x2f7be6,'too':_0x2f7be6,'it':_0x2f7be6,'but':_0x2f7be6,'still':_0x2f7be6,'really':_0x2f7be6,'quite':_0x2f7be6,'well':_0x2f7be6,'very':_0x2f7be6,'truly':_0x2f7be6,'how':_0x2f7be6,'deeply':_0x2f7be6,'hella':_0x2f7be6,'profoundly':_0x2f7be6,'extremely':_0x2f7be6,'so':_0x2f7be6,'badly':_0x2f7be6,'mostly':_0x2f7be6,'totally':_0x2f7be6,'awfully':_0x2f7be6,'rather':_0x2f7be6,'nothing':_0x2f7be6,'something':_0x2f7be6,'anything':_0x2f7be6,'not':_0x2f7be6,'me':_0x2f7be6,'is':_0x2f7be6,'face':_0x2f7be6,'faces':_0x2f7be6,'faced':_0x2f7be6,'look':_0x2f7be6,'looks':_0x2f7be6,'looked':_0x2f7be6,'reveal':_0x2f7be6,'reveals':_0x2f7be6,'revealed':_0x2f7be6,'sound':_0x2f7be6,'sounded':_0x2f7be6,'sounds':_0x2f7be6,'remains':_0x2f7be6,'remained':_0x2f7be6,'prove':_0x2f7be6,'proves':_0x2f7be6,'proved':_0x2f7be6,'becomes':_0x2f7be6,'stays':_0x2f7be6,'tastes':_0x2f7be6,'taste':_0x2f7be6,'smells':_0x2f7be6,'smell':_0x2f7be6,'gets':_0x2f7be6,'grows':_0x2f7be6,'as':_0x2f7be6,'rings':_0x2f7be6,'radiates':_0x2f7be6,'conveys':_0x2f7be6,'convey':_0x2f7be6,'conveyed':_0x2f7be6,'of':_0x2f7be6},'afterWords':{'too':_0x2f7be6,'also':_0x2f7be6,'or':_0x2f7be6,'enough':_0x2f7be6,'as':_0x2f7be6}},_0x114246=_0x235866(0x1e19),_0x97a0c4={'beforeTags':{'Adverb':_0x114246,'Preposition':_0x114246,'Conjunction':_0x114246},'afterTags':{'Adverb':_0x114246,'Possessive':_0x114246,'Person':_0x114246,'Pronoun':_0x114246,'Determiner':_0x114246,'Copula':_0x114246,'Preposition':_0x114246,'Conjunction':_0x114246,'Comparative':_0x114246},'beforeWords':{'been':_0x114246,'keep':_0x114246,'continue':_0x114246,'stop':_0x114246,'am':_0x114246,'be':_0x114246,'me':_0x114246,'began':_0x114246,'start':_0x114246,'starts':_0x114246,'started':_0x114246,'stops':_0x114246,'stopped':_0x114246,'help':_0x114246,'helps':_0x114246,'avoid':_0x114246,'avoids':_0x114246,'love':_0x114246,'loves':_0x114246,'loved':_0x114246,'hate':_0x114246,'hates':_0x114246,'hated':_0x114246},'afterWords':{'you':_0x114246,'me':_0x114246,'her':_0x114246,'him':_0x114246,'his':_0x114246,'them':_0x114246,'their':_0x114246,'it':_0x114246,'this':_0x114246,'there':_0x114246,'on':_0x114246,'about':_0x114246,'for':_0x114246,'up':_0x114246,'down':_0x114246}},_0x528d82=_0x235866(0x1e19),_0x4c238b=_0x235866(0x19b5),_0x16f949={'beforeTags':Object[_0x235866(0x11e8)]({},_0x13cfe4['beforeTags'],_0x97a0c4[_0x235866(0x4142)],{'Imperative':_0x528d82,'Infinitive':_0x4c238b,'Plural':_0x528d82}),'afterTags':Object[_0x235866(0x11e8)]({},_0x13cfe4['afterTags'],_0x97a0c4['afterTags'],{'Noun':_0x4c238b}),'beforeWords':Object[_0x235866(0x11e8)]({},_0x13cfe4[_0x235866(0x4af9)],_0x97a0c4[_0x235866(0x4af9)],{'is':_0x4c238b,'are':_0x528d82,'was':_0x4c238b,'of':_0x4c238b,'suggest':_0x528d82,'suggests':_0x528d82,'suggested':_0x528d82,'recommend':_0x528d82,'recommends':_0x528d82,'recommended':_0x528d82,'imagine':_0x528d82,'imagines':_0x528d82,'imagined':_0x528d82,'consider':_0x528d82,'considered':_0x528d82,'considering':_0x528d82,'resist':_0x528d82,'resists':_0x528d82,'resisted':_0x528d82,'avoid':_0x528d82,'avoided':_0x528d82,'avoiding':_0x528d82,'except':_0x4c238b,'accept':_0x4c238b,'assess':_0x528d82,'explore':_0x528d82,'fear':_0x528d82,'fears':_0x528d82,'appreciate':_0x528d82,'question':_0x528d82,'help':_0x528d82,'embrace':_0x528d82,'with':_0x4c238b}),'afterWords':Object[_0x235866(0x11e8)]({},_0x13cfe4['afterWords'],_0x97a0c4[_0x235866(0x298f)],{'to':_0x528d82,'not':_0x528d82,'the':_0x528d82})},_0xd2ed93={'beforeTags':{'Determiner':void 0x0,'Cardinal':_0x235866(0x1ce5),'PhrasalVerb':'Adjective'},'afterTags':{}},_0x1f6d91={'beforeTags':Object[_0x235866(0x11e8)]({},_0x13cfe4['beforeTags'],_0x86b88f[_0x235866(0x4142)],_0xd2ed93[_0x235866(0x4142)]),'afterTags':Object['assign']({},_0x13cfe4[_0x235866(0x3916)],_0x86b88f[_0x235866(0x3916)],_0xd2ed93[_0x235866(0x3916)]),'beforeWords':Object['assign']({},_0x13cfe4[_0x235866(0x4af9)],_0x86b88f[_0x235866(0x4af9)],{'are':_0x235866(0x19b5),'is':'Adjective','was':_0x235866(0x19b5),'be':'Adjective','off':_0x235866(0x19b5),'out':_0x235866(0x19b5)}),'afterWords':Object['assign']({},_0x13cfe4[_0x235866(0x298f)],_0x86b88f['afterWords'])};let _0x10f0ed=_0x235866(0x2192),_0x360cb1=_0x235866(0x19b5);const _0x1fb28e={'beforeTags':{'Adverb':_0x10f0ed,'Pronoun':_0x10f0ed,'ProperNoun':_0x10f0ed,'Auxiliary':_0x10f0ed,'Noun':_0x10f0ed},'afterTags':{'Possessive':_0x10f0ed,'Pronoun':_0x10f0ed,'Determiner':_0x10f0ed,'Adverb':_0x10f0ed,'Comparative':_0x10f0ed,'Date':_0x10f0ed,'Gerund':_0x10f0ed},'beforeWords':{'be':_0x10f0ed,'who':_0x10f0ed,'get':_0x360cb1,'had':_0x10f0ed,'has':_0x10f0ed,'have':_0x10f0ed,'been':_0x10f0ed,'it':_0x10f0ed,'as':_0x10f0ed,'for':_0x360cb1,'more':_0x360cb1,'always':_0x360cb1},'afterWords':{'by':_0x10f0ed,'back':_0x10f0ed,'out':_0x10f0ed,'in':_0x10f0ed,'up':_0x10f0ed,'down':_0x10f0ed,'before':_0x10f0ed,'after':_0x10f0ed,'for':_0x10f0ed,'the':_0x10f0ed,'with':_0x10f0ed,'as':_0x10f0ed,'on':_0x10f0ed,'at':_0x10f0ed,'between':_0x10f0ed,'to':_0x10f0ed,'into':_0x10f0ed,'us':_0x10f0ed,'them':_0x10f0ed,'his':_0x10f0ed,'her':_0x10f0ed,'their':_0x10f0ed,'our':_0x10f0ed,'me':_0x10f0ed,'about':_0x360cb1}},_0x15973d={'beforeTags':Object[_0x235866(0x11e8)]({},_0x13cfe4[_0x235866(0x4142)],_0x1fb28e['beforeTags']),'afterTags':Object[_0x235866(0x11e8)]({},_0x13cfe4[_0x235866(0x3916)],_0x1fb28e[_0x235866(0x3916)]),'beforeWords':Object[_0x235866(0x11e8)]({},_0x13cfe4[_0x235866(0x4af9)],_0x1fb28e[_0x235866(0x4af9)]),'afterWords':Object[_0x235866(0x11e8)]({},_0x13cfe4['afterWords'],_0x1fb28e[_0x235866(0x298f)])},_0x2984b7={'afterTags':{'Noun':_0x235866(0x19b5),'Conjunction':void 0x0}},_0x3662a6={'beforeTags':Object[_0x235866(0x11e8)]({},_0x13cfe4['beforeTags'],_0x12f830[_0x235866(0x4142)],{'Adverb':void 0x0,'Negative':void 0x0}),'afterTags':Object[_0x235866(0x11e8)]({},_0x13cfe4['afterTags'],_0x12f830['afterTags'],_0x2984b7[_0x235866(0x3916)]),'beforeWords':Object[_0x235866(0x11e8)]({},_0x13cfe4[_0x235866(0x4af9)],_0x12f830[_0x235866(0x4af9)],{'have':void 0x0,'had':void 0x0,'not':void 0x0,'went':_0x235866(0x19b5),'goes':_0x235866(0x19b5),'got':_0x235866(0x19b5),'be':_0x235866(0x19b5)}),'afterWords':Object['assign']({},_0x13cfe4[_0x235866(0x298f)],_0x12f830[_0x235866(0x298f)],{'to':void 0x0,'as':'Adjective'})},_0x438ab5={'Copula':_0x235866(0x1e19),'PastTense':'Gerund','PresentTense':_0x235866(0x1e19),'Infinitive':'Gerund'},_0x370d31={'Value':_0x235866(0x1e19)},_0x639b83={'are':'Gerund','were':'Gerund','be':'Gerund','no':'Gerund','without':_0x235866(0x1e19),'you':_0x235866(0x1e19),'we':_0x235866(0x1e19),'they':'Gerund','he':_0x235866(0x1e19),'she':_0x235866(0x1e19),'us':'Gerund','them':'Gerund'},_0x2554f3={'the':'Gerund','this':_0x235866(0x1e19),'that':_0x235866(0x1e19),'me':'Gerund','us':_0x235866(0x1e19),'them':_0x235866(0x1e19)},_0x372b7e={'beforeTags':Object[_0x235866(0x11e8)]({},_0x97a0c4['beforeTags'],_0x86b88f[_0x235866(0x4142)],_0x438ab5),'afterTags':Object[_0x235866(0x11e8)]({},_0x97a0c4[_0x235866(0x3916)],_0x86b88f[_0x235866(0x3916)],_0x370d31),'beforeWords':Object['assign']({},_0x97a0c4[_0x235866(0x4af9)],_0x86b88f['beforeWords'],_0x639b83),'afterWords':Object[_0x235866(0x11e8)]({},_0x97a0c4[_0x235866(0x298f)],_0x86b88f['afterWords'],_0x2554f3)},_0x2ea2b6=_0x235866(0x3faa),_0x195c45=_0x235866(0x24ba),_0x4c7ecd={'beforeTags':Object[_0x235866(0x11e8)]({},_0x12f830[_0x235866(0x4142)],_0x86b88f[_0x235866(0x4142)],{'Adjective':_0x2ea2b6,'Particle':_0x2ea2b6}),'afterTags':Object[_0x235866(0x11e8)]({},_0x12f830['afterTags'],_0x86b88f[_0x235866(0x3916)],{'ProperNoun':_0x195c45,'Gerund':_0x195c45,'Adjective':_0x195c45,'Copula':_0x2ea2b6}),'beforeWords':Object[_0x235866(0x11e8)]({},_0x12f830[_0x235866(0x4af9)],_0x86b88f['beforeWords'],{'is':_0x2ea2b6,'was':_0x2ea2b6,'of':_0x2ea2b6,'have':null}),'afterWords':Object[_0x235866(0x11e8)]({},_0x12f830[_0x235866(0x298f)],_0x86b88f[_0x235866(0x298f)],{'instead':_0x195c45,'about':_0x195c45,'his':_0x195c45,'her':_0x195c45,'to':null,'by':null,'in':null})},_0x1512dc=_0x235866(0x29bf),_0x39fec2={'beforeTags':{'Honorific':_0x1512dc,'Person':_0x1512dc},'afterTags':{'Person':_0x1512dc,'ProperNoun':_0x1512dc,'Verb':_0x1512dc},'ownTags':{'ProperNoun':_0x1512dc},'beforeWords':{'hi':_0x1512dc,'hey':_0x1512dc,'yo':_0x1512dc,'dear':_0x1512dc,'hello':_0x1512dc},'afterWords':{'said':_0x1512dc,'says':_0x1512dc,'told':_0x1512dc,'tells':_0x1512dc,'feels':_0x1512dc,'felt':_0x1512dc,'seems':_0x1512dc,'thinks':_0x1512dc,'thought':_0x1512dc,'spends':_0x1512dc,'spendt':_0x1512dc,'plays':_0x1512dc,'played':_0x1512dc,'sing':_0x1512dc,'sang':_0x1512dc,'learn':_0x1512dc,'learned':_0x1512dc,'wants':_0x1512dc,'wanted':_0x1512dc}},_0x586b91='Month',_0x533d43={'beforeTags':{'Date':_0x586b91,'Value':_0x586b91},'afterTags':{'Date':_0x586b91,'Value':_0x586b91},'beforeWords':{'by':_0x586b91,'in':_0x586b91,'on':_0x586b91,'during':_0x586b91,'after':_0x586b91,'before':_0x586b91,'between':_0x586b91,'until':_0x586b91,'til':_0x586b91,'sometime':_0x586b91,'of':_0x586b91,'this':_0x586b91,'next':_0x586b91,'last':_0x586b91,'previous':_0x586b91,'following':_0x586b91,'with':_0x235866(0x29bf)},'afterWords':{'sometime':_0x586b91,'in':_0x586b91,'of':_0x586b91,'until':_0x586b91,'the':_0x586b91}},_0x40f3ee={'beforeTags':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x4142)],_0x533d43[_0x235866(0x4142)]),'afterTags':Object[_0x235866(0x11e8)]({},_0x39fec2['afterTags'],_0x533d43['afterTags']),'beforeWords':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x4af9)],_0x533d43[_0x235866(0x4af9)]),'afterWords':Object[_0x235866(0x11e8)]({},_0x39fec2['afterWords'],_0x533d43[_0x235866(0x298f)])},_0x18db53=_0x235866(0x3fae),_0x3ac8b4={'beforeTags':{'Place':_0x18db53},'afterTags':{'Place':_0x18db53,'Abbreviation':_0x18db53},'beforeWords':{'in':_0x18db53,'by':_0x18db53,'near':_0x18db53,'from':_0x18db53,'to':_0x18db53},'afterWords':{'in':_0x18db53,'by':_0x18db53,'near':_0x18db53,'from':_0x18db53,'to':_0x18db53,'government':_0x18db53,'council':_0x18db53,'region':_0x18db53,'city':_0x18db53}};let _0x2ffc35=_0x235866(0x283a);const _0x1011f9={'Actor|Verb':_0x18d6da,'Adj|Gerund':_0x16f949,'Adj|Noun':_0x1f6d91,'Adj|Past':_0x15973d,'Adj|Present':_0x3662a6,'Noun|Verb':_0x4c7ecd,'Noun|Gerund':_0x372b7e,'Person|Noun':{'beforeTags':Object['assign']({},_0x86b88f[_0x235866(0x4142)],_0x39fec2['beforeTags']),'afterTags':Object[_0x235866(0x11e8)]({},_0x86b88f[_0x235866(0x3916)],_0x39fec2[_0x235866(0x3916)]),'beforeWords':Object[_0x235866(0x11e8)]({},_0x86b88f[_0x235866(0x4af9)],_0x39fec2[_0x235866(0x4af9)],{'i':'Infinitive','we':_0x235866(0x24ba)}),'afterWords':Object[_0x235866(0x11e8)]({},_0x86b88f[_0x235866(0x298f)],_0x39fec2[_0x235866(0x298f)])},'Person|Date':_0x40f3ee,'Person|Verb':{'beforeTags':Object['assign']({},_0x86b88f[_0x235866(0x4142)],_0x39fec2[_0x235866(0x4142)],_0x12f830[_0x235866(0x4142)]),'afterTags':Object['assign']({},_0x86b88f[_0x235866(0x3916)],_0x39fec2[_0x235866(0x3916)],_0x12f830[_0x235866(0x3916)]),'beforeWords':Object[_0x235866(0x11e8)]({},_0x86b88f[_0x235866(0x4af9)],_0x39fec2[_0x235866(0x4af9)],_0x12f830[_0x235866(0x4af9)]),'afterWords':Object[_0x235866(0x11e8)]({},_0x86b88f[_0x235866(0x298f)],_0x39fec2[_0x235866(0x298f)],_0x12f830['afterWords'])},'Person|Place':{'beforeTags':Object[_0x235866(0x11e8)]({},_0x3ac8b4['beforeTags'],_0x39fec2[_0x235866(0x4142)]),'afterTags':Object[_0x235866(0x11e8)]({},_0x3ac8b4['afterTags'],_0x39fec2['afterTags']),'beforeWords':Object[_0x235866(0x11e8)]({},_0x3ac8b4['beforeWords'],_0x39fec2[_0x235866(0x4af9)]),'afterWords':Object['assign']({},_0x3ac8b4[_0x235866(0x298f)],_0x39fec2[_0x235866(0x298f)])},'Person|Adj':{'beforeTags':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x4142)],_0x13cfe4['beforeTags']),'afterTags':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x3916)],_0x13cfe4[_0x235866(0x3916)]),'beforeWords':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x4af9)],_0x13cfe4[_0x235866(0x4af9)]),'afterWords':Object[_0x235866(0x11e8)]({},_0x39fec2[_0x235866(0x298f)],_0x13cfe4['afterWords'])},'Unit|Noun':{'beforeTags':{'Value':_0x2ffc35},'afterTags':{},'beforeWords':{'per':_0x2ffc35,'every':_0x2ffc35,'each':_0x2ffc35,'square':_0x2ffc35,'cubic':_0x2ffc35,'sq':_0x2ffc35,'metric':_0x2ffc35},'afterWords':{'per':_0x2ffc35,'squared':_0x2ffc35,'cubed':_0x2ffc35,'long':_0x2ffc35}}},_0x10041f=(_0x1296dc,_0x5ac83b)=>{const _0x56a421=_0x235866;let _0x386c96=Object[_0x56a421(0x2f75)](_0x1296dc)[_0x56a421(0xf33)]((_0xa067fb,_0x4216d8)=>(_0xa067fb[_0x4216d8]=_0x56a421(0x24ba)===_0x1296dc[_0x4216d8]?_0x56a421(0x17a6):_0x56a421(0x27b3),_0xa067fb),{});return Object[_0x56a421(0x11e8)](_0x386c96,_0x5ac83b);};_0x1011f9['Plural|Verb']={'beforeWords':_0x10041f(_0x1011f9[_0x235866(0xd1)][_0x235866(0x4af9)],{'had':_0x235866(0x27b3),'have':_0x235866(0x27b3)}),'afterWords':_0x10041f(_0x1011f9['Noun|Verb']['afterWords'],{'his':_0x235866(0x17a6),'her':'PresentTense','its':_0x235866(0x17a6),'in':null,'to':null,'is':_0x235866(0x17a6),'by':_0x235866(0x17a6)}),'beforeTags':_0x10041f(_0x1011f9['Noun|Verb'][_0x235866(0x4142)],{'Conjunction':'PresentTense','Noun':void 0x0,'ProperNoun':'PresentTense'}),'afterTags':_0x10041f(_0x1011f9[_0x235866(0xd1)]['afterTags'],{'Gerund':_0x235866(0x27b3),'Noun':_0x235866(0x17a6),'Value':_0x235866(0x17a6)})};const _0x155505=_0x1011f9,_0x2b90fa=_0x235866(0x19b5),_0x3b0c8a=_0x235866(0x24ba),_0x2121da='PresentTense',_0x17805d='Singular',_0x439e7d=_0x235866(0x2192),_0x13c709='Adverb',_0x4f7833=_0x235866(0x27b3),_0xf50406=_0x235866(0x432f),_0x484ae6=_0x235866(0x41f2),_0x20a358=_0x235866(0x1ce5),_0x4d95cb=_0x235866(0x396),_0x4f6178=_0x235866(0x4217),_0xe596fd=_0x235866(0x3fae),_0x3d3bb4=_0x235866(0x184e),_0x4cb4e0=[null,null,{'ea':_0x17805d,'ia':_0x20a358,'ic':_0x2b90fa,'ly':_0x13c709,'\x27n':_0x484ae6,'\x27t':_0x484ae6},{'oed':_0x439e7d,'ued':_0x439e7d,'xed':_0x439e7d,'\x20so':_0x13c709,'\x27ll':_0x4f6178,'\x27re':'Copula','azy':_0x2b90fa,'eer':_0x20a358,'end':_0x484ae6,'ped':_0x439e7d,'ffy':_0x2b90fa,'ify':_0x3b0c8a,'ing':_0x235866(0x1e19),'ize':_0x3b0c8a,'ibe':_0x3b0c8a,'lar':_0x2b90fa,'mum':_0x2b90fa,'nes':_0x2121da,'nny':_0x2b90fa,'ous':_0x2b90fa,'que':_0x2b90fa,'ger':_0x20a358,'ber':_0x20a358,'rol':_0x17805d,'sis':_0x17805d,'ogy':_0x17805d,'oid':_0x17805d,'ian':_0x17805d,'zes':_0x2121da,'eld':_0x439e7d,'ken':_0x3d3bb4,'ven':_0x3d3bb4,'ten':_0x3d3bb4,'ect':_0x3b0c8a,'ict':_0x3b0c8a,'ign':_0x3b0c8a,'oze':_0x3b0c8a,'ful':_0x2b90fa,'bal':_0x2b90fa,'ton':_0x20a358},{'amed':_0x439e7d,'aped':_0x439e7d,'ched':_0x439e7d,'lked':_0x439e7d,'rked':_0x439e7d,'reed':_0x439e7d,'nded':_0x439e7d,'mned':_0x2b90fa,'cted':_0x439e7d,'dged':_0x439e7d,'ield':_0x17805d,'akis':_0x4d95cb,'cede':_0x3b0c8a,'chuk':_0x4d95cb,'czyk':_0x4d95cb,'ects':_0x2121da,'iend':_0x17805d,'ends':_0x484ae6,'enko':_0x4d95cb,'ette':_0x17805d,'iary':_0x17805d,'wner':_0x17805d,'fies':_0x2121da,'fore':_0x13c709,'gate':_0x3b0c8a,'gone':_0x2b90fa,'ices':_0x4f7833,'ints':_0x4f7833,'ruct':_0x3b0c8a,'ines':_0x4f7833,'ions':_0x4f7833,'ners':_0x4f7833,'pers':_0x4f7833,'lers':_0x4f7833,'less':_0x2b90fa,'llen':_0x2b90fa,'made':_0x2b90fa,'nsen':_0x4d95cb,'oses':_0x2121da,'ould':_0x4f6178,'some':_0x2b90fa,'sson':_0x4d95cb,'ians':_0x4f7833,'tion':_0x17805d,'tage':_0x20a358,'ique':_0x17805d,'tive':_0x2b90fa,'tors':_0x20a358,'vice':_0x17805d,'lier':_0x17805d,'fier':_0x17805d,'wned':_0x439e7d,'gent':_0x17805d,'tist':_0xf50406,'pist':_0xf50406,'rist':_0xf50406,'mist':_0xf50406,'yist':_0xf50406,'vist':_0xf50406,'ists':_0xf50406,'lite':_0x17805d,'site':_0x17805d,'rite':_0x17805d,'mite':_0x17805d,'bite':_0x17805d,'mate':_0x17805d,'date':_0x17805d,'ndal':_0x17805d,'vent':_0x17805d,'uist':_0xf50406,'gist':_0xf50406,'note':_0x17805d,'cide':_0x17805d,'ence':_0x17805d,'wide':_0x2b90fa,'vide':_0x3b0c8a,'ract':_0x3b0c8a,'duce':_0x3b0c8a,'pose':_0x3b0c8a,'eive':_0x3b0c8a,'lyze':_0x3b0c8a,'lyse':_0x3b0c8a,'iant':_0x2b90fa,'nary':_0x2b90fa,'ghty':_0x2b90fa,'uent':_0x2b90fa,'erer':_0xf50406,'bury':_0xe596fd,'dorf':_0x20a358,'esty':_0x20a358,'wych':_0xe596fd,'dale':_0xe596fd,'folk':_0xe596fd},{'elist':_0xf50406,'holic':_0x17805d,'phite':_0x17805d,'tized':_0x439e7d,'urned':_0x439e7d,'eased':_0x439e7d,'ances':_0x4f7833,'bound':_0x2b90fa,'ettes':_0x4f7833,'fully':_0x13c709,'ishes':_0x2121da,'ities':_0x4f7833,'marek':_0x4d95cb,'nssen':_0x4d95cb,'ology':_0x20a358,'osome':_0x17805d,'tment':_0x17805d,'ports':_0x4f7833,'rough':_0x2b90fa,'tches':_0x2121da,'tieth':_0x235866(0x529),'tures':_0x4f7833,'wards':_0x13c709,'where':_0x13c709,'archy':_0x20a358,'pathy':_0x20a358,'opoly':_0x20a358,'embly':_0x20a358,'phate':_0x20a358,'ndent':_0x17805d,'scent':_0x17805d,'onist':_0xf50406,'anist':_0xf50406,'alist':_0xf50406,'olist':_0xf50406,'icist':_0xf50406,'ounce':_0x3b0c8a,'iable':_0x2b90fa,'borne':_0x2b90fa,'gnant':_0x2b90fa,'inant':_0x2b90fa,'igent':_0x2b90fa,'atory':_0x2b90fa,'rient':_0x17805d,'dient':_0x17805d,'maker':_0xf50406,'burgh':_0xe596fd,'mouth':_0xe596fd,'ceter':_0xe596fd,'ville':_0xe596fd,'worth':_0x20a358},{'auskas':_0x4d95cb,'parent':_0x17805d,'cedent':_0x17805d,'ionary':_0x17805d,'cklist':_0x17805d,'keeper':_0xf50406,'logist':_0xf50406,'teenth':_0x235866(0xa4f),'worker':_0xf50406,'master':_0xf50406,'writer':_0xf50406,'brough':_0xe596fd,'cester':_0xe596fd},{'logists':_0xf50406,'opoulos':_0x4d95cb,'borough':_0xe596fd,'sdottir':_0x4d95cb}],_0x53a38b=_0x235866(0x19b5),_0x2e812e=_0x235866(0x1ce5),_0x5f3dd7='Verb',_0xaa6984=[null,null,{},{'neo':_0x2e812e,'bio':_0x2e812e,'de-':_0x5f3dd7,'re-':_0x5f3dd7,'un-':_0x5f3dd7,'ex-':_0x2e812e},{'anti':_0x2e812e,'auto':_0x2e812e,'faux':_0x53a38b,'hexa':_0x2e812e,'kilo':_0x2e812e,'mono':_0x2e812e,'nano':_0x2e812e,'octa':_0x2e812e,'poly':_0x2e812e,'semi':_0x53a38b,'tele':_0x2e812e,'pro-':_0x53a38b,'mis-':_0x5f3dd7,'dis-':_0x5f3dd7,'pre-':_0x53a38b},{'anglo':_0x2e812e,'centi':_0x2e812e,'ethno':_0x2e812e,'ferro':_0x2e812e,'grand':_0x2e812e,'hepta':_0x2e812e,'hydro':_0x2e812e,'intro':_0x2e812e,'macro':_0x2e812e,'micro':_0x2e812e,'milli':_0x2e812e,'nitro':_0x2e812e,'penta':_0x2e812e,'quasi':_0x53a38b,'radio':_0x2e812e,'tetra':_0x2e812e,'omni-':_0x53a38b,'post-':_0x53a38b},{'pseudo':_0x53a38b,'extra-':_0x53a38b,'hyper-':_0x53a38b,'inter-':_0x53a38b,'intra-':_0x53a38b,'deca-':_0x53a38b},{'electro':_0x2e812e}],_0x193e58=_0x235866(0x19b5),_0x445740='Infinitive',_0x340d83=_0x235866(0x17a6),_0xb8d120=_0x235866(0x3faa),_0x5b7cd1='PastTense',_0x30e688=_0x235866(0x487d),_0x17c872=_0x235866(0x766),_0x13e943='Actor',_0x585c29=_0x235866(0x41f2),_0x24c51b=_0x235866(0x1ce5),_0x501ed6='LastName',_0x2423e4={'a':[[/.[aeiou]na$/,_0x24c51b,'tuna'],[/.[oau][wvl]ska$/,_0x501ed6],[/.[^aeiou]ica$/,_0xb8d120,_0x235866(0x4eef)],[/^([hyj]a+)+$/,_0x17c872,'haha']],'c':[[/.[^aeiou]ic$/,_0x193e58]],'d':[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,_0x5b7cd1,_0x235866(0x4703)],[/.[aeo]{2}[bdgmnprvz]ed$/,_0x5b7cd1,_0x235866(0x3443)],[/.[aeiou][sg]hed$/,_0x5b7cd1,'gushed'],[/.[aeiou]red$/,_0x5b7cd1,_0x235866(0x4cc9)],[/.[aeiou]r?ried$/,_0x5b7cd1,_0x235866(0x4161)],[/[^aeiou]ard$/,_0xb8d120,_0x235866(0x3c5b)],[/[aeiou][^aeiou]id$/,_0x193e58,''],[/.[vrl]id$/,_0x193e58,_0x235866(0x2a40)],[/..led$/,_0x5b7cd1,_0x235866(0xb46)],[/.[iao]sed$/,_0x5b7cd1,''],[/[aeiou]n?[cs]ed$/,_0x5b7cd1,''],[/[aeiou][rl]?[mnf]ed$/,_0x5b7cd1,''],[/[aeiou][ns]?c?ked$/,_0x5b7cd1,_0x235866(0x405b)],[/[aeiou]gned$/,_0x5b7cd1],[/[aeiou][nl]?ged$/,_0x5b7cd1],[/.[tdbwxyz]ed$/,_0x5b7cd1],[/[^aeiou][aeiou][tvx]ed$/,_0x5b7cd1],[/.[cdflmnprstv]ied$/,_0x5b7cd1,_0x235866(0x38aa)]],'e':[[/.[lnr]ize$/,_0x445740,_0x235866(0x1a0b)],[/.[^aeiou]ise$/,_0x445740,_0x235866(0x3a66)],[/.[aeiou]te$/,_0x445740,_0x235866(0xe04)],[/.[^aeiou][ai]ble$/,_0x193e58,_0x235866(0x1f72)],[/.[^aeiou]eable$/,_0x193e58,_0x235866(0x855)],[/.[ts]ive$/,_0x193e58,_0x235866(0x3845)],[/[a-z]-like$/,_0x193e58,_0x235866(0x15cb)]],'h':[[/.[^aeiouf]ish$/,_0x193e58,_0x235866(0x2fc8)],[/.v[iy]ch$/,_0x501ed6,_0x235866(0x24e9)],[/^ug?h+$/,_0x17c872,_0x235866(0x1d19)],[/^uh[ -]?oh$/,_0x17c872,_0x235866(0x381b)],[/[a-z]-ish$/,_0x193e58,_0x235866(0x2c12)]],'i':[[/.[oau][wvl]ski$/,_0x501ed6,_0x235866(0x4c95)]],'k':[[/^(k){2}$/,_0x17c872,'kkkk']],'l':[[/.[gl]ial$/,_0x193e58,_0x235866(0x88)],[/.[^aeiou]ful$/,_0x193e58,_0x235866(0x11d0)],[/.[nrtumcd]al$/,_0x193e58,_0x235866(0x3587)],[/.[^aeiou][ei]al$/,_0x193e58,_0x235866(0x88)]],'m':[[/.[^aeiou]ium$/,_0xb8d120,'magnesium'],[/[^aeiou]ism$/,_0xb8d120,_0x235866(0x814)],[/^[hu]m+$/,_0x17c872,_0x235866(0x218f)],[/^\d+ ?[ap]m$/,_0x235866(0x3c98),'3am']],'n':[[/.[lsrnpb]ian$/,_0x193e58,'republican'],[/[^aeiou]ician$/,_0x13e943,_0x235866(0xdbf)],[/[aeiou][ktrp]in'$/,_0x235866(0x1e19),'cookin\x27']],'o':[[/^no+$/,_0x17c872,'noooo'],[/^(yo)+$/,_0x17c872,_0x235866(0x4255)],[/^wo{2,}[pt]?$/,_0x17c872,_0x235866(0x479a)]],'r':[[/.[bdfklmst]ler$/,'Noun'],[/[aeiou][pns]er$/,_0xb8d120],[/[^i]fer$/,_0x445740],[/.[^aeiou][ao]pher$/,_0x13e943],[/.[lk]er$/,_0x235866(0x1ce5)],[/.ier$/,'Comparative']],'t':[[/.[di]est$/,_0x235866(0x2d21)],[/.[icldtgrv]ent$/,_0x193e58],[/[aeiou].*ist$/,_0x193e58],[/^[a-z]et$/,_0x585c29]],'s':[[/.[^aeiou]ises$/,_0x340d83],[/.[rln]ates$/,_0x340d83],[/.[^z]ens$/,_0x585c29],[/.[lstrn]us$/,_0xb8d120],[/.[aeiou]sks$/,_0x340d83],[/.[aeiou]kes$/,_0x340d83],[/[aeiou][^aeiou]is$/,_0xb8d120],[/[a-z]'s$/,_0x24c51b],[/^yes+$/,_0x17c872]],'v':[[/.[^aeiou][ai][kln]ov$/,_0x501ed6]],'y':[[/.[cts]hy$/,_0x193e58],[/.[st]ty$/,_0x193e58],[/.[tnl]ary$/,_0x193e58],[/.[oe]ry$/,_0xb8d120],[/[rdntkbhs]ly$/,_0x30e688],[/.(gg|bb|zz)ly$/,_0x193e58],[/...lly$/,_0x30e688],[/.[gk]y$/,_0x193e58],[/[bszmp]{2}y$/,_0x193e58],[/.[ai]my$/,_0x193e58],[/[ea]{2}zy$/,_0x193e58],[/.[^aeiou]ity$/,_0xb8d120]]},_0x12ad46=_0x235866(0x41f2),_0x4bd45a=_0x235866(0x1ce5),_0x292d39={'leftTags':[[_0x235866(0x19b5),_0x4bd45a],['Possessive',_0x4bd45a],[_0x235866(0x246d),_0x4bd45a],[_0x235866(0x487d),_0x12ad46],['Pronoun',_0x12ad46],['Value',_0x4bd45a],[_0x235866(0x529),_0x4bd45a],['Modal',_0x12ad46],[_0x235866(0x2d21),_0x4bd45a],[_0x235866(0x31e9),_0x4bd45a],['Honorific','Person']],'leftWords':[['i',_0x12ad46],[_0x235866(0x509c),_0x4bd45a],['it',_0x12ad46],[_0x235866(0x2105),_0x12ad46],[_0x235866(0x4163),_0x12ad46],[_0x235866(0xd31),_0x4bd45a],['if',_0x4bd45a],[_0x235866(0x2094),_0x4bd45a],[_0x235866(0x4464),_0x12ad46],['this',_0x4bd45a],[_0x235866(0x2e2c),_0x4bd45a],['when',_0x4bd45a],['you',_0x12ad46],[_0x235866(0x402e),_0x235866(0x19b5)],[_0x235866(0x1868),_0x4bd45a],['never',_0x12ad46],[_0x235866(0x19f2),_0x4bd45a],['a',_0x4bd45a],[_0x235866(0x23e6),_0x4bd45a],[_0x235866(0x182e),_0x12ad46]],'rightTags':[[_0x235866(0x49fb),_0x4bd45a],[_0x235866(0x2192),_0x4bd45a],[_0x235866(0x846),_0x4bd45a],[_0x235866(0x4217),_0x4bd45a]],'rightWords':[['there',_0x12ad46],['me',_0x12ad46],[_0x235866(0x43ad),_0x235866(0x19b5)],[_0x235866(0x474),_0x12ad46],['it',_0x12ad46],[_0x235866(0x6ff),_0x4bd45a],['took',_0x4bd45a],[_0x235866(0x5ad),_0x12ad46],[_0x235866(0x3030),_0x4bd45a],[_0x235866(0x4464),_0x4bd45a],['jr',_0x235866(0x29bf)]]},_0x361e08={'fwd':'3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om','both':_0x235866(0x3c3a),'rev':_0x235866(0x1d66),'ex':_0x235866(0x230f)},_0x3ae9ca={'fwd':'1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing,celling¦4:graming','both':_0x235866(0x1209),'rev':_0x235866(0x8a5),'ex':'3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suiting¦5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hinging¦5e:defining,refining,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing'},_0x3af1dd={'fwd':_0x235866(0x3289),'both':_0x235866(0x1638),'rev':'2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive','ex':_0x235866(0xb04)},_0x3c8063={'fwd':'1:oes¦1ve:as','both':_0x235866(0x25a2),'rev':_0x235866(0x4768),'ex':_0x235866(0x1ce)},_0x32b647={'fwd':_0x235866(0x474a),'both':_0x235866(0x1046),'rev':_0x235866(0x4a78),'ex':_0x235866(0x3d35)},_0x519dc8={'fwd':_0x235866(0x4aa4),'both':'1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y','rev':'','ex':_0x235866(0x3642)},_0x48515b=/^([0-9]+)/,_0x23559b=function(_0x40ac6e){const _0x38ce77=_0x235866;let _0x14d32e=function(_0x6b7534){const _0x2faa8b=a0_0x329b;let _0x564eb9={};return _0x6b7534['split']('¦')[_0x2faa8b(0x4854)](_0x5dcbf2=>{const _0x391bab=_0x2faa8b;let [_0xe92c56,_0x15799d]=_0x5dcbf2['split'](':');_0x15799d=(_0x15799d||'')[_0x391bab(0x29d0)](','),_0x15799d['forEach'](_0x3d6413=>{_0x564eb9[_0x3d6413]=_0xe92c56;});}),_0x564eb9;}(_0x40ac6e);return Object[_0x38ce77(0x2f75)](_0x14d32e)['reduce']((_0x252638,_0x21c4b4)=>(_0x252638[_0x21c4b4]=function(_0x4fbc93='',_0x30bfed=''){const _0x79110e=_0x38ce77;let _0x1dd3e0=(_0x30bfed=String(_0x30bfed))[_0x79110e(0xdc0)](_0x48515b);if(null===_0x1dd3e0)return _0x30bfed;let _0x4636ce=Number(_0x1dd3e0[0x1])||0x0;return _0x4fbc93[_0x79110e(0x3934)](0x0,_0x4636ce)+_0x30bfed['replace'](_0x48515b,'');}(_0x21c4b4,_0x14d32e[_0x21c4b4]),_0x252638),{});},_0x58a5f7=function(_0x552b4c={}){const _0x744f8c=_0x235866;return _0x744f8c(0x4f7c)==typeof _0x552b4c&&(_0x552b4c=JSON[_0x744f8c(0x1b07)](_0x552b4c)),_0x552b4c[_0x744f8c(0x42a)]=_0x23559b(_0x552b4c[_0x744f8c(0x42a)]||''),_0x552b4c[_0x744f8c(0x2165)]=_0x23559b(_0x552b4c[_0x744f8c(0x2165)]||''),_0x552b4c[_0x744f8c(0x34a)]=_0x23559b(_0x552b4c['rev']||''),_0x552b4c['ex']=_0x23559b(_0x552b4c['ex']||''),_0x552b4c;},_0x307f50=function(_0x276e72){const _0x5d424a=_0x235866;return Object[_0x5d424a(0x5088)](_0x276e72)[_0x5d424a(0xf33)]((_0x317ecc,_0x9d1d71)=>(_0x317ecc[_0x9d1d71[0x1]]=_0x9d1d71[0x0],_0x317ecc),{});},_0x24d830=function(_0x80c61c={}){const _0x485eac=_0x235866;return{'reversed':!0x0,'both':_0x307f50(_0x80c61c[_0x485eac(0x2165)]),'ex':_0x307f50(_0x80c61c['ex']),'fwd':_0x80c61c[_0x485eac(0x34a)]||{}};},_0x1e5e0c=_0x58a5f7({'fwd':_0x235866(0x1e7a),'both':_0x235866(0x459f),'rev':'3:rst,hed,hut,cut,set¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cy¦1ung:ling,ting,wing¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind,wind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,we¦2ed:dd,oy,or,ey,gg,rr,us,ew,to¦2ame:ecome,rcome¦2ped:ap¦2ged:ag,og,ug,eg¦2bed:ub,ab,ib,ob¦2lt:neel¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦2ode:rride¦2at:ysit¦3ted:mit,hat,mat,lat,pot,rot,bat¦3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bow¦3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,ade¦3red:lur,cur,pur,car¦3ped:hop,rop,uip,rip,lip,tep,top¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim,lim¦4ted:quit,llot¦4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weak¦4led:nnel,qual,ebel,ivel¦4red:nfer,efer,sfer¦4n:sake,trew¦4d:ntee¦4ded:hred¦4ned:rpin¦5ed:light,nceal,right,ndear,arget,hread,eight,rtial,eboot¦5d:edite,nvite¦5ted:egret¦5led:ravel','ex':_0x235866(0x3f9c)}),_0xd7faf1=_0x58a5f7(_0x3c8063),_0x99d36c=_0x58a5f7(_0x3ae9ca),_0x211399=_0x58a5f7(_0x3af1dd),_0x40bf2c=_0x24d830(_0x1e5e0c),_0x2fba76=_0x24d830(_0xd7faf1),_0x403530=_0x24d830(_0x99d36c),_0x17ac10=_0x24d830(_0x211399),_0x43b0c5=_0x58a5f7(_0x361e08),_0x118676=_0x58a5f7(_0x32b647),_0x4be2c6={'fromPast':_0x1e5e0c,'fromPresent':_0xd7faf1,'fromGerund':_0x99d36c,'fromParticiple':_0x211399,'toPast':_0x40bf2c,'toPresent':_0x2fba76,'toGerund':_0x403530,'toParticiple':_0x17ac10,'toComparative':_0x43b0c5,'toSuperlative':_0x118676,'fromComparative':_0x24d830(_0x43b0c5),'fromSuperlative':_0x24d830(_0x118676),'adjToNoun':_0x58a5f7(_0x519dc8)},_0x7f90c7=['academy',_0x235866(0x35bc),_0x235866(0x2e23),_0x235866(0x496),_0x235866(0x11c2),'agency',_0x235866(0xef3),_0x235866(0x42f2),_0x235866(0x13b9),_0x235866(0x90d),_0x235866(0x3ed7),'association',_0x235866(0x30bc),_0x235866(0xfe),_0x235866(0x33db),_0x235866(0x2af0),'bank','banque',_0x235866(0x99),_0x235866(0x344a),'brands',_0x235866(0x44f3),_0x235866(0x7f7),_0x235866(0x3730),_0x235866(0x1bb9),_0x235866(0x3c5f),'co',_0x235866(0x44d7),_0x235866(0xb9b),_0x235866(0x1302),_0x235866(0x4593),_0x235866(0xadf),'centre',_0x235866(0x472),'choir',_0x235866(0x548),_0x235866(0x17cf),_0x235866(0x395),_0x235866(0x1467),_0x235866(0x11ef),_0x235866(0x261a),'co','coalition',_0x235866(0x27fc),'collective',_0x235866(0x3a79),_0x235866(0x3c3d),_0x235866(0x2017),_0x235866(0x39da),_0x235866(0x101c),'company','comprehensive',_0x235866(0xf28),'confederation',_0x235866(0x864),'conseil',_0x235866(0x3147),'containers',_0x235866(0x2027),_0x235866(0x32d4),_0x235866(0x3282),_0x235866(0x4c54),_0x235866(0x85d),_0x235866(0x2a43),_0x235866(0xe5),_0x235866(0x2cf),'departments',_0x235866(0x40b9),_0x235866(0x3323),_0x235866(0xfb2),_0x235866(0x399c),_0x235866(0x4a3c),_0x235866(0x1e0b),_0x235866(0x1494),_0x235866(0x251d),_0x235866(0x464b),_0x235866(0x5073),'ensemble','enterprise',_0x235866(0x359e),_0x235866(0x4ffc),'estate',_0x235866(0x4507),_0x235866(0x15e2),'faction',_0x235866(0x1232),_0x235866(0x1cc3),'fm',_0x235866(0x31b4),'fund',_0x235866(0x30bb),_0x235866(0x47f7),_0x235866(0x1f12),_0x235866(0x192d),_0x235866(0x4941),_0x235866(0x4e81),_0x235866(0x310e),'holdings',_0x235866(0x4b60),_0x235866(0x1e5f),_0x235866(0x19fa),_0x235866(0x3985),_0x235866(0x3d7b),_0x235866(0x1d30),_0x235866(0x232c),_0x235866(0xc9),'insurance','international',_0x235866(0x3bd2),_0x235866(0x187f),_0x235866(0x3b9f),_0x235866(0x118b),_0x235866(0x30c),_0x235866(0x3550),_0x235866(0x4ac2),_0x235866(0xe96),_0x235866(0x39ae),_0x235866(0x78c),_0x235866(0x4480),_0x235866(0x7d3),_0x235866(0x514c),'marine',_0x235866(0x457c),_0x235866(0x2cbd),'media',_0x235866(0x3559),_0x235866(0x25e),_0x235866(0x148),_0x235866(0x449b),_0x235866(0x2222),_0x235866(0x172),_0x235866(0x6b2),_0x235866(0x45eb),_0x235866(0x33a0),_0x235866(0x4d75),_0x235866(0x30ad),_0x235866(0x2cb6),_0x235866(0x2d72),_0x235866(0x12cd),_0x235866(0x3dc4),'organization','partners',_0x235866(0x1037),'petrol',_0x235866(0x120a),_0x235866(0x42e5),_0x235866(0x14fd),_0x235866(0x3df),_0x235866(0x43c6),_0x235866(0x1b92),_0x235866(0x2f32),_0x235866(0x4874),_0x235866(0x213a),_0x235866(0x9ce),_0x235866(0x4243),_0x235866(0x3072),_0x235866(0x3eb4),_0x235866(0x1cd9),_0x235866(0x4285),_0x235866(0x2ce8),'resources','restaurant','restaurants','savings',_0x235866(0x1ae4),_0x235866(0x3fb3),_0x235866(0x3eed),_0x235866(0x1690),_0x235866(0x43af),_0x235866(0x22a8),_0x235866(0x76a),_0x235866(0x2a96),_0x235866(0xa02),_0x235866(0x2327),'systems',_0x235866(0x442d),_0x235866(0x35fa),_0x235866(0x3194),_0x235866(0xbef),_0x235866(0xf7e),'tv',_0x235866(0xcc),_0x235866(0x3632),_0x235866(0x1f30),_0x235866(0x4dfe)][_0x235866(0xf33)]((_0x1830f5,_0x3bea06)=>(_0x1830f5[_0x3bea06]=!0x0,_0x1830f5),{}),_0x3c133b=['atoll',_0x235866(0x1c8e),'bay',_0x235866(0x22e8),_0x235866(0x77c),_0x235866(0x1576),_0x235866(0x1dab),_0x235866(0x2530),_0x235866(0x46e9),_0x235866(0x365f),_0x235866(0x18fa),'caves',_0x235866(0x449f),'coast','cove',_0x235866(0x4d88),_0x235866(0x28de),_0x235866(0x2a0),_0x235866(0x478b),_0x235866(0x1ab9),_0x235866(0x3725),_0x235866(0x4650),_0x235866(0x2ebb),_0x235866(0x14c1),_0x235866(0xd2d),_0x235866(0x3cdc),_0x235866(0x398),_0x235866(0x4089),_0x235866(0x3efb),_0x235866(0x3f93),_0x235866(0x176c),_0x235866(0x4723),_0x235866(0x3247),_0x235866(0x4f8d),_0x235866(0x206a),_0x235866(0x34fb),'inlet',_0x235866(0x1e52),'islands','isthmus',_0x235866(0x13af),_0x235866(0x1024),'lake',_0x235866(0x541),'marshes',_0x235866(0x1dcd),_0x235866(0x414a),'mountains',_0x235866(0x420b),_0x235866(0x29c1),_0x235866(0x40b8),_0x235866(0x2c1d),_0x235866(0x3b75),_0x235866(0x4063),_0x235866(0x914),'reef',_0x235866(0x1e70),_0x235866(0x1e1a),_0x235866(0x41d5),_0x235866(0x20b4),_0x235866(0x157c),_0x235866(0x2a5),_0x235866(0x1181),_0x235866(0x1ea3),_0x235866(0xb7a),_0x235866(0x1b81),_0x235866(0x1a23),'stream',_0x235866(0x2f19),_0x235866(0xc11),_0x235866(0x493e),_0x235866(0x4428),'trench',_0x235866(0x4c33),_0x235866(0xf3),'volcano',_0x235866(0x25e5),'watershed',_0x235866(0x364f),'woods','burough','county',_0x235866(0x263b),_0x235866(0x39b0),_0x235866(0x3029),_0x235866(0x1ae),_0x235866(0x1061),_0x235866(0x2aad),_0x235866(0x3b95),_0x235866(0xc2c),_0x235866(0x1c93),'metropolis',_0x235866(0x3813),_0x235866(0x4b46),'midtown',_0x235866(0x2e31),_0x235866(0x2205),_0x235866(0xf63),'hamlet',_0x235866(0x48ab),_0x235866(0x55c),_0x235866(0x36ad),'neighbourhood',_0x235866(0x1d37),'kingdom',_0x235866(0x4646),_0x235866(0x3bc3),_0x235866(0x4916),'amphitheater',_0x235866(0x3af2),'arena',_0x235866(0x4998),'bar',_0x235866(0x21c1),_0x235866(0x4f79),_0x235866(0x6b4),'bridge',_0x235866(0x26ec),_0x235866(0x2442),_0x235866(0x1736),'coliseum',_0x235866(0x3894),_0x235866(0x3602),_0x235866(0xd9b),_0x235866(0x3384),_0x235866(0x20f1),_0x235866(0x513b),'garden',_0x235866(0x42cd),_0x235866(0x4599),_0x235866(0x379),_0x235866(0x2f18),_0x235866(0x4c35),'library',_0x235866(0x3559),_0x235866(0x44bf),_0x235866(0x33a0),_0x235866(0x18ae),_0x235866(0x142b),'pillar',_0x235866(0x3870),'plantation',_0x235866(0x21a9),'quarry',_0x235866(0x2269),'sportsplex',_0x235866(0x396d),_0x235866(0x1cad),'terraces',_0x235866(0x1f99),_0x235866(0x72c),_0x235866(0x306b),_0x235866(0x10c8),'site',_0x235866(0x32a3),'sportsplex','st',_0x235866(0x2789),'rd','road',_0x235866(0x2a06),'cr','way','tr',_0x235866(0x1cad),_0x235866(0x1323),_0x235866(0x1503)][_0x235866(0xf33)]((_0x27edf4,_0x46282b)=>(_0x27edf4[_0x46282b]=!0x0,_0x27edf4),{}),_0x56d969=[[/([^v])ies$/i,_0x235866(0x158a)],[/(ise)s$/i,'$1'],[/(kn|[^o]l|w)ives$/i,'$1ife'],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,_0x235866(0x39b9)],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,_0x235866(0x39b9)],[/(antenn|formul|nebul|vertebr|vit)ae$/i,'$1a'],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,_0x235866(0x2ae3)],[/(buffal|tomat|tornad)(oes)$/i,_0x235866(0x6bc)],[/(ause)s$/i,'$1'],[/(ease)s$/i,'$1'],[/(ious)es$/i,'$1'],[/(ouse)s$/i,'$1'],[/(ose)s$/i,'$1'],[/(..ase)s$/i,'$1'],[/(..[aeiu]s)es$/i,'$1'],[/(vert|ind|cort)(ices)$/i,_0x235866(0x2109)],[/(matr|append)(ices)$/i,_0x235866(0x1317)],[/([xo]|ch|ss|sh)es$/i,'$1'],[/men$/i,'man'],[/(n)ews$/i,_0x235866(0x3db)],[/([ti])a$/i,'$1um'],[/([^aeiouy]|qu)ies$/i,_0x235866(0x158a)],[/(s)eries$/i,_0x235866(0x3f85)],[/(m)ovies$/i,_0x235866(0x3e1c)],[/(cris|ax|test)es$/i,_0x235866(0x1d59)],[/(alias|status)es$/i,'$1'],[/(ss)$/i,'$1'],[/(ic)s$/i,'$1'],[/s$/i,'']],_0x2fdea7=function(_0x403ea3,_0x619792){const _0x183f3a=_0x235866,{irregularPlurals:_0x16fd80}=_0x619792['two'];let _0x295e75=(_0x4fd231=_0x16fd80,Object[_0x183f3a(0x2f75)](_0x4fd231)[_0x183f3a(0xf33)]((_0x30dbdb,_0x5091ae)=>(_0x30dbdb[_0x4fd231[_0x5091ae]]=_0x5091ae,_0x30dbdb),{}));var _0x4fd231;if(_0x295e75[_0x183f3a(0x32b5)](_0x403ea3))return _0x295e75[_0x403ea3];for(let _0x148087=0x0;_0x148087<_0x56d969[_0x183f3a(0x205b)];_0x148087++)if(!0x0===_0x56d969[_0x148087][0x0][_0x183f3a(0x34c)](_0x403ea3))return _0x403ea3=_0x403ea3[_0x183f3a(0x1db7)](_0x56d969[_0x148087][0x0],_0x56d969[_0x148087][0x1]);return _0x403ea3;},_0x260fab={'toPlural':_0x4a950c,'toSingular':_0x2fdea7,'all':function(_0x48c0cb,_0x47cc07){const _0x102e0a=_0x235866;let _0x473af3=[_0x48c0cb],_0x2401e0=_0x4a950c(_0x48c0cb,_0x47cc07);_0x2401e0!==_0x48c0cb&&_0x473af3['push'](_0x2401e0);let _0x4caf40=_0x2fdea7(_0x48c0cb,_0x47cc07);return _0x4caf40!==_0x48c0cb&&_0x473af3[_0x102e0a(0x4131)](_0x4caf40),_0x473af3;}},_0x3ab3c0=function(_0xe7cb6c='',_0x32908e={}){const _0x26ef02=_0x235866;let _0x246e65=function(_0x37ad90,_0x3b469e={}){return _0x3b469e['hasOwnProperty'](_0x37ad90)?_0x3b469e[_0x37ad90]:null;}(_0xe7cb6c,_0x32908e['ex']);return _0x246e65=_0x246e65||function(_0x3f5c16,_0x12f857=[]){const _0x27e2fa=a0_0x329b;for(let _0x2d7fa5=0x0;_0x2d7fa5<_0x12f857[_0x27e2fa(0x205b)];_0x2d7fa5+=0x1)if(_0x3f5c16[_0x27e2fa(0xe37)](_0x12f857[_0x2d7fa5]))return _0x3f5c16;return null;}(_0xe7cb6c,_0x32908e[_0x26ef02(0x1230)]),_0x246e65=_0x246e65||function(_0x118e86,_0x1b15d8,_0x56e08d={}){const _0x412abc=_0x26ef02;_0x1b15d8=_0x1b15d8||{};for(let _0x3147be=_0x118e86[_0x412abc(0x205b)]-0x1;_0x3147be>=0x1;_0x3147be-=0x1){let _0x42178b=_0x118e86[_0x412abc(0x205b)]-_0x3147be,_0x35799b=_0x118e86['substring'](_0x42178b,_0x118e86['length']);if(!0x0===_0x1b15d8[_0x412abc(0x32b5)](_0x35799b))return _0x118e86[_0x412abc(0x428e)](0x0,_0x42178b)+_0x1b15d8[_0x35799b];if(!0x0===_0x56e08d[_0x412abc(0x32b5)](_0x35799b))return _0x118e86[_0x412abc(0x428e)](0x0,_0x42178b)+_0x56e08d[_0x35799b];}return _0x1b15d8[_0x412abc(0x32b5)]('')?_0x118e86+_0x1b15d8['']:_0x56e08d[_0x412abc(0x32b5)]('')?_0x118e86+_0x56e08d['']:null;}(_0xe7cb6c,_0x32908e[_0x26ef02(0x42a)],_0x32908e[_0x26ef02(0x2165)]),_0x246e65=_0x246e65||_0xe7cb6c,_0x246e65;};let _0x191012={'Gerund':[_0x235866(0x3afe)],'Actor':[_0x235866(0x4b76)],'Infinitive':[_0x235866(0x4761),_0x235866(0x3254),_0x235866(0x20f5),_0x235866(0x2f12),_0x235866(0x452b),'ress',_0x235866(0x23cf),'age',_0x235866(0x3c51),_0x235866(0x488a),_0x235866(0xbd5),'ine',_0x235866(0x508c),_0x235866(0x4cbd),'ash',_0x235866(0x44d),_0x235866(0x20ea),_0x235866(0x721),_0x235866(0x28ea),_0x235866(0x43ea),'ute',_0x235866(0x24cf),_0x235866(0x4c51),_0x235866(0x3fa9),_0x235866(0x561),_0x235866(0x29e1),_0x235866(0x3903),_0x235866(0x324d),'int',_0x235866(0x2060),_0x235866(0x16aa),'est',_0x235866(0x3cd4),'ant',_0x235866(0x16ae),_0x235866(0x443b),'er','le',_0x235866(0x11cc),_0x235866(0x2dc3),_0x235866(0x1dd8),'en'],'PastTense':[_0x235866(0xe29),'ed','lt','nt','ew','ld'],'PresentTense':[_0x235866(0xb1b),_0x235866(0x43ee),_0x235866(0x2c3f),_0x235866(0x35e3),_0x235866(0x4eb5),'tes',_0x235866(0x3763),_0x235866(0x2807),'les','acks',_0x235866(0x383a),_0x235866(0xf58),_0x235866(0x99c),_0x235866(0x10b2),_0x235866(0x279f),'lls',_0x235866(0x1c84),_0x235866(0x316a),'ows',_0x235866(0x268a),_0x235866(0x503e),_0x235866(0xa2b),_0x235866(0x272e),_0x235866(0x4f74),_0x235866(0x2c2d),'als',_0x235866(0x5052),_0x235866(0x453f),'ews',_0x235866(0x1b1),'es','ts','ns'],'Participle':['ken','wn']};_0x191012=Object[_0x235866(0x2f75)](_0x191012)[_0x235866(0xf33)]((_0x2b748f,_0x30ec31)=>(_0x191012[_0x30ec31][_0x235866(0x4854)](_0x2e8441=>_0x2b748f[_0x2e8441]=_0x30ec31),_0x2b748f),{});const _0x5d2d7c=_0x191012,_0x4f573b=function(_0x10b599){const _0x106192=_0x235866;let _0x1c05c1=_0x10b599[_0x106192(0x3934)](_0x10b599[_0x106192(0x205b)]-0x3);if(!0x0===_0x5d2d7c[_0x106192(0x32b5)](_0x1c05c1))return _0x5d2d7c[_0x1c05c1];let _0x22f1bc=_0x10b599['substring'](_0x10b599['length']-0x2);return!0x0===_0x5d2d7c[_0x106192(0x32b5)](_0x22f1bc)?_0x5d2d7c[_0x22f1bc]:'s'===_0x10b599[_0x106192(0x3934)](_0x10b599[_0x106192(0x205b)]-0x1)?_0x106192(0x17a6):null;},_0x3d1df3={'are':'be','were':'be','been':'be','is':'be','am':'be','was':'be','be':'be','being':'be'},_0x3286d2=function(_0x14aa26,_0x20b9ca,_0x5f140b){const _0x3b956a=_0x235866,{fromPast:_0x7c22ad,fromPresent:_0x28d279,fromGerund:_0x467e60,fromParticiple:_0x148250}=_0x20b9ca[_0x3b956a(0x141f)][_0x3b956a(0x1526)];let {prefix:_0x1663ef,verb:_0x45cff0,particle:_0x1cf2b9}=function(_0x4cd474,_0x2aa22c){const _0x5cd0bf=_0x3b956a;let _0x421171='',_0x4ffa48={};_0x2aa22c['one']&&_0x2aa22c[_0x5cd0bf(0x4116)][_0x5cd0bf(0x447a)]&&(_0x4ffa48=_0x2aa22c[_0x5cd0bf(0x4116)][_0x5cd0bf(0x447a)]);let [_0x576823,_0x5a2677]=_0x4cd474[_0x5cd0bf(0x29d0)](/ /);return _0x5a2677&&!0x0===_0x4ffa48[_0x576823]&&(_0x421171=_0x576823,_0x576823=_0x5a2677,_0x5a2677=''),{'prefix':_0x421171,'verb':_0x576823,'particle':_0x5a2677};}(_0x14aa26,_0x20b9ca),_0x33e59c='';if(_0x5f140b||(_0x5f140b=_0x4f573b(_0x14aa26)),_0x3d1df3['hasOwnProperty'](_0x14aa26))_0x33e59c=_0x3d1df3[_0x14aa26];else{if(_0x3b956a(0x184e)===_0x5f140b)_0x33e59c=_0x3ab3c0(_0x45cff0,_0x148250);else{if('PastTense'===_0x5f140b)_0x33e59c=_0x3ab3c0(_0x45cff0,_0x7c22ad);else{if(_0x3b956a(0x17a6)===_0x5f140b)_0x33e59c=_0x3ab3c0(_0x45cff0,_0x28d279);else{if('Gerund'!==_0x5f140b)return _0x14aa26;_0x33e59c=_0x3ab3c0(_0x45cff0,_0x467e60);}}}}return _0x1cf2b9&&(_0x33e59c+='\x20'+_0x1cf2b9),_0x1663ef&&(_0x33e59c=_0x1663ef+'\x20'+_0x33e59c),_0x33e59c;},_0x78c4dc=function(_0x30312c,_0x591052){const _0x417e8d=_0x235866,{toPast:_0x5de7ae,toPresent:_0x5ed9bb,toGerund:_0x25f376,toParticiple:_0x5b778b}=_0x591052[_0x417e8d(0x141f)][_0x417e8d(0x1526)];if('be'===_0x30312c)return{'Infinitive':_0x30312c,'Gerund':_0x417e8d(0x491e),'PastTense':'was','PresentTense':'is'};let [_0x355ade,_0x2e85ba]=(_0x5c3138=>/ /['test'](_0x5c3138)?_0x5c3138[_0x417e8d(0x29d0)](/ /):[_0x5c3138,''])(_0x30312c),_0x2c6245={'Infinitive':_0x355ade,'PastTense':_0x3ab3c0(_0x355ade,_0x5de7ae),'PresentTense':_0x3ab3c0(_0x355ade,_0x5ed9bb),'Gerund':_0x3ab3c0(_0x355ade,_0x25f376),'FutureTense':'will\x20'+_0x355ade},_0x575887=_0x3ab3c0(_0x355ade,_0x5b778b);if(_0x575887!==_0x30312c&&_0x575887!==_0x2c6245[_0x417e8d(0x2192)]){let _0x144f84=_0x591052[_0x417e8d(0x4116)][_0x417e8d(0x4ab0)]||{};_0x417e8d(0x184e)!==_0x144f84[_0x575887]&&_0x417e8d(0x19b5)!==_0x144f84[_0x575887]||(_0x417e8d(0x2c8f)===_0x30312c&&(_0x575887=_0x417e8d(0x1c94)),_0x2c6245[_0x417e8d(0x184e)]=_0x575887);}return _0x2e85ba&&Object[_0x417e8d(0x2f75)](_0x2c6245)[_0x417e8d(0x4854)](_0x4712b4=>{_0x2c6245[_0x4712b4]+='\x20'+_0x2e85ba;}),_0x2c6245;},_0xaf65af={'toInfinitive':_0x3286d2,'conjugate':_0x78c4dc,'all':function(_0x4a9334,_0x177e44){const _0x294d57=_0x235866;let _0x4abe0f=_0x78c4dc(_0x4a9334,_0x177e44);return delete _0x4abe0f[_0x294d57(0xa75)],Object[_0x294d57(0x4a3e)](_0x4abe0f)[_0x294d57(0x295e)](_0x4894ee=>_0x4894ee);}},_0x5f405f=function(_0x221532,_0x5b947f){const _0x172efd=_0x235866,_0x46d4fe=_0x5b947f[_0x172efd(0x141f)][_0x172efd(0x1526)]['toSuperlative'];return _0x3ab3c0(_0x221532,_0x46d4fe);},_0x23f0ee=function(_0x3e335b,_0xf2c526){const _0x4c5de5=_0x235866,_0x21ed89=_0xf2c526['two'][_0x4c5de5(0x1526)][_0x4c5de5(0x3a67)];return _0x3ab3c0(_0x3e335b,_0x21ed89);},_0x4ead73=function(_0x31dc7d='',_0x1ed64b=[]){const _0x135a29=_0x235866,_0x3468e2=_0x31dc7d[_0x135a29(0x205b)];for(let _0x3fde62=_0x3468e2<=0x6?_0x3468e2-0x1:0x6;_0x3fde62>=0x1;_0x3fde62-=0x1){let _0x578404=_0x31dc7d['substring'](_0x3468e2-_0x3fde62,_0x31dc7d[_0x135a29(0x205b)]);if(!0x0===_0x1ed64b[_0x578404['length']][_0x135a29(0x32b5)](_0x578404))return _0x31dc7d[_0x135a29(0x428e)](0x0,_0x3468e2-_0x3fde62)+_0x1ed64b[_0x578404['length']][_0x578404];}return null;},_0x1cb66c=_0x235866(0x486c),_0x94cd99=new Set([_0x235866(0x7a3)+_0x1cb66c,_0x235866(0x4be6)+_0x1cb66c,_0x235866(0x42ec)+_0x1cb66c,'clin'+_0x1cb66c,'crit'+_0x1cb66c,'ecolog'+_0x1cb66c,'electr'+_0x1cb66c,'empir'+_0x1cb66c,_0x235866(0x2f73)+_0x1cb66c,_0x235866(0xd4)+_0x1cb66c,_0x235866(0x1e0d)+_0x1cb66c,_0x235866(0xd4f)+_0x1cb66c,_0x235866(0x11bf)+_0x1cb66c,'mag'+_0x1cb66c,_0x235866(0x797)+_0x1cb66c,'mechan'+_0x1cb66c,'med'+_0x1cb66c,_0x235866(0xd7c)+_0x1cb66c,_0x235866(0xd7c)+_0x1cb66c,_0x235866(0x3fa4)+_0x1cb66c,'phys'+_0x1cb66c,_0x235866(0x4a8e)+_0x1cb66c,'polit'+_0x1cb66c,_0x235866(0x20b8)+_0x1cb66c,_0x235866(0x1036)+_0x1cb66c,_0x235866(0x4040)+_0x1cb66c,_0x235866(0xb1c)+_0x1cb66c,_0x235866(0x2328)+_0x1cb66c,'technolog'+_0x1cb66c,'theoret'+_0x1cb66c,_0x235866(0x1446)+_0x1cb66c,_0x235866(0x237b)+_0x1cb66c,_0x235866(0x30c3)+_0x1cb66c]),_0x17e73b=[null,{},{'ly':''},{'ily':'y','bly':_0x235866(0x1c6a),'ply':_0x235866(0x2216)},{'ally':'al','rply':'rp'},{'ually':'ual','ially':_0x235866(0x1c18),'cally':_0x235866(0x4833),'eally':_0x235866(0x40c0),'rally':'ral','nally':_0x235866(0x3f6a),'mally':'mal','eeply':_0x235866(0x2d45),'eaply':'eap'},{'ically':'ic'}],_0x5eadc4=new Set([_0x235866(0x4225),_0x235866(0x502c),_0x235866(0xa7),_0x235866(0x4cec),'weekly','monthly','yearly',_0x235866(0x104f),_0x235866(0x3867),'unduly','especially',_0x235866(0x481b),_0x235866(0x36dc),'namely',_0x235866(0x2dcf),'presumably','accordingly',_0x235866(0x1788),_0x235866(0x288c),_0x235866(0x4575),'little',_0x235866(0x3c8d),_0x235866(0x2cda)]),_0x36c786={'wholly':_0x235866(0x3ed8),'fully':_0x235866(0x29f8),'truly':'true','gently':_0x235866(0xd4d),'singly':_0x235866(0x480b),'customarily':_0x235866(0x2684),'idly':_0x235866(0x12de),'publically':'public','quickly':_0x235866(0x4937),'superbly':_0x235866(0x2047),'cynically':'cynical','well':_0x235866(0x2223)},_0x38076c=[null,{'y':_0x235866(0x4a7)},{'ly':'ly','ic':'ically'},{'ial':'ially','ual':_0x235866(0x485),'tle':_0x235866(0x4a98),'ble':_0x235866(0x3363),'ple':_0x235866(0x3d83),'ary':'arily'},{},{},{}],_0x2624b1={'cool':_0x235866(0x4cf9),'whole':_0x235866(0x3880),'full':'fully','good':_0x235866(0x4f63),'idle':'idly','public':_0x235866(0x523),'single':_0x235866(0x300f),'special':_0x235866(0x35a9)},_0x5ea3ed=function(_0x52ff63){const _0xb36875=_0x235866;if(_0x2624b1[_0xb36875(0x32b5)](_0x52ff63))return _0x2624b1[_0x52ff63];let _0x5da2b0=_0x4ead73(_0x52ff63,_0x38076c);return _0x5da2b0||(_0x5da2b0=_0x52ff63+'ly'),_0x5da2b0;},_0x2fb634={'toSuperlative':_0x5f405f,'toComparative':_0x23f0ee,'toAdverb':_0x5ea3ed,'toNoun':function(_0x3d0d4f,_0x198089){const _0x2bc3c5=_0x235866,_0x2aaef3=_0x198089['two'][_0x2bc3c5(0x1526)]['adjToNoun'];return _0x3ab3c0(_0x3d0d4f,_0x2aaef3);},'fromAdverb':function(_0x3868db){const _0x7489a2=_0x235866;return _0x3868db[_0x7489a2(0xe37)]('ly')?_0x94cd99[_0x7489a2(0x5ec)](_0x3868db)?_0x3868db[_0x7489a2(0x1db7)](/ically/,_0x7489a2(0xa96)):_0x5eadc4[_0x7489a2(0x5ec)](_0x3868db)?null:_0x36c786[_0x7489a2(0x32b5)](_0x3868db)?_0x36c786[_0x3868db]:_0x4ead73(_0x3868db,_0x17e73b)||_0x3868db:null;},'fromSuperlative':function(_0x89989a,_0x14bd11){const _0xa9fe55=_0x235866,_0x1b9157=_0x14bd11[_0xa9fe55(0x141f)][_0xa9fe55(0x1526)]['fromSuperlative'];return _0x3ab3c0(_0x89989a,_0x1b9157);},'fromComparative':function(_0x332c1b,_0x34b890){const _0x2e636b=_0x235866,_0x4be40d=_0x34b890[_0x2e636b(0x141f)][_0x2e636b(0x1526)]['fromComparative'];return _0x3ab3c0(_0x332c1b,_0x4be40d);},'all':function(_0x49d072,_0x51cad2){const _0x59997e=_0x235866;let _0x535fd9=[_0x49d072];return _0x535fd9['push'](_0x5f405f(_0x49d072,_0x51cad2)),_0x535fd9[_0x59997e(0x4131)](_0x23f0ee(_0x49d072,_0x51cad2)),_0x535fd9['push'](_0x5ea3ed(_0x49d072)),_0x535fd9=_0x535fd9[_0x59997e(0x295e)](_0x1c4f88=>_0x1c4f88),_0x535fd9=new Set(_0x535fd9),Array[_0x59997e(0xc81)](_0x535fd9);}},_0x2b5576={'noun':_0x260fab,'verb':_0xaf65af,'adjective':_0x2fb634},_0x524c3a={'Singular':(_0x39b3d2,_0x4a95c2,_0x4b9602,_0x5e08ee)=>{const _0x2bc8ca=_0x235866;let _0x3bb817=_0x5e08ee['one'][_0x2bc8ca(0x4ab0)],_0x3e95cd=_0x4b9602[_0x2bc8ca(0x141f)]['transform'][_0x2bc8ca(0x3c45)]['toPlural'](_0x39b3d2,_0x5e08ee);_0x3bb817[_0x3e95cd]||(_0x4a95c2[_0x3e95cd]=_0x4a95c2[_0x3e95cd]||'Plural');},'Actor':(_0x32f2d8,_0x47f0ee,_0x4ef521,_0x289398)=>{const _0x31ddbf=_0x235866;let _0x20d99c=_0x289398[_0x31ddbf(0x4116)]['lexicon'],_0x53d8ae=_0x4ef521[_0x31ddbf(0x141f)][_0x31ddbf(0x560)][_0x31ddbf(0x3c45)]['toPlural'](_0x32f2d8,_0x289398);_0x20d99c[_0x53d8ae]||(_0x47f0ee[_0x53d8ae]=_0x47f0ee[_0x53d8ae]||[_0x31ddbf(0x27b3),'Actor']);},'Comparable':(_0x32f30a,_0x4ef281,_0x338bb0,_0x391fec)=>{const _0x1dd894=_0x235866;let _0x26a968=_0x391fec[_0x1dd894(0x4116)][_0x1dd894(0x4ab0)],{toSuperlative:_0x19fda3,toComparative:_0x1c8ca9}=_0x338bb0[_0x1dd894(0x141f)][_0x1dd894(0x560)][_0x1dd894(0x2c03)],_0x4eee94=_0x19fda3(_0x32f30a,_0x391fec);_0x26a968[_0x4eee94]||(_0x4ef281[_0x4eee94]=_0x4ef281[_0x4eee94]||'Superlative');let _0x3dbb94=_0x1c8ca9(_0x32f30a,_0x391fec);_0x26a968[_0x3dbb94]||(_0x4ef281[_0x3dbb94]=_0x4ef281[_0x3dbb94]||_0x1dd894(0x1ab0)),_0x4ef281[_0x32f30a]=_0x1dd894(0x19b5);},'Demonym':(_0xb6f413,_0x153c50,_0x27dcf7,_0x190aaa)=>{const _0x1ac720=_0x235866;let _0x4de29a=_0x27dcf7[_0x1ac720(0x141f)][_0x1ac720(0x560)][_0x1ac720(0x3c45)]['toPlural'](_0xb6f413,_0x190aaa);_0x153c50[_0x4de29a]=_0x153c50[_0x4de29a]||['Demonym',_0x1ac720(0x27b3)];},'Infinitive':(_0x80acdf,_0x2369f0,_0x16cee1,_0xe13084)=>{const _0x4d3eee=_0x235866;let _0x530f42=_0xe13084[_0x4d3eee(0x4116)]['lexicon'],_0x3a8b9a=_0x16cee1[_0x4d3eee(0x141f)][_0x4d3eee(0x560)][_0x4d3eee(0x91)]['conjugate'](_0x80acdf,_0xe13084);Object[_0x4d3eee(0x5088)](_0x3a8b9a)[_0x4d3eee(0x4854)](_0x5522a3=>{_0x530f42[_0x5522a3[0x1]]||_0x2369f0[_0x5522a3[0x1]]||'FutureTense'===_0x5522a3[0x0]||(_0x2369f0[_0x5522a3[0x1]]=_0x5522a3[0x0]);});},'PhrasalVerb':(_0xa1dc3d,_0x1d1dfe,_0x726e80,_0x1e16be)=>{const _0x1b3df6=_0x235866;let _0x117400=_0x1e16be['one']['lexicon'];_0x1d1dfe[_0xa1dc3d]=['PhrasalVerb',_0x1b3df6(0x24ba)];let _0x15f4a9=_0x1e16be[_0x1b3df6(0x4116)]['_multiCache'],[_0x559c10,_0x16f0ba]=_0xa1dc3d[_0x1b3df6(0x29d0)]('\x20');_0x117400[_0x559c10]||(_0x1d1dfe[_0x559c10]=_0x1d1dfe[_0x559c10]||_0x1b3df6(0x24ba));let _0x3ec043=_0x726e80[_0x1b3df6(0x141f)][_0x1b3df6(0x560)]['verb'][_0x1b3df6(0x431b)](_0x559c10,_0x1e16be);delete _0x3ec043['FutureTense'],Object[_0x1b3df6(0x5088)](_0x3ec043)[_0x1b3df6(0x4854)](_0x5eeb77=>{const _0x327175=_0x1b3df6;if(_0x327175(0x432f)===_0x5eeb77[0x0]||''===_0x5eeb77[0x1])return;_0x1d1dfe[_0x5eeb77[0x1]]||_0x117400[_0x5eeb77[0x1]]||(_0x1d1dfe[_0x5eeb77[0x1]]=_0x5eeb77[0x0]),_0x15f4a9[_0x5eeb77[0x1]]=0x2;let _0x121f78=_0x5eeb77[0x1]+'\x20'+_0x16f0ba;_0x1d1dfe[_0x121f78]=_0x1d1dfe[_0x121f78]||[_0x5eeb77[0x0],_0x327175(0x4634)];});},'Multiple':(_0x392f31,_0x188b2c)=>{const _0x3a59b5=_0x235866;_0x188b2c[_0x392f31]=[_0x3a59b5(0x4408),_0x3a59b5(0x2346)],_0x188b2c[_0x392f31+'th']=[_0x3a59b5(0x4408),_0x3a59b5(0x529)],_0x188b2c[_0x392f31+_0x3a59b5(0x376f)]=[_0x3a59b5(0x4408),_0x3a59b5(0x3793)];},'Cardinal':(_0xdf6afe,_0x13495d)=>{const _0x1a7cf1=_0x235866;_0x13495d[_0xdf6afe]=[_0x1a7cf1(0x20ed),_0x1a7cf1(0x2346)];},'Ordinal':(_0x173173,_0x2431da)=>{const _0x1c26f6=_0x235866;_0x2431da[_0x173173]=[_0x1c26f6(0x20ed),_0x1c26f6(0x529)],_0x2431da[_0x173173+'s']=['TextValue',_0x1c26f6(0x3793)];},'Place':(_0x5c85c4,_0x45831d)=>{const _0x356399=_0x235866;_0x45831d[_0x5c85c4]=[_0x356399(0x3fae),'ProperNoun'];},'Region':(_0x6bf997,_0x348802)=>{const _0x592577=_0x235866;_0x348802[_0x6bf997]=[_0x592577(0x4bf7),_0x592577(0x374d)];}},_0x4db76e=function(_0x3d83c5,_0x2fe61e){const _0x364c60=_0x235866,{methods:_0x254c3f,model:_0x227ad3}=_0x2fe61e;let _0x267ab8={},_0x333e3d={};return Object[_0x364c60(0x2f75)](_0x3d83c5)[_0x364c60(0x4854)](_0x5bb8d4=>{const _0x87daf6=_0x364c60;let _0x478b96=_0x3d83c5[_0x5bb8d4],_0x38227b=(_0x5bb8d4=(_0x5bb8d4=_0x5bb8d4['toLowerCase']()['trim']())[_0x87daf6(0x1db7)](/'s\b/,''))['split'](/ /);_0x38227b[_0x87daf6(0x205b)]>0x1&&(void 0x0===_0x333e3d[_0x38227b[0x0]]||_0x38227b[_0x87daf6(0x205b)]>_0x333e3d[_0x38227b[0x0]])&&(_0x333e3d[_0x38227b[0x0]]=_0x38227b[_0x87daf6(0x205b)]),!0x0===_0x524c3a[_0x87daf6(0x32b5)](_0x478b96)&&_0x524c3a[_0x478b96](_0x5bb8d4,_0x267ab8,_0x254c3f,_0x227ad3),_0x267ab8[_0x5bb8d4]=_0x267ab8[_0x5bb8d4]||_0x478b96;}),delete _0x267ab8[''],delete _0x267ab8['null'],delete _0x267ab8['\x20'],{'lex':_0x267ab8,'_multi':_0x333e3d};},_0x2454b6=function(_0x4dffb8){const _0x4305b0=_0x235866,_0x414b11=/[,:;]/;let _0x5f46c4=[];return _0x4dffb8[_0x4305b0(0x4854)](_0x5a83de=>{const _0x2a642e=_0x4305b0;let _0xbf71b=0x0;_0x5a83de[_0x2a642e(0x4854)]((_0x2a1b96,_0x3c787d)=>{const _0x4ab31e=_0x2a642e;_0x414b11[_0x4ab31e(0x34c)](_0x2a1b96[_0x4ab31e(0x9ce)])&&function(_0x99b8ba,_0xfd6fed){const _0x713297=_0x4ab31e,_0x5dd87b=/^[0-9]+$/;let _0x58fd66=_0x99b8ba[_0xfd6fed];if(!_0x58fd66)return!0x1;const _0x11790a=new Set(['may',_0x713297(0x3562),_0x713297(0x3943),_0x713297(0x40a4)]);if(_0x713297(0x1fb0)===_0x58fd66[_0x713297(0x4cb)]||_0x11790a[_0x713297(0x5ec)](_0x58fd66[_0x713297(0x4cb)]))return!0x1;if(_0x58fd66[_0x713297(0x23d1)]['has'](_0x713297(0x3fae))||_0x58fd66['tags'][_0x713297(0x5ec)]('Date'))return!0x1;if(_0x99b8ba[_0xfd6fed-0x1]){let _0x3d79bd=_0x99b8ba[_0xfd6fed-0x1];if(_0x3d79bd[_0x713297(0x23d1)][_0x713297(0x5ec)]('Date')||_0x11790a[_0x713297(0x5ec)](_0x3d79bd[_0x713297(0x4cb)]))return!0x1;if(_0x3d79bd['tags']['has']('Adjective')||_0x58fd66[_0x713297(0x23d1)][_0x713297(0x5ec)]('Adjective'))return!0x1;}let _0x2b5b02=_0x58fd66['normal'];return 0x1!==_0x2b5b02['length']&&0x2!==_0x2b5b02[_0x713297(0x205b)]&&0x4!==_0x2b5b02[_0x713297(0x205b)]||!_0x5dd87b[_0x713297(0x34c)](_0x2b5b02);}(_0x5a83de,_0x3c787d+0x1)&&(_0x5f46c4[_0x4ab31e(0x4131)](_0x5a83de[_0x4ab31e(0x428e)](_0xbf71b,_0x3c787d+0x1)),_0xbf71b=_0x3c787d+0x1);}),_0xbf71b<_0x5a83de[_0x2a642e(0x205b)]&&_0x5f46c4[_0x2a642e(0x4131)](_0x5a83de[_0x2a642e(0x428e)](_0xbf71b,_0x5a83de['length']));}),_0x5f46c4;},_0x22c2e5={'e':[_0x235866(0x22f9),_0x235866(0x2e75),'antennae',_0x235866(0x235f),'nebulae',_0x235866(0x4d35),_0x235866(0x3972)],'i':['tia','octopi',_0x235866(0x3b2e),_0x235866(0x1436),'nuclei',_0x235866(0x38dc),'cacti','stimuli'],'n':['men'],'t':[_0x235866(0x6b7)]},_0x26b4ca=new Set([_0x235866(0x1054),'menus',_0x235866(0x368)]),_0x4c29ed=[_0x235866(0x35e8),_0x235866(0x3156),'was',_0x235866(0x1bfc),_0x235866(0x4fe1),_0x235866(0x167d),_0x235866(0x4740),_0x235866(0x2135),_0x235866(0xb0a),'ois',_0x235866(0x1d3c),_0x235866(0x3d10),'tis',_0x235866(0x159),_0x235866(0x36b8),_0x235866(0x1d24),_0x235866(0x1127),_0x235866(0x3fc9),_0x235866(0x241e),_0x235866(0x25ae),'lus','nus',_0x235866(0x2726),_0x235866(0x41c5),_0x235866(0x4333),_0x235866(0x494d),_0x235866(0x2dbb),_0x235866(0x4e44),'xus','aos',_0x235866(0x354a),_0x235866(0x18e5),'ogos','\x27s','ss'],_0xdc5701=function(_0x3881ee){const _0x4903c9=_0x235866;if(!_0x3881ee||_0x3881ee[_0x4903c9(0x205b)]<=0x3)return!0x1;if(_0x26b4ca['has'](_0x3881ee))return!0x0;let _0x5e5264=_0x3881ee[_0x3881ee[_0x4903c9(0x205b)]-0x1];return _0x22c2e5[_0x4903c9(0x32b5)](_0x5e5264)?_0x22c2e5[_0x5e5264]['find'](_0x3dbb8c=>_0x3881ee[_0x4903c9(0xe37)](_0x3dbb8c)):'s'===_0x5e5264&&!_0x4c29ed[_0x4903c9(0x12b9)](_0x4ded79=>_0x3881ee['endsWith'](_0x4ded79));},_0x474f59={'two':{'quickSplit':_0x2454b6,'expandLexicon':_0x4db76e,'transform':_0x2b5576,'looksPlural':_0xdc5701}},_0x4eb4c2=function(_0x3e42c2){const _0x251d17=_0x235866,{irregularPlurals:_0xf14be2}=_0x3e42c2['two'],{lexicon:_0x5c9f02}=_0x3e42c2[_0x251d17(0x4116)];return Object[_0x251d17(0x5088)](_0xf14be2)['forEach'](_0x406245=>{const _0x4d0cc3=_0x251d17;_0x5c9f02[_0x406245[0x0]]=_0x5c9f02[_0x406245[0x0]]||_0x4d0cc3(0x3faa),_0x5c9f02[_0x406245[0x1]]=_0x5c9f02[_0x406245[0x1]]||'Plural';}),_0x3e42c2;};let _0x18c1f0={'one':{'lexicon':{}},'two':{'models':_0x4be2c6}};const _0x5813d8={'Actor|Verb':_0x235866(0x432f),'Adj|Gerund':_0x235866(0x19b5),'Adj|Noun':_0x235866(0x19b5),'Adj|Past':_0x235866(0x19b5),'Adj|Present':_0x235866(0x19b5),'Noun|Verb':_0x235866(0x3faa),'Noun|Gerund':'Gerund','Person|Noun':_0x235866(0x1ce5),'Person|Date':'Month','Person|Verb':_0x235866(0xcbd),'Person|Place':_0x235866(0x29bf),'Person|Adj':_0x235866(0x1ab0),'Plural|Verb':'Plural','Unit|Noun':_0x235866(0x1ce5)},_0x35ffb3=function(_0x55f625,_0x11d4b1){const _0x5c0615=_0x235866,_0x28faf0={'model':_0x11d4b1,'methods':_0x474f59};let {lex:_0x41bbdc,_multi:_0x44d740}=_0x474f59[_0x5c0615(0x141f)]['expandLexicon'](_0x55f625,_0x28faf0);return Object['assign'](_0x11d4b1[_0x5c0615(0x4116)][_0x5c0615(0x4ab0)],_0x41bbdc),Object[_0x5c0615(0x11e8)](_0x11d4b1[_0x5c0615(0x4116)][_0x5c0615(0x1398)],_0x44d740),_0x11d4b1;},_0x8bca8b=function(_0x1533bc,_0x5d7c94,_0x536b78){const _0x56e0be=_0x235866;let _0x1d20c6=_0x78c4dc(_0x1533bc,_0x18c1f0);_0x5d7c94[_0x1d20c6[_0x56e0be(0x2192)]]=_0x5d7c94[_0x1d20c6[_0x56e0be(0x2192)]]||_0x56e0be(0x2192),_0x5d7c94[_0x1d20c6[_0x56e0be(0x1e19)]]=_0x5d7c94[_0x1d20c6['Gerund']]||_0x56e0be(0x1e19),!0x0===_0x536b78&&(_0x5d7c94[_0x1d20c6['PresentTense']]=_0x5d7c94[_0x1d20c6[_0x56e0be(0x17a6)]]||_0x56e0be(0x17a6));},_0x51ce06=function(_0xe7b714,_0x46eb27,_0x38eb22){const _0x410d93=_0x235866;let _0x57e2f4=_0x5f405f(_0xe7b714,_0x38eb22);_0x46eb27[_0x57e2f4]=_0x46eb27[_0x57e2f4]||_0x410d93(0x2d21);let _0x220e1a=_0x23f0ee(_0xe7b714,_0x38eb22);_0x46eb27[_0x220e1a]=_0x46eb27[_0x220e1a]||_0x410d93(0x1ab0);},_0x2d35d9=function(_0x3763f1,_0x518c3b){const _0x3bf033=_0x235866;let _0x4395b7={};const _0x46f1e9=_0x518c3b['one'][_0x3bf033(0x4ab0)];return Object['keys'](_0x3763f1)[_0x3bf033(0x4854)](_0x133eec=>{const _0x19bfd3=_0x3bf033,_0x469736=_0x3763f1[_0x133eec];if(_0x4395b7[_0x133eec]=_0x5813d8[_0x469736],_0x19bfd3(0xd1)!==_0x469736&&'Person|Verb'!==_0x469736&&_0x19bfd3(0x2b5f)!==_0x469736||_0x8bca8b(_0x133eec,_0x46f1e9,!0x1),_0x19bfd3(0x28f4)===_0x469736&&(_0x8bca8b(_0x133eec,_0x46f1e9,!0x0),_0x51ce06(_0x133eec,_0x46f1e9,_0x518c3b)),_0x19bfd3(0x1faf)===_0x469736&&_0x51ce06(_0x133eec,_0x46f1e9,_0x518c3b),_0x19bfd3(0x1860)===_0x469736||_0x19bfd3(0x3a55)===_0x469736){let _0x2e8a97=_0x3286d2(_0x133eec,_0x18c1f0,_0x19bfd3(0x1e19));_0x46f1e9[_0x2e8a97]||(_0x4395b7[_0x2e8a97]=_0x19bfd3(0x24ba));}if(_0x19bfd3(0x3a55)!==_0x469736&&'Adj|Noun'!==_0x469736&&_0x19bfd3(0x296a)!==_0x469736||function(_0x2388fb,_0x172764,_0x15ad78){const _0x46e3b5=_0x19bfd3;let _0x525b7c=_0x4a950c(_0x2388fb,_0x15ad78);_0x172764[_0x525b7c]=_0x172764[_0x525b7c]||_0x46e3b5(0x27b3);}(_0x133eec,_0x46f1e9,_0x518c3b),'Adj|Past'===_0x469736){let _0x1878b4=_0x3286d2(_0x133eec,_0x18c1f0,_0x19bfd3(0x2192));_0x46f1e9[_0x1878b4]||(_0x4395b7[_0x1878b4]=_0x19bfd3(0x24ba));}}),_0x518c3b=_0x35ffb3(_0x4395b7,_0x518c3b);},_0x422821=function(_0x3a7156){const _0x4b85b8=_0x235866;return _0x3a7156=function(_0xd91286,_0x4757bd){const _0x19c5dd=a0_0x329b;return Object[_0x19c5dd(0x2f75)](_0xd91286)['forEach'](_0x3d10ae=>{const _0xd287a1=_0x19c5dd;_0xd287a1(0x1b51)===_0xd91286[_0x3d10ae]&&(_0x4757bd[_0xd287a1(0x141f)]['uncountable'][_0x3d10ae]=!0x0,_0xd91286[_0x3d10ae]=_0xd287a1(0x1b51));}),_0x4757bd;}((_0x3a7156=_0x35ffb3(_0x3a7156[_0x4b85b8(0x4116)]['lexicon'],_0x3a7156))[_0x4b85b8(0x4116)][_0x4b85b8(0x4ab0)],_0x3a7156),_0x3a7156=_0x2d35d9(_0x3a7156['two'][_0x4b85b8(0x80f)],_0x3a7156),_0x3a7156=_0x4eb4c2(_0x3a7156);};let _0x8c1271={'one':{'_multiCache':{},'lexicon':_0x41e396,'frozenLex':{'20th\x20century\x20fox':_0x235866(0x28cf),'7\x20eleven':_0x235866(0x28cf),'motel\x206':_0x235866(0x28cf),'excuse\x20me':_0x235866(0x766),'financial\x20times':_0x235866(0x28cf),'guns\x20n\x20roses':'Organization','la\x20z\x20boy':_0x235866(0x28cf),'labour\x20party':'Organization','new\x20kids\x20on\x20the\x20block':_0x235866(0x28cf),'new\x20york\x20times':_0x235866(0x28cf),'the\x20guess\x20who':'Organization','thin\x20lizzy':_0x235866(0x28cf),'prime\x20minister':_0x235866(0x432f),'free\x20market':_0x235866(0x3faa),'lay\x20up':_0x235866(0x3faa),'living\x20room':_0x235866(0x3faa),'living\x20rooms':_0x235866(0x27b3),'spin\x20off':'Singular','appeal\x20court':_0x235866(0x1b51),'cold\x20war':_0x235866(0x1b51),'gene\x20pool':'Uncountable','machine\x20learning':_0x235866(0x1b51),'nail\x20polish':_0x235866(0x1b51),'time\x20off':_0x235866(0x1b51),'take\x20part':_0x235866(0x24ba),'bill\x20gates':_0x235866(0x29bf),'doctor\x20who':_0x235866(0x29bf),'dr\x20who':_0x235866(0x29bf),'he\x20man':'Person','iron\x20man':_0x235866(0x29bf),'kid\x20cudi':_0x235866(0x29bf),'run\x20dmc':_0x235866(0x29bf),'rush\x20limbaugh':_0x235866(0x29bf),'snow\x20white':_0x235866(0x29bf),'tiger\x20woods':_0x235866(0x29bf),'brand\x20new':_0x235866(0x19b5),'en\x20route':_0x235866(0x19b5),'left\x20wing':_0x235866(0x19b5),'off\x20guard':_0x235866(0x19b5),'on\x20board':_0x235866(0x19b5),'part\x20time':'Adjective','right\x20wing':_0x235866(0x19b5),'so\x20called':_0x235866(0x19b5),'spot\x20on':'Adjective','straight\x20forward':_0x235866(0x19b5),'super\x20duper':'Adjective','tip\x20top':_0x235866(0x19b5),'top\x20notch':_0x235866(0x19b5),'up\x20to\x20date':_0x235866(0x19b5),'win\x20win':_0x235866(0x19b5),'brooklyn\x20nets':_0x235866(0x18d1),'chicago\x20bears':_0x235866(0x18d1),'houston\x20astros':_0x235866(0x18d1),'houston\x20dynamo':_0x235866(0x18d1),'houston\x20rockets':_0x235866(0x18d1),'houston\x20texans':_0x235866(0x18d1),'minnesota\x20twins':_0x235866(0x18d1),'orlando\x20magic':_0x235866(0x18d1),'san\x20antonio\x20spurs':'SportsTeam','san\x20diego\x20chargers':'SportsTeam','san\x20diego\x20padres':'SportsTeam','iron\x20maiden':_0x235866(0x374d),'isle\x20of\x20man':'Country','united\x20states':'Country','united\x20states\x20of\x20america':_0x235866(0x338a),'prince\x20edward\x20island':_0x235866(0x4bf7),'cedar\x20breaks':_0x235866(0x3fae),'cedar\x20falls':_0x235866(0x3fae),'point\x20blank':'Adverb','tiny\x20bit':'Adverb','by\x20the\x20time':_0x235866(0x846),'no\x20matter':'Conjunction','civil\x20wars':_0x235866(0x27b3),'credit\x20cards':'Plural','default\x20rates':_0x235866(0x27b3),'free\x20markets':'Plural','head\x20starts':'Plural','home\x20runs':_0x235866(0x27b3),'lay\x20ups':_0x235866(0x27b3),'phone\x20calls':_0x235866(0x27b3),'press\x20releases':_0x235866(0x27b3),'record\x20labels':_0x235866(0x27b3),'soft\x20serves':_0x235866(0x27b3),'student\x20loans':_0x235866(0x27b3),'tax\x20returns':_0x235866(0x27b3),'tv\x20shows':_0x235866(0x27b3),'video\x20games':_0x235866(0x27b3),'took\x20part':_0x235866(0x2192),'takes\x20part':_0x235866(0x17a6),'taking\x20part':_0x235866(0x1e19),'taken\x20part':'Participle','light\x20bulb':_0x235866(0x1ce5),'rush\x20hour':_0x235866(0x1ce5),'fluid\x20ounce':_0x235866(0x283a),'the\x20rolling\x20stones':'Organization'}},'two':{'irregularPlurals':_0x49642c,'models':_0x4be2c6,'suffixPatterns':_0x4cb4e0,'prefixPatterns':_0xaa6984,'endsWith':_0x2423e4,'neighbours':_0x292d39,'regexNormal':[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,_0x235866(0x1ec1)],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,_0x235866(0x2f23),_0x235866(0x4143)],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,_0x235866(0x2f23),_0x235866(0x49e8)],[/^[PMCE]ST$/,_0x235866(0x13ff),_0x235866(0x134)],[/^ma?c'[a-z]{3}/,_0x235866(0x396),'mc\x27neil'],[/^o'[a-z]{3}/,_0x235866(0x396),_0x235866(0x85)],[/^ma?cd[aeiou][a-z]{3}/,_0x235866(0x396),_0x235866(0x11e7)],[/^(lol)+[sz]$/,'Expression',_0x235866(0x2efc)],[/^wo{2,}a*h?$/,'Expression','wooah'],[/^(hee?){2,}h?$/,_0x235866(0x766),_0x235866(0x35db)],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,_0x235866(0x41f2),_0x235866(0x24fb)],[/^(m|k|cm|km)\/(s|h|hr)$/,_0x235866(0x283a),'5\x20k/m'],[/^(ug|ng|mg)\/(l|m3|ft3)$/,'Unit',_0x235866(0x4f18)]],'regexText':[[/^#[\p{Number}_]*\p{Letter}/u,_0x235866(0x3b2f)],[/^@\w{2,}$/,_0x235866(0x4e70)],[/^([A-Z]\.){2}[A-Z]?/i,[_0x235866(0x265b),'Noun'],_0x235866(0xf52)],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,'Gerund',_0x235866(0x4e54)],[/.{4}s['‘’‛‵′`´]$/,_0x235866(0x1e24),_0x235866(0x1e61)],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,'Emoji',_0x235866(0x2dd7)]],'regexNumbers':[[/^@1?[0-9](am|pm)$/i,_0x235866(0x17ed),'3pm'],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,_0x235866(0x17ed),_0x235866(0x1c0)],[/^'[0-9]{2}$/,_0x235866(0x36f3)],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,_0x235866(0x17ed),_0x235866(0x3baa)],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,'Time',_0x235866(0x3ee5)],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,'Time','1:12:31pm'],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,_0x235866(0x3c98),_0x235866(0xe69)],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,'Date','iso-dash'],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,_0x235866(0x3c98),_0x235866(0x1989)],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,_0x235866(0x3c98),_0x235866(0x1b7)],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,_0x235866(0x3c98),'12-dec-2019'],[/^utc ?[+-]?[0-9]+$/,_0x235866(0x13ff),'utc-9'],[/^(gmt|utc)[+-][0-9]{1,2}$/i,_0x235866(0x13ff),'gmt-3'],[/^[0-9]{3}-[0-9]{4}$/,_0x235866(0x4db3),_0x235866(0x38b5)],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,_0x235866(0x4db3),_0x235866(0x46cd)],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,[_0x235866(0x312),'Value'],_0x235866(0x1f0b)],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,[_0x235866(0x312),_0x235866(0xa4f)],_0x235866(0x3f0b)],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,[_0x235866(0x312),_0x235866(0xa4f)],_0x235866(0x18a)],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,[_0x235866(0x2346),'NumericValue'],_0x235866(0x3564)],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,[_0x235866(0x529),_0x235866(0x1256)],_0x235866(0x995)],[/^\.[0-9]+\+?$/,['Cardinal',_0x235866(0x1256)],'.73th'],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,[_0x235866(0x189e),_0x235866(0x2346),'NumericValue'],'-4%'],[/^\.[0-9]+%$/,[_0x235866(0x189e),_0x235866(0x2346),_0x235866(0x1256)],'.3%'],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,['Fraction','NumericValue'],_0x235866(0x1178)],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,[_0x235866(0xa4f),_0x235866(0x2bbf)],_0x235866(0x5064)],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,[_0x235866(0x17ed),_0x235866(0x2bbf)],_0x235866(0x3ab0)],[/^[0-9.]+([a-z°]{1,4})$/,_0x235866(0x1256),_0x235866(0x4537)]],'switches':_0x458a80,'clues':_0x155505,'uncountable':{},'orgWords':_0x7f90c7,'placeWords':_0x3c133b}};_0x8c1271=_0x422821(_0x8c1271);const _0x42d8e5=_0x8c1271,_0x4c0f33=function(_0x4a9430,_0x5ad996,_0x3fb755,_0x213014){const _0x2f2f2b=_0x235866,_0x56c7cf=_0x213014['methods'][_0x2f2f2b(0x4116)][_0x2f2f2b(0xe58)];if(0x0===_0x5ad996&&_0x4a9430[_0x2f2f2b(0x205b)]>=0x3){const _0x485e97=/:/;if(_0x4a9430[0x0][_0x2f2f2b(0x9ce)][_0x2f2f2b(0xdc0)](_0x485e97)){let _0x455e9f=_0x4a9430[0x1];if(_0x455e9f[_0x2f2f2b(0x23d1)]['has'](_0x2f2f2b(0xa4f))||_0x455e9f[_0x2f2f2b(0x23d1)]['has']('Email')||_0x455e9f[_0x2f2f2b(0x23d1)]['has'](_0x2f2f2b(0x4db3)))return;_0x56c7cf([_0x4a9430[0x0]],_0x2f2f2b(0x766),_0x213014,null,_0x2f2f2b(0x12c3));}}},_0x512392=function(_0x13da38,_0x20e5ed,_0x40f669,_0x2037a4){const _0x2cfda5=_0x235866,_0xd41cc=_0x2037a4[_0x2cfda5(0x8f)][_0x2cfda5(0x4116)][_0x2cfda5(0xe58)];'-'===_0x13da38[_0x20e5ed][_0x2cfda5(0x9ce)]&&_0x13da38[_0x20e5ed+0x1]&&_0xd41cc([_0x13da38[_0x20e5ed],_0x13da38[_0x20e5ed+0x1]],_0x2cfda5(0x38a),_0x2037a4,null,_0x2cfda5(0x789));},_0x402c5d=/^(under|over|mis|re|un|dis|semi)-?/,_0x36d512=function(_0x39385f,_0x97dd86,_0x55bebc){const _0x3d53f4=_0x235866,_0x3488fc=_0x55bebc['two'][_0x3d53f4(0x80f)];let _0x360265=_0x39385f[_0x97dd86];if(_0x3488fc['hasOwnProperty'](_0x360265[_0x3d53f4(0x4cb)]))_0x360265[_0x3d53f4(0x68)]=_0x3488fc[_0x360265[_0x3d53f4(0x4cb)]];else{if(_0x402c5d[_0x3d53f4(0x34c)](_0x360265[_0x3d53f4(0x4cb)])){let _0x4f030b=_0x360265['normal'][_0x3d53f4(0x1db7)](_0x402c5d,'');_0x4f030b[_0x3d53f4(0x205b)]>0x3&&_0x3488fc[_0x3d53f4(0x32b5)](_0x4f030b)&&(_0x360265[_0x3d53f4(0x68)]=_0x3488fc[_0x4f030b]);}}},_0x391b34=function(_0x2f860e,_0x241f20,_0x5d09a2){const _0x5cf557=_0x235866;if(!_0x241f20||0x0===_0x241f20[_0x5cf557(0x205b)])return;if(!0x0===_0x2f860e[_0x5cf557(0x2356)])return;const _0x157681=_0x5cf557(0x2c3)!=typeof process&&process[_0x5cf557(0x2f9e)]?process[_0x5cf557(0x2f9e)]:self['env']||{};_0x157681&&_0x157681['DEBUG_TAGS']&&((_0x2a6435,_0x58a552,_0x5b06aa='')=>{const _0x40492f=_0x5cf557;_0x2a6435[_0x40492f(0x2f35)]||_0x2a6435[_0x40492f(0x15c0)],_0x40492f(0x4f7c)!=typeof _0x58a552&&_0x58a552[_0x40492f(0x205b)]>0x2&&(_0x58a552=_0x58a552[_0x40492f(0x428e)](0x0,0x2)['join'](_0x40492f(0x12bc))+'\x20+'),_0x58a552=_0x40492f(0x4f7c)!=typeof _0x58a552?_0x58a552[_0x40492f(0x379c)](_0x40492f(0x12bc)):_0x58a552;})(_0x2f860e,_0x241f20,_0x5d09a2),_0x2f860e[_0x5cf557(0x23d1)]=_0x2f860e['tags']||new Set(),'string'==typeof _0x241f20?_0x2f860e['tags'][_0x5cf557(0x2fd8)](_0x241f20):_0x241f20[_0x5cf557(0x4854)](_0x4cbdc1=>_0x2f860e['tags'][_0x5cf557(0x2fd8)](_0x4cbdc1));},_0x26ea0b=[_0x235866(0x265b),_0x235866(0x256d),'ProperNoun','Uncountable',_0x235866(0x1e24),_0x235866(0x1ab5),_0x235866(0x1c5d),_0x235866(0xab3),_0x235866(0x1d0a)],_0x44bafd=function(_0x49a156,_0x2f5968,_0x5d5db5){const _0x35fe99=_0x235866;let _0x1ec861=_0x49a156[_0x2f5968],_0xd8dcb0=Array['from'](_0x1ec861['tags']);for(let _0x38fe30=0x0;_0x38fe30<_0xd8dcb0[_0x35fe99(0x205b)];_0x38fe30+=0x1)if(_0x5d5db5[_0x35fe99(0x4116)]['tagSet'][_0xd8dcb0[_0x38fe30]]){let _0x13df74=_0x5d5db5[_0x35fe99(0x4116)][_0x35fe99(0x1720)][_0xd8dcb0[_0x38fe30]][_0x35fe99(0x2ec0)];_0x391b34(_0x1ec861,_0x13df74,_0x35fe99(0x4fbb)+_0xd8dcb0[_0x38fe30]);}!function(_0x372f01){const _0x7f869c=_0x35fe99;!_0x372f01[_0x7f869c(0x23d1)][_0x7f869c(0x5ec)](_0x7f869c(0x1ce5))||_0x372f01[_0x7f869c(0x23d1)][_0x7f869c(0x5ec)](_0x7f869c(0x27b3))||_0x372f01[_0x7f869c(0x23d1)][_0x7f869c(0x5ec)]('Singular')||_0x26ea0b[_0x7f869c(0x12b9)](_0x2aa08c=>_0x372f01['tags'][_0x7f869c(0x5ec)](_0x2aa08c))||(_0xdc5701(_0x372f01[_0x7f869c(0x4cb)])?_0x391b34(_0x372f01,'Plural',_0x7f869c(0x3c61)):_0x391b34(_0x372f01,_0x7f869c(0x3faa),_0x7f869c(0x3cec)));}(_0x1ec861),function(_0x2c7a92){const _0x38968b=_0x35fe99;let _0x553c2c=_0x2c7a92['tags'];if(_0x553c2c[_0x38968b(0x5ec)](_0x38968b(0x41f2))&&0x1===_0x553c2c[_0x38968b(0x3b53)]){let _0x581dd9=_0x4f573b(_0x2c7a92[_0x38968b(0x4cb)]);_0x581dd9&&_0x391b34(_0x2c7a92,_0x581dd9,'3-verb-tense-guess');}}(_0x1ec861);},_0xf1ab2=/^\p{Lu}[\p{Ll}'’]/u,_0x4158fd=/[0-9]/,_0x417105=[_0x235866(0x3c98),_0x235866(0x1d0a),'WeekDay',_0x235866(0x283a),_0x235866(0x766)],_0x4b693a=/[IVX]/,_0x337c64=/^[IVXLCDM]{2,}$/,_0x3ff952=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,_0x2c67ab={'li':!0x0,'dc':!0x0,'md':!0x0,'dm':!0x0,'ml':!0x0},_0x1cac72=function(_0x2d428e,_0x4d3aa4,_0x1d3ca0){const _0x29d70d=_0x235866;let _0x1cf318=_0x2d428e[_0x4d3aa4];_0x1cf318[_0x29d70d(0x1cf3)]=_0x1cf318[_0x29d70d(0x1cf3)]||[0x0,0x0];let _0xc3613b=_0x1cf318[_0x29d70d(0x1cf3)][0x1],_0x4ab717=_0x1cf318['text']||'';return 0x0!==_0xc3613b&&!0x0===_0xf1ab2['test'](_0x4ab717)&&!0x1===_0x4158fd['test'](_0x4ab717)?_0x417105[_0x29d70d(0x12b9)](_0x195417=>_0x1cf318['tags'][_0x29d70d(0x5ec)](_0x195417))||_0x1cf318[_0x29d70d(0x1553)][_0x29d70d(0xdc0)](/["']$/)||'the'===_0x1cf318[_0x29d70d(0x4cb)]?null:(_0x44bafd(_0x2d428e,_0x4d3aa4,_0x1d3ca0),_0x1cf318['tags'][_0x29d70d(0x5ec)]('Noun')||_0x1cf318[_0x29d70d(0x2356)]||_0x1cf318['tags'][_0x29d70d(0x30a1)](),_0x391b34(_0x1cf318,'ProperNoun',_0x29d70d(0x31a8)),!0x0):_0x4ab717['length']>=0x2&&_0x337c64[_0x29d70d(0x34c)](_0x4ab717)&&_0x4b693a[_0x29d70d(0x34c)](_0x4ab717)&&_0x3ff952[_0x29d70d(0x34c)](_0x4ab717)&&!_0x2c67ab[_0x1cf318['normal']]?(_0x391b34(_0x1cf318,_0x29d70d(0x2d9a),_0x29d70d(0xbb6)),!0x0):null;},_0x3ee4b5=function(_0x560ce9='',_0x31fc70=[]){const _0xac8eed=_0x235866,_0x5980d9=_0x560ce9['length'];let _0x29e508=0x7;_0x5980d9<=_0x29e508&&(_0x29e508=_0x5980d9-0x1);for(let _0x1258a8=_0x29e508;_0x1258a8>0x1;_0x1258a8-=0x1){let _0x3f4fc3=_0x560ce9[_0xac8eed(0x3934)](_0x5980d9-_0x1258a8,_0x5980d9);if(!0x0===_0x31fc70[_0x3f4fc3[_0xac8eed(0x205b)]][_0xac8eed(0x32b5)](_0x3f4fc3))return _0x31fc70[_0x3f4fc3[_0xac8eed(0x205b)]][_0x3f4fc3];}return null;},_0x4d6703=function(_0x5fdb6a,_0x2256cf,_0x2a06d7){const _0x35a02d=_0x235866;let _0x23d822=_0x5fdb6a[_0x2256cf];if(0x0===_0x23d822[_0x35a02d(0x23d1)]['size']){let _0x13c6ce=_0x3ee4b5(_0x23d822[_0x35a02d(0x4cb)],_0x2a06d7['two'][_0x35a02d(0x4ddb)]);if(null!==_0x13c6ce)return _0x391b34(_0x23d822,_0x13c6ce,_0x35a02d(0x10f7)),_0x23d822[_0x35a02d(0x2ab9)]=0.7,!0x0;if(_0x23d822[_0x35a02d(0x15c0)]&&(_0x13c6ce=_0x3ee4b5(_0x23d822['implicit'],_0x2a06d7['two'][_0x35a02d(0x4ddb)]),null!==_0x13c6ce))return _0x391b34(_0x23d822,_0x13c6ce,_0x35a02d(0xd16)),_0x23d822[_0x35a02d(0x2ab9)]=0.7,!0x0;}return null;},_0x18cb37=/['‘’‛‵′`´]/,_0x546d16=function(_0x3689a6,_0x13dd7b){const _0x44cf14=_0x235866;for(let _0x4da1e3=0x0;_0x4da1e3<_0x13dd7b[_0x44cf14(0x205b)];_0x4da1e3+=0x1)if(!0x0===_0x13dd7b[_0x4da1e3][0x0][_0x44cf14(0x34c)](_0x3689a6))return _0x13dd7b[_0x4da1e3];return null;},_0x55968d=function(_0x1ab68e,_0x4b80d7,_0x305106,_0x4bd1b7){const _0x74bf9e=_0x235866,_0x491487=_0x4bd1b7['methods'][_0x74bf9e(0x4116)][_0x74bf9e(0xe58)];let {regexText:_0x1084fd,regexNormal:_0x5ce542,regexNumbers:_0x19f828,endsWith:_0x438931}=_0x305106[_0x74bf9e(0x141f)],_0x305700=_0x1ab68e[_0x4b80d7],_0x44333c=_0x305700['machine']||_0x305700[_0x74bf9e(0x4cb)],_0x3def0d=_0x305700[_0x74bf9e(0x2f35)];_0x18cb37[_0x74bf9e(0x34c)](_0x305700[_0x74bf9e(0x9ce)])&&!_0x18cb37[_0x74bf9e(0x34c)](_0x305700[_0x74bf9e(0x1553)])&&(_0x3def0d+=_0x305700[_0x74bf9e(0x9ce)][_0x74bf9e(0x1d0e)]());let _0x2316fc=_0x546d16(_0x3def0d,_0x1084fd)||_0x546d16(_0x44333c,_0x5ce542);return!_0x2316fc&&/[0-9]/['test'](_0x44333c)&&(_0x2316fc=_0x546d16(_0x44333c,_0x19f828)),_0x2316fc||0x0!==_0x305700[_0x74bf9e(0x23d1)]['size']||(_0x2316fc=function(_0x396e23='',_0x5a7f53){const _0x29e240=_0x74bf9e;let _0x57c658=_0x396e23[_0x396e23[_0x29e240(0x205b)]-0x1];if(!0x0===_0x5a7f53[_0x29e240(0x32b5)](_0x57c658)){let _0x120ae1=_0x5a7f53[_0x57c658]||[];for(let _0x32b00a=0x0;_0x32b00a<_0x120ae1[_0x29e240(0x205b)];_0x32b00a+=0x1)if(!0x0===_0x120ae1[_0x32b00a][0x0]['test'](_0x396e23))return _0x120ae1[_0x32b00a];}return null;}(_0x44333c,_0x438931)),_0x2316fc?(_0x491487([_0x305700],_0x2316fc[0x1],_0x4bd1b7,null,'2-regex-\x27'+(_0x2316fc[0x2]||_0x2316fc[0x0])+'\x27'),_0x305700[_0x74bf9e(0x2ab9)]=0.6,!0x0):null;},_0x5c7c8d=function(_0x1ea93b,_0x538905,_0xaef191){const _0x45426a=_0x235866;let _0x2b3e47=_0x1ea93b[_0x538905];if(0x0===_0x2b3e47[_0x45426a(0x23d1)]['size']){let _0x193a4d=function(_0xe71691='',_0x395245=[]){const _0x54fced=_0x45426a,_0x54a730=_0xe71691[_0x54fced(0x205b)];let _0x10b0c6=0x7;_0x10b0c6>_0x54a730-0x3&&(_0x10b0c6=_0x54a730-0x3);for(let _0x3e8553=_0x10b0c6;_0x3e8553>0x2;_0x3e8553-=0x1){let _0x387b44=_0xe71691[_0x54fced(0x3934)](0x0,_0x3e8553);if(!0x0===_0x395245[_0x387b44['length']][_0x54fced(0x32b5)](_0x387b44))return _0x395245[_0x387b44[_0x54fced(0x205b)]][_0x387b44];}return null;}(_0x2b3e47[_0x45426a(0x4cb)],_0xaef191[_0x45426a(0x141f)][_0x45426a(0x39df)]);if(null!==_0x193a4d)return _0x391b34(_0x2b3e47,_0x193a4d,'2-prefix'),_0x2b3e47[_0x45426a(0x2ab9)]=0.5,!0x0;}return null;},_0x431ffb=new Set(['in','on','by',_0x235866(0x46e8),_0x235866(0x8f1),'to','during',_0x235866(0x1c95),_0x235866(0x49d3),'within',_0x235866(0x19f2),_0x235866(0x1f69),'of','this',_0x235866(0x1aec),'last',_0x235866(0x1645),_0x235866(0x2dec),_0x235866(0x9ce),_0x235866(0x1553),_0x235866(0x482c),'classic',_0x235866(0x358b),_0x235866(0x5072)]),_0x2d3b7e=function(_0xa57c23){const _0x18188d=_0x235866;if(!_0xa57c23)return!0x1;let _0x224e18=_0xa57c23[_0x18188d(0x4cb)]||_0xa57c23[_0x18188d(0x15c0)];return!!_0x431ffb[_0x18188d(0x5ec)](_0x224e18)||(!!(_0xa57c23['tags']['has'](_0x18188d(0x3c98))||_0xa57c23[_0x18188d(0x23d1)][_0x18188d(0x5ec)](_0x18188d(0x1d0a))||_0xa57c23[_0x18188d(0x23d1)]['has'](_0x18188d(0x4605))||_0xa57c23['tags'][_0x18188d(0x5ec)](_0x18188d(0x36f3)))||!!_0xa57c23['tags']['has'](_0x18188d(0x374d)));},_0x3ab63b=function(_0x3f68f6){const _0x27e65c=_0x235866;return!!_0x3f68f6&&(!!_0x3f68f6[_0x27e65c(0x23d1)]['has']('Ordinal')||(!!(_0x3f68f6[_0x27e65c(0x23d1)][_0x27e65c(0x5ec)](_0x27e65c(0x2346))&&_0x3f68f6[_0x27e65c(0x4cb)][_0x27e65c(0x205b)]<0x3)||('is'===_0x3f68f6[_0x27e65c(0x4cb)]||'was'===_0x3f68f6[_0x27e65c(0x4cb)])));},_0x1a060a=function(_0x4f2858){const _0x34c775=_0x235866;return _0x4f2858&&(_0x4f2858[_0x34c775(0x23d1)][_0x34c775(0x5ec)](_0x34c775(0x3c98))||_0x4f2858[_0x34c775(0x23d1)][_0x34c775(0x5ec)](_0x34c775(0x1d0a))||_0x4f2858[_0x34c775(0x23d1)][_0x34c775(0x5ec)](_0x34c775(0x4605))||_0x4f2858[_0x34c775(0x23d1)]['has']('Year'));},_0x11e0c4=function(_0x4bd34e,_0x47e3a3){const _0x51cd9c=_0x235866,_0x16752f=_0x4bd34e[_0x47e3a3];if(_0x16752f[_0x51cd9c(0x23d1)][_0x51cd9c(0x5ec)](_0x51cd9c(0x1256))&&_0x16752f[_0x51cd9c(0x23d1)][_0x51cd9c(0x5ec)](_0x51cd9c(0x2346))&&0x4===_0x16752f[_0x51cd9c(0x4cb)][_0x51cd9c(0x205b)]){let _0x12f907=Number(_0x16752f[_0x51cd9c(0x4cb)]);if(_0x12f907&&!isNaN(_0x12f907)&&_0x12f907>0x578&&_0x12f907<0x834){let _0x3f0777=_0x4bd34e[_0x47e3a3-0x1],_0x41e78b=_0x4bd34e[_0x47e3a3+0x1];if(_0x2d3b7e(_0x3f0777)||_0x2d3b7e(_0x41e78b))return _0x391b34(_0x16752f,_0x51cd9c(0x36f3),_0x51cd9c(0x50cb));if(_0x12f907>=0x780&&_0x12f907<0x7e9){if(_0x3ab63b(_0x3f0777)||_0x3ab63b(_0x41e78b))return _0x391b34(_0x16752f,_0x51cd9c(0x36f3),_0x51cd9c(0x18dc));if(_0x1a060a(_0x4bd34e[_0x47e3a3-0x2])||_0x1a060a(_0x4bd34e[_0x47e3a3+0x2]))return _0x391b34(_0x16752f,_0x51cd9c(0x36f3),_0x51cd9c(0x276a));if(_0x3f0777&&(_0x3f0777[_0x51cd9c(0x23d1)][_0x51cd9c(0x5ec)](_0x51cd9c(0x246d))||_0x3f0777[_0x51cd9c(0x23d1)][_0x51cd9c(0x5ec)](_0x51cd9c(0x1e24)))&&_0x41e78b&&_0x41e78b['tags'][_0x51cd9c(0x5ec)](_0x51cd9c(0x1ce5))&&!_0x41e78b[_0x51cd9c(0x23d1)]['has'](_0x51cd9c(0x27b3)))return _0x391b34(_0x16752f,_0x51cd9c(0x36f3),'2-tagYear-noun');}}}return null;},_0x55589e=function(_0x3e3384,_0x404e00,_0xe97fc3,_0x2ee616){const _0x518488=_0x235866,_0x471097=_0x2ee616[_0x518488(0x8f)][_0x518488(0x4116)]['setTag'],_0x1eff33=_0x3e3384[_0x404e00],_0x25feec=[_0x518488(0x2192),'PresentTense',_0x518488(0x2126),_0x518488(0x4217),_0x518488(0x3b42)];_0x1eff33[_0x518488(0x23d1)][_0x518488(0x5ec)](_0x518488(0x41f2))&&(_0x25feec[_0x518488(0x12b9)](_0x51a521=>_0x1eff33['tags'][_0x518488(0x5ec)](_0x51a521))||_0x471097([_0x1eff33],_0x518488(0x24ba),_0x2ee616,null,_0x518488(0x817)));},_0x59d4e4=/^[A-Z]('s|,)?$/,_0x20fbd4=/^[A-Z-]+$/,_0x4c3369=/^[A-Z]+s$/,_0x504cf6=/([A-Z]\.)+[A-Z]?,?$/,_0x1ac7c7=/[A-Z]{2,}('s|,)?$/,_0x113082=/([a-z]\.)+[a-z]\.?$/,_0x316236={'I':!0x0,'A':!0x0},_0x195bef={'la':!0x0,'ny':!0x0,'us':!0x0,'dc':!0x0,'gb':!0x0},_0x52a62b=function(_0x4caa69,_0x57ccb8,_0x3d0a05){const _0x67279f=_0x235866;let _0x9617c5=_0x4caa69[_0x57ccb8];return _0x9617c5['tags'][_0x67279f(0x5ec)](_0x67279f(0x2d9a))||_0x9617c5[_0x67279f(0x23d1)][_0x67279f(0x5ec)]('Acronym')||_0x9617c5[_0x67279f(0x2356)]?null:function(_0x1b8469,_0x306241){const _0x1defd8=_0x67279f;let _0x59a34b=_0x1b8469[_0x1defd8(0x2f35)];if(!0x1===_0x20fbd4[_0x1defd8(0x34c)](_0x59a34b)){if(!(_0x59a34b[_0x1defd8(0x205b)]>0x3&&!0x0===_0x4c3369[_0x1defd8(0x34c)](_0x59a34b)))return!0x1;_0x59a34b=_0x59a34b[_0x1defd8(0x1db7)](/s$/,'');}return!(_0x59a34b[_0x1defd8(0x205b)]>0x5||_0x316236[_0x1defd8(0x32b5)](_0x59a34b)||_0x306241['one'][_0x1defd8(0x4ab0)]['hasOwnProperty'](_0x1b8469[_0x1defd8(0x4cb)])||!0x0!==_0x504cf6['test'](_0x59a34b)&&!0x0!==_0x113082['test'](_0x59a34b)&&!0x0!==_0x59d4e4['test'](_0x59a34b)&&!0x0!==_0x1ac7c7['test'](_0x59a34b));}(_0x9617c5,_0x3d0a05)?(_0x9617c5[_0x67279f(0x23d1)][_0x67279f(0x30a1)](),_0x391b34(_0x9617c5,[_0x67279f(0x265b),_0x67279f(0x1ce5)],_0x67279f(0x782)),!0x0===_0x195bef[_0x9617c5['normal']]&&_0x391b34(_0x9617c5,_0x67279f(0x3fae),_0x67279f(0x2363)),!0x0===_0x4c3369[_0x67279f(0x34c)](_0x9617c5[_0x67279f(0x2f35)])&&_0x391b34(_0x9617c5,_0x67279f(0x27b3),'3-plural-acronym'),!0x0):!_0x316236['hasOwnProperty'](_0x9617c5[_0x67279f(0x2f35)])&&_0x59d4e4['test'](_0x9617c5[_0x67279f(0x2f35)])?(_0x9617c5[_0x67279f(0x23d1)]['clear'](),_0x391b34(_0x9617c5,[_0x67279f(0x265b),_0x67279f(0x1ce5)],'3-one-letter-acronym'),!0x0):_0x9617c5[_0x67279f(0x23d1)][_0x67279f(0x5ec)](_0x67279f(0x28cf))&&_0x9617c5[_0x67279f(0x2f35)][_0x67279f(0x205b)]<=0x3?(_0x391b34(_0x9617c5,_0x67279f(0x265b),_0x67279f(0x175d)),!0x0):_0x9617c5[_0x67279f(0x23d1)]['has'](_0x67279f(0x28cf))&&_0x20fbd4[_0x67279f(0x34c)](_0x9617c5[_0x67279f(0x2f35)])&&_0x9617c5[_0x67279f(0x2f35)][_0x67279f(0x205b)]<=0x6?(_0x391b34(_0x9617c5,_0x67279f(0x265b),_0x67279f(0x4728)),!0x0):null;},_0x1a55c7=function(_0x4d6db4,_0x2086ca){const _0x3884e4=_0x235866;if(!_0x4d6db4)return null;let _0x3c7b18=_0x2086ca[_0x3884e4(0x12b9)](_0x4bcb45=>_0x4d6db4['normal']===_0x4bcb45[0x0]);return _0x3c7b18?_0x3c7b18[0x1]:null;},_0x3775c5=function(_0x1caa8d,_0x2a1efd){const _0x2d691a=_0x235866;if(!_0x1caa8d)return null;let _0x1f7865=_0x2a1efd[_0x2d691a(0x12b9)](_0x5d37d2=>_0x1caa8d['tags']['has'](_0x5d37d2[0x0]));return _0x1f7865?_0x1f7865[0x1]:null;},_0x2d4bd7=function(_0x1f08fb,_0x1cdc9b,_0x4d21a2){const _0x5749dc=_0x235866,{leftTags:_0x426629,leftWords:_0x417e6f,rightWords:_0x188cd9,rightTags:_0x1a1f2b}=_0x4d21a2[_0x5749dc(0x141f)][_0x5749dc(0x4cb2)];let _0x4acbd8=_0x1f08fb[_0x1cdc9b];if(0x0===_0x4acbd8[_0x5749dc(0x23d1)]['size']){let _0x2b943a=null;if(_0x2b943a=_0x2b943a||_0x1a55c7(_0x1f08fb[_0x1cdc9b-0x1],_0x417e6f),_0x2b943a=_0x2b943a||_0x1a55c7(_0x1f08fb[_0x1cdc9b+0x1],_0x188cd9),_0x2b943a=_0x2b943a||_0x3775c5(_0x1f08fb[_0x1cdc9b-0x1],_0x426629),_0x2b943a=_0x2b943a||_0x3775c5(_0x1f08fb[_0x1cdc9b+0x1],_0x1a1f2b),_0x2b943a)return _0x391b34(_0x4acbd8,_0x2b943a,_0x5749dc(0x13b4)),_0x44bafd(_0x1f08fb,_0x1cdc9b,_0x4d21a2),_0x1f08fb[_0x1cdc9b][_0x5749dc(0x2ab9)]=0.2,!0x0;}return null;},_0x34ca92=function(_0x46cace,_0x49a119,_0xf69c57){const _0x3e38b8=_0x235866;return!!_0x46cace&&(!_0x46cace['tags']['has'](_0x3e38b8(0xcbd))&&!_0x46cace[_0x3e38b8(0x23d1)][_0x3e38b8(0x5ec)](_0x3e38b8(0x3fae))&&(!!(_0x46cace[_0x3e38b8(0x23d1)][_0x3e38b8(0x5ec)]('ProperNoun')||_0x46cace[_0x3e38b8(0x23d1)]['has'](_0x3e38b8(0x28cf))||_0x46cace[_0x3e38b8(0x23d1)]['has'](_0x3e38b8(0x265b)))||!(_0xf69c57||(_0xf2d906=_0x46cace[_0x3e38b8(0x2f35)],!/^\p{Lu}[\p{Ll}'’]/u['test'](_0xf2d906)))&&(0x0!==_0x49a119||_0x46cace[_0x3e38b8(0x23d1)][_0x3e38b8(0x5ec)](_0x3e38b8(0x3faa)))));var _0xf2d906;},_0x29db5d=function(_0x368565,_0xce3572,_0x25865b,_0x17ed9f){const _0x41e5f0=_0x235866,_0xeb8788=_0x25865b[_0x41e5f0(0x2c3e)]['two'][_0x41e5f0(0x10f1)],_0x45eaea=_0x25865b[_0x41e5f0(0x8f)][_0x41e5f0(0x4116)]['setTag'];let _0xf4d875=_0x368565[_0xce3572];if(!0x0===_0xeb8788[_0xf4d875[_0x41e5f0(0x194)]||_0xf4d875[_0x41e5f0(0x4cb)]]&&_0x34ca92(_0x368565[_0xce3572-0x1],_0xce3572-0x1,_0x17ed9f)){_0x45eaea([_0x368565[_0xce3572]],_0x41e5f0(0x28cf),_0x25865b,null,'3-[org-word]');for(let _0x535fe7=_0xce3572;_0x535fe7>=0x0&&_0x34ca92(_0x368565[_0x535fe7],_0x535fe7,_0x17ed9f);_0x535fe7-=0x1)_0x45eaea([_0x368565[_0x535fe7]],'Organization',_0x25865b,null,'3-[org-word]');}return null;},_0x409db3=/'s$/,_0x3887fc=new Set(['athletic',_0x235866(0x2e31),_0x235866(0x101c),_0x235866(0x501d),_0x235866(0x4ece),'financial',_0x235866(0x1a39),_0x235866(0xb5d),_0x235866(0x4038),_0x235866(0xef7),'memorial','municipal',_0x235866(0x2668),_0x235866(0x15d),_0x235866(0xe89),'southern',_0x235866(0x3b95),_0x235866(0x1f1c)]),_0x36c4da=new Set([_0x235866(0xadf),_0x235866(0x1736),'way',_0x235866(0x3cf6),_0x235866(0x4f82),'bridge',_0x235866(0x20f1),_0x235866(0x32d0)]),_0x282bf1=function(_0xe7b2b,_0x2b7dd8,_0x3c4336){const _0x4f79c6=_0x235866;if(!_0xe7b2b)return!0x1;let _0x4f0a7b=_0xe7b2b[_0x4f79c6(0x23d1)];return!(_0x4f0a7b[_0x4f79c6(0x5ec)](_0x4f79c6(0x28cf))||_0x4f0a7b[_0x4f79c6(0x5ec)](_0x4f79c6(0x1e24))||_0x409db3[_0x4f79c6(0x34c)](_0xe7b2b[_0x4f79c6(0x4cb)]))&&(!(!_0x4f0a7b['has'](_0x4f79c6(0x374d))&&!_0x4f0a7b[_0x4f79c6(0x5ec)](_0x4f79c6(0x3fae)))||!(_0x3c4336||(_0x358399=_0xe7b2b[_0x4f79c6(0x2f35)],!/^\p{Lu}[\p{Ll}'’]/u[_0x4f79c6(0x34c)](_0x358399)))&&(0x0!==_0x2b7dd8||_0x4f0a7b[_0x4f79c6(0x5ec)](_0x4f79c6(0x3faa))));var _0x358399;},_0x1dbe03=function(_0x2c7b38,_0x409652,_0x46e3c8,_0x31c307){const _0x2b7025=_0x235866,_0x19f5f4=_0x46e3c8[_0x2b7025(0x2c3e)][_0x2b7025(0x141f)][_0x2b7025(0x249a)],_0x31f37b=_0x46e3c8['methods'][_0x2b7025(0x4116)][_0x2b7025(0xe58)];let _0x4a3ea8=_0x2c7b38[_0x409652],_0x16bbbd=_0x4a3ea8['machine']||_0x4a3ea8[_0x2b7025(0x4cb)];if(!0x0===_0x19f5f4[_0x16bbbd]){for(let _0x33d6ad=_0x409652-0x1;_0x33d6ad>=0x0;_0x33d6ad-=0x1)if(!_0x3887fc[_0x2b7025(0x5ec)](_0x2c7b38[_0x33d6ad][_0x2b7025(0x4cb)])){if(!_0x282bf1(_0x2c7b38[_0x33d6ad],_0x33d6ad,_0x31c307))break;_0x31f37b(_0x2c7b38[_0x2b7025(0x428e)](_0x33d6ad,_0x409652+0x1),_0x2b7025(0x3fae),_0x46e3c8,null,'3-[place-of-foo]');}if(_0x36c4da['has'](_0x16bbbd))return!0x1;for(let _0x53cf9c=_0x409652+0x1;_0x53cf9c<_0x2c7b38['length'];_0x53cf9c+=0x1){if(_0x282bf1(_0x2c7b38[_0x53cf9c],_0x53cf9c,_0x31c307))return _0x31f37b(_0x2c7b38['slice'](_0x409652,_0x53cf9c+0x1),_0x2b7025(0x3fae),_0x46e3c8,null,_0x2b7025(0xb0d)),!0x0;if('of'!==_0x2c7b38[_0x53cf9c][_0x2b7025(0x4cb)]&&!_0x3887fc[_0x2b7025(0x5ec)](_0x2c7b38[_0x53cf9c][_0x2b7025(0x4cb)]))break;}}return null;},_0x181c36=function(_0xa122e,_0x578f5d,_0x4efe6a){const _0x372370=_0x235866;let _0x62fe8=!0x1,_0x3d7794=_0xa122e[_0x578f5d]['tags'];(0x0===_0x3d7794[_0x372370(0x3b53)]||0x1===_0x3d7794[_0x372370(0x3b53)]&&(_0x3d7794[_0x372370(0x5ec)](_0x372370(0x38a))||_0x3d7794[_0x372370(0x5ec)](_0x372370(0x3b2f))||_0x3d7794[_0x372370(0x5ec)](_0x372370(0x4c19))))&&(_0x62fe8=!0x0),_0x62fe8&&(_0x391b34(_0xa122e[_0x578f5d],_0x372370(0x1ce5),_0x372370(0x2f66)),_0x44bafd(_0xa122e,_0x578f5d,_0x4efe6a),_0xa122e[_0x578f5d][_0x372370(0x2ab9)]=0.1);},_0x52f292=/^[A-Z][a-z]/,_0x4aef99=(_0x1487d4,_0x32ad8d)=>_0x1487d4[_0x32ad8d]['tags'][_0x235866(0x5ec)](_0x235866(0x374d))&&_0x52f292[_0x235866(0x34c)](_0x1487d4[_0x32ad8d][_0x235866(0x2f35)])?'Noun':null,_0x55fabc=(_0x4a9a96,_0x418a56,_0x4dceb2)=>0x0!==_0x418a56||_0x4a9a96[0x1]?null:_0x4dceb2,_0xfc6499={'Adj|Gerund':(_0x13b179,_0x58b0ce)=>_0x4aef99(_0x13b179,_0x58b0ce),'Adj|Noun':(_0x2d322b,_0x275e0b)=>_0x4aef99(_0x2d322b,_0x275e0b)||function(_0x1fc644,_0x2352eb){const _0x294aba=_0x235866;return!_0x1fc644[_0x2352eb+0x1]&&_0x1fc644[_0x2352eb-0x1]&&_0x1fc644[_0x2352eb-0x1][_0x294aba(0x23d1)][_0x294aba(0x5ec)]('Determiner')?_0x294aba(0x1ce5):null;}(_0x2d322b,_0x275e0b),'Actor|Verb':(_0x188f62,_0x2d8b45)=>_0x4aef99(_0x188f62,_0x2d8b45),'Adj|Past':(_0x26586c,_0x1598d5)=>_0x4aef99(_0x26586c,_0x1598d5),'Adj|Present':(_0x4d8e70,_0x16d4dd)=>_0x4aef99(_0x4d8e70,_0x16d4dd),'Noun|Gerund':(_0x452687,_0x4f76be)=>_0x4aef99(_0x452687,_0x4f76be),'Noun|Verb':(_0x281fd4,_0x45a07f)=>_0x45a07f>0x0&&_0x4aef99(_0x281fd4,_0x45a07f)||_0x55fabc(_0x281fd4,_0x45a07f,_0x235866(0x24ba)),'Plural|Verb':(_0x534364,_0x3c1d92)=>_0x4aef99(_0x534364,_0x3c1d92)||_0x55fabc(_0x534364,_0x3c1d92,_0x235866(0x17a6))||function(_0x55ef4e,_0x5a1af8,_0x21633a){return 0x0===_0x5a1af8&&_0x55ef4e['length']>0x3?_0x21633a:null;}(_0x534364,_0x3c1d92,'Plural'),'Person|Noun':(_0xe35aa6,_0x42d127)=>_0x4aef99(_0xe35aa6,_0x42d127),'Person|Verb':(_0x4d7356,_0x149dac)=>0x0!==_0x149dac?_0x4aef99(_0x4d7356,_0x149dac):null,'Person|Adj':(_0x542758,_0x5221a8)=>0x0===_0x5221a8&&_0x542758[_0x235866(0x205b)]>0x1||_0x4aef99(_0x542758,_0x5221a8)?_0x235866(0x29bf):null},_0x54dc48=_0xfc6499,_0x38290d=_0x235866(0x2c3)!=typeof process&&process[_0x235866(0x2f9e)]?process[_0x235866(0x2f9e)]:self[_0x235866(0x2f9e)]||{},_0x386c4e=/^(under|over|mis|re|un|dis|semi)-?/,_0x491554=(_0x5216be,_0x1748ab)=>{const _0x2ef8f6=_0x235866;if(!_0x5216be||!_0x1748ab)return null;let _0x13e422=_0x5216be[_0x2ef8f6(0x4cb)]||_0x5216be[_0x2ef8f6(0x15c0)],_0x38da26=null;return _0x1748ab[_0x2ef8f6(0x32b5)](_0x13e422)&&(_0x38da26=_0x1748ab[_0x13e422]),_0x38da26&&_0x38290d['DEBUG_TAGS'],_0x38da26;},_0x227114=(_0x5c9efc,_0x184ef6={},_0x3df2f9)=>{const _0x250822=_0x235866;if(!_0x5c9efc||!_0x184ef6)return null;let _0x3cf077=Array[_0x250822(0xc81)](_0x5c9efc[_0x250822(0x23d1)])[_0x250822(0x509)]((_0x5f21b6,_0x3680c3)=>(_0x3df2f9[_0x5f21b6]?_0x3df2f9[_0x5f21b6][_0x250822(0x2ec0)][_0x250822(0x205b)]:0x0)>(_0x3df2f9[_0x3680c3]?_0x3df2f9[_0x3680c3]['parents'][_0x250822(0x205b)]:0x0)?-0x1:0x1),_0x4ac0d0=_0x3cf077['find'](_0x21786a=>_0x184ef6[_0x21786a]);return _0x4ac0d0&&_0x38290d['DEBUG_TAGS'],_0x4ac0d0=_0x184ef6[_0x4ac0d0],_0x4ac0d0;},_0x4eeee9=function(_0xb99876,_0xb9fb1a,_0x1279a0){const _0x33e8eb=_0x235866,_0x22e9ff=_0x1279a0['model'],_0x31306e=_0x1279a0[_0x33e8eb(0x8f)][_0x33e8eb(0x4116)]['setTag'],{switches:_0x2d9f37,clues:_0x4f9396}=_0x22e9ff[_0x33e8eb(0x141f)],_0x7cf25=_0xb99876[_0xb9fb1a];let _0x2fc873=_0x7cf25[_0x33e8eb(0x4cb)]||_0x7cf25['implicit']||'';if(_0x386c4e[_0x33e8eb(0x34c)](_0x2fc873)&&!_0x2d9f37[_0x2fc873]&&(_0x2fc873=_0x2fc873['replace'](_0x386c4e,'')),_0x7cf25[_0x33e8eb(0x68)]){let _0x56edad=_0x7cf25[_0x33e8eb(0x68)];if(_0x7cf25[_0x33e8eb(0x23d1)]['has'](_0x33e8eb(0x265b))||_0x7cf25['tags'][_0x33e8eb(0x5ec)](_0x33e8eb(0x4634)))return;let _0x1f48d5=function(_0x45fef2,_0x29f9a4,_0x4defb8,_0x330a31){const _0x10c1c1=_0x33e8eb;if(!_0x4defb8)return null;const _0x478314='also'!==_0x45fef2[_0x29f9a4-0x1]?.[_0x10c1c1(0x2f35)]?_0x29f9a4-0x1:Math[_0x10c1c1(0x28c)](0x0,_0x29f9a4-0x2),_0xcff577=_0x330a31[_0x10c1c1(0x4116)]['tagSet'];let _0x5b0750=_0x491554(_0x45fef2[_0x29f9a4+0x1],_0x4defb8[_0x10c1c1(0x298f)]);return _0x5b0750=_0x5b0750||_0x491554(_0x45fef2[_0x478314],_0x4defb8[_0x10c1c1(0x4af9)]),_0x5b0750=_0x5b0750||_0x227114(_0x45fef2[_0x478314],_0x4defb8[_0x10c1c1(0x4142)],_0xcff577),_0x5b0750=_0x5b0750||_0x227114(_0x45fef2[_0x29f9a4+0x1],_0x4defb8['afterTags'],_0xcff577),_0x5b0750;}(_0xb99876,_0xb9fb1a,_0x4f9396[_0x56edad],_0x22e9ff);_0x54dc48[_0x56edad]&&(_0x1f48d5=_0x54dc48[_0x56edad](_0xb99876,_0xb9fb1a)||_0x1f48d5),_0x1f48d5?(_0x31306e([_0x7cf25],_0x1f48d5,_0x1279a0,null,'3-[switch]\x20('+_0x56edad+')'),_0x44bafd(_0xb99876,_0xb9fb1a,_0x22e9ff)):_0x38290d['DEBUG_TAGS'];}},_0x489c64={'there':!0x0,'this':!0x0,'it':!0x0,'him':!0x0,'her':!0x0,'us':!0x0},_0x515818=function(_0x444ffe,_0xac077f){const _0x31354d=_0x235866,_0x27de49=_0xac077f[_0x31354d(0x8f)][_0x31354d(0x4116)]['setTag'],_0x24ee12=_0xac077f[_0x31354d(0x2c3e)]['one'][_0x31354d(0x1398)]||{};let _0x2f5c2c=_0x444ffe[0x0];if(('Noun|Verb'===_0x2f5c2c['switch']||_0x2f5c2c[_0x31354d(0x23d1)][_0x31354d(0x5ec)](_0x31354d(0x24ba)))&&_0x444ffe[_0x31354d(0x205b)]>=0x2){if(_0x444ffe['length']<0x4&&!_0x489c64[_0x444ffe[0x1][_0x31354d(0x4cb)]])return;if(!_0x2f5c2c['tags'][_0x31354d(0x5ec)](_0x31354d(0x4634))&&_0x24ee12['hasOwnProperty'](_0x2f5c2c[_0x31354d(0x4cb)]))return;(_0x444ffe[0x1][_0x31354d(0x23d1)][_0x31354d(0x5ec)](_0x31354d(0x1ce5))||_0x444ffe[0x1][_0x31354d(0x23d1)][_0x31354d(0x5ec)](_0x31354d(0x246d)))&&(_0x444ffe['slice'](0x1,0x3)['some'](_0x54a225=>_0x54a225[_0x31354d(0x23d1)][_0x31354d(0x5ec)]('Verb'))&&!_0x2f5c2c[_0x31354d(0x23d1)][_0x31354d(0x5ec)](_0x31354d(0xb01))||_0x27de49([_0x2f5c2c],'Imperative',_0xac077f,null,'3-[imperative]'));}},_0x3dfc9c=function(_0x5824e){const _0x25024d=_0x235866;if(_0x5824e['filter'](_0x296ed4=>!_0x296ed4[_0x25024d(0x23d1)][_0x25024d(0x5ec)](_0x25024d(0x374d)))[_0x25024d(0x205b)]<=0x3)return!0x1;const _0x457643=/^[a-z]/;return _0x5824e[_0x25024d(0x464d)](_0x30c18a=>!_0x457643[_0x25024d(0x34c)](_0x30c18a[_0x25024d(0x2f35)]));},_0x833e14=function(_0x3ce623,_0x18adf5,_0x52ec59,_0x2e1638){const _0x15246e=_0x235866;for(let _0x21d99f=0x0;_0x21d99f<_0x3ce623['length'];_0x21d99f+=0x1)!0x0!==_0x3ce623[_0x21d99f][_0x15246e(0x2356)]&&(_0x36d512(_0x3ce623,_0x21d99f,_0x18adf5),!0x1===_0x2e1638&&_0x1cac72(_0x3ce623,_0x21d99f,_0x18adf5),_0x4d6703(_0x3ce623,_0x21d99f,_0x18adf5),_0x55968d(_0x3ce623,_0x21d99f,_0x18adf5,_0x52ec59),_0x5c7c8d(_0x3ce623,_0x21d99f,_0x18adf5),_0x11e0c4(_0x3ce623,_0x21d99f,_0x18adf5));},_0x2c83a1=function(_0x525a73,_0x49f830,_0x181559,_0x5767bf){const _0x90df92=_0x235866;for(let _0x16e12b=0x0;_0x16e12b<_0x525a73[_0x90df92(0x205b)];_0x16e12b+=0x1){let _0xec2a4d=_0x52a62b(_0x525a73,_0x16e12b,_0x49f830);_0x44bafd(_0x525a73,_0x16e12b,_0x49f830),_0xec2a4d=_0xec2a4d||_0x2d4bd7(_0x525a73,_0x16e12b,_0x49f830),_0xec2a4d=_0xec2a4d||_0x181c36(_0x525a73,_0x16e12b,_0x49f830);}for(let _0x4e0f12=0x0;_0x4e0f12<_0x525a73[_0x90df92(0x205b)];_0x4e0f12+=0x1)!0x0!==_0x525a73[_0x4e0f12][_0x90df92(0x2356)]&&(_0x29db5d(_0x525a73,_0x4e0f12,_0x181559,_0x5767bf),_0x1dbe03(_0x525a73,_0x4e0f12,_0x181559,_0x5767bf),_0x4eeee9(_0x525a73,_0x4e0f12,_0x181559),_0x55589e(_0x525a73,_0x4e0f12,_0x49f830,_0x181559),_0x512392(_0x525a73,_0x4e0f12,_0x49f830,_0x181559));_0x515818(_0x525a73,_0x181559);},_0x5ad0bb=function(_0xbfebbf){const _0x4de962=_0x235866,{methods:_0x305191,model:_0x1181f8,world:_0x5f1724}=_0xbfebbf;let _0x85db09=_0xbfebbf[_0x4de962(0x3f72)];!function(_0x387193,_0x1dc7dc,_0x283395){const _0xf16300=_0x4de962;_0x387193[_0xf16300(0x4854)](_0x459495=>{_0x4c0f33(_0x459495,0x0,_0x1dc7dc,_0x283395);});}(_0x85db09,_0x1181f8,_0x5f1724);let _0x33644d=_0x305191[_0x4de962(0x141f)][_0x4de962(0x31a3)](_0x85db09);for(let _0x5dc847=0x0;_0x5dc847<_0x33644d[_0x4de962(0x205b)];_0x5dc847+=0x1){let _0x56a799=_0x33644d[_0x5dc847];const _0xee0dc7=_0x3dfc9c(_0x56a799);_0x833e14(_0x56a799,_0x1181f8,_0x5f1724,_0xee0dc7),_0x2c83a1(_0x56a799,_0x1181f8,_0x5f1724,_0xee0dc7);}return _0x33644d;},_0x3e64d8={'Possessive':_0x1958ed=>{const _0x5a8afb=_0x235866;let _0x3529e5=_0x1958ed[_0x5a8afb(0x194)]||_0x1958ed[_0x5a8afb(0x4cb)]||_0x1958ed[_0x5a8afb(0x2f35)];return _0x3529e5=_0x3529e5[_0x5a8afb(0x1db7)](/'s$/,''),_0x3529e5;},'Plural':(_0xf81d9c,_0x5a11f6)=>{const _0x29be57=_0x235866;let _0xfafc69=_0xf81d9c[_0x29be57(0x194)]||_0xf81d9c['normal']||_0xf81d9c[_0x29be57(0x2f35)];return _0x5a11f6[_0x29be57(0x8f)][_0x29be57(0x141f)][_0x29be57(0x560)][_0x29be57(0x3c45)]['toSingular'](_0xfafc69,_0x5a11f6[_0x29be57(0x2c3e)]);},'Copula':()=>'is','PastTense':(_0x4f5ae8,_0x2ef719)=>{const _0x12b4eb=_0x235866;let _0xdab6c=_0x4f5ae8[_0x12b4eb(0x194)]||_0x4f5ae8[_0x12b4eb(0x4cb)]||_0x4f5ae8[_0x12b4eb(0x2f35)];return _0x2ef719[_0x12b4eb(0x8f)][_0x12b4eb(0x141f)][_0x12b4eb(0x560)]['verb']['toInfinitive'](_0xdab6c,_0x2ef719[_0x12b4eb(0x2c3e)],_0x12b4eb(0x2192));},'Gerund':(_0x2d0b24,_0x3badad)=>{const _0x455c29=_0x235866;let _0x55f11f=_0x2d0b24[_0x455c29(0x194)]||_0x2d0b24[_0x455c29(0x4cb)]||_0x2d0b24['text'];return _0x3badad[_0x455c29(0x8f)][_0x455c29(0x141f)][_0x455c29(0x560)][_0x455c29(0x91)]['toInfinitive'](_0x55f11f,_0x3badad['model'],_0x455c29(0x1e19));},'PresentTense':(_0x126d3b,_0x378b5d)=>{const _0x53174a=_0x235866;let _0x2cafe6=_0x126d3b[_0x53174a(0x194)]||_0x126d3b[_0x53174a(0x4cb)]||_0x126d3b[_0x53174a(0x2f35)];return _0x126d3b[_0x53174a(0x23d1)][_0x53174a(0x5ec)](_0x53174a(0x24ba))?_0x2cafe6:_0x378b5d[_0x53174a(0x8f)]['two'][_0x53174a(0x560)][_0x53174a(0x91)]['toInfinitive'](_0x2cafe6,_0x378b5d['model'],_0x53174a(0x17a6));},'Comparative':(_0x509319,_0x5e9b7a)=>{const _0x25e788=_0x235866;let _0x12d70b=_0x509319[_0x25e788(0x194)]||_0x509319[_0x25e788(0x4cb)]||_0x509319[_0x25e788(0x2f35)];return _0x5e9b7a[_0x25e788(0x8f)][_0x25e788(0x141f)][_0x25e788(0x560)][_0x25e788(0x2c03)]['fromComparative'](_0x12d70b,_0x5e9b7a[_0x25e788(0x2c3e)]);},'Superlative':(_0x4801df,_0x41738f)=>{const _0x127bf2=_0x235866;let _0x35f3f3=_0x4801df[_0x127bf2(0x194)]||_0x4801df['normal']||_0x4801df[_0x127bf2(0x2f35)];return _0x41738f[_0x127bf2(0x8f)][_0x127bf2(0x141f)]['transform'][_0x127bf2(0x2c03)][_0x127bf2(0x44c0)](_0x35f3f3,_0x41738f[_0x127bf2(0x2c3e)]);},'Adverb':(_0x2c8544,_0x5f06e1)=>{const _0xaf6d7d=_0x235866,{fromAdverb:_0x55a61a}=_0x5f06e1[_0xaf6d7d(0x8f)][_0xaf6d7d(0x141f)][_0xaf6d7d(0x560)]['adjective'];return _0x55a61a(_0x2c8544['machine']||_0x2c8544[_0xaf6d7d(0x4cb)]||_0x2c8544[_0xaf6d7d(0x2f35)]);}},_0x113cd2=function(_0x34aed9){const _0x18a525=_0x235866,_0x19151c=_0x34aed9[_0x18a525(0x3e71)],_0x4848a=Object[_0x18a525(0x2f75)](_0x3e64d8);_0x34aed9[_0x18a525(0x3f72)][_0x18a525(0x4854)](_0x551e53=>{const _0x34795b=_0x18a525;for(let _0x549e7d=0x0;_0x549e7d<_0x551e53[_0x34795b(0x205b)];_0x549e7d+=0x1){const _0xc2581a=_0x551e53[_0x549e7d];for(let _0x5b4356=0x0;_0x5b4356<_0x4848a[_0x34795b(0x205b)];_0x5b4356+=0x1)if(_0xc2581a['tags'][_0x34795b(0x5ec)](_0x4848a[_0x5b4356])){let _0x1f09aa=(0x0,_0x3e64d8[_0x4848a[_0x5b4356]])(_0xc2581a,_0x19151c);_0xc2581a['normal']!==_0x1f09aa&&(_0xc2581a['root']=_0x1f09aa);break;}}});},_0x1f491a={'Adverb':'RB','Comparative':_0x235866(0x2091),'Superlative':_0x235866(0xd1b),'Adjective':'JJ','TO':_0x235866(0x846),'Modal':'MD','Auxiliary':'MD','Gerund':_0x235866(0x4087),'PastTense':_0x235866(0xb2a),'Participle':'VBN','PresentTense':_0x235866(0x11da),'Infinitive':'VB','Particle':'RP','Verb':'VB','Pronoun':_0x235866(0x474e),'Cardinal':'CD','Conjunction':'CC','Determiner':'DT','Preposition':'IN','QuestionWord':'WP','Expression':'UH','Possessive':_0x235866(0x3a0f),'ProperNoun':_0x235866(0x4590),'Person':_0x235866(0x4590),'Place':_0x235866(0x4590),'Organization':_0x235866(0x4590),'Singular':'NN','Plural':'NNS','Noun':'NN','There':'EX'},_0x34dc0a=function(_0x5dd0d4){const _0x4b05d1=_0x235866;_0x5dd0d4[_0x4b05d1(0x210d)](_0x4b05d1(0x1efb)),_0x5dd0d4[_0x4b05d1(0x3f72)][_0x4b05d1(0x4854)](_0x46a9e7=>{_0x46a9e7['forEach'](_0xd44e90=>{const _0x2cd76b=a0_0x329b;_0xd44e90[_0x2cd76b(0x4750)]=function(_0x5f3fbc){const _0x3e7ee3=_0x2cd76b;if(_0x5f3fbc[_0x3e7ee3(0x23d1)][_0x3e7ee3(0x5ec)](_0x3e7ee3(0x374d))&&_0x5f3fbc[_0x3e7ee3(0x23d1)][_0x3e7ee3(0x5ec)](_0x3e7ee3(0x27b3)))return _0x3e7ee3(0x352e);if(_0x5f3fbc[_0x3e7ee3(0x23d1)]['has'](_0x3e7ee3(0x1e24))&&_0x5f3fbc['tags'][_0x3e7ee3(0x5ec)](_0x3e7ee3(0x1ab5)))return _0x3e7ee3(0x4109);if('there'===_0x5f3fbc[_0x3e7ee3(0x4cb)])return'EX';if('to'===_0x5f3fbc[_0x3e7ee3(0x4cb)])return'TO';let _0x165c4=_0x5f3fbc[_0x3e7ee3(0x1efb)]||[];for(let _0x33b5fb=0x0;_0x33b5fb<_0x165c4[_0x3e7ee3(0x205b)];_0x33b5fb+=0x1)if(_0x1f491a[_0x3e7ee3(0x32b5)](_0x165c4[_0x33b5fb]))return _0x1f491a[_0x165c4[_0x33b5fb]];return null;}(_0xd44e90);});});},_0x374a4d={'preTagger':_0x5ad0bb,'root':_0x113cd2,'penn':_0x34dc0a},_0x2b4aa3=['Person','Place',_0x235866(0x28cf)],_0x3b4e14={'Noun':{'not':[_0x235866(0x41f2),'Adjective',_0x235866(0x487d),_0x235866(0xa4f),_0x235866(0x246d)]},'Singular':{'is':'Noun','not':[_0x235866(0x27b3),_0x235866(0x1b51)]},'ProperNoun':{'is':_0x235866(0x1ce5)},'Person':{'is':_0x235866(0x3faa),'also':['ProperNoun'],'not':[_0x235866(0x3fae),_0x235866(0x28cf),'Date']},'FirstName':{'is':_0x235866(0x29bf)},'MaleName':{'is':_0x235866(0xcbd),'not':[_0x235866(0x1e3e),_0x235866(0x396)]},'FemaleName':{'is':_0x235866(0xcbd),'not':['MaleName','LastName']},'LastName':{'is':_0x235866(0x29bf),'not':[_0x235866(0xcbd)]},'Honorific':{'is':_0x235866(0x29bf),'not':[_0x235866(0xcbd),_0x235866(0x396),'Value']},'Place':{'is':_0x235866(0x3faa),'not':[_0x235866(0x29bf),_0x235866(0x28cf)]},'Country':{'is':_0x235866(0x3fae),'also':[_0x235866(0x374d)],'not':['City']},'City':{'is':_0x235866(0x3fae),'also':[_0x235866(0x374d)],'not':['Country']},'Region':{'is':'Place','also':[_0x235866(0x374d)]},'Address':{},'Organization':{'is':_0x235866(0x374d),'not':[_0x235866(0x29bf),_0x235866(0x3fae)]},'SportsTeam':{'is':_0x235866(0x28cf)},'School':{'is':'Organization'},'Company':{'is':_0x235866(0x28cf)},'Plural':{'is':_0x235866(0x1ce5),'not':[_0x235866(0x3faa),_0x235866(0x1b51)]},'Uncountable':{'is':_0x235866(0x1ce5)},'Pronoun':{'is':_0x235866(0x1ce5),'not':_0x2b4aa3},'Actor':{'is':_0x235866(0x1ce5),'not':[_0x235866(0x3fae),_0x235866(0x28cf)]},'Activity':{'is':_0x235866(0x1ce5),'not':['Person',_0x235866(0x3fae)]},'Unit':{'is':_0x235866(0x1ce5),'not':_0x2b4aa3},'Demonym':{'is':_0x235866(0x1ce5),'also':['ProperNoun'],'not':_0x2b4aa3},'Possessive':{'is':_0x235866(0x1ce5)},'Reflexive':{'is':'Pronoun'}},_0x4c2ccd={'Adjective':{'not':[_0x235866(0x1ce5),'Verb',_0x235866(0x487d),_0x235866(0xa4f)]},'Comparable':{'is':_0x235866(0x19b5)},'Comparative':{'is':_0x235866(0x19b5)},'Superlative':{'is':_0x235866(0x19b5),'not':[_0x235866(0x1ab0)]},'NumberRange':{},'Adverb':{'not':[_0x235866(0x1ce5),_0x235866(0x41f2),_0x235866(0x19b5),_0x235866(0xa4f)]},'Determiner':{'not':[_0x235866(0x1ce5),'Verb',_0x235866(0x19b5),_0x235866(0x487d),_0x235866(0x12d4),_0x235866(0x846)]},'Conjunction':{'not':[_0x235866(0x1ce5),_0x235866(0x41f2),_0x235866(0x19b5),_0x235866(0x487d),_0x235866(0xa4f),_0x235866(0x12d4)]},'Preposition':{'not':[_0x235866(0x1ce5),'Verb',_0x235866(0x19b5),_0x235866(0x487d),_0x235866(0x12d4),'Determiner']},'QuestionWord':{'not':['Determiner']},'Currency':{'is':'Noun'},'Expression':{'not':['Noun',_0x235866(0x19b5),'Verb',_0x235866(0x487d)]},'Abbreviation':{},'Url':{'not':[_0x235866(0x3b2f),'PhoneNumber',_0x235866(0x41f2),'Adjective',_0x235866(0xa4f),_0x235866(0x4e70),_0x235866(0x1ec1)]},'PhoneNumber':{'not':[_0x235866(0x3b2f),_0x235866(0x41f2),_0x235866(0x19b5),_0x235866(0xa4f),_0x235866(0x4e70),_0x235866(0x1ec1)]},'HashTag':{},'AtMention':{'is':_0x235866(0x1ce5),'not':[_0x235866(0x3b2f),_0x235866(0x1ec1)]},'Emoji':{'not':[_0x235866(0x3b2f),_0x235866(0x41f2),_0x235866(0x19b5),'Value',_0x235866(0x4e70)]},'Emoticon':{'not':[_0x235866(0x3b2f),_0x235866(0x41f2),_0x235866(0x19b5),_0x235866(0xa4f),_0x235866(0x4e70)]},'Email':{'not':[_0x235866(0x3b2f),_0x235866(0x41f2),'Adjective',_0x235866(0xa4f),'AtMention']},'Acronym':{'not':[_0x235866(0x27b3),'RomanNumeral','Pronoun',_0x235866(0x3c98)]},'Negative':{'not':[_0x235866(0x1ce5),_0x235866(0x19b5),_0x235866(0xa4f),_0x235866(0x766)]},'Condition':{'not':[_0x235866(0x41f2),_0x235866(0x19b5),_0x235866(0x1ce5),'Value']},'There':{'not':[_0x235866(0x41f2),'Adjective','Noun','Value',_0x235866(0x846),_0x235866(0xcf)]},'Prefix':{'not':[_0x235866(0x256d),_0x235866(0x265b),_0x235866(0x374d)]},'Hyphenated':{}};let _0x31b540=Object[_0x235866(0x11e8)]({},_0x3b4e14,{'Verb':{'not':['Noun',_0x235866(0x19b5),_0x235866(0x487d),_0x235866(0xa4f),_0x235866(0x766)]},'PresentTense':{'is':_0x235866(0x41f2),'not':[_0x235866(0x2192),_0x235866(0xa75)]},'Infinitive':{'is':_0x235866(0x17a6),'not':[_0x235866(0x1e19)]},'Imperative':{'is':_0x235866(0x41f2),'not':['PastTense','Gerund',_0x235866(0x49fb)]},'Gerund':{'is':_0x235866(0x17a6),'not':[_0x235866(0x49fb)]},'PastTense':{'is':'Verb','not':[_0x235866(0x17a6),_0x235866(0x1e19),_0x235866(0xa75)]},'FutureTense':{'is':'Verb','not':['PresentTense','PastTense']},'Copula':{'is':'Verb'},'Modal':{'is':_0x235866(0x41f2),'not':[_0x235866(0x24ba)]},'Participle':{'is':_0x235866(0x2192)},'Auxiliary':{'is':_0x235866(0x41f2),'not':[_0x235866(0x2192),_0x235866(0x17a6),_0x235866(0x1e19),_0x235866(0x846)]},'PhrasalVerb':{'is':'Verb'},'Particle':{'is':'PhrasalVerb','not':[_0x235866(0x2192),_0x235866(0x17a6),_0x235866(0x49fb),'Gerund']},'Passive':{'is':_0x235866(0x41f2)}},{'Value':{'not':['Verb','Adjective',_0x235866(0x487d)]},'Ordinal':{'is':'Value','not':[_0x235866(0x2346)]},'Cardinal':{'is':_0x235866(0xa4f),'not':[_0x235866(0x529)]},'Fraction':{'is':_0x235866(0xa4f),'not':[_0x235866(0x1ce5)]},'Multiple':{'is':_0x235866(0x20ed)},'RomanNumeral':{'is':_0x235866(0x2346),'not':['TextValue']},'TextValue':{'is':_0x235866(0xa4f),'not':['NumericValue']},'NumericValue':{'is':_0x235866(0xa4f),'not':[_0x235866(0x20ed)]},'Money':{'is':_0x235866(0x2346)},'Percent':{'is':_0x235866(0xa4f)}},{'Date':{'not':[_0x235866(0x41f2),_0x235866(0x487d),'Adjective']},'Month':{'is':'Date','also':[_0x235866(0x1ce5)],'not':[_0x235866(0x36f3),_0x235866(0x4605),_0x235866(0x17ed)]},'WeekDay':{'is':_0x235866(0x3c98),'also':[_0x235866(0x1ce5)]},'Year':{'is':_0x235866(0x3c98),'not':['RomanNumeral']},'FinancialQuarter':{'is':_0x235866(0x3c98),'not':_0x235866(0x3793)},'Holiday':{'is':_0x235866(0x3c98),'also':[_0x235866(0x1ce5)]},'Season':{'is':_0x235866(0x3c98)},'Timezone':{'is':'Date','also':[_0x235866(0x1ce5)],'not':[_0x235866(0x374d)]},'Time':{'is':_0x235866(0x3c98),'not':[_0x235866(0x4e70)]},'Duration':{'is':'Date','also':[_0x235866(0x1ce5)]}},_0x4c2ccd);const _0x3e3abe={'compute':_0x374a4d,'methods':_0x474f59,'model':_0x42d8e5,'tags':_0x31b540,'hooks':[_0x235866(0x530)]},_0x4f98d7=/[,)"';:\-–—.…]/,_0x133952=function(_0x383006,_0x4a05bb){const _0x4d69bc=_0x235866;if(!_0x383006['found'])return;let _0x16a4ae=_0x383006[_0x4d69bc(0x1772)]();for(let _0x777b8=0x0;_0x777b8<_0x16a4ae[_0x4d69bc(0x205b)]-0x1;_0x777b8++){const _0x28fc96=_0x16a4ae[_0x777b8];if(_0x4f98d7[_0x4d69bc(0x34c)](_0x28fc96[_0x4d69bc(0x9ce)]))return;}_0x16a4ae[0x0][_0x4d69bc(0x15c0)]=_0x16a4ae[0x0][_0x4d69bc(0x4cb)],_0x16a4ae[0x0][_0x4d69bc(0x2f35)]+=_0x4a05bb,_0x16a4ae[0x0][_0x4d69bc(0x4cb)]+=_0x4a05bb,_0x16a4ae[_0x4d69bc(0x428e)](0x1)[_0x4d69bc(0x4854)](_0x54c10a=>{const _0x261a30=_0x4d69bc;_0x54c10a[_0x261a30(0x15c0)]=_0x54c10a['normal'],_0x54c10a['text']='',_0x54c10a['normal']='';});for(let _0x29e13b=0x0;_0x29e13b<_0x16a4ae[_0x4d69bc(0x205b)]-0x1;_0x29e13b++)_0x16a4ae[_0x29e13b][_0x4d69bc(0x9ce)]=_0x16a4ae[_0x29e13b]['post'][_0x4d69bc(0x1db7)](/ /,'');},_0x563b4c=function(){const _0x9a2bad=_0x235866;let _0x883ba1=this[_0x9a2bad(0x4163)](_0x9a2bad(0x40b1)),_0x5843ac=_0x883ba1['match'](_0x9a2bad(0x20e));return _0x133952(_0x5843ac,_0x9a2bad(0x36cd)),_0x5843ac=_0x883ba1['match'](_0x9a2bad(0x3d50)),_0x133952(_0x5843ac,_0x9a2bad(0x4d68)),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x31c9)),_0x133952(_0x5843ac,'\x27s'),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x26c8)),_0x133952(_0x5843ac,'\x27s'),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x3c13)),_0x133952(_0x5843ac,'\x27d'),_0x5843ac=_0x883ba1['match'](_0x9a2bad(0x4aef)),_0x133952(_0x5843ac,_0x9a2bad(0x4d61)),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x40f9)),_0x133952(_0x5843ac,'\x27ve'),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x10f5)),_0x133952(_0x5843ac,'\x27ve'),_0x5843ac=_0x883ba1['match'](_0x9a2bad(0x2a95)),_0x133952(_0x5843ac,'\x27m'),_0x5843ac=_0x883ba1[_0x9a2bad(0xdc0)](_0x9a2bad(0x3c58)),this;},_0x5b57d0=/^\p{Lu}[\p{Ll}'’]/u,_0x1bee3b=function(_0x31c23f){const _0x1b1339=_0x235866;class _0x5a84f9 extends _0x31c23f{constructor(_0x29df75,_0x5b7c39,_0x52d42c){const _0x402dda=a0_0x329b;super(_0x29df75,_0x5b7c39,_0x52d42c),this[_0x402dda(0x3784)]='Contraction';}['expand'](){const _0x42a0d8=a0_0x329b;return this[_0x42a0d8(0x3f72)]['forEach'](_0x5d3176=>{const _0x24d2d2=_0x42a0d8;let _0x4dcd98=_0x5b57d0[_0x24d2d2(0x34c)](_0x5d3176[0x0]['text']);_0x5d3176[_0x24d2d2(0x4854)]((_0x3f7c4b,_0x4f935d)=>{const _0x94e089=_0x24d2d2;_0x3f7c4b['text']=_0x3f7c4b[_0x94e089(0x15c0)]||'',delete _0x3f7c4b['implicit'],_0x4f935d<_0x5d3176['length']-0x1&&''===_0x3f7c4b[_0x94e089(0x9ce)]&&(_0x3f7c4b[_0x94e089(0x9ce)]+='\x20'),_0x3f7c4b['dirty']=!0x0;}),_0x4dcd98&&(_0x5d3176[0x0]['text']=function(_0x1586f7=''){const _0x44229e=_0x24d2d2;return _0x1586f7[_0x44229e(0x1db7)](/^ *[a-z\u00C0-\u00FF]/,_0x54a571=>_0x54a571[_0x44229e(0x4447)]());}(_0x5d3176[0x0]['text']));}),this['compute'](_0x42a0d8(0x4cb)),this;}}_0x31c23f[_0x1b1339(0x2b5c)]['contractions']=function(){const _0x201a6d=_0x1b1339;let _0x35124a=this[_0x201a6d(0xdc0)](_0x201a6d(0x480e));return new _0x5a84f9(this[_0x201a6d(0x46d9)],_0x35124a[_0x201a6d(0x1d95)]);},_0x31c23f[_0x1b1339(0x2b5c)][_0x1b1339(0x2614)]=_0x563b4c;},_0x383cf6=function(_0x4216d0,_0x1ce711,_0x44750a){const _0x5864df=_0x235866;let [_0xfadfd5,_0x316b60]=_0x1ce711;_0x44750a&&0x0!==_0x44750a['length']&&(_0x44750a=_0x44750a[_0x5864df(0x2c94)]((_0x465072,_0x558614)=>(_0x465072[_0x5864df(0x15c0)]=_0x465072['text'],_0x465072['machine']=_0x465072[_0x5864df(0x2f35)],_0x465072[_0x5864df(0x1553)]='',_0x465072['post']='',_0x465072[_0x5864df(0x2f35)]='',_0x465072[_0x5864df(0x4cb)]='',_0x465072[_0x5864df(0x1cf3)]=[_0xfadfd5,_0x316b60+_0x558614],_0x465072)),_0x44750a[0x0]&&(_0x44750a[0x0][_0x5864df(0x1553)]=_0x4216d0[_0xfadfd5][_0x316b60][_0x5864df(0x1553)],_0x44750a[_0x44750a[_0x5864df(0x205b)]-0x1][_0x5864df(0x9ce)]=_0x4216d0[_0xfadfd5][_0x316b60]['post'],_0x44750a[0x0][_0x5864df(0x2f35)]=_0x4216d0[_0xfadfd5][_0x316b60][_0x5864df(0x2f35)],_0x44750a[0x0][_0x5864df(0x4cb)]=_0x4216d0[_0xfadfd5][_0x316b60][_0x5864df(0x4cb)]),_0x4216d0[_0xfadfd5][_0x5864df(0x506f)](_0x316b60,0x1,..._0x44750a));},_0x2bfc4b=/'/,_0x553925=new Set([_0x235866(0x182e),_0x235866(0x34ef)]),_0x5888de=new Set([_0x235866(0x2427),'how',_0x235866(0x489c),'if','too']);let _0x59a2d1=new Set([_0x235866(0x1074),_0x235866(0x1ebc),_0x235866(0x4a49)]);const _0x592ffc=function(_0xa610e8,_0x574f47){const _0xf036b4=_0x235866;let _0xe903f0=_0xa610e8[_0x574f47][_0xf036b4(0x4cb)][_0xf036b4(0x29d0)](_0x2bfc4b)[0x0];if(_0xf036b4(0x4647)===_0xe903f0)return[_0xe903f0,'us'];if(_0xf036b4(0x2105)===_0xe903f0){let _0x45b9ab=_0xa610e8[_0x574f47+0x1];if(_0x45b9ab&&_0x45b9ab['tags'][_0xf036b4(0x5ec)](_0xf036b4(0x27b3)))return[_0xe903f0,'are'];}return _0xf036b4(0x5ec)===((_0x1538a4,_0x131d3b)=>{const _0x135527=_0xf036b4;for(let _0x98fde1=_0x131d3b+0x1;_0x98fde1<_0x1538a4[_0x135527(0x205b)];_0x98fde1+=0x1){let _0x4e132b=_0x1538a4[_0x98fde1];if(_0x553925[_0x135527(0x5ec)](_0x4e132b['normal']))return'has';if(_0x5888de[_0x135527(0x5ec)](_0x4e132b[_0x135527(0x4cb)]))return'is';if(_0x4e132b[_0x135527(0x23d1)][_0x135527(0x5ec)](_0x135527(0x1e19)))return'is';if(_0x4e132b[_0x135527(0x23d1)]['has'](_0x135527(0x246d)))return'is';if(_0x4e132b[_0x135527(0x23d1)][_0x135527(0x5ec)](_0x135527(0x19b5)))return'is';if(_0x135527(0x48a1)===_0x4e132b[_0x135527(0x68)]&&_0x1538a4[_0x98fde1+0x1]){if(_0x59a2d1[_0x135527(0x5ec)](_0x1538a4[_0x98fde1+0x1][_0x135527(0x4cb)]))return'is';if(_0x1538a4[_0x98fde1+0x1][_0x135527(0x23d1)]['has']('Preposition'))return'is';}if(_0x4e132b[_0x135527(0x23d1)][_0x135527(0x5ec)]('PastTense'))return _0x1538a4[_0x98fde1+0x1]&&_0x135527(0x8f1)===_0x1538a4[_0x98fde1+0x1][_0x135527(0x4cb)]?'is':_0x135527(0x5ec);}return'is';})(_0xa610e8,_0x574f47)?[_0xe903f0,_0xf036b4(0x5ec)]:[_0xe903f0,'is'];},_0x1a9d99=/'/,_0x563a96=new Set([_0x235866(0x44fa),_0x235866(0x48dc),_0x235866(0x19f2),'it','had']),_0x574f6a=new Set(['have','be']),_0x1212e2=function(_0x949ef1,_0x284013){const _0x5c965e=_0x235866;let _0x20d405=_0x949ef1[_0x284013]['normal'][_0x5c965e(0x29d0)](_0x1a9d99)[0x0];return _0x5c965e(0x3626)===_0x20d405||_0x5c965e(0x2427)===_0x20d405?[_0x20d405,'did']:_0x5c965e(0x455a)===((_0x3705c2,_0x52396d)=>{const _0x4b0482=_0x5c965e;for(let _0x3e18f1=_0x52396d+0x1;_0x3e18f1<_0x3705c2[_0x4b0482(0x205b)];_0x3e18f1+=0x1){let _0x45b1a9=_0x3705c2[_0x3e18f1];if(_0x563a96[_0x4b0482(0x5ec)](_0x45b1a9[_0x4b0482(0x4cb)]))return'had';if(_0x574f6a['has'](_0x45b1a9['normal']))return'would';if(_0x45b1a9['tags'][_0x4b0482(0x5ec)](_0x4b0482(0x2192))||'Adj|Past'===_0x45b1a9[_0x4b0482(0x68)])return _0x4b0482(0x455a);if(_0x45b1a9[_0x4b0482(0x23d1)][_0x4b0482(0x5ec)](_0x4b0482(0x17a6))||_0x45b1a9[_0x4b0482(0x23d1)][_0x4b0482(0x5ec)](_0x4b0482(0x24ba)))return _0x4b0482(0x416a);if(_0x45b1a9['tags'][_0x4b0482(0x5ec)]('#Determiner'))return _0x4b0482(0x455a);if(_0x45b1a9[_0x4b0482(0x23d1)]['has'](_0x4b0482(0x19b5)))return _0x4b0482(0x416a);}return!0x1;})(_0x949ef1,_0x284013)?[_0x20d405,_0x5c965e(0x455a)]:[_0x20d405,'would'];},_0x1038d3=function(_0x1d8415,_0xb4baff){const _0x8739fb=_0x235866;if(_0x8739fb(0x2e85)===_0x1d8415[_0xb4baff][_0x8739fb(0x4cb)]||_0x8739fb(0x284f)===_0x1d8415[_0xb4baff][_0x8739fb(0x4cb)]){if(_0x1d8415[_0xb4baff+0x1]&&_0x8739fb(0x4b8c)===_0x1d8415[_0xb4baff+0x1][_0x8739fb(0x4cb)])return[_0x8739fb(0xb66)];let _0x3f96f7=function(_0x363ffc,_0x5695b3){const _0x14b4d7=_0x8739fb;for(let _0x231f76=_0x5695b3-0x1;_0x231f76>=0x0;_0x231f76-=0x1)if(_0x363ffc[_0x231f76]['tags']['has'](_0x14b4d7(0x1ce5))||_0x363ffc[_0x231f76][_0x14b4d7(0x23d1)]['has']('Pronoun')||_0x363ffc[_0x231f76][_0x14b4d7(0x23d1)][_0x14b4d7(0x5ec)](_0x14b4d7(0x27b3))||_0x363ffc[_0x231f76][_0x14b4d7(0x23d1)]['has'](_0x14b4d7(0x3faa)))return _0x363ffc[_0x231f76];return null;}(_0x1d8415,_0xb4baff);if(_0x3f96f7){if('we'===_0x3f96f7['normal']||'they'===_0x3f96f7[_0x8739fb(0x4cb)])return[_0x8739fb(0x1f46),'not'];if('i'===_0x3f96f7[_0x8739fb(0x4cb)])return['am','not'];if(_0x3f96f7[_0x8739fb(0x23d1)]&&_0x3f96f7[_0x8739fb(0x23d1)][_0x8739fb(0x5ec)]('Plural'))return[_0x8739fb(0x1f46),'not'];}return['is',_0x8739fb(0x4163)];}return[_0x1d8415[_0xb4baff][_0x8739fb(0x4cb)][_0x8739fb(0x1db7)](/n't/,''),_0x8739fb(0x4163)];},_0x182b54={'that':!0x0,'there':!0x0,'let':!0x0,'here':!0x0,'everywhere':!0x0},_0x3886ae={'in':!0x0,'by':!0x0,'for':!0x0};let _0x3c41d6=new Set(['too',_0x235866(0x1ebc),_0x235866(0x4a49),_0x235866(0x192f)]),_0x22e4ec=new Set(['is','are',_0x235866(0x3516),_0x235866(0x6ff),_0x235866(0x86d),'should',_0x235866(0x3381),_0x235866(0x455a),'have']);const _0x2b4a0e=(_0x53f933,_0x1bbe03)=>{const _0x1c445f=_0x235866;let _0x68c62a=_0x53f933[_0x1bbe03];if(_0x182b54[_0x1c445f(0x32b5)](_0x68c62a[_0x1c445f(0x194)]||_0x68c62a[_0x1c445f(0x4cb)]))return!0x1;if(_0x68c62a['tags'][_0x1c445f(0x5ec)](_0x1c445f(0x1e24)))return!0x0;if(_0x68c62a[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x12d4)))return!0x1;if('he\x27s'===_0x68c62a[_0x1c445f(0x4cb)]||_0x1c445f(0x3c75)===_0x68c62a[_0x1c445f(0x4cb)])return!0x1;let _0x2f001f=_0x53f933[_0x1bbe03+0x1];if(!_0x2f001f)return!0x0;if(_0x1c445f(0x49b1)===_0x68c62a['normal'])return!!_0x2f001f[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)]('#Noun');if(_0x1c445f(0x3a55)==_0x2f001f[_0x1c445f(0x68)]){let _0x19dabd=_0x53f933[_0x1bbe03+0x2];return _0x19dabd?!!_0x19dabd[_0x1c445f(0x23d1)]['has'](_0x1c445f(0x49fb))||('on'===_0x19dabd[_0x1c445f(0x4cb)]||_0x19dabd[_0x1c445f(0x4cb)],!0x1):!(!_0x68c62a['tags'][_0x1c445f(0x5ec)]('Actor')&&!_0x68c62a[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)]('ProperNoun'));}if(_0x2f001f[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x41f2)))return!!_0x2f001f[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x24ba))||!_0x2f001f['tags'][_0x1c445f(0x5ec)]('Gerund')&&!!_0x2f001f[_0x1c445f(0x23d1)]['has']('PresentTense');if('Adj|Noun'===_0x2f001f['switch']){let _0x1fa0b6=_0x53f933[_0x1bbe03+0x2];if(!_0x1fa0b6)return!0x1;if(_0x22e4ec[_0x1c445f(0x5ec)](_0x1fa0b6[_0x1c445f(0x4cb)]))return!0x0;if(_0x3c41d6[_0x1c445f(0x5ec)](_0x1fa0b6['normal']))return!0x1;}if(_0x2f001f[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x1ce5))){let _0xf8bf92=_0x2f001f[_0x1c445f(0x194)]||_0x2f001f[_0x1c445f(0x4cb)];return _0x1c445f(0x20ad)!==_0xf8bf92&&'there'!==_0xf8bf92&&_0x1c445f(0x2280)!==_0xf8bf92&&(!_0x2f001f['tags'][_0x1c445f(0x5ec)]('Possessive')&&!(_0x2f001f['tags'][_0x1c445f(0x5ec)](_0x1c445f(0x374d))&&!_0x68c62a[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x374d))));}if(_0x53f933[_0x1bbe03-0x1]&&!0x0===_0x3886ae[_0x53f933[_0x1bbe03-0x1][_0x1c445f(0x4cb)]])return!0x0;if(_0x2f001f['tags'][_0x1c445f(0x5ec)](_0x1c445f(0x19b5))){let _0x1ab5cd=_0x53f933[_0x1bbe03+0x2];if(!_0x1ab5cd)return!0x1;if(_0x1ab5cd[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x1ce5))&&!_0x1ab5cd[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0x1ab5))){let _0x2c9d96=_0x2f001f[_0x1c445f(0x4cb)];return _0x1c445f(0x35eb)!==_0x2c9d96&&_0x1c445f(0x2bc)!==_0x2c9d96&&_0x1c445f(0x11af)!==_0x2c9d96;}return _0x1c445f(0xd1)===_0x1ab5cd[_0x1c445f(0x68)];}return!!_0x2f001f[_0x1c445f(0x23d1)][_0x1c445f(0x5ec)](_0x1c445f(0xa4f));},_0x1a86ab=/'/,_0x30d3f6=function(_0x293753,_0x5ea1ea,_0x1e547c,_0x59f028){const _0x298cf8=_0x235866;let _0x3b2041=_0x5ea1ea['update']();_0x3b2041[_0x298cf8(0x46d9)]=[_0x293753];let _0x2fdf90=_0x1e547c+_0x59f028;_0x1e547c>0x0&&(_0x1e547c-=0x1),_0x293753[_0x2fdf90]&&(_0x2fdf90+=0x1),_0x3b2041[_0x298cf8(0x33fe)]=[[0x0,_0x1e547c,_0x2fdf90]],_0x3b2041['compute']([_0x298cf8(0x2cba),_0x298cf8(0x4ab0),'preTagger',_0x298cf8(0x483a)]),function(_0x275e53){const _0x5e8016=_0x298cf8;_0x275e53[_0x5e8016(0x4854)]((_0x67427f,_0x754540)=>{const _0x307dc3=_0x5e8016;_0x67427f[_0x307dc3(0x1cf3)]&&(_0x67427f[_0x307dc3(0x1cf3)][0x1]=_0x754540);});}(_0x293753);},_0x27f85a={'d':(_0x4df315,_0x4f9dae)=>_0x1212e2(_0x4df315,_0x4f9dae),'t':(_0x3283f4,_0x3cb8e8)=>_0x1038d3(_0x3283f4,_0x3cb8e8),'s':(_0x47551b,_0x21c7e7,_0x3aae87)=>_0x2b4a0e(_0x47551b,_0x21c7e7)?_0x3aae87[_0x235866(0x8f)][_0x235866(0x4116)][_0x235866(0xe58)]([_0x47551b[_0x21c7e7]],_0x235866(0x1e24),_0x3aae87,null,'2-contraction'):_0x592ffc(_0x47551b,_0x21c7e7)},_0x2b4dd0=function(_0x45433a,_0x11111e){const _0x399ce0=_0x235866;let _0x2d4762=_0x11111e[_0x399ce0(0x3e8f)](_0x45433a[_0x399ce0(0x379c)]('\x20'));return _0x2d4762[_0x399ce0(0x210d)]('id'),_0x2d4762[_0x399ce0(0x3f72)][0x0];},_0xb83c5f={'contractionTwo':_0x8d615c=>{const _0xcf0f5e=_0x235866;let {world:_0x5bfdeb,document:_0x2e3cf8}=_0x8d615c;_0x2e3cf8[_0xcf0f5e(0x4854)]((_0x697862,_0x592b75)=>{const _0x347b61=_0xcf0f5e;for(let _0x6ccdc4=_0x697862['length']-0x1;_0x6ccdc4>=0x0;_0x6ccdc4-=0x1){if(_0x697862[_0x6ccdc4][_0x347b61(0x15c0)])return;let _0x51e37c=null;!0x0===_0x1a86ab[_0x347b61(0x34c)](_0x697862[_0x6ccdc4][_0x347b61(0x4cb)])&&(_0x51e37c=_0x697862[_0x6ccdc4][_0x347b61(0x4cb)][_0x347b61(0x29d0)](_0x1a86ab)[0x1]);let _0x497e6b=null;_0x27f85a[_0x347b61(0x32b5)](_0x51e37c)&&(_0x497e6b=_0x27f85a[_0x51e37c](_0x697862,_0x6ccdc4,_0x5bfdeb)),_0x497e6b&&(_0x497e6b=_0x2b4dd0(_0x497e6b,_0x8d615c),_0x383cf6(_0x2e3cf8,[_0x592b75,_0x6ccdc4],_0x497e6b),_0x30d3f6(_0x2e3cf8[_0x592b75],_0x8d615c,_0x6ccdc4,_0x497e6b['length']));}});}},_0x2a1a6d={'compute':_0xb83c5f,'api':_0x1bee3b,'hooks':[_0x235866(0x4378)]},_0x38b523=_0x235866(0x1ed5),_0x2be3d5=_0x235866(0x4ca7);let _0x4e3394=[][_0x235866(0x41bf)]([{'match':_0x235866(0x50ef),'tag':_0x235866(0x10e),'reason':'got-walked'},{'match':_0x235866(0x3f60),'tag':_0x235866(0x10e),'reason':_0x235866(0x47b5)},{'match':_0x235866(0x1a82),'tag':'Passive','reason':_0x235866(0x2ade)},{'match':'will\x20be\x20being?\x20(#PastTense|#Participle)','tag':_0x235866(0x10e),'reason':_0x235866(0x1598)},{'match':_0x235866(0x3b71),'group':0x0,'tag':_0x235866(0x10e),'reason':'suffered-by'}],[{'match':_0x235866(0x44f7),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0xdf3)},{'match':_0x235866(0x3987),'group':0x0,'tag':_0x235866(0x19b5),'reason':'not-adverb'},{'match':_0x235866(0x1782),'group':0x0,'tag':'Adjective','reason':_0x235866(0x2a11)},{'match':_0x235866(0x10c9),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xfc7)},{'match':'[#PastTense]\x20#Plural\x20are','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x4e4d)},{'match':'well\x20[#PastTense]','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x1dfd)},{'match':_0x235866(0x4b4),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x4de4)},{'match':_0x235866(0x509d),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x9a5)},{'match':_0x235866(0x3bf),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x49ad)},{'match':_0x235866(0x2b61),'group':0x0,'notIf':_0x235866(0x385b),'tag':'Infinitive','reason':_0x235866(0x4fa2)},{'match':_0x235866(0x4dab),'group':0x0,'tag':_0x235866(0x19b5),'reason':'the-said-card'},{'match':_0x235866(0x2d97),'group':0x0,'tag':_0x235866(0x19b5),'notIf':_0x235866(0x1213),'reason':_0x235866(0x431f)},{'match':_0x235866(0x2937),'group':0x0,'tag':_0x235866(0x19b5),'notIf':_0x235866(0x1213),'reason':'self-driving'},{'match':_0x235866(0x2210),'group':0x0,'tag':'Adjective','reason':_0x235866(0x4c78)},{'match':_0x235866(0x9c),'tag':_0x235866(0x19b5),'reason':'two-fold'},{'match':'must\x20(#Hyphenated\x20&&\x20#Infinitive)','tag':_0x235866(0x19b5),'reason':_0x235866(0x45dc)},{'match':_0x235866(0x1ec),'tag':_0x235866(0x19b5),'notIf':'#PhrasalVerb','reason':_0x235866(0x4b5)},{'match':_0x235866(0x33b0),'tag':_0x235866(0x9bb),'reason':'bit-4'},{'match':_0x235866(0x4820),'tag':_0x235866(0x38ca),'reason':'bit-3'},{'match':_0x235866(0x89a),'group':0x0,'tag':[_0x235866(0x19b5),_0x235866(0x4c19)],'reason':_0x235866(0x218)}],[{'match':'#Adverb\x20[#Adverb]\x20(and|or|then)','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xe1e)},{'match':_0x235866(0x2cc2),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x3f21)},{'match':_0x235866(0x29b2),'group':0x0,'tag':'Adverb','reason':_0x235866(0x120c)},{'match':_0x235866(0x2cf0),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x1fcf)},{'match':_0x235866(0x23dc)+_0x38b523,'tag':_0x235866(0x4da1),'reason':'studies-hard'},{'match':_0x235866(0x2d4d)+_0x38b523+']\x20!#Noun?','group':0x0,'notIf':_0x235866(0x5134),'tag':_0x235866(0x487d),'reason':_0x235866(0x48d6)},{'match':_0x235866(0x2e8),'tag':_0x235866(0x17a6),'reason':_0x235866(0x2495)}],[{'match':'as\x20[#Gerund]\x20as','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x238c)},{'match':'more\x20[#Gerund]\x20than','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xbb0)},{'match':_0x235866(0x41b9),'group':0x0,'tag':_0x235866(0x19b5),'reason':'so-gerund'},{'match':'(found|found)\x20it\x20#Adverb?\x20[#Gerund]','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x8c2)},{'match':'a\x20(little|bit|wee)\x20bit?\x20[#Gerund]','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x3712)},{'match':_0x235866(0x962),'group':0x0,'tag':_0x235866(0x19b5),'notIf':_0x235866(0x3019),'reason':_0x235866(0x105c)},{'match':_0x235866(0x4252),'group':0x0,'tag':'Adjective','notIf':_0x235866(0x3019),'reason':_0x235866(0x1d26)},{'match':_0x235866(0x21b3),'group':0x0,'tag':_0x235866(0x1e19),'reason':_0x235866(0x4b30)},{'match':_0x235866(0x1371),'group':0x0,'tag':'Adjective','reason':_0x235866(0x1c6)},{'match':'%Noun|Gerund%\x20%Adj|Gerund%','tag':'Gerund\x20#Adjective','reason':_0x235866(0x1e93)},{'match':_0x235866(0x15c5),'tag':_0x235866(0x6c1),'reason':_0x235866(0x466f)},{'match':_0x235866(0x1e28),'group':0x0,'tag':_0x235866(0x19b5),'reason':'are-enduring-symbols'}],[{'match':_0x235866(0x4e59),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'the-adj-is'},{'match':_0x235866(0x30e8),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1ea4)},{'match':_0x235866(0x3da5),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':'#Hyphenated','reason':_0x235866(0x404a)},{'match':'#Copula\x20#Adverb?\x20[all]','group':0x0,'tag':_0x235866(0x1ce5),'reason':'is-all'},{'match':_0x235866(0xcf9),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0xe4e)},{'match':_0x235866(0x2dfa),'tag':_0x235866(0x1ce5),'reason':_0x235866(0x4796)},{'match':'#Preposition\x20(a|an)\x20[#Adjective]$','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3ca2)},{'match':'no\x20[#Adjective]\x20#Modal','group':0x0,'tag':_0x235866(0x1ce5),'reason':'no-golden'},{'match':_0x235866(0xa99),'group':0x0,'tag':_0x235866(0x487d),'reason':'brand-new'},{'match':_0x235866(0x108e),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x4cf3)},{'match':_0x235866(0x356a),'group':0x0,'tag':'Adjective','reason':_0x235866(0x195f)},{'match':_0x235866(0x32db),'tag':_0x235866(0x19b5),'reason':_0x235866(0x45dc)},{'match':_0x235866(0x16b),'tag':_0x235866(0x1ce5),'notIf':'(this|that|#Comparative|#Superlative)','reason':_0x235866(0x1355)},{'match':_0x235866(0x1a41),'tag':_0x235866(0x19b5),'notIf':_0x235866(0x46cc),'reason':_0x235866(0x7d7)},{'match':_0x235866(0x4e16),'notIf':_0x235866(0x504d),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x2061)},{'match':_0x235866(0x2b2),'notIf':_0x235866(0xf02),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x25c5)}],[{'match':'[still]\x20#Adjective','group':0x0,'tag':_0x235866(0x487d),'reason':'still-advb'},{'match':_0x235866(0xece),'group':0x0,'tag':'Adverb','reason':_0x235866(0x43cd)},{'match':_0x235866(0x2062),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x4b9e)},{'match':_0x235866(0x19cb),'group':0x0,'tag':'Adverb','reason':_0x235866(0x2735)},{'match':_0x235866(0x961),'group':0x0,'tag':'Adverb','reason':_0x235866(0x1d9d)},{'match':'[all]\x20#Verb','group':0x0,'tag':'Adverb','reason':_0x235866(0x4edb)},{'match':'#Verb\x20\x20[like]','group':0x0,'notIf':_0x235866(0x5ae),'tag':_0x235866(0x487d),'reason':'verb-like'},{'match':'(barely|hardly)\x20even','tag':_0x235866(0x487d),'reason':_0x235866(0x31e1)},{'match':_0x235866(0x4fa1),'group':0x0,'tag':_0x235866(0x487d),'reason':'even-walk'},{'match':_0x235866(0x3b56),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x4ea5)},{'match':_0x235866(0x12c0),'group':0x0,'tag':_0x235866(0x1213),'reason':'even-the'},{'match':_0x235866(0x4d23),'tag':'#Adverb\x20#Verb','reason':_0x235866(0x1d6d)},{'match':'[way]\x20#Adjective','group':0x0,'tag':_0x235866(0x1213),'reason':_0x235866(0x3650)},{'match':_0x235866(0x1aa9),'notIf':_0x235866(0x3076),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x4f10)},{'match':_0x235866(0x15d1),'group':0x0,'tag':'Adverb','reason':_0x235866(0x360)},{'match':_0x235866(0x7dd),'group':0x0,'tag':'Adjective','reason':_0x235866(0x1ee0)},{'match':_0x235866(0x3c5a),'group':0x0,'tag':_0x235866(0x487d),'reason':'a-bit-cold'},{'match':_0x235866(0x1f5),'group':0x0,'tag':_0x235866(0x487d),'reason':'super-strong'},{'match':_0x235866(0x937),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x13a9)},{'match':_0x235866(0x4e0),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x396f)},{'match':_0x235866(0x3ace),'group':0x0,'tag':_0x235866(0x19b5),'reason':'a-close'},{'match':'#Gerund\x20#Adverb?\x20[close]','group':0x0,'tag':_0x235866(0x487d),'notIf':_0x235866(0x1451),'reason':'being-close'},{'match':_0x235866(0xd79),'group':0x0,'tag':_0x235866(0x19b5),'reason':'blown-motor'},{'match':'(#PresentTense|#PastTense)\x20[back]','group':0x0,'tag':_0x235866(0x487d),'notIf':_0x235866(0x3627),'reason':_0x235866(0x2b3)},{'match':_0x235866(0x7a6),'group':0x0,'tag':_0x235866(0x487d),'notIf':_0x235866(0xb01),'reason':'send-around'},{'match':_0x235866(0x4b5d),'group':0x0,'tag':_0x235866(0x487d),'reason':'later-say'},{'match':_0x235866(0xd03),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x5091)},{'match':_0x235866(0x745),'group':0x0,'tag':'Adverb','reason':_0x235866(0x2e42)}],[{'match':_0x235866(0x19d7),'tag':'WeekDay','reason':_0x235866(0x304b)},{'match':_0x235866(0x3220),'group':0x0,'tag':'WeekDay','reason':_0x235866(0x56c)},{'match':_0x235866(0x276e),'group':0x0,'tag':_0x235866(0x4605),'reason':_0x235866(0x2fdd)},{'match':_0x235866(0x4e5f),'group':0x0,'tag':_0x235866(0x4605),'reason':_0x235866(0x2711)},{'match':_0x235866(0x2be6),'group':0x0,'tag':_0x235866(0x4605),'reason':_0x235866(0x2cf9)},{'match':_0x235866(0x250c),'group':0x0,'tag':_0x235866(0x1d0a),'reason':_0x235866(0x4457)},{'match':'[sat]\x20#Date','group':0x0,'tag':'WeekDay','reason':_0x235866(0xb1f)},{'match':'#Preposition\x20[(march|may)]','group':0x0,'tag':'Month','reason':_0x235866(0x152c)},{'match':_0x235866(0x38ed),'tag':_0x235866(0x2d4a),'reason':_0x235866(0x964)},{'match':_0x235866(0x1b3f),'tag':_0x235866(0x327c),'reason':_0x235866(0x1eaa)},{'match':'#Value\x20of?\x20(march|may)','tag':_0x235866(0x2ab),'reason':_0x235866(0x3c0e)},{'match':'[(march|may)]\x20.?\x20#Date','group':0x0,'tag':_0x235866(0x1d0a),'reason':_0x235866(0x949)},{'match':_0x235866(0x4a00),'group':0x0,'tag':'Month','reason':_0x235866(0x3662)},{'match':'#Adverb\x20[(march|may)]','group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x12f1)},{'match':_0x235866(0x2585),'group':0x0,'tag':'Verb','reason':_0x235866(0x10e7)},{'match':_0x235866(0xcd5),'tag':_0x235866(0x17ed),'reason':'2-am'}],[{'match':_0x235866(0x1931),'tag':_0x235866(0x20d3),'reason':'holiday-day'},{'match':'#Value\x20of\x20#Month','tag':'Date','reason':_0x235866(0x3049)},{'match':_0x235866(0x2b01),'tag':_0x235866(0x3c98),'reason':_0x235866(0x220b)},{'match':'#Month\x20#Value\x20to\x20#Value','tag':'Date','reason':_0x235866(0x4a43)},{'match':_0x235866(0x2666),'tag':'Date','reason':_0x235866(0x3997)},{'match':_0x235866(0xa1),'tag':'Date','reason':_0x235866(0x1b96)},{'match':'#Value\x20(#WeekDay|#Month)','tag':_0x235866(0x3c98),'reason':'value-date'},{'match':_0x235866(0x4d03),'tag':'Date','reason':_0x235866(0x43ba)},{'match':_0x235866(0x2bd7),'tag':_0x235866(0x3c98),'reason':_0x235866(0x24ef)},{'match':_0x235866(0x4ad1),'tag':_0x235866(0x3c98),'reason':_0x235866(0x2c42)},{'match':_0x235866(0x4f0),'tag':_0x235866(0x3c98),'reason':_0x235866(0x2aae)},{'match':'(#Place|#Demonmym|#Time)\x20(standard|daylight|central|mountain)?\x20time','tag':_0x235866(0x13ff),'reason':_0x235866(0x30da)},{'match':_0x235866(0x25d0),'tag':_0x235866(0x13ff),'reason':_0x235866(0x2a9b)},{'match':_0x235866(0xb3),'group':0x0,'tag':_0x235866(0x13ff),'reason':'5pm-central'},{'match':_0x235866(0x1148),'tag':_0x235866(0x13ff),'reason':'cet'}],[{'match':_0x235866(0x6d3),'group':0x0,'tag':'Singular','reason':_0x235866(0x698)},{'match':_0x235866(0x537),'group':0x0,'tag':'Adjective','reason':_0x235866(0x698)},{'match':_0x235866(0x492e),'tag':_0x235866(0x1ce5),'reason':_0x235866(0x2b11)},{'match':_0x235866(0x4dec),'group':0x0,'tag':'Singular','reason':'bit-2'},{'match':_0x235866(0x4461),'group':0x0,'tag':_0x235866(0x3faa),'reason':_0x235866(0x4f51)},{'match':_0x235866(0x1a6d),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x4ade)},{'match':_0x235866(0x4a04),'group':0x0,'tag':'Noun','reason':_0x235866(0x29ea)},{'match':_0x235866(0x444a),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x20f7)},{'match':_0x235866(0xe9c),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'first-thought'},{'match':_0x235866(0x403),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x3076),'reason':_0x235866(0x35ec)},{'match':_0x235866(0xda1),'group':0x0,'tag':'Noun','reason':_0x235866(0x2888)},{'match':_0x235866(0xaa6),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x2a85)},{'match':_0x235866(0x4bf5),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3ee)},{'match':'#Determiner\x20#Noun\x20of\x20[#Verb]','group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x58f),'reason':_0x235866(0x2de1)},{'match':_0x235866(0x347c),'group':0x0,'notIf':_0x235866(0x58f),'tag':_0x235866(0x1ce5),'reason':'ended-in-ruins'},{'match':_0x235866(0x1e98),'group':0x0,'tag':_0x235866(0x1ab5),'reason':_0x235866(0x2dd0)},{'match':_0x235866(0x1791),'group':0x0,'tag':_0x235866(0x1ab5),'reason':_0x235866(0x25aa)},{'match':_0x235866(0x45de),'group':0x0,'tag':'Noun','reason':_0x235866(0x26f3)},{'match':_0x235866(0x35f7),'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3b13)},{'match':_0x235866(0x3452),'group':0x0,'tag':'Noun','reason':_0x235866(0x1b9e)},{'match':_0x235866(0x46c3),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3e3e)},{'match':_0x235866(0x1893),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x4a13)},{'match':'to\x20[(shit|hell)]','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3271)},{'match':'(the|these)\x20[#Singular]\x20(were|are)','group':0x0,'tag':'Plural','reason':_0x235866(0x58c)},{'match':_0x235866(0xa45),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'noun-or-noun'},{'match':_0x235866(0x39ac),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x3fb7),'reason':_0x235866(0x227e)},{'match':_0x235866(0x4bd2),'tag':_0x235866(0x432f),'notIf':_0x235866(0x239f),'reason':_0x235866(0x4101)},{'match':_0x235866(0x3aa1),'tag':_0x235866(0x432f),'reason':'gerund-doer'},{'match':_0x235866(0x328),'tag':_0x235866(0x432f),'reason':'co-noun'},{'match':_0x235866(0x2e27),'group':0x0,'tag':_0x235866(0x432f),'notIf':_0x235866(0x1591),'reason':'air-traffic-controller'},{'match':_0x235866(0x4621),'tag':'Actor','reason':_0x235866(0x3e6c)},{'match':_0x235866(0x458c),'tag':_0x235866(0x432f),'reason':_0x235866(0x2cb9)},{'match':_0x235866(0x798),'tag':'Actor','reason':_0x235866(0x243d)},{'match':_0x235866(0x34a6),'tag':_0x235866(0x432f),'reason':_0x235866(0x3418)},{'match':_0x235866(0xd18),'tag':'Actor','reason':_0x235866(0x430)},{'match':'#Determiner\x20[sun]','group':0x0,'tag':'Singular','reason':_0x235866(0x3e86)},{'match':_0x235866(0x1918),'group':0x0,'tag':_0x235866(0x3faa),'reason':_0x235866(0x3afb)},{'match':_0x235866(0x1742),'group':0x0,'tag':'Singular','reason':_0x235866(0xc8b)},{'match':_0x235866(0x2cb1),'tag':_0x235866(0x1e24),'reason':_0x235866(0x1eb)},{'match':_0x235866(0x2b2f),'tag':_0x235866(0x1e24),'reason':_0x235866(0x4359)},{'match':'#Place+\x20#Possessive','tag':_0x235866(0x1e24),'reason':_0x235866(0x26b4)},{'match':_0x235866(0xd8),'notIf':_0x235866(0x8c5),'tag':_0x235866(0x1ce5),'reason':'possessive-verb'},{'match':_0x235866(0x1461),'tag':_0x235866(0x1e24),'reason':'my-dads'},{'match':_0x235866(0x4ed3),'group':0x0,'unTag':_0x235866(0xa4f),'tag':_0x235866(0x3faa),'reason':_0x235866(0x4fbf)},{'match':_0x235866(0x2b4a),'group':0x0,'unTag':'Value','tag':'Plural','reason':_0x235866(0x4aab)},{'match':_0x235866(0x2749),'group':0x0,'tag':_0x235866(0x3faa),'reason':_0x235866(0x1f02)},{'match':'a\x20[#Adjective]\x20#Preposition','group':0x0,'tag':_0x235866(0x1ce5),'reason':'a-minor-in'},{'match':_0x235866(0xf6a),'group':0x0,'tag':_0x235866(0x432f),'reason':_0x235866(0x1a8a)},{'match':_0x235866(0x4885),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3ee6)},{'match':_0x235866(0x2511),'group':0x0,'tag':_0x235866(0x27b3),'reason':_0x235866(0x15dd)},{'match':_0x235866(0x3193),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x3dd6)},{'match':'#Noun\x20and\x20[#Verb]\x20and\x20#Noun','group':0x0,'tag':_0x235866(0x1ce5),'reason':'peace-and-flowers'},{'match':_0x235866(0x4504),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x474c)},{'match':_0x235866(0x24e3),'group':0x0,'tag':'Adjective','reason':_0x235866(0x37af)},{'match':_0x235866(0x48d2),'group':0x0,'tag':_0x235866(0x1e24),'reason':_0x235866(0x164a)},{'match':_0x235866(0x3158),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1a7d)},{'match':_0x235866(0x1a89),'group':0x0,'tag':_0x235866(0x4fd5),'reason':_0x235866(0x506d)},{'match':'#PastTense\x20#Possessive\x20[#Verb]','group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x2ce1),'reason':_0x235866(0x301f)},{'match':_0x235866(0x45c2),'group':0x0,'tag':_0x235866(0x27b3),'notIf':_0x235866(0x387d),'reason':_0x235866(0x1fce)},{'match':'had\x20[#PresentTense]','group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0xc6),'reason':_0x235866(0x1d05)},{'match':_0x235866(0x4bf3),'tag':_0x235866(0xe4b),'notIf':_0x235866(0x18bc),'reason':_0x235866(0x299b)},{'match':_0x235866(0x3efc),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1baa)},{'match':_0x235866(0x2bb4),'group':0x0,'tag':_0x235866(0x27b3),'notIf':'#Pronoun','reason':'near-death-experiences'},{'match':_0x235866(0x500a),'group':0x0,'tag':_0x235866(0x27b3),'reason':_0x235866(0x2cf8)}],[{'match':'(this|that|the|a|an)\x20[#Gerund\x20#Infinitive]','group':0x0,'tag':_0x235866(0x3faa),'reason':_0x235866(0x347a)},{'match':_0x235866(0x2560),'group':0x0,'ifNo':_0x235866(0x3076),'tag':_0x235866(0x27b3),'reason':_0x235866(0x2aa6)},{'match':_0x235866(0x35b6),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x37aa)},{'match':'#Pronoun\x20#Infinitive\x20[#Gerund]\x20#PresentTense','group':0x0,'tag':'Noun','reason':'tipping-sucks'},{'match':_0x235866(0x791),'group':0x0,'tag':'Noun','notIf':_0x235866(0x26f),'reason':'early-warning'},{'match':_0x235866(0x42e8),'group':0x0,'tag':_0x235866(0x1c5d),'reason':'gerund-copula'},{'match':'#Copula\x20[(#Gerund|#Activity)]\x20#Copula','group':0x0,'tag':_0x235866(0x1e19),'reason':_0x235866(0x22db)},{'match':_0x235866(0x224b),'group':0x0,'tag':'Activity','reason':_0x235866(0x2ac)},{'match':_0x235866(0x4c4c),'group':0x0,'tag':_0x235866(0x1e19),'reason':_0x235866(0x3356)},{'match':_0x235866(0x338),'group':0x0,'tag':_0x235866(0x1e19),'reason':'better-for-gerund'},{'match':_0x235866(0x3126),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x252f)}],[{'match':_0x235866(0x4316),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x37f1)},{'match':_0x235866(0x2757),'group':0x0,'tag':'Noun','reason':_0x235866(0x3350)},{'match':'#Determiner\x20(only|further|just|more|backward)\x20[#Infinitive]','group':0x0,'tag':'Noun','reason':_0x235866(0xaba)},{'match':_0x235866(0x4bab),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'determiner5'},{'match':_0x235866(0x6dd),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0xc63)},{'match':_0x235866(0x1ab1),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x430a)},{'match':_0x235866(0x192e),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x37fd)},{'match':_0x235866(0xc1c),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1a6f)},{'match':'(go|goes|went)\x20to\x20[#Infinitive]','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3b96)},{'match':_0x235866(0x184d),'group':0x0,'notIf':_0x235866(0xc81),'tag':_0x235866(0x1ce5),'reason':_0x235866(0xe92)},{'match':'(a|an)\x20#Noun\x20[#Infinitive]$','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x28a9)},{'match':_0x235866(0x1a2b),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x33ef)},{'match':_0x235866(0xb9d),'group':0x0,'tag':_0x235866(0x3faa),'reason':_0x235866(0x7ff)},{'match':_0x235866(0x308e),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1e33)},{'match':_0x235866(0x40e4),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3a4c)},{'match':_0x235866(0x386a),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3105)},{'match':_0x235866(0x2395),'group':0x0,'tag':'Noun','reason':_0x235866(0x293)},{'match':_0x235866(0x2e2d),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0xbc6)},{'match':_0x235866(0x22be),'notIf':'(#Copula|#Noun|sure|fun|up)','group':0x0,'tag':_0x235866(0x1ce5),'reason':'do-verb'},{'match':_0x235866(0x500e),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x2aef)},{'match':_0x235866(0x1419),'group':0x0,'tag':'Noun','reason':'get-much'},{'match':_0x235866(0x3125),'group':0x0,'tag':_0x235866(0x846),'reason':_0x235866(0x45b1)},{'match':_0x235866(0x4f20),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x23eb),'reason':'cardio-dance'},{'match':'#Determiner\x20#Modal\x20[#Noun]','group':0x0,'tag':_0x235866(0x17a6),'reason':_0x235866(0x4d08)},{'match':'this\x20[#Plural]','group':0x0,'tag':_0x235866(0x17a6),'notIf':'(#Preposition|#Date)','reason':_0x235866(0x1f07)},{'match':_0x235866(0x14da),'group':0x0,'tag':_0x235866(0x17a6),'notIf':_0x235866(0x44d4),'reason':_0x235866(0x83f)},{'match':'that\x20[#Plural]\x20to','group':0x0,'tag':_0x235866(0x17a6),'notIf':_0x235866(0x50e),'reason':_0x235866(0x4e46)},{'match':'(let|make|made)\x20(him|her|it|#Person|#Place|#Organization)+\x20[#Singular]\x20(a|an|the|it)','group':0x0,'tag':_0x235866(0x24ba),'reason':'let-him-glue'},{'match':_0x235866(0x3fb8),'notIf':_0x235866(0x4ff6),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'all-presentTense'},{'match':'(had|have|#PastTense)\x20#Adjective\x20[#PresentTense]','group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x44fa),'reason':_0x235866(0x2ff2)},{'match':_0x235866(0x29f),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x3076),'reason':'one-big-reason'},{'match':'#PastTense\x20#Adjective+\x20[#PresentTense]','group':0x0,'tag':'Noun','notIf':_0x235866(0x4f73),'reason':_0x235866(0x4ab4)},{'match':_0x235866(0x5ea),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':'#Copula','reason':_0x235866(0x451)},{'match':_0x235866(0x2531),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x3076),'reason':_0x235866(0x1059)},{'match':_0x235866(0x4d49),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x1d70)},{'match':'(for|with|of)\x20#Noun\x20(and|or|not)\x20[%Noun|Verb%]','group':0x0,'tag':'Noun','notIf':_0x235866(0x23eb),'reason':'for-food-and-gas'},{'match':_0x235866(0x38e6),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':'#Copula','reason':_0x235866(0x45c7)},{'match':_0x235866(0x9b),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':'#Copula','reason':_0x235866(0x1258)},{'match':_0x235866(0x3a49),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x3076),'reason':'noun-list'},{'match':'(many|any|some|several)\x20[#PresentTense]\x20for','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x992)},{'match':'to\x20#PresentTense\x20#Noun\x20[#PresentTense]\x20#Preposition','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3617)},{'match':_0x235866(0x3808),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'waited-until-release'},{'match':_0x235866(0x1271),'group':0x0,'tag':_0x235866(0x27b3),'reason':_0x235866(0x252c)},{'match':_0x235866(0x2808),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x3a33)},{'match':_0x235866(0x2dda),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x46c4)},{'match':_0x235866(0x201b),'group':0x0,'tag':'Noun','reason':_0x235866(0x8b3)},{'match':_0x235866(0x1205),'group':0x0,'tag':'Noun','reason':_0x235866(0x4d36)},{'match':'#Gerund\x20#Adjective\x20#Preposition\x20[#PresentTense]','group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x33ce)},{'match':_0x235866(0x1da6),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'got-better-aim'},{'match':_0x235866(0x1b22),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'whos-name-was'},{'match':_0x235866(0x2612),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x2dd8)},{'match':'there\x20(are|were)\x20#Adjective?\x20[#PresentTense]','group':0x0,'tag':_0x235866(0x27b3),'reason':_0x235866(0x3168)},{'match':_0x235866(0x4246),'group':0x0,'notIf':_0x235866(0x50a4),'tag':'Plural','reason':_0x235866(0x4cd9)},{'match':_0x235866(0x1f05),'group':0x0,'tag':_0x235866(0x27b3),'reason':_0x235866(0x4f23)},{'match':_0x235866(0x2885),'group':0x0,'tag':'Infinitive','reason':_0x235866(0x1c9d)},{'match':_0x235866(0x203),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':'#Copula','reason':_0x235866(0xbd6)},{'match':_0x235866(0x3a0b),'group':0x0,'tag':_0x235866(0x17a6),'reason':_0x235866(0x2f7b)},{'match':_0x235866(0x3cd9),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x295d),'reason':'ignoring-commute'},{'match':_0x235866(0x1bc),'group':0x0,'tag':'Noun','reason':_0x235866(0x4a1e)},{'match':_0x235866(0x14ac),'group':0x0,'tag':'Infinitive','reason':'how-to-noun'},{'match':_0x235866(0x4298),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x20bd)},{'match':_0x235866(0x10f9),'group':0x0,'tag':_0x235866(0x27b3),'reason':'asking-questions'},{'match':_0x235866(0x341a),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x49f1)},{'match':_0x235866(0x50b5),'group':0x0,'tag':_0x235866(0x1ce5),'reason':_0x235866(0x241)},{'match':_0x235866(0x13c4),'group':0x0,'tag':'Infinitive','reason':'would-you-look'},{'match':_0x235866(0x2d0),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'is-just-spam'},{'match':_0x235866(0x172f),'tag':'Imperative\x20#Plural','reason':_0x235866(0x1bad)},{'match':_0x235866(0x4800),'group':0x0,'tag':_0x235866(0x12d),'reason':_0x235866(0x46d6)},{'match':_0x235866(0x4ce8),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'the-1968-film'},{'match':_0x235866(0x4cc6),'group':0x0,'tag':_0x235866(0x1ce5),'reason':'the-break-up'},{'match':_0x235866(0x1e73),'group':0x0,'tag':'Adjective','notIf':_0x235866(0x1a3),'reason':_0x235866(0x4eee)},{'match':_0x235866(0x1b7b),'group':0x0,'tag':_0x235866(0x24ba),'reason':'work-or-prepare'},{'match':_0x235866(0x318c),'group':0x0,'tag':_0x235866(0x1ce5),'notIf':_0x235866(0x2148),'reason':'to-give-thanks'},{'match':_0x235866(0x1354),'group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0xc8)},{'match':_0x235866(0x4f98),'tag':_0x235866(0x317d),'reason':_0x235866(0x1daa)}],[{'match':_0x235866(0x3f1f),'tag':_0x235866(0x312),'reason':'money-and-money'},{'match':_0x235866(0x498c),'group':0x0,'tag':'money','reason':_0x235866(0x4ab9)},{'match':'#Value\x20(mark|rand|won|rub|ore)','tag':_0x235866(0x3283),'reason':_0x235866(0x4c92)},{'match':_0x235866(0x48a2),'tag':_0x235866(0x339e),'reason':_0x235866(0xceb)},{'match':_0x235866(0x39c2),'tag':_0x235866(0x339e),'reason':_0x235866(0x2286)}],[{'match':_0x235866(0x3d07),'group':0x0,'tag':_0x235866(0x3793),'reason':'millionth'},{'match':_0x235866(0x4623),'group':0x0,'tag':_0x235866(0x3793),'reason':_0x235866(0x47b6)},{'match':'[half]\x20the','group':0x0,'tag':_0x235866(0x3793),'reason':_0x235866(0x4dd2)},{'match':_0x235866(0x24c0),'tag':_0x235866(0x3793),'reason':'and-a-half'},{'match':_0x235866(0x37f2),'tag':'Fraction','reason':'two-halves'},{'match':_0x235866(0x3803),'tag':_0x235866(0x3793),'reason':_0x235866(0xd23)},{'match':_0x235866(0x710),'tag':_0x235866(0x3793),'reason':'seven-fifths'},{'match':_0x235866(0x41b5),'group':0x0,'tag':_0x235866(0x3793),'reason':_0x235866(0x4901)},{'match':'[(#NumericValue\x20&&\x20#Ordinal)]\x20of\x20.','group':0x0,'tag':_0x235866(0x3793),'reason':_0x235866(0x4e71)},{'match':_0x235866(0x357a),'tag':_0x235866(0x3793),'reason':'a-ordinal'},{'match':_0x235866(0xc36),'tag':_0x235866(0x3793),'reason':_0x235866(0x3681)}],[{'match':_0x235866(0x1aca),'tag':_0x235866(0x283a),'reason':_0x235866(0x2d38)},{'match':_0x235866(0xce3),'group':0x0,'tag':_0x235866(0xa4f),'reason':_0x235866(0x1ff)},{'match':_0x235866(0xbb5),'tag':_0x235866(0x4db3),'reason':'1-800-Value'},{'match':_0x235866(0x2d74),'tag':'PhoneNumber','reason':_0x235866(0x2fcf)},{'match':_0x235866(0x6d5),'tag':_0x235866(0x13e8),'reason':'demonym-currency'},{'match':_0x235866(0x4228),'group':0x0,'tag':_0x235866(0x13e8),'reason':_0x235866(0x2e92)},{'match':_0x235866(0x479b),'group':0x0,'tag':_0x235866(0x312),'reason':'15\x20usd'},{'match':_0x235866(0x84f),'group':0x0,'tag':_0x235866(0x529),'reason':'second-noun'},{'match':'#Value+\x20[#Currency]','group':0x0,'tag':'Unit','reason':_0x235866(0x3ad0)},{'match':_0x235866(0x4557),'group':0x0,'tag':_0x235866(0x283a),'reason':_0x235866(0x1b8)},{'match':_0x235866(0x2b9d),'group':0x0,'tag':_0x235866(0x283a),'reason':_0x235866(0x4790)},{'match':_0x235866(0x1af0),'group':0x0,'tag':_0x235866(0x283a),'reason':_0x235866(0x73a)},{'match':'#Unit\x20an\x20hour','tag':_0x235866(0x283a),'reason':_0x235866(0x3705)},{'match':_0x235866(0x29e3),'tag':_0x235866(0xa4f),'reason':_0x235866(0x453b)},{'match':'#Value\x20(point|decimal)\x20#Value','tag':_0x235866(0xa4f),'reason':_0x235866(0x504a)},{'match':_0x235866(0x3fdd),'group':0x0,'tag':_0x235866(0xa4f),'reason':_0x235866(0x1a9d)},{'match':'#Multiple+\x20and\x20#Value','tag':_0x235866(0xa4f),'reason':_0x235866(0x4c89)},{'match':_0x235866(0x5a2),'group':0x0,'tag':'Unit','reason':_0x235866(0x2a18)},{'match':_0x235866(0x50c3),'group':0x0,'tag':_0x235866(0x283a),'reason':'square-miles'},{'match':'^[#Value]\x20(#Determiner|#Gerund)','group':0x0,'tag':_0x235866(0x766),'unTag':'Value','reason':_0x235866(0x12d6)}],[{'match':_0x235866(0x19a7),'group':0x0,'tag':_0x235866(0xcbd),'reason':_0x235866(0x27e5)},{'match':_0x235866(0x26f4),'tag':_0x235866(0x29bf),'reason':_0x235866(0x2cc7),'safe':!0x0},{'match':_0x235866(0x2fcd),'group':0x0,'tag':_0x235866(0x29bf),'reason':'first-noun-last'},{'match':_0x235866(0x6f3),'tag':_0x235866(0x29bf),'reason':_0x235866(0x3a34),'safe':!0x0},{'match':_0x235866(0x3f28),'tag':_0x235866(0x29bf),'reason':'acronym-lastname','safe':!0x0},{'match':_0x235866(0x2909),'tag':_0x235866(0x29bf),'reason':_0x235866(0x46f8)},{'match':_0x235866(0x3221),'tag':_0x235866(0x29bf),'reason':_0x235866(0x1426)},{'match':_0x235866(0x276f),'tag':_0x235866(0x29bf),'reason':'roman-numeral'},{'match':_0x235866(0x3bc6),'group':0x0,'tag':['Acronym','Person'],'reason':_0x235866(0x1820)},{'match':'#Noun\x20van\x20der?\x20#Noun','tag':_0x235866(0x29bf),'reason':_0x235866(0x4748),'safe':!0x0},{'match':'(king|queen|prince|saint|lady)\x20of\x20#Noun','tag':_0x235866(0x29bf),'reason':_0x235866(0x2377),'safe':!0x0},{'match':_0x235866(0x225b),'tag':'Person','reason':'lady-place'},{'match':'(king|queen|prince|saint)\x20#ProperNoun','tag':_0x235866(0x29bf),'notIf':_0x235866(0x4a9),'reason':_0x235866(0x4cbe)},{'match':_0x235866(0xa8c),'tag':_0x235866(0x29bf),'reason':_0x235866(0x32bc),'safe':!0x0},{'match':_0x235866(0x2ae8),'tag':_0x235866(0x29bf),'reason':_0x235866(0x45d0)},{'match':'#FirstName\x20(bin|al)\x20#Noun','tag':_0x235866(0x29bf),'reason':'bill-al-noun'},{'match':_0x235866(0x3dfd),'tag':'Person','reason':_0x235866(0x230a)},{'match':'#FirstName\x20#FirstName\x20#ProperNoun','tag':_0x235866(0x29bf),'reason':'bill-firstname-title'},{'match':_0x235866(0x8d8),'tag':'Person','reason':'dr-john-Title'},{'match':_0x235866(0x3915),'tag':_0x235866(0x29bf),'reason':_0x235866(0x3c1a)},{'match':_0x235866(0x3e81),'tag':_0x235866(0x29bf),'reason':_0x235866(0x2dea),'safe':!0x0},{'match':'#ProperNoun\x20(de|du)\x20la?\x20#ProperNoun','tag':'Person','notIf':_0x235866(0x4a9),'reason':_0x235866(0x3a1c)},{'match':_0x235866(0x32b7),'tag':_0x235866(0x501),'reason':'title-acro-noun','safe':!0x0},{'match':_0x235866(0x39bc),'group':0x0,'tag':'Person','reason':_0x235866(0x366d),'safe':!0x0},{'match':_0x235866(0x13e2),'group':0x0,'tag':'Person','notIf':_0x235866(0x259c),'reason':_0x235866(0x12e9),'safe':!0x0},{'match':_0x235866(0x14ff),'group':0x0,'tag':_0x235866(0x396),'notIf':_0x235866(0x259c),'reason':_0x235866(0x50bc)},{'match':_0x235866(0xabc),'group':0x0,'tag':_0x235866(0x396),'reason':_0x235866(0x4474)},{'match':_0x235866(0x1e9e),'tag':_0x235866(0x29bf),'reason':_0x235866(0x36e0),'safe':!0x0},{'match':_0x235866(0x1f27),'group':0x0,'tag':_0x235866(0x396),'reason':'de-firstname'},{'match':_0x235866(0x476b),'group':0x0,'tag':'Honorific','reason':_0x235866(0x2adb)},{'match':_0x235866(0x2cdc),'group':0x0,'tag':[_0x235866(0xab3),_0x235866(0x29bf)],'reason':'ambg-honorifics'},{'match':_0x235866(0xe97),'group':0x0,'tag':_0x235866(0x396),'notIf':_0x235866(0x259c),'reason':_0x235866(0x50a2),'safe':!0x0},{'match':'[(his|her)\x20(majesty|honour|worship|excellency|honorable)]\x20#Person','group':0x0,'tag':_0x235866(0xab3),'reason':'his-excellency'},{'match':_0x235866(0x8b6),'tag':_0x235866(0xab3),'reason':'Lieutenant\x20colonel'},{'match':_0x235866(0x41d3),'tag':_0x235866(0xab3),'reason':_0x235866(0x3832)},{'match':'#Person\x20#RomanNumeral','tag':_0x235866(0x29bf),'reason':_0x235866(0x49b3)}],[{'match':'#FirstName\x20#Noun$','tag':_0x235866(0x4850),'notIf':_0x235866(0x2dc1),'reason':_0x235866(0x4ace)},{'match':_0x235866(0x40ca),'tag':'Person','reason':'jan-thierson'},{'match':_0x235866(0x2856),'tag':_0x235866(0x29bf),'reason':_0x235866(0x1412),'safe':!0x0},{'match':_0x235866(0x1488),'tag':'Organization','reason':'olive-garden'},{'match':_0x235866(0x4215),'tag':_0x235866(0x29bf),'reason':_0x235866(0x5b6),'ifNo':'#Actor'},{'match':'[%Person|Verb%]\x20(will|had|has|said|says|told|did|learned|wants|wanted)','group':0x0,'tag':_0x235866(0x29bf),'reason':_0x235866(0x3cad)},{'match':_0x235866(0x31f7),'group':0x0,'tag':_0x235866(0x3fae),'reason':_0x235866(0x11f5)},{'match':_0x235866(0x33e3),'group':0x0,'tag':'Place','reason':_0x235866(0x2544)},{'match':_0x235866(0x521),'group':0x0,'tag':_0x235866(0x41f2),'reason':'would-mark'},{'match':'#Adverb\x20[%Person|Verb%]','group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x2eff)},{'match':'[%Person|Verb%]\x20(#Adverb|#Comparative)','group':0x0,'tag':_0x235866(0x41f2),'reason':'drew-closer'},{'match':_0x235866(0x340b),'tag':_0x235866(0x29bf),'reason':_0x235866(0x3abb)},{'match':_0x235866(0x4f0a),'tag':'Person','reason':_0x235866(0x42b7)},{'match':_0x235866(0x659),'group':0x0,'tag':'Modal','reason':_0x235866(0xec0)},{'match':_0x235866(0x3b49),'tag':_0x235866(0x29bf),'reason':_0x235866(0x44c9)},{'match':'(#FirstName\x20&&\x20!#Possessive)\x20[#Singular]\x20#Verb','group':0x0,'safe':!0x0,'tag':_0x235866(0x396),'reason':_0x235866(0x1f75)},{'match':_0x235866(0x3855),'group':0x0,'safe':!0x0,'tag':_0x235866(0x29bf),'reason':_0x235866(0x2724)},{'match':_0x235866(0x38b4),'group':0x0,'unTag':'Person','reason':_0x235866(0x30b2)}],[{'match':_0x235866(0x2eac),'tag':_0x235866(0x2ccb),'reason':_0x235866(0x1e16)},{'match':_0x235866(0x2e97),'group':0x0,'tag':_0x235866(0x4217),'reason':'i-better'},{'match':_0x235866(0x4fc7),'group':0x0,'tag':'PresentTense','reason':_0x235866(0x108f)},{'match':_0x235866(0x1a9),'group':0x0,'tag':'PastTense','reason':_0x235866(0x436a)},{'match':_0x235866(0x15a0),'group':0x0,'tag':'Copula','reason':'will-be-copula'},{'match':_0x235866(0x30d0),'group':0x0,'tag':_0x235866(0x49fb),'reason':_0x235866(0x1877)},{'match':_0x235866(0x4798),'notIf':_0x235866(0x2e1),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x1a71)},{'match':_0x235866(0x4a8b),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x1621)},{'match':_0x235866(0x1bf6),'group':0x0,'tag':'Verb','reason':_0x235866(0x2209)},{'match':'[(subject|subjects|subjected)]\x20to','group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x29e8)},{'match':_0x235866(0x1a22),'group':0x0,'tag':'PresentTense','reason':_0x235866(0x4001)},{'match':'[open]\x20#Determiner','group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x4df6)},{'match':_0x235866(0x2df0),'group':0x0,'tag':_0x235866(0x2192),'reason':_0x235866(0x47b5)},{'match':_0x235866(0x473e),'group':0x0,'tag':_0x235866(0x1948),'reason':'had-been-broken'},{'match':_0x235866(0x35a0),'group':0x0,'tag':_0x235866(0x1324),'reason':_0x235866(0xc88)},{'match':_0x235866(0xf2d),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x4b69)},{'match':_0x235866(0x3e0b),'group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x45ff)},{'match':_0x235866(0x6b),'group':0x0,'tag':_0x235866(0x2192),'notIf':_0x235866(0x1170),'reason':'have-read'},{'match':_0x235866(0x4f9e),'group':0x0,'tag':_0x235866(0x2192),'reason':_0x235866(0x760)},{'match':_0x235866(0x3bf0),'group':0x0,'tag':_0x235866(0x17a6),'reason':'sounds-fun'},{'match':'[(look|looks)]\x20#Adjective','group':0x0,'tag':'PresentTense','reason':_0x235866(0x3d9)},{'match':_0x235866(0x4a62),'group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x20c6)},{'match':_0x235866(0x66e),'tag':'Modal\x20#PastTense','reason':'read-read'},{'match':_0x235866(0x1ca5),'group':0x0,'tag':_0x235866(0x9bb),'reason':'was-under-cooked'},{'match':_0x235866(0x3858),'group':0x0,'tag':'Verb','reason':_0x235866(0x4837)},{'match':'[damn]\x20(#Determiner|#Possessive|them)','group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x22d0)},{'match':_0x235866(0x3d20),'group':0x0,'tag':'Verb','reason':_0x235866(0x23d3)},{'match':'#Plural\x20that\x20%Noun|Verb%','tag':_0x235866(0x1a55),'reason':_0x235866(0x39f)},{'match':_0x235866(0x3633),'group':0x0,'tag':_0x235866(0x17a6),'reason':_0x235866(0x309a)},{'match':_0x235866(0x40da),'group':0x0,'tag':'Infinitive','reason':_0x235866(0xce2)},{'match':'[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)]\x20#Verb','group':0x0,'tag':['Verb','Prefix'],'notIf':'(#Copula|#PhrasalVerb)','reason':_0x235866(0x3bf3)},{'match':_0x235866(0xb0f),'group':0x0,'tag':_0x235866(0x2192),'reason':_0x235866(0x1381)},{'match':'[%Adj|Past%]\x20and\x20#PastTense','group':0x0,'tag':_0x235866(0x2192),'reason':_0x235866(0x1381)},{'match':_0x235866(0xd6f),'group':0x0,'tag':'Adjective','reason':_0x235866(0x387f)},{'match':'to\x20[%Noun|Verb%]\x20#Preposition','group':0x0,'tag':'Infinitive','reason':_0x235866(0x286c)}],[{'match':'(slowly|quickly)\x20[#Adjective]','group':0x0,'tag':'Verb','reason':'slowly-adj'},{'match':_0x235866(0x4616),'group':0x0,'tag':'PresentTense','reason':_0x235866(0xb5e)},{'match':_0x235866(0x4cd7),'group':0x0,'tag':'Adjective','reason':_0x235866(0x2059)},{'match':_0x235866(0x3056),'group':0x0,'tag':_0x235866(0x17a6),'reason':_0x235866(0x2d6d)},{'match':_0x235866(0x292),'tag':'Auxiliary\x20Infinitive','reason':_0x235866(0x41b2)},{'match':_0x235866(0x59a),'group':0x0,'tag':_0x235866(0x41f2),'reason':_0x235866(0x47fd)},{'match':_0x235866(0x1220),'group':0x0,'tag':_0x235866(0x41f2),'reason':'adj-to'},{'match':'#Copula\x20[#Adjective]\x20(well|badly|quickly|slowly)','group':0x0,'tag':'Verb','reason':'done-well'},{'match':_0x235866(0x115b),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xfee)},{'match':_0x235866(0x1340),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x11d8)},{'match':_0x235866(0x31a9),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x3f17)},{'match':'got\x20#Adverb?\x20[#PastTense]\x20of','group':0x0,'tag':'Adjective','reason':_0x235866(0x9ed)},{'match':_0x235866(0x3c54),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x3265)},{'match':_0x235866(0x385d),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x25e8)},{'match':'a\x20(bit|little|tad)\x20[#PastTense\x20#Particle?]','group':0x0,'tag':'Adjective','reason':_0x235866(0x4169)},{'match':'not\x20be\x20[%Adj|Past%\x20#Particle?]','group':0x0,'tag':_0x235866(0x19b5),'reason':'do-not-be-confused'},{'match':_0x235866(0x4945),'group':0x0,'tag':_0x235866(0x19b5),'reason':'is-just-right'},{'match':_0x235866(0x4ceb),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x790)},{'match':_0x235866(0x1609),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x2af4)},{'match':_0x235866(0x74f),'group':0x0,'tag':_0x235866(0x19b5),'notIf':_0x235866(0x6f4),'reason':_0x235866(0x2f24)},{'match':'(become|became|becoming|becomes)\x20[#Verb]','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x332)},{'match':_0x235866(0x4ccf),'group':0x0,'tag':'Adjective','reason':_0x235866(0x33a5)},{'match':'#Copula\x20#Pronoun\x20[%Adj|Present%]','group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xc7e)},{'match':_0x235866(0x2be3),'group':0x0,'tag':'Adjective','notIf':_0x235866(0x427b),'reason':'is-crowded-with'},{'match':_0x235866(0x15a2),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0xbe6)}],[{'match':_0x235866(0x3b67),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x21f6)},{'match':_0x235866(0x16a3),'group':0x0,'tag':_0x235866(0x2126),'reason':'copula-walking'},{'match':_0x235866(0x1f5b),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x700)},{'match':_0x235866(0x70),'group':0x0,'tag':_0x235866(0x2126),'reason':'would-have'},{'match':_0x235866(0x1405),'group':0x0,'tag':_0x235866(0x2126),'reason':'had-walked'},{'match':_0x235866(0x18c7),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x1587)},{'match':_0x235866(0x24f8),'group':0x0,'tag':[_0x235866(0x2126),_0x235866(0x41f2)],'reason':_0x235866(0x34b6)},{'match':_0x235866(0x4c59),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x458b)},{'match':_0x235866(0x3f38),'group':0x0,'tag':_0x235866(0x2126),'reason':'had-been'},{'match':_0x235866(0x1c1),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x2ea1)},{'match':_0x235866(0x207f),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x832)},{'match':_0x235866(0xd39),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x2012)},{'match':_0x235866(0x4258),'group':0x0,'tag':_0x235866(0x2126),'reason':'will-be-x'},{'match':_0x235866(0x2e6d),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x2ddf)},{'match':_0x235866(0x4034),'group':0x0,'tag':_0x235866(0x2126),'reason':'used-to-walk'},{'match':_0x235866(0x33f7),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x16a8)},{'match':'#Imperative\x20[(me|him|her)]','group':0x0,'tag':_0x235866(0x16cd),'reason':_0x235866(0x2610)},{'match':_0x235866(0x2879),'group':0x0,'tag':_0x235866(0x8cb),'reason':_0x235866(0xc67)},{'match':'[(been|had|became|came)]\x20#PastTense','group':0x0,'notIf':_0x235866(0xb01),'tag':'Auxiliary','reason':_0x235866(0x31b0)},{'match':_0x235866(0x125c),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x2e15)},{'match':_0x235866(0x2b80),'group':0x0,'tag':_0x235866(0x2126),'reason':_0x235866(0x2876)},{'match':_0x235866(0x14ea),'group':0x0,'tag':_0x235866(0x4217),'notIf':_0x235866(0x1079),'reason':_0x235866(0x2387)},{'match':_0x235866(0x2b44),'tag':_0x235866(0x27bf),'reason':_0x235866(0x4c13)}],[{'match':'(#Verb\x20&&\x20@hasHyphen)\x20up','tag':'PhrasalVerb','reason':'foo-up'},{'match':'(#Verb\x20&&\x20@hasHyphen)\x20off','tag':_0x235866(0x4634),'reason':_0x235866(0x3150)},{'match':_0x235866(0x50ea),'tag':_0x235866(0x4634),'reason':_0x235866(0x90)},{'match':'(#Verb\x20&&\x20@hasHyphen)\x20out','tag':_0x235866(0x4634),'reason':_0x235866(0x1db2)},{'match':_0x235866(0x781),'notIf':_0x235866(0x3076),'tag':_0x235866(0x23aa),'reason':_0x235866(0x2ad2)},{'match':_0x235866(0xa98),'group':0x0,'tag':'PhrasalVerb','reason':_0x235866(0x3a3a)},{'match':_0x235866(0x4d5c),'tag':_0x235866(0x29d2),'notIf':'#PhrasalVerb','reason':'come-down$'},{'match':'help\x20[(stop|end|make|start)]','group':0x0,'tag':_0x235866(0x24ba),'reason':_0x235866(0x43f4)},{'match':_0x235866(0x3ce1),'tag':_0x235866(0x3c4f),'unTag':'PhrasalVerb','reason':_0x235866(0x79c)},{'match':'[(stop|start|finish|help)]\x20#Gerund','group':0x0,'tag':_0x235866(0x24ba),'reason':'start-listening'},{'match':_0x235866(0x4f3f),'group':0x0,'tag':'Adverb','reason':'phrasal-pronoun-advb'}],[{'match':_0x235866(0x4120),'notIf':_0x2be3d5,'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x48bc)},{'match':_0x235866(0x1314),'group':0x0,'tag':_0x235866(0x1798),'reason':'please-go'},{'match':_0x235866(0x371),'group':0x0,'tag':'Imperative','reason':'just-go'},{'match':_0x235866(0x479e),'notIf':_0x2be3d5,'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x1c9f)},{'match':_0x235866(0x2fd6),'notIf':_0x2be3d5,'group':0x0,'tag':_0x235866(0x1798),'reason':'do-it-please'},{'match':_0x235866(0x42c8),'group':0x0,'tag':_0x235866(0x1798),'notIf':_0x235866(0x3624),'reason':_0x235866(0x248)},{'match':_0x235866(0x5e0),'group':0x0,'tag':'Imperative','reason':_0x235866(0x22b2)},{'match':_0x235866(0x3aec),'group':0x0,'notIf':_0x235866(0x1fb0),'tag':_0x235866(0x1798),'reason':'eat-my-shorts'},{'match':_0x235866(0x39af),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x2610)},{'match':'^[#Infinitive]\x20#Adjective\x20#Noun$','group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0xba3)},{'match':_0x235866(0x3fc0),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x49eb)},{'match':_0x235866(0x3ade),'tag':_0x235866(0x1798),'reason':'go'},{'match':'^(somebody|everybody)\x20[#Infinitive]','group':0x0,'tag':_0x235866(0x1798),'reason':'somebody-call'},{'match':_0x235866(0x1563),'group':0x0,'tag':_0x235866(0x1798),'reason':'lets-leave'},{'match':_0x235866(0x155b),'group':0x0,'tag':_0x235866(0x1798),'reason':'shut-the-door'},{'match':_0x235866(0x15a1),'group':0x0,'tag':_0x235866(0x1798),'reason':'turn-off-the-light'},{'match':_0x235866(0x4cd5),'group':0x0,'tag':'Imperative','reason':_0x235866(0x15c2)},{'match':_0x235866(0x1fb1),'group':0x0,'tag':_0x235866(0x1798),'reason':'would-you-'},{'match':_0x235866(0x135f),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x15ef)},{'match':_0x235866(0x31d0),'tag':_0x235866(0x1798),'notIf':'on','reason':_0x235866(0xe21)},{'match':_0x235866(0x164f),'tag':_0x235866(0x3cde),'notIf':_0x235866(0xb01),'reason':_0x235866(0x2b16)},{'match':_0x235866(0x10ac),'tag':_0x235866(0x1798),'reason':_0x235866(0x1320)},{'match':_0x235866(0x3a57),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x615)},{'match':_0x235866(0x1879),'group':0x0,'tag':_0x235866(0x1798),'reason':'keep-it-cool'},{'match':_0x235866(0x1a00),'group':0x0,'tag':'Imperative','reason':'do-not-be'},{'match':_0x235866(0x843),'group':0x0,'tag':_0x235866(0x1798),'reason':'allow-yourself'},{'match':'[#Infinitive]\x20what\x20.','group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x1df6)},{'match':_0x235866(0x43eb),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x2894)},{'match':_0x235866(0x176d),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x3f0d)},{'match':'^[#Infinitive]\x20(and|or)\x20#Infinitive','group':0x0,'tag':'Imperative','reason':_0x235866(0x1a52)},{'match':'^[%Noun|Verb%]\x20to','group':0x0,'tag':'Imperative','reason':_0x235866(0x4ef2)},{'match':_0x235866(0x1e4a),'group':0x0,'tag':_0x235866(0x1798),'reason':_0x235866(0x2b38)},{'match':_0x235866(0x3270),'group':0x0,'tag':'Imperative','reason':_0x235866(0x1794)},{'match':_0x235866(0x2601),'group':0x0,'tag':'Imperative','reason':_0x235866(0x49b5)}],[{'match':_0x235866(0x13f8),'group':0x0,'tag':_0x235866(0x1e19),'reason':'that-were-growing'},{'match':_0x235866(0x12e4),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x2a66)}],[{'match':_0x235866(0x384f),'tag':'#Pronoun\x20#Copula','reason':_0x235866(0x384f)},{'match':_0x235866(0x1e31),'group':0x0,'tag':_0x235866(0x246d),'reason':_0x235866(0x4dae)},{'match':'[had]\x20#Noun+\x20#PastTense','group':0x0,'tag':_0x235866(0x2451),'reason':_0x235866(0x1a51)},{'match':_0x235866(0x4db6),'group':0x0,'tag':_0x235866(0x2451),'reason':_0x235866(0x4897)},{'match':_0x235866(0x11fa),'tag':'Adjective\x20Noun\x20Conjunction','reason':_0x235866(0x4173)},{'match':'of\x20some\x20sort','tag':_0x235866(0x4095),'reason':_0x235866(0x13ec)},{'match':_0x235866(0x340a),'group':0x0,'tag':_0x235866(0x246d),'reason':_0x235866(0x19d8)},{'match':_0x235866(0x1585),'group':0x0,'tag':_0x235866(0x1213),'reason':_0x235866(0x3373)},{'match':_0x235866(0x3501),'group':0x0,'tag':'Adjective','reason':_0x235866(0x21b7)},{'match':_0x235866(0x3aaa),'group':0x0,'tag':'Pronoun','reason':_0x235866(0x35e0)},{'match':_0x235866(0x2a73),'group':0x0,'tag':_0x235866(0x4290),'reason':_0x235866(0x4b6)},{'match':_0x235866(0x2175),'group':0x0,'tag':'#Uncountable','reason':'plenty-of'},{'match':_0x235866(0x3fe8),'group':0x0,'tag':_0x235866(0x19b5),'reason':_0x235866(0x38bd)},{'match':_0x235866(0x1081),'group':0x0,'tag':_0x235866(0x4ab6),'reason':'there-is'},{'match':'#Copula\x20[there]\x20.','group':0x0,'tag':_0x235866(0x4ab6),'reason':_0x235866(0xe51)},{'match':'#Modal\x20#Adverb?\x20[there]','group':0x0,'tag':_0x235866(0x4ab6),'reason':'should-there'},{'match':_0x235866(0x1a8d),'group':0x0,'tag':_0x235866(0x12d4),'reason':_0x235866(0x89e)},{'match':_0x235866(0x190b),'group':0x0,'tag':'QuestionWord','reason':_0x235866(0x37fe)},{'match':_0x235866(0x1bb8),'group':0x0,'tag':'Preposition','reason':'the-x-who'},{'match':_0x235866(0x76e),'group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0x388)},{'match':'a\x20[while]','group':0x0,'tag':'Noun','reason':_0x235866(0xab2)},{'match':_0x235866(0xe39),'tag':'#Infinitive\x20#QuestionWord','reason':'guess-who'},{'match':'[fucking]\x20!#Verb','group':0x0,'tag':_0x235866(0x58f),'reason':'f-as-gerund'}],[{'match':_0x235866(0x3ad),'tag':_0x235866(0x28cf),'reason':_0x235866(0x4144)},{'match':_0x235866(0x161e),'tag':_0x235866(0x28cf),'reason':_0x235866(0x4afe)},{'match':_0x235866(0x2c84),'tag':_0x235866(0x28cf),'reason':_0x235866(0x19f1),'safe':!0x0},{'match':_0x235866(0x3f34),'tag':'Organization','reason':_0x235866(0x357d)},{'match':_0x235866(0x1d34),'tag':_0x235866(0x28cf),'notIf':'#FirstName','reason':'titlecase-org'},{'match':_0x235866(0xbc0),'tag':_0x235866(0x28cf),'reason':_0x235866(0x31fd)},{'match':_0x235866(0x223e),'group':0x0,'tag':'Organization','reason':_0x235866(0x3df3),'safe':!0x0},{'match':_0x235866(0x2343),'tag':_0x235866(0x28cf),'reason':_0x235866(0x7c0)},{'match':_0x235866(0x40e6),'tag':'Organization','reason':_0x235866(0x4be4)},{'match':_0x235866(0x2312),'tag':_0x235866(0x28cf),'reason':_0x235866(0x3cb1)},{'match':_0x235866(0x592),'tag':_0x235866(0x28cf),'reason':'global-org'},{'match':_0x235866(0x4f31),'tag':'School','reason':_0x235866(0x2a76)},{'match':_0x235866(0x3d41),'tag':'SportsTeam','reason':_0x235866(0x209)},{'match':_0x235866(0x2674),'tag':_0x235866(0x18d1),'reason':_0x235866(0x458)},{'match':_0x235866(0xc55),'tag':_0x235866(0x18d1),'reason':_0x235866(0x3f78)}],[{'match':'(west|north|south|east|western|northern|southern|eastern)+\x20#Place','tag':_0x235866(0x4bf7),'reason':_0x235866(0xf87)},{'match':_0x235866(0x2450),'group':0x0,'tag':_0x235866(0x4bf7),'reason':'us-state'},{'match':_0x235866(0xd1e),'group':0x0,'tag':_0x235866(0x4bf7),'reason':_0x235866(0x1734)},{'match':'#ProperNoun+\x20(cliff|place|range|pit|place|point|room|grounds|ruins)','tag':_0x235866(0x3fae),'reason':_0x235866(0x482a)},{'match':_0x235866(0x154b),'group':0x0,'tag':'Place','reason':_0x235866(0x2c58)},{'match':_0x235866(0x34f9),'tag':_0x235866(0x9d),'reason':'address-st'}],[{'match':_0x235866(0x2191),'group':0x0,'tag':'Conjunction','reason':'so-conj'},{'match':_0x235866(0x1cbf),'group':0x0,'tag':_0x235866(0x846),'reason':'how-he-is-x'},{'match':_0x235866(0xe83),'group':0x0,'tag':_0x235866(0x846),'reason':_0x235866(0x3e5b)},{'match':'#Verb\x20[that]\x20#Pronoun','group':0x0,'tag':_0x235866(0x846),'reason':_0x235866(0x654)},{'match':_0x235866(0x1ef2),'group':0x0,'tag':_0x235866(0x846),'reason':_0x235866(0x439a)},{'match':_0x235866(0x420d),'group':0x0,'tag':_0x235866(0x846),'reason':_0x235866(0x140e)},{'match':_0x235866(0x3885),'group':0x0,'tag':_0x235866(0x487d),'reason':_0x235866(0x4dc5)},{'match':_0x235866(0x497),'group':0x0,'tag':'Preposition','reason':_0x235866(0x2969)},{'match':_0x235866(0xaad),'group':0x0,'tag':'Preposition','reason':_0x235866(0x3940)},{'match':_0x235866(0x4724),'group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0x34ac)},{'match':_0x235866(0x1155),'group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0xbed)},{'match':'a\x20#Noun\x20[like]\x20(#Noun|#Determiner)','group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0x2b56)},{'match':'#Adverb\x20[like]','group':0x0,'tag':'Verb','reason':_0x235866(0x4530)},{'match':_0x235866(0x4774),'group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0xf9b)},{'match':_0x235866(0x4206),'group':0x0,'tag':'Preposition','reason':_0x235866(0x5127)},{'match':_0x235866(0xfff),'group':0x0,'tag':_0x235866(0xcf),'reason':_0x235866(0x46e4)},{'match':_0x235866(0x4dfd),'group':0x0,'tag':'Preposition','reason':_0x235866(0x35dd)},{'match':'[how]\x20(#Determiner|#Copula|#Modal|#PastTense)','group':0x0,'tag':'QuestionWord','reason':_0x235866(0x163)},{'match':_0x235866(0x288),'group':0x0,'tag':'Preposition','reason':_0x235866(0x195c)}],[{'match':'holy\x20(shit|fuck|hell)','tag':_0x235866(0x766),'reason':_0x235866(0x3a15)},{'match':_0x235866(0x406f),'group':0x0,'tag':_0x235866(0x766),'reason':_0x235866(0x125d)},{'match':_0x235866(0x12d2),'tag':_0x235866(0x766),'reason':_0x235866(0x3970)},{'match':_0x235866(0x4618),'group':0x0,'tag':'Expression','reason':_0x235866(0x12fc)},{'match':_0x235866(0x3488),'tag':_0x235866(0x766),'reason':_0x235866(0x1ba2)},{'match':_0x235866(0x39fb),'tag':_0x235866(0x766),'reason':_0x235866(0x465)},{'match':_0x235866(0x543),'tag':_0x235866(0x766),'reason':_0x235866(0x20dd)},{'match':_0x235866(0x1871),'group':0x0,'tag':_0x235866(0x766),'reason':_0x235866(0x2a08)}]),_0x1aa812=null;const _0x3bb854={'postTagger':function(_0x41f1de){const _0x1cb56f=_0x235866,{world:_0x127cfd}=_0x41f1de,{model:_0x2ddb64,methods:_0x39e3e3}=_0x127cfd;_0x1aa812=_0x1aa812||_0x39e3e3[_0x1cb56f(0x4116)]['buildNet'](_0x2ddb64['two'][_0x1cb56f(0xb72)],_0x127cfd);let _0x49debb=_0x39e3e3[_0x1cb56f(0x141f)][_0x1cb56f(0x31a3)](_0x41f1de[_0x1cb56f(0x46d9)])[_0x1cb56f(0x2c94)](_0x5387af=>{const _0x5e96d3=_0x1cb56f;let _0x4a8c88=_0x5387af[0x0];return[_0x4a8c88['index'][0x0],_0x4a8c88['index'][0x1],_0x4a8c88['index'][0x1]+_0x5387af[_0x5e96d3(0x205b)]];}),_0x2b726b=_0x41f1de[_0x1cb56f(0xf93)](_0x49debb);return _0x2b726b['cache'](),_0x2b726b[_0x1cb56f(0x1380)](_0x1aa812),_0x41f1de[_0x1cb56f(0x5d5)](),_0x41f1de[_0x1cb56f(0x483a)](),_0x41f1de;},'tagger':_0x320d92=>_0x320d92[_0x235866(0x210d)](['freeze',_0x235866(0x4ab0),'preTagger',_0x235866(0x3fd5),_0x235866(0x483a)])},_0x28798a={'api':function(_0x2df964){const _0x2d294f=_0x235866;_0x2df964[_0x2d294f(0x2b5c)]['confidence']=function(){const _0x134150=_0x2d294f;let _0x2628c0=0x0,_0x42c39b=0x0;return this[_0x134150(0x3f72)][_0x134150(0x4854)](_0x37fae1=>{const _0x1874a3=_0x134150;_0x37fae1[_0x1874a3(0x4854)](_0x3766a2=>{const _0x49aac4=_0x1874a3;_0x42c39b+=0x1,_0x2628c0+=_0x3766a2[_0x49aac4(0x2ab9)]||0x1;});}),0x0===_0x42c39b?0x1:(_0x3f0085=>Math[_0x134150(0x4d0c)](0x64*_0x3f0085)/0x64)(_0x2628c0/_0x42c39b);},_0x2df964[_0x2d294f(0x2b5c)][_0x2d294f(0x2c29)]=function(){const _0x1b15d7=_0x2d294f;return this[_0x1b15d7(0x210d)](['tagger']);};},'compute':_0x3bb854,'model':{'two':{'matches':_0x4e3394}},'hooks':[_0x235866(0x3fd5)]},_0x4a955e=_0x28798a,_0x87998=function(_0x1f8fad,_0x579a85){const _0x41d642=_0x235866;let _0x5ef36c=function(_0x2fdff7){const _0x1f39d8=a0_0x329b;return Object['keys'](_0x2fdff7[_0x1f39d8(0xcf4)])[_0x1f39d8(0x295e)](_0xe71a8=>!_0xe71a8['startsWith']('#')&&!_0xe71a8['startsWith']('%'));}(_0x579a85);if(0x0===_0x5ef36c[_0x41d642(0x205b)])return _0x1f8fad;_0x1f8fad[_0x41d642(0x1d5f)]||_0x1f8fad['cache']();let _0x478a14=_0x1f8fad[_0x41d642(0x1d5f)];return _0x1f8fad[_0x41d642(0x295e)]((_0x1d987f,_0x3ff62e)=>_0x5ef36c[_0x41d642(0x3f5f)](_0x23e961=>_0x478a14[_0x3ff62e][_0x41d642(0x5ec)](_0x23e961)));},_0x45d0c8=function(_0x47c0f9,_0x1bb415){const _0x23d542=_0x235866;let _0x59ed4c=_0x1bb415;_0x23d542(0x4f7c)==typeof _0x1bb415&&(_0x59ed4c=this[_0x23d542(0x4b51)]([{'match':_0x1bb415}]));let _0x58c6e5=this[_0x23d542(0x44f9)](_0x47c0f9),_0x23e330=_0x87998(_0x58c6e5,_0x59ed4c);return _0x23e330[_0x23d542(0x622)]?(_0x23e330[_0x23d542(0x210d)]([_0x23d542(0x1cf3),_0x23d542(0x2c29)]),_0x23e330[_0x23d542(0xdc0)](_0x1bb415)):_0x58c6e5[_0x23d542(0x80b)]();},_0x35d393={'lib':{'lazy':_0x45d0c8}},_0x4202d5=function(_0xc84b06,_0x805b56){let _0x2c8c43=_0x805b56;return _0xc84b06['forEach'](_0x50072b=>{const _0x25f0ae=a0_0x329b;_0x50072b['has']('#Infinitive')||(_0x2c8c43=function(_0x6bad6d,_0x144376){const _0x2fe2b6=a0_0x329b;let _0x2a73cd=(0x0,_0x6bad6d[_0x2fe2b6(0x8f)][_0x2fe2b6(0x141f)][_0x2fe2b6(0x560)]['verb']['conjugate'])(_0x144376,_0x6bad6d[_0x2fe2b6(0x2c3e)]);return _0x6bad6d[_0x2fe2b6(0x5ec)]('#Gerund')?_0x2a73cd[_0x2fe2b6(0x1e19)]:_0x6bad6d[_0x2fe2b6(0x5ec)]('#PastTense')?_0x2a73cd[_0x2fe2b6(0x2192)]:_0x6bad6d[_0x2fe2b6(0x5ec)](_0x2fe2b6(0x13b6))?_0x2a73cd['PresentTense']:_0x6bad6d[_0x2fe2b6(0x5ec)](_0x2fe2b6(0x58f))?_0x2a73cd[_0x2fe2b6(0x1e19)]:_0x144376;}(_0x50072b,_0x805b56)),_0x50072b[_0x25f0ae(0x6f5)](_0x2c8c43);}),_0xc84b06;},_0x59918c=function(_0x4b3910,_0x1760bf,_0x2be188){const _0x2abcb7=_0x235866;let _0x40e7eb=_0x4b3910[_0x2abcb7(0x29d0)](/ /g)[_0x2abcb7(0x2c94)](_0x5b1d5a=>_0x5b1d5a[_0x2abcb7(0x1a57)]()[_0x2abcb7(0x1d0e)]());_0x40e7eb=_0x40e7eb[_0x2abcb7(0x295e)](_0x2c0253=>_0x2c0253),_0x40e7eb=_0x40e7eb[_0x2abcb7(0x2c94)](_0x4f35da=>'{'+_0x4f35da+'}')[_0x2abcb7(0x379c)]('\x20');let _0x512b64=this['match'](_0x40e7eb);return _0x2be188&&(_0x512b64=_0x512b64['if'](_0x2be188)),_0x512b64['has'](_0x2abcb7(0x3b0e))?_0x4202d5(_0x512b64,_0x1760bf):_0x512b64['has'](_0x2abcb7(0x352b))?function(_0x479848,_0x28f1b4){const _0x3130fc=_0x2abcb7;let _0x223759=_0x28f1b4;_0x479848[_0x3130fc(0x5ec)](_0x3130fc(0x12d))&&(_0x223759=(0x0,_0x479848[_0x3130fc(0x8f)][_0x3130fc(0x141f)][_0x3130fc(0x560)][_0x3130fc(0x3c45)][_0x3130fc(0xca1)])(_0x28f1b4,_0x479848[_0x3130fc(0x2c3e)])),_0x479848[_0x3130fc(0x6f5)](_0x223759,{'possessives':!0x0});}(_0x512b64,_0x1760bf):_0x512b64['has']('#Adverb')?function(_0x5ea82e,_0x74c965){const _0x19729a=_0x2abcb7,{toAdverb:_0x40703c}=_0x5ea82e[_0x19729a(0x8f)]['two'][_0x19729a(0x560)][_0x19729a(0x2c03)];let _0x4b59f6=_0x40703c(_0x74c965);_0x4b59f6&&_0x5ea82e[_0x19729a(0x6f5)](_0x4b59f6);}(_0x512b64,_0x1760bf):_0x512b64['has']('#Adjective')?function(_0x4322c6,_0x2bf72a){const _0x17e445=_0x2abcb7,{toComparative:_0x3851d4,toSuperlative:_0x41dcfc}=_0x4322c6[_0x17e445(0x8f)][_0x17e445(0x141f)][_0x17e445(0x560)][_0x17e445(0x2c03)];let _0x280e54=_0x2bf72a;_0x4322c6['has'](_0x17e445(0x4567))?_0x280e54=_0x3851d4(_0x280e54,_0x4322c6[_0x17e445(0x2c3e)]):_0x4322c6[_0x17e445(0x5ec)](_0x17e445(0x21ac))&&(_0x280e54=_0x41dcfc(_0x280e54,_0x4322c6['model'])),_0x280e54&&_0x4322c6[_0x17e445(0x6f5)](_0x280e54);}(_0x512b64,_0x1760bf):this;},_0x346f0a={'api':function(_0x4280ab){const _0x1a5a4b=_0x235866;_0x4280ab[_0x1a5a4b(0x2b5c)][_0x1a5a4b(0x2df)]=_0x59918c;}};_0x3a5c82[_0x235866(0x4c30)](_0x3e3abe),_0x3a5c82[_0x235866(0x4c30)](_0x2a1a6d),_0x3a5c82[_0x235866(0x4c30)](_0x4a955e),_0x3a5c82['plugin'](_0x35d393),_0x3a5c82['plugin'](_0x346f0a);const _0x3d975f=_0x3a5c82,_0x2b01d4=function(_0x50aed8){const _0x4e4f8c=_0x235866,{fromComparative:_0x386195,fromSuperlative:_0x5ca14f}=_0x50aed8[_0x4e4f8c(0x8f)]['two'][_0x4e4f8c(0x560)][_0x4e4f8c(0x2c03)];let _0x35a61a=_0x50aed8[_0x4e4f8c(0x2f35)](_0x4e4f8c(0x4cb));return _0x50aed8[_0x4e4f8c(0x5ec)](_0x4e4f8c(0x4567))?_0x386195(_0x35a61a,_0x50aed8['model']):_0x50aed8[_0x4e4f8c(0x5ec)]('#Superlative')?_0x5ca14f(_0x35a61a,_0x50aed8['model']):_0x35a61a;},_0x31882f={'api':function(_0x4e78cb){const _0x467039=_0x235866;class _0x5bb2bd extends _0x4e78cb{constructor(_0xf6c036,_0xdbc3f0,_0x54f592){const _0x5210cb=a0_0x329b;super(_0xf6c036,_0xdbc3f0,_0x54f592),this[_0x5210cb(0x3784)]='Adjectives';}[_0x467039(0x25b9)](_0x34c47f={}){const _0x3aa8bb=_0x467039,{toAdverb:_0x586bbd,toNoun:_0x297c1a,toSuperlative:_0xa7148c,toComparative:_0x5eb7a0}=this[_0x3aa8bb(0x8f)][_0x3aa8bb(0x141f)][_0x3aa8bb(0x560)][_0x3aa8bb(0x2c03)];return _0x34c47f[_0x3aa8bb(0x4cb)]=!0x0,this[_0x3aa8bb(0x2c94)](_0x364397=>{const _0x50460f=_0x3aa8bb;let _0x255ed9=_0x364397['toView']()[_0x50460f(0x25b9)](_0x34c47f)[0x0]||{},_0x182d2d=_0x2b01d4(_0x364397);return _0x255ed9['adjective']={'adverb':_0x586bbd(_0x182d2d,this[_0x50460f(0x2c3e)]),'noun':_0x297c1a(_0x182d2d,this[_0x50460f(0x2c3e)]),'superlative':_0xa7148c(_0x182d2d,this[_0x50460f(0x2c3e)]),'comparative':_0x5eb7a0(_0x182d2d,this['model'])},_0x255ed9;},[]);}['adverbs'](){const _0x55f882=_0x467039;return this[_0x55f882(0x19f2)](_0x55f882(0x287e))['concat'](this[_0x55f882(0x1f69)](_0x55f882(0x1065)));}[_0x467039(0x431b)](_0x1f7301){const _0x3412c8=_0x467039,{toComparative:_0xf927a2,toSuperlative:_0x293daf,toNoun:_0x3e5e3d,toAdverb:_0x517078}=this[_0x3412c8(0x8f)]['two']['transform']['adjective'];return this[_0x3412c8(0x2ead)](_0x1f7301)['map'](_0x2d6022=>{const _0x33f6e7=_0x3412c8;let _0x217815=_0x2b01d4(_0x2d6022);return{'Adjective':_0x217815,'Comparative':_0xf927a2(_0x217815,this[_0x33f6e7(0x2c3e)]),'Superlative':_0x293daf(_0x217815,this[_0x33f6e7(0x2c3e)]),'Noun':_0x3e5e3d(_0x217815,this[_0x33f6e7(0x2c3e)]),'Adverb':_0x517078(_0x217815,this[_0x33f6e7(0x2c3e)])};},[]);}['toComparative'](_0x10a5f3){const _0x5f20b3=_0x467039,{toComparative:_0x4f5c43}=this[_0x5f20b3(0x8f)]['two'][_0x5f20b3(0x560)][_0x5f20b3(0x2c03)];return this[_0x5f20b3(0x2ead)](_0x10a5f3)[_0x5f20b3(0x2c94)](_0x83cd51=>{const _0x47ccb3=_0x5f20b3;let _0x197094=_0x2b01d4(_0x83cd51),_0x2c5409=_0x4f5c43(_0x197094,this[_0x47ccb3(0x2c3e)]);return _0x83cd51['replaceWith'](_0x2c5409);});}['toSuperlative'](_0x9a8bb2){const _0x30b5f0=_0x467039,{toSuperlative:_0x557fce}=this[_0x30b5f0(0x8f)][_0x30b5f0(0x141f)][_0x30b5f0(0x560)][_0x30b5f0(0x2c03)];return this[_0x30b5f0(0x2ead)](_0x9a8bb2)[_0x30b5f0(0x2c94)](_0x4649cc=>{const _0x1fb79e=_0x30b5f0;let _0x1a4110=_0x2b01d4(_0x4649cc),_0x48c6ae=_0x557fce(_0x1a4110,this[_0x1fb79e(0x2c3e)]);return _0x4649cc[_0x1fb79e(0x6f5)](_0x48c6ae);});}[_0x467039(0x14ad)](_0x304dcd){const _0x4540d9=_0x467039,{toAdverb:_0x4167af}=this[_0x4540d9(0x8f)][_0x4540d9(0x141f)][_0x4540d9(0x560)][_0x4540d9(0x2c03)];return this[_0x4540d9(0x2ead)](_0x304dcd)['map'](_0x541403=>{const _0xed0e09=_0x4540d9;let _0x26f548=_0x2b01d4(_0x541403),_0x2f71cf=_0x4167af(_0x26f548,this[_0xed0e09(0x2c3e)]);return _0x541403[_0xed0e09(0x6f5)](_0x2f71cf);});}[_0x467039(0x270)](_0x1ef907){const _0x1feb7c=_0x467039,{toNoun:_0x425d53}=this[_0x1feb7c(0x8f)][_0x1feb7c(0x141f)][_0x1feb7c(0x560)][_0x1feb7c(0x2c03)];return this[_0x1feb7c(0x2ead)](_0x1ef907)[_0x1feb7c(0x2c94)](_0x5b5586=>{const _0x420dec=_0x1feb7c;let _0x4caa40=_0x2b01d4(_0x5b5586),_0x5343c7=_0x425d53(_0x4caa40,this[_0x420dec(0x2c3e)]);return _0x5b5586[_0x420dec(0x6f5)](_0x5343c7);});}}_0x4e78cb[_0x467039(0x2b5c)]['adjectives']=function(_0x15c120){const _0x77c92e=_0x467039;let _0xdf5799=this[_0x77c92e(0xdc0)]('#Adjective');return _0xdf5799=_0xdf5799['getNth'](_0x15c120),new _0x5bb2bd(_0xdf5799['document'],_0xdf5799[_0x77c92e(0x1d95)]);},_0x4e78cb[_0x467039(0x2b5c)][_0x467039(0xb85)]=function(_0x5196a1){const _0x8fe8c7=_0x467039;let _0x356683=this[_0x8fe8c7(0xdc0)](_0x8fe8c7(0x21ac));return _0x356683=_0x356683[_0x8fe8c7(0x2ead)](_0x5196a1),new _0x5bb2bd(_0x356683[_0x8fe8c7(0x46d9)],_0x356683['pointer']);},_0x4e78cb[_0x467039(0x2b5c)][_0x467039(0x4197)]=function(_0x1cf5fc){const _0x332d55=_0x467039;let _0xd62fa9=this['match'](_0x332d55(0x4567));return _0xd62fa9=_0xd62fa9['getNth'](_0x1cf5fc),new _0x5bb2bd(_0xd62fa9['document'],_0xd62fa9[_0x332d55(0x1d95)]);};}},_0x5a5ffd={'api':function(_0x1b2fb1){const _0x4492cd=_0x235866;class _0x3ebdea extends _0x1b2fb1{constructor(_0x2e65fd,_0x4a4f89,_0x25729d){const _0x57a817=a0_0x329b;super(_0x2e65fd,_0x4a4f89,_0x25729d),this[_0x57a817(0x3784)]=_0x57a817(0x5053);}[_0x4492cd(0x431b)](_0x51adda){const _0x4bf3b0=_0x4492cd;return this['getNth'](_0x51adda)[_0x4bf3b0(0x2c94)](_0x5019a9=>{const _0xb8972d=_0x4bf3b0;let _0x493979=function(_0x37fdec){const _0x405a18=a0_0x329b;return _0x37fdec[_0x405a18(0x210d)](_0x405a18(0xdf8))[_0x405a18(0x2f35)](_0x405a18(0xdf8));}(_0x5019a9);return{'Adverb':_0x5019a9[_0xb8972d(0x2f35)](_0xb8972d(0x4cb)),'Adjective':_0x493979};},[]);}[_0x4492cd(0x25b9)](_0x1adcf1={}){const _0x56a0e3=_0x4492cd,_0x16857a=this[_0x56a0e3(0x8f)][_0x56a0e3(0x141f)][_0x56a0e3(0x560)][_0x56a0e3(0x2c03)][_0x56a0e3(0x41b)];return _0x1adcf1[_0x56a0e3(0x4cb)]=!0x0,this[_0x56a0e3(0x2c94)](_0x4919b8=>{const _0x1d71da=_0x56a0e3;let _0x404155=_0x4919b8[_0x1d71da(0xc6b)]()[_0x1d71da(0x25b9)](_0x1adcf1)[0x0]||{};return _0x404155[_0x1d71da(0x1422)]={'adjective':_0x16857a(_0x404155[_0x1d71da(0x4cb)])},_0x404155;},[]);}}_0x1b2fb1[_0x4492cd(0x2b5c)][_0x4492cd(0x2143)]=function(_0x4c78a1){const _0x1a80c8=_0x4492cd;let _0x595255=this[_0x1a80c8(0xdc0)]('#Adverb');return _0x595255=_0x595255['getNth'](_0x4c78a1),new _0x3ebdea(_0x595255[_0x1a80c8(0x46d9)],_0x595255[_0x1a80c8(0x1d95)]);};}},_0x27aab7=function(_0x442e92){const _0x1bd4ec=_0x235866;let _0x5d4b09=this;_0x5d4b09=function(_0x2def05){const _0x225943=a0_0x329b;let _0x1f660d=_0x2def05[_0x225943(0x1856)]();return _0x1f660d=_0x1f660d[_0x225943(0x295e)](_0x163ef8=>_0x163ef8[_0x225943(0x4e7b)]()>=0x3&&_0x163ef8['has'](_0x225943(0x3b0e))&&_0x163ef8[_0x225943(0x5ec)]('#Noun')),_0x2def05['splitOn'](_0x1f660d);}(_0x5d4b09),_0x5d4b09=function(_0x12c77e){const _0x5e8aee=a0_0x329b;let _0x51f728=_0x12c77e[_0x5e8aee(0x3e0)]();return _0x51f728=_0x51f728[_0x5e8aee(0x295e)](_0x260edc=>_0x260edc[_0x5e8aee(0x4e7b)]()>=0x3&&_0x260edc[_0x5e8aee(0x5ec)](_0x5e8aee(0x3b0e))&&_0x260edc[_0x5e8aee(0x5ec)](_0x5e8aee(0x352b))),_0x12c77e[_0x5e8aee(0x3392)](_0x51f728);}(_0x5d4b09),_0x5d4b09=function(_0x1aa69a){const _0x554bab=a0_0x329b;let _0x4b9dd6=_0x1aa69a[_0x554bab(0xdc0)]('@hasComma');return _0x4b9dd6=_0x4b9dd6[_0x554bab(0x295e)](_0x2b3b56=>{const _0x1175cb=_0x554bab;if(0x1===_0x2b3b56[_0x1175cb(0x4da5)]('.')[_0x1175cb(0x4e7b)]())return!0x1;if(0x1===_0x2b3b56['growRight'](_0x1175cb(0x3795))[_0x1175cb(0x4e7b)]())return!0x1;let _0x1da09c=_0x2b3b56[_0x1175cb(0x1367)]('.');return _0x1da09c=_0x1da09c['ifNo'](_0x1175cb(0x375d)),_0x1da09c=_0x1da09c[_0x1175cb(0x4641)](_0x1175cb(0x3dad)),_0x1da09c=_0x1da09c['ifNo']('(#City\x20&&\x20@hasComma)\x20#Country'),_0x1da09c=_0x1da09c[_0x1175cb(0x4641)](_0x1175cb(0x6aa)),_0x1da09c=_0x1da09c[_0x1175cb(0x4641)]('(#Date+\x20&&\x20@hasComma)\x20#Value'),_0x1da09c=_0x1da09c[_0x1175cb(0x4641)]('(#Adjective\x20&&\x20@hasComma)\x20#Adjective'),_0x1da09c[_0x1175cb(0x622)];}),_0x1aa69a[_0x554bab(0x2810)](_0x4b9dd6);}(_0x5d4b09),_0x5d4b09=_0x5d4b09['splitAfter'](_0x1bd4ec(0x596)),_0x5d4b09=_0x5d4b09['splitAfter']('^#Pronoun\x20(said|says)'),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x2cff)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x2fd)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x175b)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x38f2)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x4396)),_0x5d4b09=_0x5d4b09['splitBefore'](_0x1bd4ec(0x4082)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x26bf)),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)]('(whereas|whose)'),_0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1bd4ec(0x4eb8)),_0x5d4b09=_0x5d4b09['splitBefore'](_0x1bd4ec(0x2692));let _0x2792ca=_0x5d4b09[_0x1bd4ec(0xdc0)](_0x1bd4ec(0x42bb),0x0);_0x2792ca[_0x1bd4ec(0x622)]&&(_0x5d4b09=_0x5d4b09['splitBefore'](_0x2792ca));let _0x1a09a8=_0x5d4b09['if'](_0x1bd4ec(0xc5b))[_0x1bd4ec(0xdc0)]('then');return _0x5d4b09=_0x5d4b09[_0x1bd4ec(0x5f2)](_0x1a09a8),_0x1bd4ec(0x1ed7)==typeof _0x442e92&&(_0x5d4b09=_0x5d4b09['get'](_0x442e92)),_0x5d4b09;},_0x57bf53=function(_0x2ed40f){const _0x58aea5=_0x235866;let _0x209581=[],_0x33a675=null;return _0x2ed40f['clauses']()['docs'][_0x58aea5(0x4854)](_0x49345f=>{_0x49345f['forEach'](_0x2943cd=>{const _0x398a64=a0_0x329b;_0x2943cd[_0x398a64(0x1637)]&&_0x2943cd[_0x398a64(0x1637)]===_0x33a675?_0x209581[_0x209581[_0x398a64(0x205b)]-0x1][0x2]=_0x2943cd['index'][0x1]+0x1:(_0x33a675=_0x2943cd['chunk'],_0x209581[_0x398a64(0x4131)]([_0x2943cd[_0x398a64(0x1cf3)][0x0],_0x2943cd[_0x398a64(0x1cf3)][0x1],_0x2943cd[_0x398a64(0x1cf3)][0x1]+0x1]));}),_0x33a675=null;}),_0x2ed40f[_0x58aea5(0xf93)](_0x209581);},_0x7fd6b0=function(_0x1187ba){const _0x206f12=_0x235866;class _0xca5df3 extends _0x1187ba{constructor(_0x26f2a9,_0x2bca54,_0x3553f0){const _0x4990af=a0_0x329b;super(_0x26f2a9,_0x2bca54,_0x3553f0),this[_0x4990af(0x3784)]=_0x4990af(0x2af);}['isVerb'](){const _0x3d77af=a0_0x329b;return this[_0x3d77af(0x295e)](_0x4274fb=>_0x4274fb[_0x3d77af(0x5ec)](_0x3d77af(0x3817)));}['isNoun'](){const _0x2ac6df=a0_0x329b;return this[_0x2ac6df(0x295e)](_0x3f8cf5=>_0x3f8cf5[_0x2ac6df(0x5ec)](''));}[_0x206f12(0x37b2)](){const _0x3c7272=_0x206f12;return this[_0x3c7272(0x295e)](_0x2dfd82=>_0x2dfd82[_0x3c7272(0x5ec)](_0x3c7272(0x45bd)));}[_0x206f12(0x2670)](){const _0x460378=_0x206f12;return this[_0x460378(0x295e)](_0x53916c=>_0x53916c[_0x460378(0x5ec)](''));}[_0x206f12(0x4e41)](){const _0x27b49a=_0x206f12;return this[_0x27b49a(0xc6b)]()[_0x27b49a(0x4e41)]('chunks'),this;}['update'](_0x5389e2){const _0x2f7eb3=_0x206f12;let _0x5b900c=new _0xca5df3(this['document'],_0x5389e2);return _0x5b900c[_0x2f7eb3(0x1d5f)]=this[_0x2f7eb3(0x1d5f)],_0x5b900c;}}_0x1187ba['prototype'][_0x206f12(0x23a8)]=function(_0x41a585){const _0xb86ba5=_0x206f12;let _0x15ecad=_0x57bf53(this);return _0x15ecad=_0x15ecad[_0xb86ba5(0x2ead)](_0x41a585),new _0xca5df3(this[_0xb86ba5(0x46d9)],_0x15ecad['pointer']);},_0x1187ba[_0x206f12(0x2b5c)]['clauses']=_0x27aab7;},_0x3ba728={'this':_0x235866(0x1ce5),'then':_0x235866(0x2dc9)},_0x22aa30=function(_0x25cc4b){const _0x3d5038=_0x235866;for(let _0x332d45=0x0;_0x332d45<_0x25cc4b[_0x3d5038(0x205b)];_0x332d45+=0x1)for(let _0x2b1ad3=0x0;_0x2b1ad3<_0x25cc4b[_0x332d45][_0x3d5038(0x205b)];_0x2b1ad3+=0x1){let _0x263709=_0x25cc4b[_0x332d45][_0x2b1ad3];!0x0!==_0x3ba728['hasOwnProperty'](_0x263709[_0x3d5038(0x4cb)])?_0x263709[_0x3d5038(0x23d1)][_0x3d5038(0x5ec)](_0x3d5038(0x41f2))?_0x263709['chunk']=_0x3d5038(0x41f2):_0x263709[_0x3d5038(0x23d1)][_0x3d5038(0x5ec)](_0x3d5038(0x1ce5))||_0x263709[_0x3d5038(0x23d1)]['has'](_0x3d5038(0x246d))||_0x263709[_0x3d5038(0x23d1)][_0x3d5038(0x5ec)](_0x3d5038(0xa4f))?_0x263709[_0x3d5038(0x1637)]='Noun':_0x263709[_0x3d5038(0x23d1)][_0x3d5038(0x5ec)](_0x3d5038(0x12d4))&&(_0x263709[_0x3d5038(0x1637)]=_0x3d5038(0x2dc9)):_0x263709['chunk']=_0x3ba728[_0x263709[_0x3d5038(0x4cb)]];}},_0x15f50e=function(_0x38f25d){const _0x16db1b=_0x235866;for(let _0x38929f=0x0;_0x38929f<_0x38f25d['length'];_0x38929f+=0x1)for(let _0x4e5bf7=0x0;_0x4e5bf7<_0x38f25d[_0x38929f][_0x16db1b(0x205b)];_0x4e5bf7+=0x1){let _0x1f3abe=_0x38f25d[_0x38929f][_0x4e5bf7];if(_0x1f3abe[_0x16db1b(0x1637)])continue;let _0x2fc537=_0x38f25d[_0x38929f][_0x4e5bf7+0x1],_0x5d3ee5=_0x38f25d[_0x38929f][_0x4e5bf7-0x1];if(_0x1f3abe['tags']['has'](_0x16db1b(0x19b5))){if(_0x5d3ee5&&_0x5d3ee5[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)](_0x16db1b(0x49fb))){_0x1f3abe[_0x16db1b(0x1637)]=_0x16db1b(0x19b5);continue;}if(_0x5d3ee5&&_0x5d3ee5[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)](_0x16db1b(0x246d))){_0x1f3abe[_0x16db1b(0x1637)]='Noun';continue;}if(_0x2fc537&&_0x2fc537['tags'][_0x16db1b(0x5ec)](_0x16db1b(0x1ce5))){_0x1f3abe['chunk']=_0x16db1b(0x1ce5);continue;}}else{if(_0x1f3abe[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)](_0x16db1b(0x487d))||_0x1f3abe[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)](_0x16db1b(0x8cb))){if(_0x5d3ee5&&_0x5d3ee5[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)]('Adjective')){_0x1f3abe['chunk']=_0x16db1b(0x19b5);continue;}if(_0x5d3ee5&&_0x5d3ee5['tags'][_0x16db1b(0x5ec)](_0x16db1b(0x41f2))){_0x1f3abe[_0x16db1b(0x1637)]=_0x16db1b(0x41f2);continue;}if(_0x2fc537&&_0x2fc537[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)]('Adjective')){_0x1f3abe['chunk']='Adjective';continue;}if(_0x2fc537&&_0x2fc537[_0x16db1b(0x23d1)][_0x16db1b(0x5ec)](_0x16db1b(0x41f2))){_0x1f3abe[_0x16db1b(0x1637)]=_0x16db1b(0x41f2);continue;}}}}},_0x121965=[{'match':_0x235866(0x37f5),'group':0x0,'chunk':_0x235866(0x2dc9)},{'match':_0x235866(0x1de8),'group':0x0,'chunk':_0x235866(0x2dc9)},{'match':_0x235866(0x21e2),'group':0x0,'chunk':'Pivot'},{'match':_0x235866(0x1e4),'group':0x0,'chunk':_0x235866(0x19b5)},{'match':_0x235866(0x117e),'chunk':_0x235866(0x19b5)},{'match':_0x235866(0xd49),'chunk':'Verb'},{'match':_0x235866(0x37e8),'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x21e3),'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x1e0f),'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x1647),'chunk':'Verb'},{'match':_0x235866(0x3c26),'chunk':'Verb'},{'match':_0x235866(0x3e58),'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x117),'group':0x0,'chunk':'Verb'},{'match':_0x235866(0x3aff),'group':0x0,'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x25cc),'group':0x0,'chunk':_0x235866(0x41f2)},{'match':_0x235866(0x426f),'chunk':_0x235866(0x1ce5)},{'match':_0x235866(0x4b00),'chunk':_0x235866(0x1ce5)},{'match':_0x235866(0x32ed),'chunk':_0x235866(0x1ce5)},{'match':_0x235866(0x53e),'chunk':_0x235866(0x1ce5)},{'match':_0x235866(0x1da3),'group':0x0,'chunk':_0x235866(0x2dc9)},{'match':_0x235866(0x1f64),'notIf':'(#Possessive|#Pronoun)','chunk':_0x235866(0x1ce5)}];let _0x1e900b=null;const _0x75d7cd=function(_0x5d41e9,_0x12b4ec,_0xfc3951){const _0x1540a2=_0x235866,{methods:_0x3b50c7}=_0xfc3951;_0x1e900b=_0x1e900b||_0x3b50c7[_0x1540a2(0x4116)][_0x1540a2(0x4b51)](_0x121965,_0xfc3951),_0x5d41e9[_0x1540a2(0x1380)](_0x1e900b);},_0x561374=function(_0x224ba0,_0x18e93f){const _0x4c1ca5=_0x235866;('undefined'!=typeof process&&process[_0x4c1ca5(0x2f9e)]?process[_0x4c1ca5(0x2f9e)]:self['env']||{})['DEBUG_CHUNKS']&&(_0x224ba0[_0x4c1ca5(0x4cb)]+'\x27')[_0x4c1ca5(0x2cef)](0x8),_0x224ba0[_0x4c1ca5(0x1637)]=_0x18e93f;},_0x299b5d=function(_0x46b1f1){const _0x472601=_0x235866;for(let _0x193659=0x0;_0x193659<_0x46b1f1[_0x472601(0x205b)];_0x193659+=0x1)for(let _0x536400=0x0;_0x536400<_0x46b1f1[_0x193659][_0x472601(0x205b)];_0x536400+=0x1){let _0xe78771=_0x46b1f1[_0x193659][_0x536400];void 0x0===_0xe78771[_0x472601(0x1637)]&&(_0xe78771[_0x472601(0x23d1)][_0x472601(0x5ec)](_0x472601(0x846))||_0xe78771['tags'][_0x472601(0x5ec)]('Preposition')?_0x561374(_0xe78771,'Pivot'):_0xe78771[_0x472601(0x23d1)][_0x472601(0x5ec)](_0x472601(0x487d))?_0x561374(_0xe78771,_0x472601(0x41f2)):_0xe78771[_0x472601(0x1637)]=_0x472601(0x1ce5));}},_0xfe237a=function(_0x4321ec){const _0x45b193=_0x235866;let _0x26fb32=[],_0x2b2016=null;_0x4321ec[_0x45b193(0x4854)](_0x218fb8=>{const _0x1a299b=_0x45b193;for(let _0x1c0ade=0x0;_0x1c0ade<_0x218fb8[_0x1a299b(0x205b)];_0x1c0ade+=0x1){let _0x3ffa20=_0x218fb8[_0x1c0ade];_0x2b2016&&_0x3ffa20[_0x1a299b(0x1637)]===_0x2b2016?_0x26fb32[_0x26fb32[_0x1a299b(0x205b)]-0x1][_0x1a299b(0x18a5)][_0x1a299b(0x4131)](_0x3ffa20):(_0x26fb32[_0x1a299b(0x4131)]({'chunk':_0x3ffa20[_0x1a299b(0x1637)],'terms':[_0x3ffa20]}),_0x2b2016=_0x3ffa20[_0x1a299b(0x1637)]);}}),_0x26fb32[_0x45b193(0x4854)](_0x4157e5=>{const _0x371223=_0x45b193;if('Verb'===_0x4157e5['chunk']){const _0x5076cc=_0x4157e5[_0x371223(0x18a5)]['find'](_0xd10484=>_0xd10484[_0x371223(0x23d1)]['has'](_0x371223(0x41f2)));_0x5076cc||_0x4157e5[_0x371223(0x18a5)][_0x371223(0x4854)](_0x15d225=>_0x15d225[_0x371223(0x1637)]=null);}});},_0x30da28={'chunks':function(_0x1316af){const {document:_0x43fc14,world:_0x400102}=_0x1316af;_0x22aa30(_0x43fc14),_0x15f50e(_0x43fc14),_0x75d7cd(_0x1316af,_0x43fc14,_0x400102),_0x299b5d(_0x43fc14,_0x400102),_0xfe237a(_0x43fc14,_0x400102);}},_0x16af0c={'compute':_0x30da28,'api':_0x7fd6b0,'hooks':[_0x235866(0x23a8)]},_0x5c36b3=/\./g,_0x5baad8=function(_0x141d29){const _0x592b78=_0x235866;class _0x2b54e3 extends _0x141d29{constructor(_0x53e113,_0x5b0bf5,_0x54f65e){const _0x7574d3=a0_0x329b;super(_0x53e113,_0x5b0bf5,_0x54f65e),this[_0x7574d3(0x3784)]='Acronyms';}[_0x592b78(0x185d)](){const _0x1c05fd=_0x592b78;return this[_0x1c05fd(0x3f72)][_0x1c05fd(0x4854)](_0x25dd31=>{_0x25dd31['forEach'](_0x3ed319=>{const _0x4e2fd5=a0_0x329b;_0x3ed319[_0x4e2fd5(0x2f35)]=_0x3ed319[_0x4e2fd5(0x2f35)][_0x4e2fd5(0x1db7)](_0x5c36b3,''),_0x3ed319[_0x4e2fd5(0x4cb)]=_0x3ed319['normal']['replace'](_0x5c36b3,'');});}),this;}[_0x592b78(0x19d1)](){const _0x5ac7dd=_0x592b78;return this[_0x5ac7dd(0x3f72)][_0x5ac7dd(0x4854)](_0x389fdf=>{const _0x5afb75=_0x5ac7dd;_0x389fdf[_0x5afb75(0x4854)](_0x409467=>{const _0x32e9a6=_0x5afb75;_0x409467['text']=_0x409467[_0x32e9a6(0x2f35)]['replace'](_0x5c36b3,''),_0x409467[_0x32e9a6(0x4cb)]=_0x409467[_0x32e9a6(0x4cb)]['replace'](_0x5c36b3,''),_0x409467['text']=_0x409467[_0x32e9a6(0x2f35)]['split']('')[_0x32e9a6(0x379c)]('.')+'.',_0x409467[_0x32e9a6(0x4cb)]=_0x409467[_0x32e9a6(0x4cb)][_0x32e9a6(0x29d0)]('')[_0x32e9a6(0x379c)]('.')+'.';});}),this;}}_0x141d29[_0x592b78(0x2b5c)]['acronyms']=function(_0x509a5d){const _0x2b9662=_0x592b78;let _0x2211e0=this[_0x2b9662(0xdc0)](_0x2b9662(0x2e5f));return _0x2211e0=_0x2211e0[_0x2b9662(0x2ead)](_0x509a5d),new _0x2b54e3(_0x2211e0[_0x2b9662(0x46d9)],_0x2211e0[_0x2b9662(0x1d95)]);};},_0x683369=/\(/,_0x21ea63=/\)/,_0x45e9c7=function(_0x5468f4,_0x61455f){const _0x2a9ed5=_0x235866;for(;_0x61455f<_0x5468f4[_0x2a9ed5(0x205b)];_0x61455f+=0x1)if(_0x5468f4[_0x61455f]['post']&&_0x21ea63['test'](_0x5468f4[_0x61455f][_0x2a9ed5(0x9ce)])){let [,_0x598e34]=_0x5468f4[_0x61455f]['index'];return _0x598e34=_0x598e34||0x0,_0x598e34;}return null;},_0x420df2=function(_0x17ad9c){const _0x5331df=_0x235866;class _0x318bb2 extends _0x17ad9c{constructor(_0x556d33,_0x2ac288,_0xd1137e){const _0x51f100=a0_0x329b;super(_0x556d33,_0x2ac288,_0xd1137e),this[_0x51f100(0x3784)]=_0x51f100(0x6c3);}['strip'](){return function(_0x608c98){const _0x40f118=a0_0x329b;return _0x608c98[_0x40f118(0x3f72)][_0x40f118(0x4854)](_0x520388=>{const _0xcbea00=_0x40f118;_0x520388[0x0][_0xcbea00(0x1553)]=_0x520388[0x0][_0xcbea00(0x1553)][_0xcbea00(0x1db7)](_0x683369,'');let _0x1d333b=_0x520388[_0x520388[_0xcbea00(0x205b)]-0x1];_0x1d333b[_0xcbea00(0x9ce)]=_0x1d333b[_0xcbea00(0x9ce)][_0xcbea00(0x1db7)](_0x21ea63,'');}),_0x608c98;}(this);}}_0x17ad9c[_0x5331df(0x2b5c)][_0x5331df(0x1856)]=function(_0xadea70){const _0x25948b=_0x5331df;let _0x4a92b3=function(_0x3b202e){const _0xdf6182=a0_0x329b;let _0x161d6c=[];return _0x3b202e[_0xdf6182(0x3f72)][_0xdf6182(0x4854)](_0x3fbe8f=>{const _0x42c346=_0xdf6182;for(let _0x4a9db3=0x0;_0x4a9db3<_0x3fbe8f['length'];_0x4a9db3+=0x1){let _0x1800e9=_0x3fbe8f[_0x4a9db3];if(_0x1800e9[_0x42c346(0x1553)]&&_0x683369[_0x42c346(0x34c)](_0x1800e9[_0x42c346(0x1553)])){let _0x49e195=_0x45e9c7(_0x3fbe8f,_0x4a9db3);if(null!==_0x49e195){let [_0x423dc7,_0x464b20]=_0x3fbe8f[_0x4a9db3][_0x42c346(0x1cf3)];_0x161d6c['push']([_0x423dc7,_0x464b20,_0x49e195+0x1,_0x3fbe8f[_0x4a9db3]['id']]),_0x4a9db3=_0x49e195;}}}}),_0x3b202e[_0xdf6182(0xf93)](_0x161d6c);}(this);return _0x4a92b3=_0x4a92b3['getNth'](_0xadea70),new _0x318bb2(_0x4a92b3[_0x25948b(0x46d9)],_0x4a92b3['pointer']);};},_0x3cc731=/'s$/,_0x59ae18=function(_0x34dddd){const _0x4be558=_0x235866;class _0x2a18f1 extends _0x34dddd{constructor(_0x13e485,_0x4f31ee,_0x3e915f){const _0x21daa9=a0_0x329b;super(_0x13e485,_0x4f31ee,_0x3e915f),this[_0x21daa9(0x3784)]=_0x21daa9(0x6c3);}[_0x4be558(0x185d)](){const _0x308cd7=_0x4be558;return this[_0x308cd7(0x3f72)][_0x308cd7(0x4854)](_0x4fe1e9=>{const _0x495a61=_0x308cd7;_0x4fe1e9[_0x495a61(0x4854)](_0x34717b=>{const _0x1ce27d=_0x495a61;_0x34717b[_0x1ce27d(0x2f35)]=_0x34717b['text'][_0x1ce27d(0x1db7)](_0x3cc731,''),_0x34717b['normal']=_0x34717b[_0x1ce27d(0x4cb)][_0x1ce27d(0x1db7)](_0x3cc731,'');});}),this;}}_0x34dddd['prototype'][_0x4be558(0x2f0f)]=function(_0x18fb5a){const _0x22f00c=_0x4be558;let _0x23252c=function(_0x4a7498){const _0x4c1a21=a0_0x329b;let _0x39b095=_0x4a7498[_0x4c1a21(0xdc0)]('#Possessive+');return _0x39b095[_0x4c1a21(0x5ec)]('#Person')&&(_0x39b095=_0x39b095[_0x4c1a21(0x4da5)]('#Person+')),_0x39b095[_0x4c1a21(0x5ec)](_0x4c1a21(0x4a9))&&(_0x39b095=_0x39b095['growLeft'](_0x4c1a21(0x3567))),_0x39b095[_0x4c1a21(0x5ec)](_0x4c1a21(0x2a22))&&(_0x39b095=_0x39b095[_0x4c1a21(0x4da5)]('#Organization+')),_0x39b095;}(this);return _0x23252c=_0x23252c[_0x22f00c(0x2ead)](_0x18fb5a),new _0x2a18f1(_0x23252c['document'],_0x23252c[_0x22f00c(0x1d95)]);};},_0x53b9e1={'\x22':'\x22','"':'"','\x27':'\x27','“':'”','‘':'’','‟':'”','‛':'’','„':'”','⹂':'”','‚':'’','«':'»','‹':'›','‵':'′','‶':'″','‷':'‴','〝':'〞','`':'´','〟':'〞'},_0x168476=RegExp('['+Object[_0x235866(0x2f75)](_0x53b9e1)[_0x235866(0x379c)]('')+']'),_0xa7ccb2=RegExp('['+Object[_0x235866(0x4a3e)](_0x53b9e1)[_0x235866(0x379c)]('')+']'),_0x188a79=function(_0x12a1a7,_0xdbe30c){const _0x483a23=_0x235866,_0x4273e2=_0x12a1a7[_0xdbe30c]['pre'][_0x483a23(0xdc0)](_0x168476)[0x0]||'';if(!_0x4273e2||!_0x53b9e1[_0x4273e2])return null;const _0xf4d0f4=_0x53b9e1[_0x4273e2];for(;_0xdbe30c<_0x12a1a7[_0x483a23(0x205b)];_0xdbe30c+=0x1)if(_0x12a1a7[_0xdbe30c][_0x483a23(0x9ce)]&&_0x12a1a7[_0xdbe30c][_0x483a23(0x9ce)][_0x483a23(0xdc0)](_0xf4d0f4))return _0xdbe30c;return null;},_0x55b62e=function(_0x182d43){const _0x3fa283=_0x235866;class _0x341576 extends _0x182d43{constructor(_0x527998,_0x36ba3d,_0x3ffe3e){const _0x2fe75d=a0_0x329b;super(_0x527998,_0x36ba3d,_0x3ffe3e),this[_0x2fe75d(0x3784)]=_0x2fe75d(0x6c3);}[_0x3fa283(0x185d)](){return function(_0x3bc689){const _0x56836d=a0_0x329b;_0x3bc689[_0x56836d(0x3f72)][_0x56836d(0x4854)](_0x1efa42=>{const _0x3f1e14=_0x56836d;_0x1efa42[0x0][_0x3f1e14(0x1553)]=_0x1efa42[0x0][_0x3f1e14(0x1553)][_0x3f1e14(0x1db7)](_0x168476,'');let _0x22635b=_0x1efa42[_0x1efa42['length']-0x1];_0x22635b[_0x3f1e14(0x9ce)]=_0x22635b[_0x3f1e14(0x9ce)][_0x3f1e14(0x1db7)](_0xa7ccb2,'');});}(this);}}_0x182d43[_0x3fa283(0x2b5c)]['quotations']=function(_0x34a32f){const _0x2923b4=_0x3fa283;let _0x13ff23=function(_0x47dff4){const _0x5b88f7=a0_0x329b;let _0x3f3388=[];return _0x47dff4[_0x5b88f7(0x3f72)][_0x5b88f7(0x4854)](_0x178cc3=>{const _0x596b8e=_0x5b88f7;for(let _0x4fd6e0=0x0;_0x4fd6e0<_0x178cc3[_0x596b8e(0x205b)];_0x4fd6e0+=0x1){let _0xea5ba5=_0x178cc3[_0x4fd6e0];if(_0xea5ba5['pre']&&_0x168476[_0x596b8e(0x34c)](_0xea5ba5[_0x596b8e(0x1553)])){let _0x25ea92=_0x188a79(_0x178cc3,_0x4fd6e0);if(null!==_0x25ea92){let [_0x5bbd3c,_0x2a6eda]=_0x178cc3[_0x4fd6e0][_0x596b8e(0x1cf3)];_0x3f3388[_0x596b8e(0x4131)]([_0x5bbd3c,_0x2a6eda,_0x25ea92+0x1,_0x178cc3[_0x4fd6e0]['id']]),_0x4fd6e0=_0x25ea92;}}}}),_0x47dff4[_0x5b88f7(0xf93)](_0x3f3388);}(this);return _0x13ff23=_0x13ff23['getNth'](_0x34a32f),new _0x341576(_0x13ff23[_0x2923b4(0x46d9)],_0x13ff23[_0x2923b4(0x1d95)]);};},_0x3728d9=function(_0x179078){const _0x4f96c9=_0x235866;let _0x537fbc=this[_0x4f96c9(0x2810)]('@hasComma');return _0x537fbc=_0x537fbc[_0x4f96c9(0xdc0)]('#PhoneNumber+'),_0x537fbc=_0x537fbc[_0x4f96c9(0x2ead)](_0x179078),_0x537fbc;},_0xd4661f=[['hyphenated',_0x235866(0x2022)],[_0x235866(0xf9c),_0x235866(0x184f)],[_0x235866(0x3246),'#Email'],[_0x235866(0x1a42),_0x235866(0xee)],[_0x235866(0x4a29),_0x235866(0x1dfe)],[_0x235866(0x123b),_0x235866(0x4cdc)],[_0x235866(0x3408),_0x235866(0x3495)],[_0x235866(0x44a6),_0x235866(0x4b5c)],[_0x235866(0x18d2),_0x235866(0x50e)],[_0x235866(0x410d),_0x235866(0x4b7e)],[_0x235866(0x4846),_0x235866(0x243f)]];let _0x31746d=[[_0x235866(0xc1b),_0x235866(0x1a42)],[_0x235866(0x119a),_0x235866(0x123b)]];const _0x4e98bd=function(_0x31a0cc){const _0xd8d56=_0x235866;_0xd4661f[_0xd8d56(0x4854)](_0x5e2d5b=>{const _0x393f74=_0xd8d56;_0x31a0cc[_0x393f74(0x2b5c)][_0x5e2d5b[0x0]]=function(_0x41623d){const _0x4c39cd=_0x393f74;let _0x3264c3=this['match'](_0x5e2d5b[0x1]);return _0x4c39cd(0x1ed7)==typeof _0x41623d?_0x3264c3['get'](_0x41623d):_0x3264c3;};}),_0x31a0cc[_0xd8d56(0x2b5c)][_0xd8d56(0x4a74)]=_0x3728d9,_0x31746d[_0xd8d56(0x4854)](_0x2d3d10=>{const _0x16e632=_0xd8d56;_0x31a0cc['prototype'][_0x2d3d10[0x0]]=_0x31a0cc[_0x16e632(0x2b5c)][_0x2d3d10[0x1]];});},_0x148a5f={'api':function(_0x298d42){_0x5baad8(_0x298d42),_0x420df2(_0x298d42),_0x59ae18(_0x298d42),_0x55b62e(_0x298d42),_0x4e98bd(_0x298d42);}},_0x12740d=function(_0x5c6569,_0x61f171){const _0x5d16a8=_0x235866;_0x5c6569[_0x5d16a8(0x3f72)][_0x5d16a8(0x4854)](_0x52c5a6=>{const _0x3f6f34=_0x5d16a8;_0x52c5a6[_0x3f6f34(0x4854)](_0x61f171);});},_0x106b37={'case':_0x5a371f=>{_0x12740d(_0x5a371f,_0x33b271=>{const _0x4af189=a0_0x329b;_0x33b271[_0x4af189(0x2f35)]=_0x33b271[_0x4af189(0x2f35)][_0x4af189(0x1a57)]();});},'unicode':_0x40be8c=>{const _0x39faf6=_0x235866,_0xb4c974=_0x40be8c['world'],_0x1e10cf=_0xb4c974['methods'][_0x39faf6(0x4116)][_0x39faf6(0x28c5)];_0x12740d(_0x40be8c,_0x42cfed=>_0x42cfed[_0x39faf6(0x2f35)]=_0x1e10cf(_0x42cfed['text'],_0xb4c974));},'whitespace':_0x54f028=>{_0x12740d(_0x54f028,_0x344ba9=>{const _0x1e0042=a0_0x329b;_0x344ba9[_0x1e0042(0x9ce)]=_0x344ba9['post'][_0x1e0042(0x1db7)](/\s+/g,'\x20'),_0x344ba9[_0x1e0042(0x9ce)]=_0x344ba9[_0x1e0042(0x9ce)][_0x1e0042(0x1db7)](/\s([.,?!:;])/g,'$1'),_0x344ba9['pre']=_0x344ba9[_0x1e0042(0x1553)][_0x1e0042(0x1db7)](/\s+/g,'');});},'punctuation':_0x3b470f=>{const _0x7d20ff=_0x235866;_0x12740d(_0x3b470f,_0x323baa=>{const _0x603f1b=a0_0x329b;_0x323baa[_0x603f1b(0x9ce)]=_0x323baa[_0x603f1b(0x9ce)]['replace'](/[–—-]/g,'\x20'),_0x323baa[_0x603f1b(0x9ce)]=_0x323baa[_0x603f1b(0x9ce)]['replace'](/[,:;]/g,''),_0x323baa['post']=_0x323baa[_0x603f1b(0x9ce)]['replace'](/\.{2,}/g,''),_0x323baa[_0x603f1b(0x9ce)]=_0x323baa[_0x603f1b(0x9ce)][_0x603f1b(0x1db7)](/\?{2,}/g,'?'),_0x323baa[_0x603f1b(0x9ce)]=_0x323baa['post'][_0x603f1b(0x1db7)](/!{2,}/g,'!'),_0x323baa[_0x603f1b(0x9ce)]=_0x323baa[_0x603f1b(0x9ce)][_0x603f1b(0x1db7)](/\?!+/g,'?');});let _0x433d80=_0x3b470f[_0x7d20ff(0x3f72)],_0xf9f076=_0x433d80[_0x433d80['length']-0x1];if(_0xf9f076&&_0xf9f076['length']>0x0){let _0x9395bc=_0xf9f076[_0xf9f076[_0x7d20ff(0x205b)]-0x1];_0x9395bc['post']=_0x9395bc[_0x7d20ff(0x9ce)][_0x7d20ff(0x1db7)](/ /g,'');}},'contractions':_0x43da84=>{const _0x3bbe33=_0x235866;_0x43da84[_0x3bbe33(0x3acb)]()[_0x3bbe33(0x380d)]();},'acronyms':_0x492cc2=>{const _0x38db10=_0x235866;_0x492cc2[_0x38db10(0x361b)]()[_0x38db10(0x185d)]();},'parentheses':_0x50842b=>{const _0x5772a3=_0x235866;_0x50842b[_0x5772a3(0x1856)]()['strip']();},'possessives':_0x5568bd=>{const _0x2310f5=_0x235866;_0x5568bd[_0x2310f5(0x2f0f)]()[_0x2310f5(0x185d)]();},'quotations':_0x2d385b=>{const _0x49474f=_0x235866;_0x2d385b[_0x49474f(0x3e0)]()[_0x49474f(0x185d)]();},'emoji':_0x7d1c1=>{const _0x137f35=_0x235866;_0x7d1c1[_0x137f35(0xc1b)]()[_0x137f35(0x80a)]();},'honorifics':_0x3c0076=>{const _0x235058=_0x235866;_0x3c0076[_0x235058(0xdc0)](_0x235058(0x3c4d))[_0x235058(0x4846)]()[_0x235058(0x80a)]();},'adverbs':_0x4fa2ce=>{const _0x158c53=_0x235866;_0x4fa2ce[_0x158c53(0x2143)]()[_0x158c53(0x80a)]();},'nouns':_0x4147a1=>{const _0x558703=_0x235866;_0x4147a1[_0x558703(0x4111)]()[_0x558703(0xe63)]();},'verbs':_0x56f0d6=>{const _0x506930=_0x235866;_0x56f0d6[_0x506930(0x333a)]()[_0x506930(0x3510)]();},'numbers':_0x7f914f=>{const _0x1ac2ce=_0x235866;_0x7f914f[_0x1ac2ce(0x436d)]()[_0x1ac2ce(0x4b5b)]();},'debullet':_0x2f1e=>{const _0x248e8b=_0x235866,_0x47ddac=/^\s*([-–—*•])\s*$/;return _0x2f1e[_0x248e8b(0x3f72)][_0x248e8b(0x4854)](_0x2b9245=>{const _0x26f4d1=_0x248e8b;_0x47ddac[_0x26f4d1(0x34c)](_0x2b9245[0x0][_0x26f4d1(0x1553)])&&(_0x2b9245[0x0][_0x26f4d1(0x1553)]=_0x2b9245[0x0][_0x26f4d1(0x1553)][_0x26f4d1(0x1db7)](_0x47ddac,''));}),_0x2f1e;}},_0xf933e0=_0x3eb37a=>_0x3eb37a['split']('|')[_0x235866(0xf33)]((_0x27c58a,_0x148b63)=>(_0x27c58a[_0x148b63]=!0x0,_0x27c58a),{}),_0x11add8=_0x235866(0x3310),_0x2d4bfd=_0x235866(0x4065),_0x4df575={'light':_0xf933e0(_0x11add8),'medium':_0xf933e0(_0x11add8+_0x2d4bfd),'heavy':_0xf933e0(_0x11add8+_0x2d4bfd+_0x235866(0x19e0))},_0x3357b1={'api':function(_0x2ba083){const _0x1d0dfc=_0x235866;_0x2ba083[_0x1d0dfc(0x2b5c)][_0x1d0dfc(0x48f)]=function(_0xaab59=_0x1d0dfc(0x4b8f)){const _0x128f56=_0x1d0dfc;return _0x128f56(0x4f7c)==typeof _0xaab59&&(_0xaab59=_0x4df575[_0xaab59]),Object[_0x128f56(0x2f75)](_0xaab59)[_0x128f56(0x4854)](_0x1c2b87=>{const _0x3034ce=_0x128f56;_0x106b37[_0x3034ce(0x32b5)](_0x1c2b87)&&_0x106b37[_0x1c2b87](this,_0xaab59[_0x1c2b87]);}),this;};}},_0x2148fb=function(_0x235b51){const _0xb2d472=_0x235866;let _0xaf66c7=_0x235b51[_0xb2d472(0x3f20)]()[_0xb2d472(0xdc0)](_0xb2d472(0x1ba4)),_0x9d381f=_0xaf66c7['match'](_0xb2d472(0x158c));return _0x9d381f=_0x9d381f['not'](_0xb2d472(0x4a9)),_0x9d381f['found']&&(_0xaf66c7=_0xaf66c7['splitAfter'](_0x9d381f)),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)]('#Expression'),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)](_0xb2d472(0x4672)),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)]('(#Noun|#Adjective)\x20[(he|him|she|it)]',0x0),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)]('[(he|him|she|it)]\x20(#Determiner|#Value)',0x0),_0xaf66c7=_0xaf66c7[_0xb2d472(0x5f2)](_0xb2d472(0x3e8a),0x0),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)](_0xb2d472(0x707),0x0),_0xaf66c7=_0xaf66c7[_0xb2d472(0x3392)](_0xb2d472(0xa41),0x0),_0xaf66c7=_0xaf66c7[_0xb2d472(0x5f2)]('(our|my|their|your)'),_0xaf66c7=_0xaf66c7['splitOn'](_0xb2d472(0x2daf),0x0),_0xaf66c7=_0xaf66c7['if'](_0xb2d472(0x352b)),_0xaf66c7;},_0x2debc0=['after',_0x235866(0x28a1),'as\x20if',_0x235866(0x2b02),'as',_0x235866(0xd31),_0x235866(0x19f2),_0x235866(0x1a0a),_0x235866(0x4dfc),_0x235866(0x4396),'if',_0x235866(0x3f92),'provided\x20that',_0x235866(0x2c0d),_0x235866(0x502e),'than',_0x235866(0x4b7f),'though',_0x235866(0x4f02),'until',_0x235866(0x2427),'whatever','when',_0x235866(0x1ce2),_0x235866(0x43c),_0x235866(0x2278),_0x235866(0x1b35),_0x235866(0x3fb6),_0x235866(0x48b7),_0x235866(0x20a5),_0x235866(0x4464),'whoever',_0x235866(0x2253),_0x235866(0x2324),_0x235866(0x199b)],_0x38f16c=function(_0x105bc9){const _0x1080ee=_0x235866;if(_0x105bc9['before'](_0x1080ee(0x3d7c))[_0x1080ee(0x622)])return!0x0;if(!_0x105bc9[_0x1080ee(0x19f2)]()[_0x1080ee(0x622)])return!0x1;for(let _0x437ef5=0x0;_0x437ef5<_0x2debc0[_0x1080ee(0x205b)];_0x437ef5+=0x1)if(_0x105bc9['has'](_0x2debc0[_0x437ef5]))return!0x0;return!0x1;},_0x3173fc=function(_0x2752bf,_0x3dec3a){const _0x7c4933=_0x235866;if(_0x2752bf['has'](_0x7c4933(0x12d)))return!0x0;if(_0x2752bf[_0x7c4933(0x5ec)]('#Noun\x20and\x20#Noun'))return!0x0;if(_0x2752bf['has'](_0x7c4933(0x3188)))return!0x0;if(!0x0===_0x3dec3a['has']('(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)'))return!0x1;if(_0x2752bf[_0x7c4933(0x5ec)]('#Singular'))return!0x1;let _0x1ab639=_0x3dec3a[_0x7c4933(0x2f35)](_0x7c4933(0x4cb));return _0x1ab639[_0x7c4933(0x205b)]>0x3&&_0x1ab639[_0x7c4933(0xe37)]('s')&&!_0x1ab639['endsWith']('ss');},_0x54c45d=function(_0x452cf3){const _0x16dbd4=_0x235866;let _0x524e8b=function(_0x39aa04){const _0x747a0a=a0_0x329b;let _0x53958d=_0x39aa04[_0x747a0a(0x835)]();return _0x53958d=_0x53958d['match'](_0x747a0a(0x296f)),_0x53958d=_0x53958d[_0x747a0a(0x80a)](_0x747a0a(0x2c2b)),_0x53958d=_0x53958d[_0x747a0a(0x4163)]('#Possessive'),_0x53958d=_0x53958d[_0x747a0a(0x509c)](),_0x53958d[_0x747a0a(0x622)]?_0x53958d:_0x39aa04;}(_0x452cf3);return{'determiner':_0x452cf3['match'](_0x16dbd4(0x347))['eq'](0x0),'adjectives':_0x452cf3[_0x16dbd4(0xdc0)](_0x16dbd4(0x4388)),'number':_0x452cf3[_0x16dbd4(0x4a3e)](),'isPlural':_0x3173fc(_0x452cf3,_0x524e8b),'isSubordinate':_0x38f16c(_0x452cf3),'root':_0x524e8b};},_0x4fd3bf=_0x3b3453=>_0x3b3453[_0x235866(0x2f35)](),_0x4147f8=_0x30c900=>_0x30c900[_0x235866(0x25b9)]({'terms':!0x1,'normal':!0x0})[_0x235866(0x2c94)](_0x1f005e=>_0x1f005e[_0x235866(0x4cb)]),_0x4a8617=function(_0x185ba1){const _0x2f51e0=_0x235866;if(!_0x185ba1[_0x2f51e0(0x622)])return null;let _0x2e21cc=_0x185ba1['values'](0x0);if(_0x2e21cc[_0x2f51e0(0x622)])return(_0x2e21cc[_0x2f51e0(0x1b07)]()[0x0]||{})['num'];return null;},_0x21f2d2=function(_0x5e1b0e){const _0x5a4a8a=_0x235866;let _0x289c20=_0x54c45d(_0x5e1b0e);return{'root':_0x4fd3bf(_0x289c20[_0x5a4a8a(0xdf8)]),'number':_0x4a8617(_0x289c20[_0x5a4a8a(0x1ed7)]),'determiner':_0x4fd3bf(_0x289c20['determiner']),'adjectives':_0x4147f8(_0x289c20[_0x5a4a8a(0x3891)]),'isPlural':_0x289c20[_0x5a4a8a(0x33cd)],'isSubordinate':_0x289c20[_0x5a4a8a(0x7c9)]};},_0x4b7d5d=function(_0x2b8f88){const _0xc45263=_0x235866;return!_0x2b8f88[_0xc45263(0x5ec)]('^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$');},_0x42a235={'tags':!0x0},_0x407505=function(_0x150bf7,_0x381b9d){const _0x309438=_0x235866;if(!0x0===_0x381b9d['isPlural'])return _0x150bf7;if(_0x381b9d['root'][_0x309438(0x5ec)](_0x309438(0x259c))&&(_0x381b9d[_0x309438(0xdf8)]=_0x381b9d['root'][_0x309438(0x2f0f)]()[_0x309438(0x185d)]()),!_0x4b7d5d(_0x381b9d['root']))return _0x150bf7;const {methods:_0x52673e,model:_0x866b2b}=_0x150bf7[_0x309438(0x3e71)],{toPlural:_0x5c86c9}=_0x52673e[_0x309438(0x141f)]['transform'][_0x309438(0x3c45)];let _0x2e9b60=_0x5c86c9(_0x381b9d[_0x309438(0xdf8)][_0x309438(0x2f35)]({'keepPunct':!0x1}),_0x866b2b);_0x150bf7[_0x309438(0xdc0)](_0x381b9d[_0x309438(0xdf8)])[_0x309438(0x6f5)](_0x2e9b60,_0x42a235)[_0x309438(0x17a2)](_0x309438(0x27b3),_0x309438(0xca1)),_0x381b9d['determiner']['has'](_0x309438(0x47f4))&&_0x150bf7[_0x309438(0x80a)](_0x381b9d['determiner']);let _0x361a5d=_0x381b9d[_0x309438(0xdf8)][_0x309438(0x1f69)](_0x309438(0x172a),0x0);return _0x361a5d[_0x309438(0x622)]&&(_0x361a5d[_0x309438(0x5ec)]('is')?_0x150bf7['replace'](_0x361a5d,_0x309438(0x1f46)):_0x361a5d[_0x309438(0x5ec)](_0x309438(0x2fdb))&&_0x150bf7[_0x309438(0x1db7)](_0x361a5d,_0x309438(0x6ff))),_0x150bf7;},_0x4e2976={'tags':!0x0},_0x54260f=function(_0x4664e2,_0x5225b4){const _0x3631af=_0x235866;if(!0x1===_0x5225b4[_0x3631af(0x33cd)])return _0x4664e2;const {methods:_0x13e63c,model:_0x1405b3}=_0x4664e2[_0x3631af(0x3e71)],{toSingular:_0x4b08a4}=_0x13e63c[_0x3631af(0x141f)][_0x3631af(0x560)][_0x3631af(0x3c45)];let _0x777c1=_0x4b08a4(_0x5225b4['root']['text'](_0x3631af(0x4cb)),_0x1405b3);return _0x4664e2[_0x3631af(0x1db7)](_0x5225b4[_0x3631af(0xdf8)],_0x777c1,_0x4e2976)[_0x3631af(0x17a2)](_0x3631af(0x3faa),_0x3631af(0xca1)),_0x4664e2;},_0x987b39=function(_0x177b7e){const _0xab8c91=_0x235866;class _0x31e221 extends _0x177b7e{constructor(_0x2f6d0a,_0x4debca,_0x5dd6aa){super(_0x2f6d0a,_0x4debca,_0x5dd6aa),this['viewType']='Nouns';}[_0xab8c91(0x1b07)](_0x44bad4){const _0x153b1d=_0xab8c91;return this[_0x153b1d(0x2ead)](_0x44bad4)[_0x153b1d(0x2c94)](_0x54c45d);}[_0xab8c91(0x25b9)](_0x120cca){const _0x102c71=_0xab8c91;let _0xdf9097=_0x102c71(0x2b58)==typeof _0x120cca?_0x120cca:{};return this[_0x102c71(0x2ead)](_0x120cca)[_0x102c71(0x2c94)](_0x8c7de4=>{const _0x4d63f6=_0x102c71;let _0x5e9fab=_0x8c7de4[_0x4d63f6(0xc6b)]()[_0x4d63f6(0x25b9)](_0xdf9097)[0x0]||{};return _0xdf9097&&!0x1!==_0xdf9097[_0x4d63f6(0x3c45)]&&(_0x5e9fab[_0x4d63f6(0x3c45)]=_0x21f2d2(_0x8c7de4)),_0x5e9fab;},[]);}[_0xab8c91(0x431b)](_0x1c89a4){const _0x49f1a4=_0xab8c91,_0x2045ed=this['world'][_0x49f1a4(0x8f)]['two'][_0x49f1a4(0x560)][_0x49f1a4(0x3c45)];return this[_0x49f1a4(0x2ead)](_0x1c89a4)[_0x49f1a4(0x2c94)](_0x15b3b0=>{const _0x25303b=_0x49f1a4;let _0x547182=_0x54c45d(_0x15b3b0),_0x13a436=_0x547182['root'][_0x25303b(0x210d)](_0x25303b(0xdf8))[_0x25303b(0x2f35)]('root'),_0x54c2d4={'Singular':_0x13a436};return _0x4b7d5d(_0x547182[_0x25303b(0xdf8)])&&(_0x54c2d4[_0x25303b(0x27b3)]=_0x2045ed['toPlural'](_0x13a436,this['model'])),_0x54c2d4[_0x25303b(0x3faa)]===_0x54c2d4['Plural']&&delete _0x54c2d4[_0x25303b(0x27b3)],_0x54c2d4;},[]);}[_0xab8c91(0x33cd)](_0x56970d){const _0x47fc7a=_0xab8c91;let _0x3f2715=this[_0x47fc7a(0x295e)](_0x16b424=>_0x54c45d(_0x16b424)[_0x47fc7a(0x33cd)]);return _0x3f2715[_0x47fc7a(0x2ead)](_0x56970d);}[_0xab8c91(0x4f5c)](_0xfc8c28){const _0x5b0778=_0xab8c91;let _0x238de1=this[_0x5b0778(0x295e)](_0x47b9c8=>!_0x54c45d(_0x47b9c8)['isPlural']);return _0x238de1['getNth'](_0xfc8c28);}[_0xab8c91(0x3891)](_0x124870){const _0x7e70ea=_0xab8c91;let _0x405fc1=this[_0x7e70ea(0xf93)]([]);return this[_0x7e70ea(0x4854)](_0x5c8c97=>{const _0xa2d4b8=_0x7e70ea;let _0x5d104f=_0x54c45d(_0x5c8c97)[_0xa2d4b8(0x3891)];_0x5d104f[_0xa2d4b8(0x622)]&&(_0x405fc1=_0x405fc1[_0xa2d4b8(0x41bf)](_0x5d104f));}),_0x405fc1[_0x7e70ea(0x2ead)](_0x124870);}[_0xab8c91(0xca1)](_0x4c1049){const _0x2368d6=_0xab8c91;return this['getNth'](_0x4c1049)[_0x2368d6(0x2c94)](_0x48afae=>_0x407505(_0x48afae,_0x54c45d(_0x48afae)));}[_0xab8c91(0xe63)](_0x39f60c){const _0x48c674=_0xab8c91;return this['getNth'](_0x39f60c)[_0x48c674(0x2c94)](_0x3be4df=>{let _0x2cf825=_0x54c45d(_0x3be4df);return _0x54260f(_0x3be4df,_0x2cf825);});}[_0xab8c91(0xf93)](_0x28c8ff){const _0x5cd477=_0xab8c91;let _0x415d55=new _0x31e221(this[_0x5cd477(0x46d9)],_0x28c8ff);return _0x415d55[_0x5cd477(0x1d5f)]=this[_0x5cd477(0x1d5f)],_0x415d55;}}_0x177b7e['prototype'][_0xab8c91(0x4111)]=function(_0x68e1a1){const _0x17f628=_0xab8c91;let _0xc9ccd3=_0x2148fb(this);return _0xc9ccd3=_0xc9ccd3[_0x17f628(0x2ead)](_0x68e1a1),new _0x31e221(this[_0x17f628(0x46d9)],_0xc9ccd3[_0x17f628(0x1d95)]);};},_0x5a0853={'api':_0x987b39},_0x296737=function(_0xd60b20,_0x3e6597){const _0x55b4f0=_0x235866;let _0x59c9ed=_0xd60b20[_0x55b4f0(0xdc0)]('#Fraction+');return _0x59c9ed=_0x59c9ed[_0x55b4f0(0x295e)](_0x2f3664=>!_0x2f3664[_0x55b4f0(0x2add)]('#Value\x20and$')[_0x55b4f0(0x622)]),_0x59c9ed=_0x59c9ed[_0x55b4f0(0xfba)](_0x55b4f0(0x1db6)),'number'==typeof _0x3e6597&&(_0x59c9ed=_0x59c9ed['eq'](_0x3e6597)),_0x59c9ed;},_0x585e05=_0x4535e7=>{const _0x3f38ec=_0x235866,_0x4c7f90=[{'reg':/^(minus|negative)[\s-]/i,'mult':-0x1},{'reg':/^(a\s)?half[\s-](of\s)?/i,'mult':0.5}];for(let _0x5ccc00=0x0;_0x5ccc00<_0x4c7f90[_0x3f38ec(0x205b)];_0x5ccc00++)if(!0x0===_0x4c7f90[_0x5ccc00]['reg']['test'](_0x4535e7))return{'amount':_0x4c7f90[_0x5ccc00][_0x3f38ec(0x2bbb)],'str':_0x4535e7['replace'](_0x4c7f90[_0x5ccc00][_0x3f38ec(0x19a1)],'')};return{'amount':0x1,'str':_0x4535e7};},_0x5f16d5={'ones':{'zeroth':0x0,'first':0x1,'second':0x2,'third':0x3,'fourth':0x4,'fifth':0x5,'sixth':0x6,'seventh':0x7,'eighth':0x8,'ninth':0x9,'zero':0x0,'one':0x1,'two':0x2,'three':0x3,'four':0x4,'five':0x5,'six':0x6,'seven':0x7,'eight':0x8,'nine':0x9},'teens':{'tenth':0xa,'eleventh':0xb,'twelfth':0xc,'thirteenth':0xd,'fourteenth':0xe,'fifteenth':0xf,'sixteenth':0x10,'seventeenth':0x11,'eighteenth':0x12,'nineteenth':0x13,'ten':0xa,'eleven':0xb,'twelve':0xc,'thirteen':0xd,'fourteen':0xe,'fifteen':0xf,'sixteen':0x10,'seventeen':0x11,'eighteen':0x12,'nineteen':0x13},'tens':{'twentieth':0x14,'thirtieth':0x1e,'fortieth':0x28,'fourtieth':0x28,'fiftieth':0x32,'sixtieth':0x3c,'seventieth':0x46,'eightieth':0x50,'ninetieth':0x5a,'twenty':0x14,'thirty':0x1e,'forty':0x28,'fourty':0x28,'fifty':0x32,'sixty':0x3c,'seventy':0x46,'eighty':0x50,'ninety':0x5a},'multiples':{'hundredth':0x64,'thousandth':0x3e8,'millionth':0xf4240,'billionth':0x3b9aca00,'trillionth':0xe8d4a51000,'quadrillionth':0x38d7ea4c68000,'quintillionth':0xde0b6b3a7640000,'sextillionth':0x3635c9adc5dea00000,'septillionth':0xd3c21bcecceda0000000,'hundred':0x64,'thousand':0x3e8,'million':0xf4240,'billion':0x3b9aca00,'trillion':0xe8d4a51000,'quadrillion':0x38d7ea4c68000,'quintillion':0xde0b6b3a7640000,'sextillion':0x3635c9adc5dea00000,'septillion':0xd3c21bcecceda0000000,'grand':0x3e8}},_0x54dc71=(_0x53b4cf,_0x446cd5)=>{const _0x32516e=_0x235866;if(_0x5f16d5['ones'][_0x32516e(0x32b5)](_0x53b4cf)){if(_0x446cd5[_0x32516e(0x3cf4)]||_0x446cd5[_0x32516e(0x32ba)])return!0x1;}else{if(_0x5f16d5[_0x32516e(0x32ba)]['hasOwnProperty'](_0x53b4cf)){if(_0x446cd5['ones']||_0x446cd5[_0x32516e(0x32ba)]||_0x446cd5[_0x32516e(0xa5d)])return!0x1;}else{if(_0x5f16d5[_0x32516e(0xa5d)][_0x32516e(0x32b5)](_0x53b4cf)&&(_0x446cd5[_0x32516e(0x3cf4)]||_0x446cd5[_0x32516e(0x32ba)]||_0x446cd5[_0x32516e(0xa5d)]))return!0x1;}}return!0x0;},_0x1223f0=function(_0x53c39c){const _0x278344=_0x235866;let _0x1ff73b='0.';for(let _0x1967be=0x0;_0x1967be<_0x53c39c[_0x278344(0x205b)];_0x1967be++){let _0x436606=_0x53c39c[_0x1967be];if(!0x0===_0x5f16d5[_0x278344(0x3cf4)][_0x278344(0x32b5)](_0x436606))_0x1ff73b+=_0x5f16d5[_0x278344(0x3cf4)][_0x436606];else{if(!0x0===_0x5f16d5[_0x278344(0x32ba)][_0x278344(0x32b5)](_0x436606))_0x1ff73b+=_0x5f16d5[_0x278344(0x32ba)][_0x436606];else{if(!0x0===_0x5f16d5[_0x278344(0xa5d)][_0x278344(0x32b5)](_0x436606))_0x1ff73b+=_0x5f16d5[_0x278344(0xa5d)][_0x436606];else{if(!0x0!==/^[0-9]$/[_0x278344(0x34c)](_0x436606))return 0x0;_0x1ff73b+=_0x436606;}}}}return parseFloat(_0x1ff73b);},_0x2bd5dd=_0x28ef09=>_0x28ef09=(_0x28ef09=(_0x28ef09=(_0x28ef09=(_0x28ef09=(_0x28ef09=(_0x28ef09=(_0x28ef09=_0x28ef09[_0x235866(0x1db7)](/1st$/,'1'))['replace'](/2nd$/,'2'))[_0x235866(0x1db7)](/3rd$/,'3'))[_0x235866(0x1db7)](/([4567890])r?th$/,'$1'))[_0x235866(0x1db7)](/^[$€¥£¢]/,''))[_0x235866(0x1db7)](/[%$€¥£¢]$/,''))['replace'](/,/g,''))[_0x235866(0x1db7)](/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,'$1'),_0x52eeea=/^([0-9,. ]+)\/([0-9,. ]+)$/,_0x266005={'a\x20few':0x3,'a\x20couple':0x2,'a\x20dozen':0xc,'two\x20dozen':0x18,'zero':0x0},_0x591809=_0x4751f9=>Object[_0x235866(0x2f75)](_0x4751f9)[_0x235866(0xf33)]((_0x16e2bd,_0x3634ec)=>_0x16e2bd+=_0x4751f9[_0x3634ec],0x0),_0x14a7f1=function(_0x17fadf){const _0x592b9f=_0x235866;if(!0x0===_0x266005[_0x592b9f(0x32b5)](_0x17fadf))return _0x266005[_0x17fadf];if('a'===_0x17fadf||'an'===_0x17fadf)return 0x1;const _0x14cf44=_0x585e05(_0x17fadf);let _0x2c79ec=null,_0x23d4e0={},_0x1c8782=0x0,_0x3fd940=!0x1;const _0x210a36=(_0x17fadf=_0x14cf44['str'])[_0x592b9f(0x29d0)](/[ -]/);for(let _0x17f1e3=0x0;_0x17f1e3<_0x210a36[_0x592b9f(0x205b)];_0x17f1e3++){let _0x53a942=_0x210a36[_0x17f1e3];if(_0x53a942=_0x2bd5dd(_0x53a942),!_0x53a942||_0x592b9f(0x43ea)===_0x53a942)continue;if('-'===_0x53a942||_0x592b9f(0x3fbe)===_0x53a942){_0x3fd940=!0x0;continue;}if('-'===_0x53a942[_0x592b9f(0x32fe)](0x0)&&(_0x3fd940=!0x0,_0x53a942=_0x53a942[_0x592b9f(0x3934)](0x1)),_0x592b9f(0x6db)===_0x53a942)return _0x1c8782+=_0x591809(_0x23d4e0),_0x1c8782+=_0x1223f0(_0x210a36['slice'](_0x17f1e3+0x1,_0x210a36[_0x592b9f(0x205b)])),_0x1c8782*=_0x14cf44['amount'],_0x1c8782;const _0x171be4=_0x53a942[_0x592b9f(0xdc0)](_0x52eeea);if(_0x171be4){const _0x1eee6f=parseFloat(_0x171be4[0x1][_0x592b9f(0x1db7)](/[, ]/g,'')),_0x39c063=parseFloat(_0x171be4[0x2][_0x592b9f(0x1db7)](/[, ]/g,''));_0x39c063&&(_0x1c8782+=_0x1eee6f/_0x39c063||0x0);}else{if(_0x5f16d5[_0x592b9f(0xa5d)][_0x592b9f(0x32b5)](_0x53a942)&&_0x23d4e0[_0x592b9f(0x3cf4)]&&0x1===Object[_0x592b9f(0x2f75)](_0x23d4e0)['length']&&(_0x1c8782=0x64*_0x23d4e0[_0x592b9f(0x3cf4)],_0x23d4e0={}),!0x1===_0x54dc71(_0x53a942,_0x23d4e0))return null;if(/^[0-9.]+$/['test'](_0x53a942))_0x23d4e0['ones']=parseFloat(_0x53a942);else{if(!0x0===_0x5f16d5['ones'][_0x592b9f(0x32b5)](_0x53a942))_0x23d4e0[_0x592b9f(0x3cf4)]=_0x5f16d5[_0x592b9f(0x3cf4)][_0x53a942];else{if(!0x0===_0x5f16d5[_0x592b9f(0x32ba)][_0x592b9f(0x32b5)](_0x53a942))_0x23d4e0[_0x592b9f(0x32ba)]=_0x5f16d5['teens'][_0x53a942];else{if(!0x0===_0x5f16d5['tens'][_0x592b9f(0x32b5)](_0x53a942))_0x23d4e0[_0x592b9f(0xa5d)]=_0x5f16d5[_0x592b9f(0xa5d)][_0x53a942];else{if(!0x0===_0x5f16d5[_0x592b9f(0xd3c)]['hasOwnProperty'](_0x53a942)){let _0x2a01be=_0x5f16d5['multiples'][_0x53a942];if(_0x2a01be===_0x2c79ec)return null;if(0x64===_0x2a01be&&void 0x0!==_0x210a36[_0x17f1e3+0x1]){const _0x5ebc52=_0x210a36[_0x17f1e3+0x1];_0x5f16d5[_0x592b9f(0xd3c)][_0x5ebc52]&&(_0x2a01be*=_0x5f16d5[_0x592b9f(0xd3c)][_0x5ebc52],_0x17f1e3+=0x1);}null===_0x2c79ec||_0x2a01be<_0x2c79ec?(_0x1c8782+=(_0x591809(_0x23d4e0)||0x1)*_0x2a01be,_0x2c79ec=_0x2a01be,_0x23d4e0={}):(_0x1c8782+=_0x591809(_0x23d4e0),_0x2c79ec=_0x2a01be,_0x1c8782=(_0x1c8782||0x1)*_0x2a01be,_0x23d4e0={});}}}}}}}return _0x1c8782+=_0x591809(_0x23d4e0),_0x1c8782*=_0x14cf44[_0x592b9f(0x4a18)],_0x1c8782*=_0x3fd940?-0x1:0x1,0x0===_0x1c8782&&0x0===Object[_0x592b9f(0x2f75)](_0x23d4e0)[_0x592b9f(0x205b)]?null:_0x1c8782;},_0x275991=/s$/,_0x3a9a79=function(_0x42e5c5){const _0x5597f3=_0x235866;let _0x2771b7=_0x42e5c5[_0x5597f3(0x2f35)]('reduced');return _0x14a7f1(_0x2771b7);};let _0x4cf775={'half':0x2,'halve':0x2,'quarter':0x4};const _0x2928a5=function(_0x16cd0e){const _0x145e28=_0x235866;let _0x53ff71=function(_0x5a004f){const _0xe33ae1=a0_0x329b;let _0x2d9275=_0x5a004f['text'](_0xe33ae1(0x475b));return _0x4cf775[_0xe33ae1(0x32b5)](_0x2d9275)?{'numerator':0x1,'denominator':_0x4cf775[_0x2d9275]}:null;}(_0x16cd0e=_0x16cd0e[_0x145e28(0x835)]())||function(_0x2ef959){const _0x590889=_0x145e28;let _0x545c5e=_0x2ef959[_0x590889(0x2f35)](_0x590889(0x475b))[_0x590889(0xdc0)](/^([-+]?[0-9]+)\/([-+]?[0-9]+)(st|nd|rd|th)?s?$/);return _0x545c5e&&_0x545c5e[0x1]&&_0x545c5e[0x0]?{'numerator':Number(_0x545c5e[0x1]),'denominator':Number(_0x545c5e[0x2])}:null;}(_0x16cd0e)||function(_0x52b409){const _0x61c6a6=_0x145e28;let _0x12cf9b=_0x52b409[_0x61c6a6(0xdc0)](_0x61c6a6(0xddc));if(!0x0!==_0x12cf9b[_0x61c6a6(0x622)])return null;let {num:_0x16e82a,den:_0x3160fd}=_0x12cf9b[_0x61c6a6(0xbbd)]();return _0x16e82a&&_0x3160fd?(_0x16e82a=_0x3a9a79(_0x16e82a),_0x3160fd=_0x3a9a79(_0x3160fd),_0x16e82a&&_0x3160fd&&'number'==typeof _0x16e82a&&_0x61c6a6(0x1ed7)==typeof _0x3160fd?{'numerator':_0x16e82a,'denominator':_0x3160fd}:null):null;}(_0x16cd0e)||function(_0xbcdf7a){const _0x3bfdf6=_0x145e28;let _0x35d466=_0xbcdf7a[_0x3bfdf6(0xdc0)]('[(#Cardinal|a)+]\x20[#Fraction+]');if(!0x0!==_0x35d466['found'])return null;let {num:_0x15fb98,den:_0x1da891}=_0x35d466[_0x3bfdf6(0xbbd)]();_0x15fb98=_0x15fb98[_0x3bfdf6(0x5ec)]('a')?0x1:_0x3a9a79(_0x15fb98);let _0x8e2636=_0x1da891['text'](_0x3bfdf6(0x475b));return _0x275991[_0x3bfdf6(0x34c)](_0x8e2636)&&(_0x8e2636=_0x8e2636[_0x3bfdf6(0x1db7)](_0x275991,''),_0x1da891=_0x1da891['replaceWith'](_0x8e2636)),_0x1da891=_0x4cf775[_0x3bfdf6(0x32b5)](_0x8e2636)?_0x4cf775[_0x8e2636]:_0x3a9a79(_0x1da891),'number'==typeof _0x15fb98&&_0x3bfdf6(0x1ed7)==typeof _0x1da891?{'numerator':_0x15fb98,'denominator':_0x1da891}:null;}(_0x16cd0e)||function(_0x3b4011){const _0xeef4ab=_0x145e28;let _0x4e05cf=_0x3b4011[_0xeef4ab(0xdc0)](_0xeef4ab(0x1733));if(!0x0!==_0x4e05cf['found'])return null;if(_0x3b4011[_0xeef4ab(0x1df9)](_0xeef4ab(0x4179)))return{'numerator':0x1,'denominator':_0x3a9a79(_0x4e05cf)};return null;}(_0x16cd0e)||null;return null!==_0x53ff71&&_0x53ff71[_0x145e28(0x34c8)]&&_0x53ff71[_0x145e28(0x924)]&&(_0x53ff71[_0x145e28(0xb4a)]=_0x53ff71[_0x145e28(0x34c8)]/_0x53ff71[_0x145e28(0x924)],_0x53ff71[_0x145e28(0xb4a)]=(_0x3e6789=>{const _0x908cd8=_0x145e28;let _0x8e7b3c=Math[_0x908cd8(0x4d0c)](0x3e8*_0x3e6789)/0x3e8;return 0x0===_0x8e7b3c&&0x0!==_0x3e6789?_0x3e6789:_0x8e7b3c;})(_0x53ff71['decimal'])),_0x53ff71;},_0x3607ba=function(_0x3d7ac4){const _0x1b6f6c=_0x235866;if(_0x3d7ac4<0xf4240)return String(_0x3d7ac4);let _0x3b4792;return _0x3b4792=_0x1b6f6c(0x1ed7)==typeof _0x3d7ac4?_0x3d7ac4[_0x1b6f6c(0x38b2)](0x0):_0x3d7ac4,-0x1===_0x3b4792['indexOf']('e+')?_0x3b4792:_0x3b4792['replace']('.','')[_0x1b6f6c(0x29d0)]('e+')[_0x1b6f6c(0xf33)](function(_0x26f752,_0x79c735){const _0x3bfbd3=_0x1b6f6c;return _0x26f752+Array(_0x79c735-_0x26f752['length']+0x2)[_0x3bfbd3(0x379c)](0x0);});},_0x3363ae=[[_0x235866(0x35c5),0x5a],[_0x235866(0x120f),0x50],[_0x235866(0x822),0x46],[_0x235866(0x1537),0x3c],[_0x235866(0x1c22),0x32],[_0x235866(0x454),0x28],['thirty',0x1e],[_0x235866(0x3151),0x14]],_0x38383e=['',_0x235866(0x4116),_0x235866(0x141f),_0x235866(0x7fc),_0x235866(0xb39),_0x235866(0x4862),'six',_0x235866(0x2da5),_0x235866(0x1bdc),_0x235866(0x101),_0x235866(0x360e),_0x235866(0x4c60),_0x235866(0x239c),_0x235866(0xda5),_0x235866(0x1b99),_0x235866(0x4e85),'sixteen',_0x235866(0x3be6),_0x235866(0x4c5),_0x235866(0x4972)],_0x114e1f=[[0xd3c21bcecceda0000000,_0x235866(0x2f3c)],[0x56bc75e2d63100000,'hundred\x20sextillion'],[0x3635c9adc5dea00000,_0x235866(0xbb2)],[0x56bc75e2d63100000,'hundred\x20quintillion'],[0xde0b6b3a7640000,_0x235866(0x25ed)],[0x16345785d8a0000,_0x235866(0x1420)],[0x38d7ea4c68000,_0x235866(0x50b8)],[0x5af3107a4000,'hundred\x20trillion'],[0xe8d4a51000,_0x235866(0x1cc8)],[0x174876e800,_0x235866(0x1814)],[0x3b9aca00,_0x235866(0x450f)],[0x5f5e100,_0x235866(0x1d0d)],[0xf4240,_0x235866(0x50f3)],[0x186a0,_0x235866(0x7f0)],[0x3e8,_0x235866(0x3109)],[0x64,_0x235866(0x43a7)],[0x1,'one']],_0xe7ac42=function(_0x11c049){const _0xc7ee7d=_0x235866;let _0x30cb03=[];if(_0x11c049>0x64)return _0x30cb03;for(let _0x1abb53=0x0;_0x1abb53<_0x3363ae[_0xc7ee7d(0x205b)];_0x1abb53++)_0x11c049>=_0x3363ae[_0x1abb53][0x1]&&(_0x11c049-=_0x3363ae[_0x1abb53][0x1],_0x30cb03[_0xc7ee7d(0x4131)](_0x3363ae[_0x1abb53][0x0]));return _0x38383e[_0x11c049]&&_0x30cb03[_0xc7ee7d(0x4131)](_0x38383e[_0x11c049]),_0x30cb03;},_0x152df3=function(_0x3990e1){const _0xcfb8f8=_0x235866;let _0x145166=_0x3990e1[_0xcfb8f8(0x3929)];if(0x0===_0x145166||'0'===_0x145166)return'zero';_0x145166>0x3635c9adc5dea00000&&(_0x145166=_0x3607ba(_0x145166));let _0x2ce608=[];_0x145166<0x0&&(_0x2ce608[_0xcfb8f8(0x4131)](_0xcfb8f8(0x2491)),_0x145166=Math[_0xcfb8f8(0x444c)](_0x145166));let _0x18ef08=function(_0x3d1286){const _0x301489=_0xcfb8f8;let _0x39468e=_0x3d1286,_0x26c553=[];return _0x114e1f[_0x301489(0x4854)](_0x5b7083=>{const _0xca2838=_0x301489;if(_0x3d1286>=_0x5b7083[0x0]){let _0x446c42=Math[_0xca2838(0x4dbd)](_0x39468e/_0x5b7083[0x0]);_0x39468e-=_0x446c42*_0x5b7083[0x0],_0x446c42&&_0x26c553['push']({'unit':_0x5b7083[0x1],'count':_0x446c42});}}),_0x26c553;}(_0x145166);for(let _0x559be5=0x0;_0x559be5<_0x18ef08[_0xcfb8f8(0x205b)];_0x559be5++){let _0x4091ce=_0x18ef08[_0x559be5]['unit'];'one'===_0x4091ce&&(_0x4091ce='',_0x2ce608['length']>0x1&&_0x2ce608[_0xcfb8f8(0x4131)](_0xcfb8f8(0x43ea))),_0x2ce608=_0x2ce608[_0xcfb8f8(0x41bf)](_0xe7ac42(_0x18ef08[_0x559be5][_0xcfb8f8(0x4d47)])),_0x2ce608[_0xcfb8f8(0x4131)](_0x4091ce);}return _0x2ce608=_0x2ce608[_0xcfb8f8(0x41bf)]((_0x56501b=>{const _0x18c755=_0xcfb8f8,_0x1bca64=[_0x18c755(0x3799),_0x18c755(0x4116),_0x18c755(0x141f),_0x18c755(0x7fc),_0x18c755(0xb39),'five',_0x18c755(0x3154),'seven',_0x18c755(0x1bdc),_0x18c755(0x101)];let _0x139bab=[],_0x2bc134=_0x3607ba(_0x56501b)[_0x18c755(0xdc0)](/\.([0-9]+)/);if(!_0x2bc134||!_0x2bc134[0x0])return _0x139bab;_0x139bab[_0x18c755(0x4131)](_0x18c755(0x6db));let _0x32cd85=_0x2bc134[0x0]['split']('');for(let _0x1f6338=0x0;_0x1f6338<_0x32cd85[_0x18c755(0x205b)];_0x1f6338++)_0x139bab[_0x18c755(0x4131)](_0x1bca64[_0x32cd85[_0x1f6338]]);return _0x139bab;})(_0x145166)),_0x2ce608=_0x2ce608[_0xcfb8f8(0x295e)](_0x449ab8=>_0x449ab8),0x0===_0x2ce608[_0xcfb8f8(0x205b)]&&(_0x2ce608[0x0]=''),_0x2ce608['join']('\x20');},_0x53ca9a=function(_0x462e30){const _0x10cb40=_0x235866;if(!_0x462e30[_0x10cb40(0x34c8)]||!_0x462e30[_0x10cb40(0x924)])return'';return _0x152df3({'num':_0x462e30[_0x10cb40(0x34c8)]})+_0x10cb40(0x4e49)+_0x152df3({'num':_0x462e30[_0x10cb40(0x924)]});},_0x27eb00={'one':_0x235866(0x509c),'two':'second','three':_0x235866(0x4cf),'five':_0x235866(0x24d2),'eight':_0x235866(0x18bb),'nine':'ninth','twelve':_0x235866(0x2b88),'twenty':_0x235866(0x10f4),'thirty':_0x235866(0x4871),'forty':_0x235866(0x493d),'fourty':'fourtieth','fifty':'fiftieth','sixty':_0x235866(0x2574),'seventy':_0x235866(0x3bbe),'eighty':_0x235866(0x3001),'ninety':_0x235866(0x4517)},_0x5ad8ea=_0xf5e414=>{const _0x4faa92=_0x235866;let _0x12e6b1=_0x152df3(_0xf5e414)[_0x4faa92(0x29d0)]('\x20'),_0x297f62=_0x12e6b1[_0x12e6b1[_0x4faa92(0x205b)]-0x1];return _0x27eb00[_0x4faa92(0x32b5)](_0x297f62)?_0x12e6b1[_0x12e6b1[_0x4faa92(0x205b)]-0x1]=_0x27eb00[_0x297f62]:_0x12e6b1[_0x12e6b1[_0x4faa92(0x205b)]-0x1]=_0x297f62[_0x4faa92(0x1db7)](/y$/,'i')+'th',_0x12e6b1['join']('\x20');},_0x470f09=function(_0x40babb){const _0x5e2c6b=_0x235866;if(!_0x40babb['numerator']||!_0x40babb[_0x5e2c6b(0x924)])return'';let _0x39069a=_0x152df3({'num':_0x40babb[_0x5e2c6b(0x34c8)]}),_0x3bb725=_0x5ad8ea({'num':_0x40babb[_0x5e2c6b(0x924)]});return 0x2===_0x40babb[_0x5e2c6b(0x924)]&&(_0x3bb725=_0x5e2c6b(0x10f3)),_0x39069a&&_0x3bb725?(0x1!==_0x40babb[_0x5e2c6b(0x34c8)]&&(_0x3bb725+='s'),_0x39069a+'\x20'+_0x3bb725):'';},_0x439e28=function(_0xaf560a){const _0x3c6b3c=_0x235866;class _0x59d4a5 extends _0xaf560a{constructor(_0x5e2cde,_0x2bde54,_0x163970){const _0x1a01b2=a0_0x329b;super(_0x5e2cde,_0x2bde54,_0x163970),this[_0x1a01b2(0x3784)]=_0x1a01b2(0xad3);}['parse'](_0x5c1667){const _0x53c6b6=a0_0x329b;return this[_0x53c6b6(0x2ead)](_0x5c1667)[_0x53c6b6(0x2c94)](_0x2928a5);}[_0x3c6b3c(0x2685)](_0x6f10e0){return this['getNth'](_0x6f10e0)['map'](_0x2928a5);}[_0x3c6b3c(0x25b9)](_0x2355c9){const _0x163e25=_0x3c6b3c;return this['getNth'](_0x2355c9)[_0x163e25(0x2c94)](_0x897c5f=>{const _0x28c181=_0x163e25;let _0x489682=_0x897c5f[_0x28c181(0xc6b)]()[_0x28c181(0x25b9)](_0x2355c9)[0x0],_0x391109=_0x2928a5(_0x897c5f);return _0x489682[_0x28c181(0x4a9f)]=_0x391109,_0x489682;},[]);}[_0x3c6b3c(0x1ef8)](_0xd6865c){const _0x263855=_0x3c6b3c;return this[_0x263855(0x2ead)](_0xd6865c)[_0x263855(0x4854)](_0x29564c=>{const _0x545c2c=_0x263855;let {decimal:_0xd74591}=_0x2928a5(_0x29564c);(_0x29564c=_0x29564c[_0x545c2c(0x6f5)](String(_0xd74591),!0x0))[_0x545c2c(0x17a2)](_0x545c2c(0x1256)),_0x29564c['unTag']('Fraction');}),this;}[_0x3c6b3c(0x29dc)](_0x377e5e){const _0x3bfa0b=_0x3c6b3c;return this[_0x3bfa0b(0x2ead)](_0x377e5e)[_0x3bfa0b(0x4854)](_0x378ca7=>{const _0x4d311a=_0x3bfa0b;let _0x3e45ab=_0x2928a5(_0x378ca7);if(_0x3e45ab&&_0x4d311a(0x1ed7)==typeof _0x3e45ab[_0x4d311a(0x34c8)]&&_0x4d311a(0x1ed7)==typeof _0x3e45ab[_0x4d311a(0x924)]){let _0x324c50=_0x3e45ab[_0x4d311a(0x34c8)]+'/'+_0x3e45ab[_0x4d311a(0x924)];this[_0x4d311a(0x1db7)](_0x378ca7,_0x324c50);}}),this;}[_0x3c6b3c(0x11e4)](_0x3f2333){const _0x201a4f=_0x3c6b3c;return this[_0x201a4f(0x2ead)](_0x3f2333)[_0x201a4f(0x4854)](_0x3d266a=>{const _0x228db2=_0x201a4f;let _0x3f7f0b=_0x2928a5(_0x3d266a),_0x24f491=_0x470f09(_0x3f7f0b);_0x3d266a['after']('^#Noun')[_0x228db2(0x622)]&&(_0x24f491+=_0x228db2(0x565)),_0x3d266a[_0x228db2(0x6f5)](_0x24f491);}),this;}[_0x3c6b3c(0xfb0)](_0x587611){const _0x376a6a=_0x3c6b3c;return this[_0x376a6a(0x2ead)](_0x587611)['forEach'](_0x11fcc1=>{const _0x37b228=_0x376a6a;let _0x2faf11=_0x2928a5(_0x11fcc1),_0x28b31c=_0x53ca9a(_0x2faf11);_0x11fcc1[_0x37b228(0x6f5)](_0x28b31c);}),this;}[_0x3c6b3c(0x274c)](_0x512baa){const _0x190c30=_0x3c6b3c;return this[_0x190c30(0x2ead)](_0x512baa)[_0x190c30(0x4854)](_0xea961c=>{const _0x362295=_0x190c30;let {decimal:_0x15d476}=_0x2928a5(_0xea961c),_0x41979e=0x64*_0x15d476;_0x41979e=Math[_0x362295(0x4d0c)](0x64*_0x41979e)/0x64,_0xea961c[_0x362295(0x6f5)](_0x41979e+'%');}),this;}}_0xaf560a[_0x3c6b3c(0x2b5c)][_0x3c6b3c(0xa16)]=function(_0x1d1e13){const _0x27c4d9=_0x3c6b3c;let _0x592716=_0x296737(this);return _0x592716=_0x592716['getNth'](_0x1d1e13),new _0x59d4a5(this[_0x27c4d9(0x46d9)],_0x592716[_0x27c4d9(0x1d95)]);};},_0x28b521=_0x235866(0x2fe8),_0x3f1b22=function(_0xaaf7b0){const _0x34ba18=_0x235866;let _0x73fd84=_0xaaf7b0[_0x34ba18(0xdc0)](_0x34ba18(0x44c2));if(_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x4539))&&(_0x73fd84['has'](_0x34ba18(0x240c))?_0x73fd84[_0x34ba18(0x2810)](_0x34ba18(0x158c)):_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x1cc7))?_0x73fd84['splitAfter'](_0x34ba18(0x1cc7)):_0x73fd84=_0x73fd84[_0x34ba18(0x2810)](_0x34ba18(0x2b8))),_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x2e2f))&&!_0x73fd84[_0x34ba18(0x5ec)]('#Multiple')&&_0x73fd84[_0x34ba18(0x5ec)]('('+_0x28b521+')\x20#Cardinal\x20#Cardinal')&&(_0x73fd84=_0x73fd84['splitAfter']('('+_0x28b521+_0x34ba18(0x9c1))),_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x4fac))){_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x4539))&&(_0x73fd84=_0x73fd84[_0x34ba18(0x3392)](_0x34ba18(0x100f))),_0x73fd84[_0x34ba18(0x5ec)]('('+_0x28b521+_0x34ba18(0x2a4d))&&(_0x73fd84=_0x73fd84['splitAfter']('('+_0x28b521+')'));let _0x4294e8=_0x73fd84[_0x34ba18(0xdc0)](_0x34ba18(0x4d81));if(_0x4294e8[_0x34ba18(0x622)]&&!_0x73fd84[_0x34ba18(0x5ec)]('(point|decimal|#Fraction)')&&!_0x4294e8[_0x34ba18(0x5ec)]('#Cardinal\x20(#Multiple|point|decimal)')){let _0x9d713e=_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x1484)+_0x28b521+')'),_0x288720=_0x4294e8[_0x34ba18(0x5ec)]('('+_0x28b521+_0x34ba18(0x9c1)),_0x4b5cfa=_0x4294e8[_0x34ba18(0x5ec)](_0x34ba18(0x17a));_0x9d713e||_0x288720||_0x4b5cfa||_0x4294e8[_0x34ba18(0x18a5)]()[_0x34ba18(0x4854)](_0x29ff4d=>{const _0x264c16=_0x34ba18;_0x73fd84=_0x73fd84[_0x264c16(0x3392)](_0x29ff4d);});}_0x73fd84[_0x34ba18(0xdc0)](_0x34ba18(0x3486))['match']('#TextValue')[_0x34ba18(0x622)]&&!_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x1fe4))&&(_0x73fd84[_0x34ba18(0x5ec)]('('+_0x28b521+_0x34ba18(0x3dba))||(_0x73fd84=_0x73fd84[_0x34ba18(0x2810)](_0x34ba18(0x4fb0)))),_0x73fd84=_0x73fd84[_0x34ba18(0x5f2)](_0x34ba18(0x34a8),0x0),_0x73fd84[_0x34ba18(0x5ec)](_0x34ba18(0x4dad))&&!_0x73fd84[_0x34ba18(0x5ec)]('('+_0x28b521+_0x34ba18(0x3ae8))&&(_0x73fd84=_0x73fd84[_0x34ba18(0x5f2)](_0x34ba18(0x4dad)));}return _0x73fd84=_0x73fd84['splitAfter'](_0x34ba18(0x45bb)),_0x73fd84=_0x73fd84[_0x34ba18(0x5f2)]('#Year'),_0x73fd84;},_0x41b715=function(_0x46e201){const _0x35fe2d=_0x235866;if(_0x35fe2d(0x4f7c)==typeof _0x46e201)return{'num':_0x14a7f1(_0x46e201)};let _0x83a843=_0x46e201[_0x35fe2d(0x2f35)](_0x35fe2d(0x475b)),_0x1dc09f=_0x46e201[_0x35fe2d(0x45a3)]('#Unit')[_0x35fe2d(0xdc0)](_0x35fe2d(0x11c6))['text']('machine'),_0x3dfade=/[0-9],[0-9]/[_0x35fe2d(0x34c)](_0x46e201['text']('text'));if(0x1===_0x46e201[_0x35fe2d(0x18a5)]()['length']&&!_0x46e201['has'](_0x35fe2d(0x1fe4))){let _0x59d01e=function(_0x40376e,_0x205d96){const _0x317a5e=_0x35fe2d;let _0x25ace2=(_0x40376e=_0x40376e['replace'](/,/g,''))[_0x317a5e(0x29d0)](/([0-9.,]*)/),[_0x3fc7c8,_0x57da95]=_0x25ace2,_0x4b2ba9=_0x25ace2['slice'](0x2)[_0x317a5e(0x379c)]('');return''!==_0x57da95&&_0x205d96[_0x317a5e(0x205b)]<0x2?(_0x57da95=Number(_0x57da95||_0x40376e),_0x317a5e(0x1ed7)!=typeof _0x57da95&&(_0x57da95=null),_0x4b2ba9=_0x4b2ba9||'','st'!==_0x4b2ba9&&'nd'!==_0x4b2ba9&&'rd'!==_0x4b2ba9&&'th'!==_0x4b2ba9||(_0x4b2ba9=''),{'prefix':_0x3fc7c8||'','num':_0x57da95,'suffix':_0x4b2ba9}):null;}(_0x83a843,_0x46e201);if(null!==_0x59d01e)return _0x59d01e[_0x35fe2d(0x15b)]=_0x3dfade,_0x59d01e[_0x35fe2d(0x2c2e)]=_0x1dc09f,_0x59d01e;}let _0x3e97d4=_0x46e201[_0x35fe2d(0xdc0)](_0x35fe2d(0x1452));_0x3e97d4=!0x1===_0x3e97d4[_0x35fe2d(0x622)]?_0x46e201[_0x35fe2d(0xdc0)](_0x35fe2d(0x1532)):_0x3e97d4;let _0x3d2075=null;_0x3e97d4[_0x35fe2d(0x622)]&&(_0x3e97d4[_0x35fe2d(0x5ec)](_0x35fe2d(0x4685))&&(_0x3e97d4=_0x3e97d4[_0x35fe2d(0xdc0)](_0x35fe2d(0x2f72))),_0x3d2075=_0x2928a5(_0x3e97d4),_0x83a843=(_0x46e201=(_0x46e201=_0x46e201[_0x35fe2d(0x4163)](_0x3e97d4))[_0x35fe2d(0x4163)](_0x35fe2d(0x2266)))[_0x35fe2d(0x2f35)]('reduced'));let _0x1fcfbc=0x0;return _0x83a843&&(_0x1fcfbc=_0x14a7f1(_0x83a843)||0x0),_0x3d2075&&_0x3d2075[_0x35fe2d(0xb4a)]&&(_0x1fcfbc+=_0x3d2075[_0x35fe2d(0xb4a)]),{'hasComma':_0x3dfade,'prefix':'','num':_0x1fcfbc,'suffix':'','isOrdinal':_0x46e201[_0x35fe2d(0x5ec)](_0x35fe2d(0x4fb0)),'isText':_0x46e201[_0x35fe2d(0x5ec)](_0x35fe2d(0x45d2)),'isFraction':_0x46e201['has']('#Fraction'),'isMoney':_0x46e201[_0x35fe2d(0x5ec)](_0x35fe2d(0x43a1)),'unit':_0x1dc09f};},_0x1f2159=function(_0xc07c){const _0x3ca7e7=_0x235866;let _0x1a285c=_0xc07c[_0x3ca7e7(0x3929)];if(!_0x1a285c&&0x0!==_0x1a285c)return null;let _0xdbb07d=_0x1a285c%0x64;if(_0xdbb07d>0xa&&_0xdbb07d<0x14)return String(_0x1a285c)+'th';const _0x1c43fc={0x0:'th',0x1:'st',0x2:'nd',0x3:'rd'};let _0x2c5d58=_0x3607ba(_0x1a285c),_0x54023f=_0x2c5d58['slice'](_0x2c5d58[_0x3ca7e7(0x205b)]-0x1,_0x2c5d58[_0x3ca7e7(0x205b)]);return _0x2c5d58+=_0x1c43fc[_0x54023f]?_0x1c43fc[_0x54023f]:'th',_0x2c5d58;},_0x15db7d={'¢':'cents','$':'dollars','£':_0x235866(0x4741),'¥':'yen','€':'euros','₡':_0x235866(0x3192),'฿':_0x235866(0x6af),'₭':_0x235866(0xee0),'₩':_0x235866(0x3c20),'₹':_0x235866(0x277d),'₽':_0x235866(0x186e),'₺':'liras'},_0x28c0a1={'%':_0x235866(0x2dcb),'°':_0x235866(0x1ecb)},_0x4529b7=function(_0x385472){const _0x4adb70=_0x235866;let _0x7c7488={'suffix':'','prefix':_0x385472['prefix']};return _0x15db7d['hasOwnProperty'](_0x385472[_0x4adb70(0x1644)])&&(_0x7c7488[_0x4adb70(0x25ce)]+='\x20'+_0x15db7d[_0x385472[_0x4adb70(0x1644)]],_0x7c7488[_0x4adb70(0x1644)]=''),_0x28c0a1[_0x4adb70(0x32b5)](_0x385472[_0x4adb70(0x25ce)])&&(_0x7c7488[_0x4adb70(0x25ce)]+='\x20'+_0x28c0a1[_0x385472[_0x4adb70(0x25ce)]]),_0x7c7488[_0x4adb70(0x25ce)]&&0x1===_0x385472['num']&&(_0x7c7488['suffix']=_0x7c7488['suffix']['replace'](/s$/,'')),!_0x7c7488[_0x4adb70(0x25ce)]&&_0x385472['suffix']&&(_0x7c7488[_0x4adb70(0x25ce)]+='\x20'+_0x385472[_0x4adb70(0x25ce)]),_0x7c7488;},_0x5829a3=function(_0x46b8d5,_0x18856d){const _0x71c69d=_0x235866;if('TextOrdinal'===_0x18856d){let {prefix:_0x1563e9,suffix:_0x284a98}=_0x4529b7(_0x46b8d5);return _0x1563e9+_0x5ad8ea(_0x46b8d5)+_0x284a98;}if(_0x71c69d(0x529)===_0x18856d)return _0x46b8d5[_0x71c69d(0x1644)]+_0x1f2159(_0x46b8d5)+_0x46b8d5[_0x71c69d(0x25ce)];if(_0x71c69d(0x88c)===_0x18856d){let {prefix:_0x274944,suffix:_0x41e49d}=_0x4529b7(_0x46b8d5);return _0x274944+_0x152df3(_0x46b8d5)+_0x41e49d;}let _0x27e98f=_0x46b8d5[_0x71c69d(0x3929)];return _0x46b8d5[_0x71c69d(0x15b)]&&(_0x27e98f=_0x27e98f[_0x71c69d(0x3ff8)]()),_0x46b8d5[_0x71c69d(0x1644)]+String(_0x27e98f)+_0x46b8d5[_0x71c69d(0x25ce)];},_0x281a99=function(_0x4ec699){const _0x3c2403=_0x235866;if(_0x3c2403(0x4f7c)==typeof _0x4ec699||_0x3c2403(0x1ed7)==typeof _0x4ec699){let _0xba47eb={};return _0xba47eb[_0x4ec699]=!0x0,_0xba47eb;}return _0x6dfa34=_0x4ec699,_0x3c2403(0x4fba)===Object[_0x3c2403(0x2b5c)][_0x3c2403(0x44de)][_0x3c2403(0x4c9d)](_0x6dfa34)?_0x4ec699[_0x3c2403(0xf33)]((_0x4b86bf,_0x42f747)=>(_0x4b86bf[_0x42f747]=!0x0,_0x4b86bf),{}):_0x4ec699||{};var _0x6dfa34;},_0x5c29b0=function(_0x381dfa,_0x5cbd10={}){const _0x87298d=_0x235866;return _0x5cbd10=_0x281a99(_0x5cbd10),_0x381dfa[_0x87298d(0x295e)](_0x2184a0=>{let {unit:_0x5935dc}=_0x41b715(_0x2184a0);return!(!_0x5935dc||!0x0!==_0x5cbd10[_0x5935dc]);});},_0x3d2bb8=function(_0x3c69f6){const _0x146dd9=_0x235866;class _0x39d0ad extends _0x3c69f6{constructor(_0x7f9c34,_0x232833,_0xf7ae79){const _0x1d03ca=a0_0x329b;super(_0x7f9c34,_0x232833,_0xf7ae79),this[_0x1d03ca(0x3784)]=_0x1d03ca(0x1b4);}[_0x146dd9(0x1b07)](_0x55ef70){const _0x277e9c=_0x146dd9;return this[_0x277e9c(0x2ead)](_0x55ef70)[_0x277e9c(0x2c94)](_0x41b715);}[_0x146dd9(0x2685)](_0x3e3b39){const _0x58b339=_0x146dd9;return this[_0x58b339(0x2ead)](_0x3e3b39)[_0x58b339(0x2c94)](_0x41b715)['map'](_0x4f230e=>_0x4f230e[_0x58b339(0x3929)]);}[_0x146dd9(0x25b9)](_0x375172){const _0x4b3080=_0x146dd9;let _0x285ca9=_0x4b3080(0x2b58)==typeof _0x375172?_0x375172:{};return this[_0x4b3080(0x2ead)](_0x375172)[_0x4b3080(0x2c94)](_0x14cdeb=>{const _0x58e181=_0x4b3080;let _0x1ae3e5=_0x14cdeb[_0x58e181(0xc6b)]()[_0x58e181(0x25b9)](_0x285ca9)[0x0],_0x562849=_0x41b715(_0x14cdeb);return _0x1ae3e5[_0x58e181(0x1ed7)]={'prefix':_0x562849[_0x58e181(0x1644)],'num':_0x562849[_0x58e181(0x3929)],'suffix':_0x562849[_0x58e181(0x25ce)],'hasComma':_0x562849['hasComma'],'unit':_0x562849[_0x58e181(0x2c2e)]},_0x1ae3e5;},[]);}[_0x146dd9(0x2f40)](){const _0x432586=_0x146dd9;return this[_0x432586(0x45a3)](_0x432586(0x936))[_0x432586(0xdc0)](_0x432586(0x11c6));}['isUnit'](_0x33d16f){return _0x5c29b0(this,_0x33d16f);}[_0x146dd9(0x5071)](){const _0x3ec142=_0x146dd9;return this['if'](_0x3ec142(0x4fb0));}[_0x146dd9(0x3aac)](){const _0x3113e4=_0x146dd9;return this['if'](_0x3113e4(0xa0d));}['toNumber'](){const _0x5529a0=_0x146dd9;return this['if'](_0x5529a0(0x45d2))['forEach'](_0x5358b=>{const _0x590199=_0x5529a0;let _0x2e067c=_0x41b715(_0x5358b);if(null===_0x2e067c[_0x590199(0x3929)])return;let _0x1450e8=_0x5358b[_0x590199(0x5ec)]('#Ordinal')?'Ordinal':'Cardinal',_0x394183=_0x5829a3(_0x2e067c,_0x1450e8);_0x5358b[_0x590199(0x6f5)](_0x394183,{'tags':!0x0}),_0x5358b['tag']('NumericValue');}),this;}[_0x146dd9(0x3ff8)](){return this['forEach'](_0x1080ae=>{const _0x66748b=a0_0x329b;let _0x380b31=_0x41b715(_0x1080ae);if(null===_0x380b31[_0x66748b(0x3929)])return;let _0x3bc0ce=_0x380b31[_0x66748b(0x3929)]['toLocaleString']();if(_0x1080ae[_0x66748b(0x5ec)]('#Ordinal')){let _0x1999e6=_0x5829a3(_0x380b31,_0x66748b(0x529))['match'](/[a-z]+$/);_0x1999e6&&(_0x3bc0ce+=_0x1999e6[0x0]||'');}_0x1080ae[_0x66748b(0x6f5)](_0x3bc0ce,{'tags':!0x0});}),this;}['toText'](){const _0x5439b0=_0x146dd9;let _0x2c2059=this[_0x5439b0(0x2c94)](_0x54c497=>{const _0x51f40a=_0x5439b0;if(_0x54c497[_0x51f40a(0x5ec)](_0x51f40a(0x45d2)))return _0x54c497;let _0x14ccaf=_0x41b715(_0x54c497);if(null===_0x14ccaf['num'])return _0x54c497;let _0x332129=_0x54c497[_0x51f40a(0x5ec)](_0x51f40a(0x4fb0))?_0x51f40a(0x510b):'TextCardinal',_0x5f1402=_0x5829a3(_0x14ccaf,_0x332129);return _0x54c497[_0x51f40a(0x6f5)](_0x5f1402,{'tags':!0x0}),_0x54c497['tag'](_0x51f40a(0x20ed)),_0x54c497;});return new _0x39d0ad(_0x2c2059['document'],_0x2c2059['pointer']);}['toCardinal'](){const _0x17f2e8=_0x146dd9;let _0x2493bc=this[_0x17f2e8(0x2c94)](_0x425671=>{const _0x45a28f=_0x17f2e8;if(!_0x425671['has']('#Ordinal'))return _0x425671;let _0x52149a=_0x41b715(_0x425671);if(null===_0x52149a[_0x45a28f(0x3929)])return _0x425671;let _0x42e48c=_0x425671[_0x45a28f(0x5ec)]('#TextValue')?'TextCardinal':_0x45a28f(0x2346),_0x3dae8a=_0x5829a3(_0x52149a,_0x42e48c);return _0x425671[_0x45a28f(0x6f5)](_0x3dae8a,{'tags':!0x0}),_0x425671['tag']('Cardinal'),_0x425671;});return new _0x39d0ad(_0x2493bc[_0x17f2e8(0x46d9)],_0x2493bc[_0x17f2e8(0x1d95)]);}[_0x146dd9(0x11e4)](){const _0x16f64c=_0x146dd9;let _0x2e6358=this['map'](_0x1f2652=>{const _0x45748c=a0_0x329b;if(_0x1f2652[_0x45748c(0x5ec)](_0x45748c(0x4fb0)))return _0x1f2652;let _0x501127=_0x41b715(_0x1f2652);if(null===_0x501127[_0x45748c(0x3929)])return _0x1f2652;let _0x5b2f48=_0x1f2652[_0x45748c(0x5ec)](_0x45748c(0x45d2))?_0x45748c(0x510b):_0x45748c(0x529),_0x11f013=_0x5829a3(_0x501127,_0x5b2f48);return _0x1f2652['replaceWith'](_0x11f013,{'tags':!0x0}),_0x1f2652[_0x45748c(0x17a2)](_0x45748c(0x529)),_0x1f2652;});return new _0x39d0ad(_0x2e6358[_0x16f64c(0x46d9)],_0x2e6358[_0x16f64c(0x1d95)]);}['isEqual'](_0x4a2ea0){const _0x215d3d=_0x146dd9;return this[_0x215d3d(0x295e)](_0x33e9f7=>_0x41b715(_0x33e9f7)[_0x215d3d(0x3929)]===_0x4a2ea0);}[_0x146dd9(0xfc0)](_0x48b81b){const _0x26d34e=_0x146dd9;return this[_0x26d34e(0x295e)](_0x427b3c=>_0x41b715(_0x427b3c)[_0x26d34e(0x3929)]>_0x48b81b);}['lessThan'](_0x10f19c){const _0x1b9c3c=_0x146dd9;return this['filter'](_0x1ee0b1=>_0x41b715(_0x1ee0b1)[_0x1b9c3c(0x3929)]<_0x10f19c);}[_0x146dd9(0xf5)](_0x13ea42,_0x54ad8c){const _0x49796e=_0x146dd9;return this[_0x49796e(0x295e)](_0x16904a=>{const _0xe4172c=_0x49796e;let _0x561061=_0x41b715(_0x16904a)[_0xe4172c(0x3929)];return _0x561061>_0x13ea42&&_0x561061<_0x54ad8c;});}['set'](_0x3d74bf){const _0x5508ac=_0x146dd9;if(void 0x0===_0x3d74bf)return this;_0x5508ac(0x4f7c)==typeof _0x3d74bf&&(_0x3d74bf=_0x41b715(_0x3d74bf)[_0x5508ac(0x3929)]);let _0x29e3cc=this[_0x5508ac(0x2c94)](_0x153170=>{const _0xb3196f=_0x5508ac;let _0x14e839=_0x41b715(_0x153170);if(_0x14e839[_0xb3196f(0x3929)]=_0x3d74bf,null===_0x14e839[_0xb3196f(0x3929)])return _0x153170;let _0x1d7557=_0x153170[_0xb3196f(0x5ec)](_0xb3196f(0x4fb0))?'Ordinal':'Cardinal';_0x153170[_0xb3196f(0x5ec)](_0xb3196f(0x45d2))&&(_0x1d7557=_0x153170[_0xb3196f(0x5ec)]('#Ordinal')?_0xb3196f(0x510b):'TextCardinal');let _0xde54a2=_0x5829a3(_0x14e839,_0x1d7557);return _0x14e839[_0xb3196f(0x15b)]&&_0xb3196f(0x2346)===_0x1d7557&&(_0xde54a2=Number(_0xde54a2)[_0xb3196f(0x3ff8)]()),(_0x153170=_0x153170[_0xb3196f(0x4163)](_0xb3196f(0x48d8)))[_0xb3196f(0x6f5)](_0xde54a2,{'tags':!0x0}),_0x153170;});return new _0x39d0ad(_0x29e3cc[_0x5508ac(0x46d9)],_0x29e3cc['pointer']);}[_0x146dd9(0x2fd8)](_0x28f7aa){const _0x45ed85=_0x146dd9;if(!_0x28f7aa)return this;_0x45ed85(0x4f7c)==typeof _0x28f7aa&&(_0x28f7aa=_0x41b715(_0x28f7aa)[_0x45ed85(0x3929)]);let _0x9138f7=this[_0x45ed85(0x2c94)](_0x1f3494=>{const _0x51d273=_0x45ed85;let _0x470a5e=_0x41b715(_0x1f3494);if(null===_0x470a5e[_0x51d273(0x3929)])return _0x1f3494;_0x470a5e[_0x51d273(0x3929)]+=_0x28f7aa;let _0x49fc5f=_0x1f3494['has'](_0x51d273(0x4fb0))?'Ordinal':'Cardinal';_0x470a5e[_0x51d273(0xd13)]&&(_0x49fc5f=_0x1f3494[_0x51d273(0x5ec)](_0x51d273(0x4fb0))?_0x51d273(0x510b):_0x51d273(0x88c));let _0x551be0=_0x5829a3(_0x470a5e,_0x49fc5f);return _0x1f3494[_0x51d273(0x6f5)](_0x551be0,{'tags':!0x0}),_0x1f3494;});return new _0x39d0ad(_0x9138f7[_0x45ed85(0x46d9)],_0x9138f7[_0x45ed85(0x1d95)]);}[_0x146dd9(0x3b5f)](_0x211239,_0x3980ae){const _0x3ffa4e=_0x146dd9;return this[_0x3ffa4e(0x2fd8)](-0x1*_0x211239,_0x3980ae);}[_0x146dd9(0x1a78)](_0x1411c9){return this['add'](0x1,_0x1411c9);}['decrement'](_0xe607e){const _0x5c3fda=_0x146dd9;return this[_0x5c3fda(0x2fd8)](-0x1,_0xe607e);}[_0x146dd9(0xf93)](_0x3c59a5){const _0x41d5e1=_0x146dd9;let _0x3fb80e=new _0x39d0ad(this[_0x41d5e1(0x46d9)],_0x3c59a5);return _0x3fb80e[_0x41d5e1(0x1d5f)]=this[_0x41d5e1(0x1d5f)],_0x3fb80e;}}_0x39d0ad['prototype']['toNice']=_0x39d0ad[_0x146dd9(0x2b5c)]['toLocaleString'],_0x39d0ad['prototype'][_0x146dd9(0x44e1)]=_0x39d0ad['prototype'][_0x146dd9(0xf5)],_0x39d0ad[_0x146dd9(0x2b5c)][_0x146dd9(0x2491)]=_0x39d0ad['prototype']['subtract'],_0x39d0ad[_0x146dd9(0x2b5c)]['plus']=_0x39d0ad[_0x146dd9(0x2b5c)][_0x146dd9(0x2fd8)],_0x39d0ad[_0x146dd9(0x2b5c)][_0x146dd9(0x20b2)]=_0x39d0ad['prototype'][_0x146dd9(0x1972)],_0x3c69f6[_0x146dd9(0x2b5c)][_0x146dd9(0x436d)]=function(_0x47dcbb){const _0x54f60f=_0x146dd9;let _0x32956d=_0x3f1b22(this);return _0x32956d=_0x32956d[_0x54f60f(0x2ead)](_0x47dcbb),new _0x39d0ad(this[_0x54f60f(0x46d9)],_0x32956d['pointer']);},_0x3c69f6[_0x146dd9(0x2b5c)]['percentages']=function(_0x21debf){const _0x10d59b=_0x146dd9;let _0x265ca9=_0x3f1b22(this);return _0x265ca9=_0x265ca9[_0x10d59b(0x295e)](_0x321548=>_0x321548[_0x10d59b(0x5ec)](_0x10d59b(0x1730))||_0x321548['after'](_0x10d59b(0x1d84))),_0x265ca9=_0x265ca9[_0x10d59b(0x2ead)](_0x21debf),new _0x39d0ad(this[_0x10d59b(0x46d9)],_0x265ca9[_0x10d59b(0x1d95)]);},_0x3c69f6['prototype'][_0x146dd9(0x4a51)]=function(_0x4900e7){const _0x1213a8=_0x146dd9;let _0x528b48=_0x3f1b22(this);return _0x528b48=_0x528b48[_0x1213a8(0x295e)](_0xeba632=>_0xeba632[_0x1213a8(0x5ec)]('#Money')||_0xeba632['after'](_0x1213a8(0x153c))),_0x528b48=_0x528b48['getNth'](_0x4900e7),new _0x39d0ad(this[_0x1213a8(0x46d9)],_0x528b48[_0x1213a8(0x1d95)]);},_0x3c69f6[_0x146dd9(0x2b5c)][_0x146dd9(0x4a3e)]=_0x3c69f6['prototype']['numbers'];},_0x27926f={'api':function(_0x59e2c4){_0x439e28(_0x59e2c4),_0x3d2bb8(_0x59e2c4);}},_0x109bd7={'people':!0x0,'emails':!0x0,'phoneNumbers':!0x0,'places':!0x0},_0x10d8b8=function(_0x374df2={}){const _0x5f06d1=_0x235866;return!0x1!==(_0x374df2=Object[_0x5f06d1(0x11e8)]({},_0x109bd7,_0x374df2))[_0x5f06d1(0x2764)]&&this['people']()[_0x5f06d1(0x6f5)](_0x5f06d1(0x4e9)),!0x1!==_0x374df2['emails']&&this['emails']()[_0x5f06d1(0x6f5)](_0x5f06d1(0x4e9)),!0x1!==_0x374df2['places']&&this[_0x5f06d1(0x496b)]()[_0x5f06d1(0x6f5)]('██████████'),!0x1!==_0x374df2[_0x5f06d1(0x4a74)]&&this[_0x5f06d1(0x4a74)]()[_0x5f06d1(0x6f5)](_0x5f06d1(0x4b67)),this;},_0x1f2055={'api':function(_0x398a3d){const _0x28910d=_0x235866;_0x398a3d[_0x28910d(0x2b5c)]['redact']=_0x10d8b8;}},_0x379bfb=_0x1f2055,_0x22c356=function(_0x3ef419){const _0x4826f3=_0x235866,_0x1071c3=/\?/,{document:_0xfe3ed2}=_0x3ef419;return _0x3ef419[_0x4826f3(0x295e)](_0x384b3b=>{const _0x455d39=_0x4826f3;let _0x286e85=_0x384b3b['docs'][0x0]||[],_0x9da9f4=_0x286e85[_0x286e85[_0x455d39(0x205b)]-0x1];return!(!_0x9da9f4||_0xfe3ed2[_0x9da9f4['index'][0x0]]['length']!==_0x286e85[_0x455d39(0x205b)])&&(!!_0x1071c3[_0x455d39(0x34c)](_0x9da9f4[_0x455d39(0x9ce)])||function(_0x2c3241){const _0x501852=_0x455d39;let _0x5d230d=_0x2c3241[_0x501852(0x3f20)]();return!(/\.\.$/[_0x501852(0x34c)](_0x2c3241[_0x501852(0x4284)](_0x501852(0x2f35)))||_0x2c3241[_0x501852(0x5ec)](_0x501852(0x3278))&&_0x2c3241['has'](_0x501852(0x158c))||!_0x2c3241[_0x501852(0x5ec)](_0x501852(0x3edb))&&!_0x2c3241['has'](_0x501852(0x3278))&&!_0x2c3241[_0x501852(0x5ec)](_0x501852(0x2b0f))&&!_0x2c3241[_0x501852(0x5ec)](_0x501852(0x320d))&&!_0x5d230d[_0x501852(0x5ec)](_0x501852(0x16a6)));}(_0x384b3b));});},_0x1d1ef3=function(_0x1e0093){const _0x19ddc8=_0x235866;let _0x129593=_0x1e0093;return 0x1===_0x129593[_0x19ddc8(0x205b)]?_0x129593:(_0x129593=_0x129593['if'](_0x19ddc8(0x3b0e)),0x1===_0x129593[_0x19ddc8(0x205b)]?_0x129593:(_0x129593=_0x129593['ifNo'](_0x19ddc8(0x265d)),_0x129593=_0x129593[_0x19ddc8(0x4641)](_0x19ddc8(0x35c4)),_0x129593=_0x129593[_0x19ddc8(0x4641)](_0x19ddc8(0x3653)),_0x129593=_0x129593['ifNo'](_0x19ddc8(0x3da9)),_0x129593=_0x129593['ifNo'](_0x19ddc8(0x5fb)),0x1===_0x129593[_0x19ddc8(0x205b)]?_0x129593:(_0x129593=_0x129593[_0x19ddc8(0x4641)](_0x19ddc8(0x1f8d)),0x1===_0x129593['length']?_0x129593:(_0x129593=_0x129593['ifNo'](_0x19ddc8(0x471)),0x1===_0x129593[_0x19ddc8(0x205b)]?_0x129593:(_0x129593=_0x129593['ifNo']('^#Gerund'),0x1===_0x129593['length']?_0x129593:(0x0===_0x129593['length']&&(_0x129593=_0x1e0093),_0x129593['eq'](0x0)))))));},_0x2df2b5=function(_0x104281){const _0x13da75=_0x235866;let _0x86990f=null;return _0x104281['has'](_0x13da75(0x2407))?_0x86990f=_0x13da75(0x2192):_0x104281[_0x13da75(0x5ec)]('#FutureTense')?_0x86990f=_0x13da75(0xa75):_0x104281[_0x13da75(0x5ec)](_0x13da75(0x13b6))&&(_0x86990f=_0x13da75(0x17a6)),{'tense':_0x86990f};},_0x1d1816=function(_0x552f2a){const _0x4be811=_0x235866;let _0x1e9fb9=_0x552f2a[_0x4be811(0x3f20)](),_0x3fe568=_0x1d1ef3(_0x1e9fb9)[_0x4be811(0x23a8)](),_0x454854=_0x552f2a['none'](),_0x1fcd5d=_0x552f2a[_0x4be811(0x80b)](),_0x30b041=_0x552f2a[_0x4be811(0x80b)]();return _0x3fe568['forEach']((_0xcabd12,_0x309521)=>{const _0x1b6c10=_0x4be811;0x0!==_0x309521||_0xcabd12[_0x1b6c10(0x5ec)](_0x1b6c10(0x3817))?_0x1fcd5d['found']||!_0xcabd12[_0x1b6c10(0x5ec)](_0x1b6c10(0x3817))?_0x1fcd5d[_0x1b6c10(0x622)]&&(_0x30b041=_0x30b041[_0x1b6c10(0x41bf)](_0xcabd12)):_0x1fcd5d=_0xcabd12:_0x454854=_0xcabd12;}),_0x1fcd5d[_0x4be811(0x622)]&&!_0x454854['found']&&(_0x454854=_0x1fcd5d[_0x4be811(0x19f2)](_0x4be811(0x2528))[_0x4be811(0x509c)]()),{'subj':_0x454854,'verb':_0x1fcd5d,'pred':_0x30b041,'grammar':_0x2df2b5(_0x1fcd5d)};},_0x3d555a=function(_0xd98c5b){const _0x33d7db=_0x235866;let _0xc771ff=_0xd98c5b[_0x33d7db(0x333a)](),_0x43d408=_0xc771ff['eq'](0x0);if(_0x43d408['has'](_0x33d7db(0x2407)))return _0xd98c5b;if(_0x43d408[_0x33d7db(0xa80)](),_0xc771ff[_0x33d7db(0x205b)]>0x1){_0xc771ff=_0xc771ff[_0x33d7db(0x428e)](0x1),_0xc771ff=_0xc771ff[_0x33d7db(0x295e)](_0xa2ca35=>!_0xa2ca35[_0x33d7db(0x2add)](_0x33d7db(0x5fc))[_0x33d7db(0x622)]),_0xc771ff=_0xc771ff['if']('#PresentTense'),_0xc771ff=_0xc771ff['notIf'](_0x33d7db(0x58f));let _0x49b478=_0xd98c5b['match'](_0x33d7db(0xb68))[_0x33d7db(0x18a5)]();_0xc771ff=_0xc771ff['not'](_0x49b478),_0xc771ff['found']&&_0xc771ff['verbs']()[_0x33d7db(0xa80)]();}return _0xd98c5b;},_0x4c8286=function(_0x473e83){const _0x4d9531=_0x235866;let _0x38cd77=_0x473e83[_0x4d9531(0x333a)]();return _0x38cd77['eq'](0x0)[_0x4d9531(0x1d50)](),_0x38cd77['length']>0x1&&(_0x38cd77=_0x38cd77[_0x4d9531(0x428e)](0x1),_0x38cd77=_0x38cd77[_0x4d9531(0x295e)](_0x4bd920=>!_0x4bd920[_0x4d9531(0x2add)](_0x4d9531(0x5fc))[_0x4d9531(0x622)]),_0x38cd77=_0x38cd77['notIf']('#Gerund'),_0x38cd77[_0x4d9531(0x622)]&&_0x38cd77[_0x4d9531(0x333a)]()[_0x4d9531(0x1d50)]()),_0x473e83;},_0x5934da=function(_0x31dcd5){const _0x1edcc7=_0x235866;let _0x454398=_0x31dcd5[_0x1edcc7(0x333a)]();if(_0x454398['eq'](0x0)[_0x1edcc7(0x3f0e)](),_0x454398=(_0x31dcd5=_0x31dcd5[_0x1edcc7(0x12f)]())[_0x1edcc7(0x333a)](),_0x454398[_0x1edcc7(0x205b)]>0x1){_0x454398=_0x454398[_0x1edcc7(0x428e)](0x1);let _0x1628b3=_0x454398['filter'](_0x5c9680=>!_0x5c9680[_0x1edcc7(0x2add)](_0x1edcc7(0x5fc))[_0x1edcc7(0x622)]&&(!!_0x5c9680[_0x1edcc7(0x5ec)](_0x1edcc7(0x3e50))||!_0x5c9680[_0x1edcc7(0x5ec)]('#Gerund')&&(!!_0x5c9680[_0x1edcc7(0x5ec)](_0x1edcc7(0x3076))||!(_0x5c9680[_0x1edcc7(0x5ec)](_0x1edcc7(0x13b6))&&!_0x5c9680[_0x1edcc7(0x5ec)](_0x1edcc7(0xe73))&&_0x5c9680['lookBefore']('(he|she|it|that|which)$')[_0x1edcc7(0x622)]))));_0x1628b3[_0x1edcc7(0x622)]&&_0x1628b3['forEach'](_0x499f1c=>{const _0x40a093=_0x1edcc7;if(_0x499f1c[_0x40a093(0x5ec)](_0x40a093(0x3076)))return _0x499f1c[_0x40a093(0xdc0)](_0x40a093(0x2fdb))[_0x40a093(0x6f5)]('is'),void _0x499f1c[_0x40a093(0xdc0)]('is')[_0x40a093(0x6f5)](_0x40a093(0x3018));_0x499f1c[_0x40a093(0x3510)]();});}return _0x31dcd5;},_0x21aa8a=function(_0x7f27cf){const _0x1465df=_0x235866;return _0x7f27cf['verbs']()[_0x1465df(0x3510)](),_0x7f27cf;},_0x3c557d=function(_0x3cc98c){const _0x355081=_0x235866;class _0x53252d extends _0x3cc98c{constructor(_0x3971cf,_0x4366a9,_0x2365a4){const _0x58e357=a0_0x329b;super(_0x3971cf,_0x4366a9,_0x2365a4),this['viewType']=_0x58e357(0x11b5);}[_0x355081(0x25b9)](_0x2f10da={}){const _0x582139=_0x355081;return this[_0x582139(0x2c94)](_0xe75007=>{const _0x107a66=_0x582139;let _0x146e80=_0xe75007['toView']()[_0x107a66(0x25b9)](_0x2f10da)[0x0]||{},{subj:_0x4e63cd,verb:_0x215269,pred:_0x1aa69e,grammar:_0x31f79b}=_0x1d1816(_0xe75007);return _0x146e80[_0x107a66(0x3cfb)]={'subject':_0x4e63cd[_0x107a66(0x2f35)](_0x107a66(0x4cb)),'verb':_0x215269[_0x107a66(0x2f35)](_0x107a66(0x4cb)),'predicate':_0x1aa69e[_0x107a66(0x2f35)](_0x107a66(0x4cb)),'grammar':_0x31f79b},_0x146e80;},[]);}[_0x355081(0xa80)](_0x3b6741){const _0x62be2b=_0x355081;return this[_0x62be2b(0x2ead)](_0x3b6741)[_0x62be2b(0x2c94)](_0x5d407a=>{let _0x241c27=_0x1d1816(_0x5d407a);return _0x3d555a(_0x5d407a,_0x241c27);});}[_0x355081(0x1d50)](_0x2b9392){const _0x5197c0=_0x355081;return this[_0x5197c0(0x2ead)](_0x2b9392)[_0x5197c0(0x2c94)](_0x264876=>{let _0x2c95be=_0x1d1816(_0x264876);return _0x4c8286(_0x264876,_0x2c95be);});}[_0x355081(0x3f0e)](_0x2956d3){const _0x593a28=_0x355081;return this[_0x593a28(0x2ead)](_0x2956d3)['map'](_0x3f2aa0=>{let _0x246a1d=_0x1d1816(_0x3f2aa0);return _0x3f2aa0=_0x5934da(_0x3f2aa0,_0x246a1d);});}[_0x355081(0x3510)](_0x57ad4d){return this['getNth'](_0x57ad4d)['map'](_0x510410=>{let _0x40faaf=_0x1d1816(_0x510410);return _0x21aa8a(_0x510410,_0x40faaf);});}[_0x355081(0x4fb3)](_0x4f1c73){const _0x51986a=_0x355081;return this[_0x51986a(0x2ead)](_0x4f1c73)[_0x51986a(0x2c94)](_0x457397=>{return _0x1d1816(_0x457397),function(_0x4709e5){const _0x16a32e=a0_0x329b;return _0x4709e5[_0x16a32e(0x333a)]()[_0x16a32e(0x509c)]()['toNegative']()[_0x16a32e(0x210d)](_0x16a32e(0x23a8)),_0x4709e5;}(_0x457397);});}[_0x355081(0x2237)](_0x3f3ed0){const _0x5e6f39=_0x355081;return this['getNth'](_0x3f3ed0)[_0x5e6f39(0x2c94)](_0x117a57=>{return _0x1d1816(_0x117a57),function(_0x324db6){const _0x31ec10=a0_0x329b;return _0x324db6[_0x31ec10(0x333a)]()[_0x31ec10(0x509c)]()['toPositive']()[_0x31ec10(0x210d)](_0x31ec10(0x23a8)),_0x324db6;}(_0x117a57);});}['isQuestion'](_0x281f7b){const _0x4df121=_0x355081;return this[_0x4df121(0x2065)](_0x281f7b);}[_0x355081(0x1aed)](_0x53e3ba){const _0x5871de=_0x355081;let _0x5f2d7f=this[_0x5871de(0x295e)](_0x308aee=>_0x308aee['lastTerm']()[_0x5871de(0x5ec)](_0x5871de(0x1551)));return _0x5f2d7f[_0x5871de(0x2ead)](_0x53e3ba);}[_0x355081(0x11d3)](_0x16a8ee){const _0x49fdc0=_0x355081;let _0x4f4d5e=this[_0x49fdc0(0x295e)](_0x5801de=>!_0x5801de[_0x49fdc0(0x1aed)]()['found']&&!_0x5801de[_0x49fdc0(0x44cd)]()[_0x49fdc0(0x622)]);return _0x4f4d5e[_0x49fdc0(0x2ead)](_0x16a8ee);}['update'](_0x220e0c){const _0x57d480=_0x355081;let _0x246541=new _0x53252d(this[_0x57d480(0x46d9)],_0x220e0c);return _0x246541['_cache']=this[_0x57d480(0x1d5f)],_0x246541;}}_0x53252d[_0x355081(0x2b5c)][_0x355081(0x30c2)]=_0x53252d[_0x355081(0x2b5c)][_0x355081(0x1d50)],_0x53252d['prototype']['toPast']=_0x53252d[_0x355081(0x2b5c)]['toPastTense'],_0x53252d[_0x355081(0x2b5c)][_0x355081(0x349f)]=_0x53252d[_0x355081(0x2b5c)][_0x355081(0x3f0e)];const _0x2ae9dd={'sentences':function(_0x745b35){const _0x492a3e=_0x355081;let _0x594725=this[_0x492a3e(0x2c94)](_0x121d00=>_0x121d00[_0x492a3e(0x12f)]());return _0x594725=_0x594725['getNth'](_0x745b35),new _0x53252d(this[_0x492a3e(0x46d9)],_0x594725[_0x492a3e(0x1d95)]);},'questions':function(_0x4ad9a1){const _0x1251c3=_0x355081;return _0x22c356(this)[_0x1251c3(0x2ead)](_0x4ad9a1);}};Object[_0x355081(0x11e8)](_0x3cc98c[_0x355081(0x2b5c)],_0x2ae9dd);},_0x241d53={'api':_0x3c557d},_0x1a7d51=function(_0xd4a792){const _0x4d6368=_0x235866;let _0x303486=_0xd4a792['match'](_0x4d6368(0x3e10)),_0x4fbe60=_0x303486[_0x4d6368(0xdc0)](_0x4d6368(0x259c))[_0x4d6368(0xfba)]('(his|her)');return _0x303486=_0x303486['splitAfter'](_0x4fbe60),_0x303486;},_0x568855=function(_0x1af4bd){const _0x10cc77=_0x235866;let _0x4a7be3={};_0x4a7be3['firstName']=_0x1af4bd[_0x10cc77(0xdc0)](_0x10cc77(0x3505)),_0x4a7be3[_0x10cc77(0x2b79)]=_0x1af4bd['match'](_0x10cc77(0x4250)),_0x4a7be3[_0x10cc77(0x307a)]=_0x1af4bd['match'](_0x10cc77(0x39dc));let _0x442b97=_0x4a7be3[_0x10cc77(0x2b79)],_0x2d6d3c=_0x4a7be3[_0x10cc77(0x2332)];return _0x2d6d3c[_0x10cc77(0x622)]&&_0x442b97[_0x10cc77(0x622)]||_0x2d6d3c[_0x10cc77(0x622)]||_0x442b97['found']||!_0x1af4bd[_0x10cc77(0x5ec)]('^#Honorific\x20.$')||(_0x4a7be3['lastName']=_0x1af4bd[_0x10cc77(0xdc0)]('.$')),_0x4a7be3;},_0x24b54e='male',_0x39cd3e='female',_0x5961da={'mr':_0x24b54e,'mrs':_0x39cd3e,'miss':_0x39cd3e,'madam':_0x39cd3e,'king':_0x24b54e,'queen':_0x39cd3e,'duke':_0x24b54e,'duchess':_0x39cd3e,'baron':_0x24b54e,'baroness':_0x39cd3e,'count':_0x24b54e,'countess':_0x39cd3e,'prince':_0x24b54e,'princess':_0x39cd3e,'sire':_0x24b54e,'dame':_0x39cd3e,'lady':_0x39cd3e,'ayatullah':_0x24b54e,'congressman':_0x24b54e,'congresswoman':_0x39cd3e,'first\x20lady':_0x39cd3e,'mx':null},_0xf1395d=function(_0x3405f1,_0x4dffae){const _0x38613f=_0x235866;let {firstName:_0x26f154,honorific:_0x5f52c2}=_0x3405f1;if(_0x26f154[_0x38613f(0x5ec)](_0x38613f(0x4d90)))return _0x39cd3e;if(_0x26f154[_0x38613f(0x5ec)]('#MaleName'))return _0x24b54e;if(_0x5f52c2[_0x38613f(0x622)]){let _0x450afd=_0x5f52c2['text'](_0x38613f(0x4cb));if(_0x450afd=_0x450afd[_0x38613f(0x1db7)](/\./g,''),_0x5961da[_0x38613f(0x32b5)](_0x450afd))return _0x5961da[_0x450afd];if(/^her /[_0x38613f(0x34c)](_0x450afd))return _0x39cd3e;if(/^his /['test'](_0x450afd))return _0x24b54e;}let _0x4feca8=_0x4dffae[_0x38613f(0x1f69)]();if(!_0x4feca8[_0x38613f(0x5ec)](_0x38613f(0x39a4))&&_0x4feca8[_0x38613f(0x5ec)](_0x38613f(0x23eb))){let _0x5dc017=_0x4feca8['match'](_0x38613f(0x23eb));if(_0x5dc017[_0x38613f(0x5ec)](_0x38613f(0x44df)))return null;let _0x9e7e3e=_0x5dc017[_0x38613f(0x5ec)]('(he|his)'),_0x309703=_0x5dc017[_0x38613f(0x5ec)](_0x38613f(0x2069));if(_0x9e7e3e&&!_0x309703)return _0x24b54e;if(_0x309703&&!_0x9e7e3e)return _0x39cd3e;}return null;},_0x47c5ed=function(_0x18c0e1){const _0x31303a=_0x235866;class _0x2186a5 extends _0x18c0e1{constructor(_0x356120,_0x8ac333,_0x29fa07){const _0x866408=a0_0x329b;super(_0x356120,_0x8ac333,_0x29fa07),this[_0x866408(0x3784)]=_0x866408(0x5016);}[_0x31303a(0x1b07)](_0x1dbf2e){const _0x30d5ac=_0x31303a;return this[_0x30d5ac(0x2ead)](_0x1dbf2e)[_0x30d5ac(0x2c94)](_0x568855);}[_0x31303a(0x25b9)](_0x8510b6){const _0x2322a5=_0x31303a;let _0x27be3a=_0x2322a5(0x2b58)==typeof _0x8510b6?_0x8510b6:{};return this[_0x2322a5(0x2ead)](_0x8510b6)[_0x2322a5(0x2c94)](_0x51bc2d=>{const _0x22731c=_0x2322a5;let _0x37b42e=_0x51bc2d[_0x22731c(0xc6b)]()[_0x22731c(0x25b9)](_0x27be3a)[0x0],_0x1addef=_0x568855(_0x51bc2d);return _0x37b42e[_0x22731c(0x423f)]={'firstName':_0x1addef[_0x22731c(0x2332)]['text'](_0x22731c(0x4cb)),'lastName':_0x1addef[_0x22731c(0x2b79)][_0x22731c(0x2f35)]('normal'),'honorific':_0x1addef[_0x22731c(0x307a)][_0x22731c(0x2f35)](_0x22731c(0x4cb)),'presumed_gender':_0xf1395d(_0x1addef,_0x51bc2d)},_0x37b42e;},[]);}['presumedMale'](){const _0x281336=_0x31303a;return this[_0x281336(0x295e)](_0x1123ba=>_0x1123ba[_0x281336(0x5ec)]('(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)'));}[_0x31303a(0x511b)](){const _0x40a6fa=_0x31303a;return this[_0x40a6fa(0x295e)](_0x4dc80f=>_0x4dc80f[_0x40a6fa(0x5ec)](_0x40a6fa(0x2a1e)));}['update'](_0x282d4d){const _0x30fe39=_0x31303a;let _0x3ebbf7=new _0x2186a5(this[_0x30fe39(0x46d9)],_0x282d4d);return _0x3ebbf7[_0x30fe39(0x1d5f)]=this[_0x30fe39(0x1d5f)],_0x3ebbf7;}}_0x18c0e1[_0x31303a(0x2b5c)]['people']=function(_0x5a4794){const _0x26db2e=_0x31303a;let _0x2e1510=_0x1a7d51(this);return _0x2e1510=_0x2e1510[_0x26db2e(0x2ead)](_0x5a4794),new _0x2186a5(this[_0x26db2e(0x46d9)],_0x2e1510[_0x26db2e(0x1d95)]);};},_0x2b5488=function(_0x339809){const _0x4d885e=_0x235866;let _0x4daa53=_0x339809[_0x4d885e(0xdc0)](_0x4d885e(0x2847)),_0x12ec24=_0x4daa53[_0x4d885e(0xdc0)](_0x4d885e(0x158c));return _0x12ec24=_0x12ec24['filter'](_0x3222db=>!!_0x3222db['has']('(asia|africa|europe|america)$')||(!_0x3222db[_0x4d885e(0x5ec)](_0x4d885e(0x460b))||!_0x3222db[_0x4d885e(0x1f69)](_0x4d885e(0x45aa))['found'])),_0x4daa53=_0x4daa53['splitAfter'](_0x12ec24),_0x4daa53;},_0x4107d2=function(_0x2c4c62){const _0x3b563c=_0x235866;_0x2c4c62[_0x3b563c(0x2b5c)][_0x3b563c(0x496b)]=function(_0x144bae){const _0x18d6f2=_0x3b563c;let _0x5969a7=_0x2b5488(this);return _0x5969a7=_0x5969a7[_0x18d6f2(0x2ead)](_0x144bae),new _0x2c4c62(this['document'],_0x5969a7[_0x18d6f2(0x1d95)]);};},_0x3a8fb7=function(_0x1dc481){const _0x4f43f5=_0x235866;_0x1dc481[_0x4f43f5(0x2b5c)][_0x4f43f5(0x3005)]=function(_0x132c05){const _0x24aa63=_0x4f43f5;return this[_0x24aa63(0xdc0)]('#Organization+')[_0x24aa63(0x2ead)](_0x132c05);};},_0x51d743=function(_0x109010){const _0x12985d=_0x235866;let _0x259ce3=this[_0x12985d(0x3f20)](),_0x359712=_0x259ce3[_0x12985d(0x2764)]();return _0x359712=_0x359712[_0x12985d(0x41bf)](_0x259ce3[_0x12985d(0x496b)]()),_0x359712=_0x359712[_0x12985d(0x41bf)](_0x259ce3[_0x12985d(0x3005)]()),_0x359712=_0x359712[_0x12985d(0x4163)](_0x12985d(0x3ec5)),_0x359712=_0x359712[_0x12985d(0x509)](_0x12985d(0x3d93)),_0x359712=_0x359712['getNth'](_0x109010),_0x359712;},_0x2eb840=function(_0x4e5808){const _0x1895cc=_0x235866;_0x4e5808['prototype'][_0x1895cc(0x4ef1)]=_0x51d743;},_0xadb267={'api':function(_0x38aa0c){_0x47c5ed(_0x38aa0c),_0x4107d2(_0x38aa0c),_0x3a8fb7(_0x38aa0c),_0x2eb840(_0x38aa0c);}},_0x275641=function(_0x2aeb8a){const _0xd9c85b=_0x235866;let _0x1fac86=_0x2aeb8a['match'](_0xd9c85b(0x3817));return _0x1fac86=_0x1fac86[_0xd9c85b(0x4163)]('#Conjunction'),_0x1fac86=_0x1fac86[_0xd9c85b(0x4163)](_0xd9c85b(0x50e)),_0x1fac86=_0x1fac86['splitAfter'](_0xd9c85b(0x158c)),_0x1fac86=_0x1fac86[_0xd9c85b(0x2810)]('[(do|did|am|was|is|will)]\x20(is|was)',0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x5f2)]('(#Verb\x20&&\x20!#Copula)\x20[being]\x20#Verb',0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x5f2)](_0xd9c85b(0x133d),0x0),_0x1fac86=_0x1fac86['splitAfter']('[help]\x20#PresentTense',0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x5f2)](_0xd9c85b(0x26d0),0x0),_0x1fac86=_0x1fac86['splitBefore']('(#PresentTense|#PastTense)\x20[will\x20be]$',0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x5f2)](_0xd9c85b(0x3bc7),0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x4163)](_0xd9c85b(0x910)),_0x1fac86=_0x1fac86[_0xd9c85b(0x4163)](_0xd9c85b(0x4388)),_0x1fac86=_0x1fac86[_0xd9c85b(0x2810)](_0xd9c85b(0x33c),0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x2810)](_0xd9c85b(0x246a),0x0),_0x1fac86=_0x1fac86[_0xd9c85b(0x2810)](_0xd9c85b(0x683),0x0),_0x1fac86=_0x1fac86['if'](_0xd9c85b(0x3b0e)),_0x1fac86['has'](_0xd9c85b(0x30f1))&&(_0x1fac86=_0x1fac86[_0xd9c85b(0x5f2)](_0xd9c85b(0x3076))),_0x1fac86;},_0x279d97=function(_0x15c0bd){const _0x580174=_0x235866;let _0x731bdc=_0x15c0bd;return _0x15c0bd[_0x580174(0x4e7b)]()>0x1&&(_0x731bdc=_0x15c0bd[_0x580174(0x4163)]('(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)')),_0x731bdc[_0x580174(0x205b)]>0x1&&!_0x731bdc[_0x580174(0x5ec)]('#Phrasal\x20#Particle')&&(_0x731bdc=_0x731bdc[_0x580174(0x401a)]()),_0x731bdc=_0x731bdc[_0x580174(0x4163)]('(want|wants|wanted)\x20to'),_0x731bdc[_0x580174(0x622)]||(_0x731bdc=_0x15c0bd[_0x580174(0x4163)]('#Negative')),_0x731bdc;},_0x91573=function(_0x5a045b,_0x4146a7){const _0xe28e94=_0x235866;let _0x4e6c25={'pre':_0x5a045b['none'](),'post':_0x5a045b[_0xe28e94(0x80b)]()};if(!_0x5a045b[_0xe28e94(0x5ec)]('#Adverb'))return _0x4e6c25;let _0xe04efd=_0x5a045b[_0xe28e94(0x3392)](_0x4146a7);return 0x3===_0xe04efd[_0xe28e94(0x205b)]?{'pre':_0xe04efd['eq'](0x0)[_0xe28e94(0x2143)](),'post':_0xe04efd['eq'](0x2)[_0xe28e94(0x2143)]()}:_0xe04efd['eq'](0x0)[_0xe28e94(0x1b20)](_0x4146a7)?(_0x4e6c25['post']=_0xe04efd['eq'](0x1)[_0xe28e94(0x2143)](),_0x4e6c25):(_0x4e6c25[_0xe28e94(0x1553)]=_0xe04efd['eq'](0x0)[_0xe28e94(0x2143)](),_0x4e6c25);},_0xb228ff=function(_0x3d521e,_0xbc8a39){const _0x1d5059=_0x235866;let _0x3e6db9=_0x3d521e[_0x1d5059(0x5f2)](_0xbc8a39);if(_0x3e6db9[_0x1d5059(0x205b)]<=0x1)return _0x3d521e[_0x1d5059(0x80b)]();let _0x14ed56=_0x3e6db9['eq'](0x0);return _0x14ed56=_0x14ed56['not'](_0x1d5059(0x1ccb)),_0x14ed56;},_0x5707f8=function(_0x414776){const _0xfa481=_0x235866;return _0x414776[_0xfa481(0xdc0)](_0xfa481(0x3201));},_0x2a4d11=function(_0x2ec6a0){const _0x142abf=_0x235866;if(!_0x2ec6a0[_0x142abf(0x5ec)](_0x142abf(0x2ff8)))return{'verb':_0x2ec6a0['none'](),'particle':_0x2ec6a0[_0x142abf(0x80b)]()};let _0x14007d=_0x2ec6a0['match'](_0x142abf(0x33bd));return{'verb':_0x2ec6a0['not'](_0x14007d),'particle':_0x14007d};},_0x5dd7f9=function(_0xe911cc){const _0x30b3e5=_0x235866;let _0xee52b7=_0xe911cc[_0x30b3e5(0x835)]();_0xee52b7[_0x30b3e5(0x3acb)]()[_0x30b3e5(0x380d)]();const _0x1379db=_0x279d97(_0xee52b7);return{'root':_0x1379db,'prefix':_0xee52b7[_0x30b3e5(0xdc0)](_0x30b3e5(0x3aa6)),'adverbs':_0x91573(_0xee52b7,_0x1379db),'auxiliary':_0xb228ff(_0xee52b7,_0x1379db),'negative':_0x5707f8(_0xee52b7),'phrasal':_0x2a4d11(_0x1379db)};},_0x571c3e={'tense':_0x235866(0x17a6)},_0x319a6e={'conditional':!0x0},_0x118f0d={'tense':'FutureTense'},_0x3aaae0={'progressive':!0x0},_0x23b9bb={'tense':'PastTense'},_0x32b631={'complete':!0x0,'progressive':!0x1},_0x523c27={'passive':!0x0},_0x4bdf0c=function(_0x51fe28){const _0x3913c7=_0x235866;let _0x4df1c3={};return _0x51fe28[_0x3913c7(0x4854)](_0x27f104=>{const _0x383373=_0x3913c7;Object[_0x383373(0x11e8)](_0x4df1c3,_0x27f104);}),_0x4df1c3;},_0x341d7d={'imperative':[[_0x235866(0x20ca),[]]],'want-infinitive':[['^(want|wants|wanted)\x20to\x20#Infinitive$',[_0x571c3e]],[_0x235866(0x3b0a),[_0x23b9bb]],[_0x235866(0x2d27),[_0x118f0d]]],'gerund-phrase':[[_0x235866(0x1ce9),[_0x23b9bb]],[_0x235866(0x1990),[_0x571c3e]],[_0x235866(0x4d1a),[_0x571c3e]],[_0x235866(0x2260),[_0x118f0d]],[_0x235866(0x2a13),[_0x23b9bb]],[_0x235866(0x37b1),[_0x23b9bb]]],'simple-present':[[_0x235866(0x455b),[_0x571c3e]],[_0x235866(0x8c),[_0x571c3e]]],'simple-past':[[_0x235866(0x2a38),[_0x23b9bb]]],'simple-future':[[_0x235866(0xe7f),[_0x118f0d]]],'present-progressive':[[_0x235866(0x3054),[_0x571c3e,_0x3aaae0]]],'past-progressive':[[_0x235866(0xb73),[_0x23b9bb,_0x3aaae0]]],'future-progressive':[[_0x235866(0x1e5e),[_0x118f0d,_0x3aaae0]]],'present-perfect':[[_0x235866(0x170f),[_0x23b9bb,_0x32b631]]],'past-perfect':[['^had\x20#PastTense$',[_0x23b9bb,_0x32b631]],['^had\x20#PastTense\x20to\x20#Infinitive',[_0x23b9bb,_0x32b631]]],'future-perfect':[[_0x235866(0x2c5c),[_0x118f0d,_0x32b631]]],'present-perfect-progressive':[[_0x235866(0x3a61),[_0x23b9bb,_0x3aaae0]]],'past-perfect-progressive':[[_0x235866(0x1f10),[_0x23b9bb,_0x3aaae0]]],'future-perfect-progressive':[[_0x235866(0x2959),[_0x118f0d,_0x3aaae0]]],'passive-past':[[_0x235866(0x43a3),[_0x23b9bb,_0x523c27]],[_0x235866(0x2dfc),[_0x23b9bb,_0x523c27]],[_0x235866(0xac),[_0x23b9bb,_0x523c27]]],'passive-present':[[_0x235866(0xb29),[_0x571c3e,_0x523c27]],['^(is|are|am)\x20being\x20#Passive',[_0x571c3e,_0x523c27]],[_0x235866(0x1339),[_0x571c3e,_0x523c27]]],'passive-future':[[_0x235866(0x3ce4),[_0x118f0d,_0x523c27,_0x319a6e]],['will\x20be\x20being?\x20#Passive',[_0x118f0d,_0x523c27,_0x319a6e]]],'present-conditional':[[_0x235866(0x2a7b),[_0x571c3e,_0x319a6e]]],'past-conditional':[[_0x235866(0x3b1),[_0x23b9bb,_0x319a6e]]],'auxiliary-future':[[_0x235866(0x3c52),[_0x118f0d]]],'auxiliary-past':[[_0x235866(0x4658),[_0x23b9bb,{'plural':!0x1}]],[_0x235866(0x1832),[_0x23b9bb,_0x32b631]]],'auxiliary-present':[[_0x235866(0xd60),[_0x571c3e,_0x32b631,{'plural':!0x0}]]],'modal-past':[[_0x235866(0x199d),[_0x23b9bb]]],'modal-infinitive':[[_0x235866(0x2b45),[]]],'infinitive':[['^#Infinitive$',[]]]};let _0x1a2e19=[];Object[_0x235866(0x2f75)](_0x341d7d)[_0x235866(0x2c94)](_0x50a70d=>{_0x341d7d[_0x50a70d]['forEach'](_0x3ba0da=>{const _0x3fab6a=a0_0x329b;_0x1a2e19[_0x3fab6a(0x4131)]({'name':_0x50a70d,'match':_0x3ba0da[0x0],'data':_0x4bdf0c(_0x3ba0da[0x1])});});});const _0x493c26=_0x1a2e19,_0x5f2402=function(_0x55de60,_0x432e35){const _0x532bae=_0x235866;let _0x5ab0ff={};_0x55de60=function(_0x5306a6,_0x5b39ca){const _0x50750e=a0_0x329b;return _0x5306a6=_0x5306a6[_0x50750e(0x835)](),_0x5b39ca[_0x50750e(0x2143)][_0x50750e(0x9ce)]&&_0x5b39ca['adverbs']['post'][_0x50750e(0x622)]&&_0x5306a6[_0x50750e(0x80a)](_0x5b39ca[_0x50750e(0x2143)][_0x50750e(0x9ce)]),_0x5b39ca[_0x50750e(0x2143)][_0x50750e(0x1553)]&&_0x5b39ca[_0x50750e(0x2143)][_0x50750e(0x1553)][_0x50750e(0x622)]&&_0x5306a6[_0x50750e(0x80a)](_0x5b39ca[_0x50750e(0x2143)][_0x50750e(0x1553)]),_0x5306a6[_0x50750e(0x5ec)](_0x50750e(0x3201))&&(_0x5306a6=_0x5306a6[_0x50750e(0x80a)]('#Negative')),_0x5306a6[_0x50750e(0x5ec)](_0x50750e(0x3aa6))&&(_0x5306a6=_0x5306a6[_0x50750e(0x80a)](_0x50750e(0x3aa6))),_0x5b39ca[_0x50750e(0xdf8)][_0x50750e(0x5ec)]('#PhrasalVerb\x20#Particle')&&_0x5306a6[_0x50750e(0x80a)](_0x50750e(0x33bd)),_0x5306a6[_0x50750e(0x4163)](_0x50750e(0x1213));}(_0x55de60,_0x432e35);for(let _0x52e904=0x0;_0x52e904<_0x493c26[_0x532bae(0x205b)];_0x52e904+=0x1){let _0x3dd4bb=_0x493c26[_0x52e904];if(!0x0===_0x55de60[_0x532bae(0x5ec)](_0x3dd4bb[_0x532bae(0xdc0)])){_0x5ab0ff[_0x532bae(0x377b)]=_0x3dd4bb['name'],Object[_0x532bae(0x11e8)](_0x5ab0ff,_0x3dd4bb[_0x532bae(0x2a43)]);break;}}return _0x5ab0ff[_0x532bae(0x377b)]||_0x55de60[_0x532bae(0x5ec)](_0x532bae(0x3405))&&(_0x5ab0ff['form']=_0x532bae(0x4dbf)),_0x5ab0ff[_0x532bae(0x2956)]||(_0x5ab0ff['tense']=_0x432e35[_0x532bae(0xdf8)][_0x532bae(0x5ec)](_0x532bae(0x2407))?_0x532bae(0x2192):'PresentTense'),_0x5ab0ff[_0x532bae(0x24bd)]=_0x432e35[_0x532bae(0xdf8)][_0x532bae(0x5ec)]('#Copula'),_0x5ab0ff[_0x532bae(0x2c91)]=function(_0x175f51){const _0x2b34fa=_0x532bae;if(_0x175f51['has'](_0x2b34fa(0xe73))&&_0x175f51['growLeft']('to')[_0x2b34fa(0x5ec)]('^to\x20#Infinitive'))return!0x0;return!0x1;}(_0x55de60),_0x5ab0ff;},_0xd46df6=function(_0x5b0e17){const _0x24d4b4=_0x235866;if(_0x5b0e17[_0x24d4b4(0x205b)]<=0x1)return!0x1;return(_0x5b0e17[_0x24d4b4(0x1b07)]()[0x0]||{})['isSubordinate'];},_0x2c832a=function(_0x5afa3d,_0x3460c3){const _0x572937=_0x235866;return!!_0x3460c3['has']('(are|were|does)')||(!!_0x5afa3d[_0x572937(0x5ec)]('(those|they|we)')||!(!_0x5afa3d['found']||!_0x5afa3d[_0x572937(0x33cd)])&&_0x5afa3d[_0x572937(0x33cd)]()['found']);},_0x784bca=function(_0x129fc7){let _0x2cc2b5=function(_0x1e08ad){const _0x58588b=a0_0x329b;let _0xd2aec2=_0x1e08ad[_0x58588b(0x19f2)]();_0xd2aec2=function(_0x46cd5f){const _0x3f3b31=_0x58588b;let _0x1fdf04=_0x46cd5f['clauses']();return _0x1fdf04=_0x1fdf04[_0x3f3b31(0x295e)]((_0x94f2b1,_0x1ad982)=>!(_0x94f2b1['has']('^(if|unless|while|but|for|per|at|by|that|which|who|from)')||_0x1ad982>0x0&&_0x94f2b1[_0x3f3b31(0x5ec)](_0x3f3b31(0x21d2))||_0x1ad982>0x0&&_0x94f2b1['has'](_0x3f3b31(0x3a37)))),0x0===_0x1fdf04[_0x3f3b31(0x205b)]?_0x46cd5f:_0x1fdf04;}(_0xd2aec2);let _0x1e0fb6=_0xd2aec2[_0x58588b(0x4111)](),_0x415e26=_0x1e0fb6[_0x58588b(0x401a)](),_0x49e0a3=_0x415e26['match'](_0x58588b(0x14a5));if(_0x49e0a3['found'])return _0x49e0a3['nouns']();let _0x3d5a5b=_0x1e0fb6['if'](_0x58588b(0x4682));return _0x3d5a5b[_0x58588b(0x622)]||!0x1===_0x1e0fb6[_0x58588b(0x622)]&&(_0x3d5a5b=_0xd2aec2[_0x58588b(0xdc0)](_0x58588b(0x4682)),_0x3d5a5b['found'])?_0x3d5a5b:(_0x415e26=_0x1e0fb6[_0x58588b(0x401a)](),_0xd46df6(_0x415e26)&&(_0x1e0fb6[_0x58588b(0x80a)](_0x415e26),_0x415e26=_0x1e0fb6[_0x58588b(0x401a)]()),_0xd46df6(_0x415e26)&&(_0x1e0fb6[_0x58588b(0x80a)](_0x415e26),_0x415e26=_0x1e0fb6['last']()),_0x415e26);}(_0x129fc7);return{'subject':_0x2cc2b5,'plural':_0x2c832a(_0x2cc2b5,_0x129fc7)};},_0x50fa6d=_0x3a920a=>_0x3a920a,_0x59295c=(_0x553b7f,_0x20720a)=>{const _0x438090=_0x235866;let _0x5f0dde=_0x784bca(_0x553b7f,_0x20720a),_0x453f1a=_0x5f0dde[_0x438090(0x193f)];return!(!_0x453f1a[_0x438090(0x5ec)]('i')&&!_0x453f1a[_0x438090(0x5ec)]('we'))||_0x5f0dde[_0x438090(0x1ee6)];},_0x2b8d19=function(_0xfe2785,_0x401e05){const _0x4a3a41=_0x235866;if(_0xfe2785[_0x4a3a41(0x5ec)](_0x4a3a41(0x6ff)))return'are';let {subject:_0x15c3f3,plural:_0x1694e4}=_0x784bca(_0xfe2785,_0x401e05);return _0x15c3f3['has']('i')?'am':_0x15c3f3[_0x4a3a41(0x5ec)]('we')||_0x1694e4?'are':'is';},_0x4aa009=function(_0x1d967e,_0x36e53a){const _0x912f7f=_0x235866;let _0xf13924=_0x784bca(_0x1d967e,_0x36e53a),_0x3ce550=_0xf13924[_0x912f7f(0x193f)];return _0x3ce550[_0x912f7f(0x5ec)]('i')||_0x3ce550[_0x912f7f(0x5ec)]('we')||_0xf13924[_0x912f7f(0x1ee6)]?'do':_0x912f7f(0x1265);},_0x321c85=function(_0x59fc3f){const _0x20171e=_0x235866;return _0x59fc3f[_0x20171e(0x5ec)](_0x20171e(0xe73))?_0x20171e(0x24ba):_0x59fc3f[_0x20171e(0x5ec)](_0x20171e(0x380b))?_0x20171e(0x184e):_0x59fc3f['has'](_0x20171e(0x2407))?_0x20171e(0x2192):_0x59fc3f[_0x20171e(0x5ec)](_0x20171e(0x58f))?'Gerund':_0x59fc3f[_0x20171e(0x5ec)](_0x20171e(0x13b6))?'PresentTense':void 0x0;},_0x4f52c1=function(_0x58f812,_0x4e448a){const _0x2ea794=_0x235866,{toInfinitive:_0x360e6a}=_0x58f812[_0x2ea794(0x8f)][_0x2ea794(0x141f)][_0x2ea794(0x560)][_0x2ea794(0x91)];let _0x283a3c=_0x4e448a[_0x2ea794(0xdf8)][_0x2ea794(0x2f35)]({'keepPunct':!0x1});return _0x283a3c=_0x360e6a(_0x283a3c,_0x58f812[_0x2ea794(0x2c3e)],_0x321c85(_0x58f812)),_0x283a3c&&_0x58f812['replace'](_0x4e448a[_0x2ea794(0xdf8)],_0x283a3c),_0x58f812;},_0x5a2dc1=_0x30fdb5=>_0x30fdb5[_0x235866(0x5ec)]('will\x20not')?_0x30fdb5[_0x235866(0x1db7)](_0x235866(0x4d2b),_0x235866(0x50d3)):_0x30fdb5[_0x235866(0x80a)](_0x235866(0x2160)),_0x8299f1=function(_0x2a6687){const _0x2d7a65=_0x235866;if(!_0x2a6687||!_0x2a6687[_0x2d7a65(0x2704)])return[];return _0x2a6687[_0x2d7a65(0x25b9)]({'normal':!0x0,'terms':!0x1,'text':!0x1})[_0x2d7a65(0x2c94)](_0x17497a=>_0x17497a[_0x2d7a65(0x4cb)]);},_0x1a6ca2=function(_0x282620){const _0x30da61=_0x235866;return _0x282620&&_0x282620[_0x30da61(0x2704)]?_0x282620[_0x30da61(0x2f35)]('normal'):'';},_0x11ed09=function(_0x4c6d50){const _0xb1805a=_0x235866,{toInfinitive:_0x2fb6fe}=_0x4c6d50[_0xb1805a(0x8f)][_0xb1805a(0x141f)][_0xb1805a(0x560)]['verb'];return _0x2fb6fe(_0x4c6d50[_0xb1805a(0x2f35)]('normal'),_0x4c6d50[_0xb1805a(0x2c3e)],_0x321c85(_0x4c6d50));},_0x218a6e=function(_0x46ef44){const _0x3ec4ce=_0x235866;let _0x4b2b3f=_0x5dd7f9(_0x46ef44);_0x46ef44=_0x46ef44[_0x3ec4ce(0x835)]()[_0x3ec4ce(0xc6b)]();const _0x4c9655=_0x5f2402(_0x46ef44,_0x4b2b3f);return{'root':_0x4b2b3f[_0x3ec4ce(0xdf8)][_0x3ec4ce(0x2f35)](),'preAdverbs':_0x8299f1(_0x4b2b3f['adverbs'][_0x3ec4ce(0x1553)]),'postAdverbs':_0x8299f1(_0x4b2b3f[_0x3ec4ce(0x2143)]['post']),'auxiliary':_0x1a6ca2(_0x4b2b3f[_0x3ec4ce(0x213e)]),'negative':_0x4b2b3f[_0x3ec4ce(0x3fbe)]['found'],'prefix':_0x1a6ca2(_0x4b2b3f[_0x3ec4ce(0x1644)]),'infinitive':_0x11ed09(_0x4b2b3f['root']),'grammar':_0x4c9655};},_0x2500b7={'tags':!0x0},_0x2dcd26=function(_0x5daef1,_0x26dc72){const _0x1edad2=_0x235866,{toInfinitive:_0x38ce4b}=_0x5daef1[_0x1edad2(0x8f)][_0x1edad2(0x141f)][_0x1edad2(0x560)][_0x1edad2(0x91)],{root:_0x295a41,auxiliary:_0x452210}=_0x26dc72;let _0x51a3de=_0x452210['terms']()[_0x1edad2(0x1a30)](),_0x3076c9=_0x295a41[_0x1edad2(0x2f35)]('normal');if(_0x3076c9=_0x38ce4b(_0x3076c9,_0x5daef1['model'],_0x321c85(_0x295a41)),_0x3076c9&&_0x5daef1[_0x1edad2(0x1db7)](_0x295a41,_0x3076c9,_0x2500b7)['tag'](_0x1edad2(0x41f2))[_0x1edad2(0x4026)]()[_0x1edad2(0x17a2)](_0x1edad2(0x24ba)),_0x51a3de[_0x1edad2(0x622)]&&_0x5daef1['remove'](_0x51a3de),_0x26dc72[_0x1edad2(0x3fbe)][_0x1edad2(0x622)]){_0x5daef1[_0x1edad2(0x5ec)](_0x1edad2(0x4163))||_0x5daef1[_0x1edad2(0x2bbd)](_0x1edad2(0x4163));let _0x44fe12=_0x4aa009(_0x5daef1,_0x26dc72);_0x5daef1[_0x1edad2(0x2bbd)](_0x44fe12);}return _0x5daef1[_0x1edad2(0x12f)]()[_0x1edad2(0x210d)]([_0x1edad2(0x2cba),_0x1edad2(0x4ab0),_0x1edad2(0x530),'postTagger',_0x1edad2(0x483a),'chunks']),_0x5daef1;},_0xbeb8c8={'tags':!0x0},_0x56eb59={'noAux':(_0x288c04,_0x2dd239)=>(_0x2dd239[_0x235866(0x213e)][_0x235866(0x622)]&&(_0x288c04=_0x288c04[_0x235866(0x80a)](_0x2dd239[_0x235866(0x213e)])),_0x288c04),'simple':(_0x29ceeb,_0x1f4483)=>{const _0x5d8e25=_0x235866,{conjugate:_0x25ddc7,toInfinitive:_0xb90a29}=_0x29ceeb[_0x5d8e25(0x8f)][_0x5d8e25(0x141f)]['transform'][_0x5d8e25(0x91)],_0x5248e3=_0x1f4483['root'];if(_0x5248e3[_0x5d8e25(0x5ec)]('#Modal'))return _0x29ceeb;let _0x4db684=_0x5248e3[_0x5d8e25(0x2f35)]({'keepPunct':!0x1});return _0x4db684=_0xb90a29(_0x4db684,_0x29ceeb[_0x5d8e25(0x2c3e)],_0x321c85(_0x5248e3)),_0x4db684=_0x25ddc7(_0x4db684,_0x29ceeb['model'])[_0x5d8e25(0x2192)],_0x4db684=_0x5d8e25(0x182e)===_0x4db684?_0x5d8e25(0x2fdb):_0x4db684,'was'===_0x4db684&&(_0x4db684=((_0x3e36b7,_0x2d1dec)=>{let {subject:_0x12feef,plural:_0x53b6b2}=_0x784bca(_0x3e36b7,_0x2d1dec);return _0x53b6b2||_0x12feef['has']('we')?'were':'was';})(_0x29ceeb,_0x1f4483)),_0x4db684&&_0x29ceeb['replace'](_0x5248e3,_0x4db684,_0xbeb8c8),_0x29ceeb;},'both':function(_0x5bf65f,_0x177ec2){const _0x21878c=_0x235866;return _0x177ec2[_0x21878c(0x3fbe)]['found']?(_0x5bf65f[_0x21878c(0x1db7)](_0x21878c(0x2160),_0x21878c(0x3516)),_0x5bf65f):(_0x5bf65f=_0x56eb59[_0x21878c(0x10eb)](_0x5bf65f,_0x177ec2),_0x5bf65f=_0x56eb59[_0x21878c(0x2cbf)](_0x5bf65f,_0x177ec2));},'hasHad':_0x476b36=>(_0x476b36[_0x235866(0x1db7)]('has',_0x235866(0x455a),_0xbeb8c8),_0x476b36),'hasParticiple':(_0xbd653f,_0x36d6c5)=>{const _0x9c1e25=_0x235866,{conjugate:_0x199f9f,toInfinitive:_0x59e06a}=_0xbd653f[_0x9c1e25(0x8f)][_0x9c1e25(0x141f)]['transform'][_0x9c1e25(0x91)],_0x17d73d=_0x36d6c5['root'];let _0xca0123=_0x17d73d[_0x9c1e25(0x2f35)](_0x9c1e25(0x4cb));return _0xca0123=_0x59e06a(_0xca0123,_0xbd653f['model'],_0x321c85(_0x17d73d)),_0x199f9f(_0xca0123,_0xbd653f[_0x9c1e25(0x2c3e)])[_0x9c1e25(0x184e)];}},_0x3b2659={'infinitive':_0x56eb59['simple'],'simple-present':_0x56eb59[_0x235866(0x10eb)],'simple-past':_0x50fa6d,'simple-future':_0x56eb59[_0x235866(0x2165)],'present-progressive':_0x28bbf8=>(_0x28bbf8[_0x235866(0x1db7)]('are',_0x235866(0x6ff),_0xbeb8c8),_0x28bbf8[_0x235866(0x1db7)](_0x235866(0x31bb),_0x235866(0x2fdb),_0xbeb8c8),_0x28bbf8),'past-progressive':_0x50fa6d,'future-progressive':(_0x24d4ad,_0x67a26b)=>(_0x24d4ad[_0x235866(0xdc0)](_0x67a26b[_0x235866(0xdf8)])[_0x235866(0x3dd0)](_0x235866(0x2fdb)),_0x24d4ad['remove'](_0x235866(0x42b9)),_0x24d4ad),'present-perfect':_0x56eb59[_0x235866(0x14dc)],'past-perfect':_0x50fa6d,'future-perfect':(_0x39a63e,_0x304130)=>(_0x39a63e[_0x235866(0xdc0)](_0x304130[_0x235866(0xdf8)])[_0x235866(0x3dd0)](_0x235866(0x455a)),_0x39a63e['has'](_0x235866(0x2160))&&(_0x39a63e=_0x5a2dc1(_0x39a63e)),_0x39a63e['remove']('have'),_0x39a63e),'present-perfect-progressive':_0x56eb59['hasHad'],'past-perfect-progressive':_0x50fa6d,'future-perfect-progressive':_0x31302f=>(_0x31302f[_0x235866(0x80a)](_0x235866(0x2160)),_0x31302f['replace']('have',_0x235866(0x455a),_0xbeb8c8),_0x31302f),'passive-past':_0x2b3e6a=>(_0x2b3e6a[_0x235866(0x1db7)](_0x235866(0xb66),_0x235866(0x455a),_0xbeb8c8),_0x2b3e6a),'passive-present':_0xbb9906=>(_0xbb9906['replace']('(is|are)',_0x235866(0x2fdb),_0xbeb8c8),_0xbb9906),'passive-future':(_0x89b595,_0x1309a9)=>(_0x1309a9['auxiliary'][_0x235866(0x5ec)]('will\x20be')&&(_0x89b595[_0x235866(0xdc0)](_0x1309a9['root'])[_0x235866(0x3dd0)]('had\x20been'),_0x89b595[_0x235866(0x80a)]('(will|be)')),_0x1309a9[_0x235866(0x213e)]['has'](_0x235866(0x19a4))&&(_0x89b595[_0x235866(0x1db7)]('have',_0x235866(0x455a),_0xbeb8c8),_0x89b595['remove'](_0x235866(0x2160))),_0x89b595),'present-conditional':_0x4f6cb3=>(_0x4f6cb3[_0x235866(0x1db7)]('be',_0x235866(0x29ac)),_0x4f6cb3),'past-conditional':_0x50fa6d,'auxiliary-future':_0x1e4b15=>(_0x1e4b15[_0x235866(0x1db7)](_0x235866(0x31bb),_0x235866(0x2fdb),_0xbeb8c8),_0x1e4b15),'auxiliary-past':_0x50fa6d,'auxiliary-present':_0x2152d2=>(_0x2152d2[_0x235866(0x1db7)](_0x235866(0x3d87),'did',_0xbeb8c8),_0x2152d2),'modal-infinitive':(_0x44f2f0,_0x5310be)=>(_0x44f2f0[_0x235866(0x5ec)](_0x235866(0x1cbb))?_0x44f2f0[_0x235866(0x1db7)](_0x235866(0x1cbb),_0x235866(0x86d),_0xbeb8c8):(_0x56eb59[_0x235866(0x10eb)](_0x44f2f0,_0x5310be),_0x44f2f0[_0x235866(0xdc0)](_0x235866(0x4ff6))[_0x235866(0x2d82)]('have')[_0x235866(0x17a2)]('Auxiliary')),_0x44f2f0),'modal-past':_0x50fa6d,'want-infinitive':_0x237c3f=>(_0x237c3f['replace']('(want|wants)',_0x235866(0x3b2d),_0xbeb8c8),_0x237c3f['remove']('will'),_0x237c3f),'gerund-phrase':(_0x6b7372,_0x2a305e)=>(_0x2a305e['root']=_0x2a305e[_0x235866(0xdf8)][_0x235866(0x4163)](_0x235866(0x3caf)),_0x56eb59[_0x235866(0x10eb)](_0x6b7372,_0x2a305e),_0x5a2dc1(_0x6b7372),_0x6b7372)},_0x500cb0=function(_0x440564,_0x3fb50d,_0x48141c){const _0x9065a2=_0x235866;return _0x3b2659[_0x9065a2(0x32b5)](_0x48141c)?((_0x440564=_0x3b2659[_0x48141c](_0x440564,_0x3fb50d))['fullSentence']()[_0x9065a2(0x210d)]([_0x9065a2(0x2c29),'chunks']),_0x440564):_0x440564;},_0x15823f=function(_0x140752,_0x3e1581){const _0x501dcb=_0x235866;let _0x39335a=_0x784bca(_0x140752,_0x3e1581),_0x1884f5=_0x39335a['subject'];return _0x1884f5[_0x501dcb(0x5ec)]('(i|we|you)')?_0x501dcb(0xb66):!0x1===_0x39335a[_0x501dcb(0x1ee6)]||_0x1884f5[_0x501dcb(0x5ec)]('he')||_0x1884f5['has']('she')||_0x1884f5[_0x501dcb(0x5ec)]('#Person')?_0x501dcb(0x5ec):_0x501dcb(0xb66);},_0x333bd4=(_0x3ac656,_0x4e525a)=>{const _0x1457aa=_0x235866,{conjugate:_0x7a20d8,toInfinitive:_0x1444cb}=_0x3ac656[_0x1457aa(0x8f)][_0x1457aa(0x141f)][_0x1457aa(0x560)][_0x1457aa(0x91)],{root:_0x38fa29,auxiliary:_0x298a72}=_0x4e525a;if(_0x38fa29['has']('#Modal'))return _0x3ac656;let _0x552d0f=_0x38fa29[_0x1457aa(0x2f35)]({'keepPunct':!0x1});_0x552d0f=_0x1444cb(_0x552d0f,_0x3ac656[_0x1457aa(0x2c3e)],_0x321c85(_0x38fa29));let _0x568003=_0x7a20d8(_0x552d0f,_0x3ac656['model']);if(_0x552d0f=_0x568003[_0x1457aa(0x184e)]||_0x568003['PastTense'],_0x552d0f){_0x3ac656=_0x3ac656[_0x1457aa(0x1db7)](_0x38fa29,_0x552d0f);let _0x3ee860=_0x15823f(_0x3ac656,_0x4e525a);_0x3ac656[_0x1457aa(0x2bbd)](_0x3ee860)[_0x1457aa(0xdc0)](_0x3ee860)[_0x1457aa(0x17a2)](_0x1457aa(0x2126)),_0x3ac656[_0x1457aa(0x80a)](_0x298a72);}return _0x3ac656;},_0x3dbf80={'infinitive':_0x333bd4,'simple-present':_0x333bd4,'simple-future':(_0x14f905,_0x382270)=>_0x14f905['replace'](_0x235866(0x2160),_0x15823f(_0x14f905,_0x382270)),'present-perfect':_0x50fa6d,'past-perfect':_0x50fa6d,'future-perfect':(_0x169dfb,_0x5ea787)=>_0x169dfb[_0x235866(0x1db7)](_0x235866(0x47ab),_0x15823f(_0x169dfb,_0x5ea787)),'present-perfect-progressive':_0x50fa6d,'past-perfect-progressive':_0x50fa6d,'future-perfect-progressive':_0x50fa6d},_0x1c3a1f=function(_0x50eec5,_0x302377,_0x27b5fc){const _0x2cf599=_0x235866;return _0x3dbf80[_0x2cf599(0x32b5)](_0x27b5fc)?((_0x50eec5=_0x3dbf80[_0x27b5fc](_0x50eec5,_0x302377))[_0x2cf599(0x12f)]()['compute']([_0x2cf599(0x2c29),'chunks']),_0x50eec5):((_0x50eec5=_0x333bd4(_0x50eec5,_0x302377))[_0x2cf599(0x12f)]()[_0x2cf599(0x210d)](['tagger',_0x2cf599(0x23a8)]),_0x50eec5);},_0x117496={'tags':!0x0},_0x244545=(_0x3c6ee5,_0x1d9637)=>{const _0x27cb5c=_0x235866,{conjugate:_0x203473,toInfinitive:_0x272f4d}=_0x3c6ee5[_0x27cb5c(0x8f)][_0x27cb5c(0x141f)][_0x27cb5c(0x560)][_0x27cb5c(0x91)],_0x133c17=_0x1d9637[_0x27cb5c(0xdf8)];let _0x3f3288=_0x133c17[_0x27cb5c(0x2f35)](_0x27cb5c(0x4cb));return _0x3f3288=_0x272f4d(_0x3f3288,_0x3c6ee5[_0x27cb5c(0x2c3e)],_0x321c85(_0x133c17)),!0x1===_0x59295c(_0x3c6ee5,_0x1d9637)&&(_0x3f3288=_0x203473(_0x3f3288,_0x3c6ee5[_0x27cb5c(0x2c3e)])[_0x27cb5c(0x17a6)]),_0x133c17[_0x27cb5c(0x5ec)](_0x27cb5c(0x3076))&&(_0x3f3288=_0x2b8d19(_0x3c6ee5,_0x1d9637)),_0x3f3288&&(_0x3c6ee5=_0x3c6ee5[_0x27cb5c(0x1db7)](_0x133c17,_0x3f3288,_0x117496))[_0x27cb5c(0x4163)]('#Particle')[_0x27cb5c(0x17a2)](_0x27cb5c(0x17a6)),_0x3c6ee5;},_0x541923=(_0x1f25b3,_0x155712)=>{const _0x38eb4a=_0x235866,{conjugate:_0x2cb48d,toInfinitive:_0xf4cf45}=_0x1f25b3[_0x38eb4a(0x8f)][_0x38eb4a(0x141f)][_0x38eb4a(0x560)][_0x38eb4a(0x91)],_0x12a753=_0x155712[_0x38eb4a(0xdf8)];let _0xe43f8d=_0x12a753['text'](_0x38eb4a(0x4cb));return _0xe43f8d=_0xf4cf45(_0xe43f8d,_0x1f25b3[_0x38eb4a(0x2c3e)],_0x321c85(_0x12a753)),!0x1===_0x59295c(_0x1f25b3,_0x155712)&&(_0xe43f8d=_0x2cb48d(_0xe43f8d,_0x1f25b3[_0x38eb4a(0x2c3e)])[_0x38eb4a(0x1e19)]),_0xe43f8d&&(_0x1f25b3=_0x1f25b3['replace'](_0x12a753,_0xe43f8d,_0x117496))[_0x38eb4a(0x4163)]('#Particle')[_0x38eb4a(0x17a2)]('Gerund'),_0x1f25b3;},_0x197b47={'infinitive':_0x244545,'simple-present':(_0x139ac6,_0x3b976f)=>{const _0x3a0190=_0x235866,{conjugate:_0x1da78c}=_0x139ac6['methods']['two']['transform'][_0x3a0190(0x91)];let {root:_0x300b8f}=_0x3b976f;if(!_0x300b8f[_0x3a0190(0x5ec)](_0x3a0190(0xe73)))return _0x244545(_0x139ac6,_0x3b976f);{let _0x20cd69=_0x784bca(_0x139ac6,_0x3b976f)['subject'];if(_0x59295c(_0x139ac6,_0x3b976f)||_0x20cd69[_0x3a0190(0x5ec)]('i'))return _0x139ac6;let _0x51995b=_0x300b8f[_0x3a0190(0x2f35)](_0x3a0190(0x4cb)),_0x58efe3=_0x1da78c(_0x51995b,_0x139ac6[_0x3a0190(0x2c3e)])['PresentTense'];_0x51995b!==_0x58efe3&&_0x139ac6[_0x3a0190(0x1db7)](_0x300b8f,_0x58efe3,_0x117496);}return _0x139ac6;},'simple-past':_0x244545,'simple-future':(_0x462a96,_0x112ec7)=>{const _0x2fb8a5=_0x235866,{root:_0x3c434e,auxiliary:_0x51438c}=_0x112ec7;if(_0x51438c[_0x2fb8a5(0x5ec)](_0x2fb8a5(0x2160))&&_0x3c434e[_0x2fb8a5(0x5ec)]('be')){let _0x4ab271=_0x2b8d19(_0x462a96,_0x112ec7);_0x462a96[_0x2fb8a5(0x1db7)](_0x3c434e,_0x4ab271),(_0x462a96=_0x462a96[_0x2fb8a5(0x80a)](_0x2fb8a5(0x2160)))[_0x2fb8a5(0x1db7)](_0x2fb8a5(0x1d0b)+_0x4ab271,_0x4ab271+'\x20not');}else _0x244545(_0x462a96,_0x112ec7),_0x462a96=_0x462a96['remove'](_0x2fb8a5(0x2160));return _0x462a96;},'present-progressive':_0x50fa6d,'past-progressive':(_0x47af4f,_0x1e5695)=>{const _0x41de40=_0x235866;let _0x2e4165=_0x2b8d19(_0x47af4f,_0x1e5695);return _0x47af4f[_0x41de40(0x1db7)]('(were|was)',_0x2e4165,_0x117496);},'future-progressive':_0x20bb59=>(_0x20bb59[_0x235866(0xdc0)](_0x235866(0x2160))[_0x235866(0x3dd0)]('is'),_0x20bb59[_0x235866(0x80a)]('be'),_0x20bb59[_0x235866(0x80a)]('will')),'present-perfect':(_0x296fda,_0x12c50b)=>(_0x244545(_0x296fda,_0x12c50b),_0x296fda=_0x296fda[_0x235866(0x80a)](_0x235866(0x89f))),'past-perfect':(_0x3bdc14,_0x3f0699)=>{const _0x1988a8=_0x235866;let _0x2822ca=_0x784bca(_0x3bdc14,_0x3f0699)['subject'];return _0x59295c(_0x3bdc14,_0x3f0699)||_0x2822ca[_0x1988a8(0x5ec)]('i')?((_0x3bdc14=_0x4f52c1(_0x3bdc14,_0x3f0699))[_0x1988a8(0x80a)](_0x1988a8(0x455a)),_0x3bdc14):(_0x3bdc14['replace']('had',_0x1988a8(0x5ec),_0x117496),_0x3bdc14);},'future-perfect':_0x588e42=>(_0x588e42['match'](_0x235866(0x2160))[_0x235866(0x3dd0)](_0x235866(0x5ec)),_0x588e42['remove']('have')[_0x235866(0x80a)](_0x235866(0x2160))),'present-perfect-progressive':_0x50fa6d,'past-perfect-progressive':_0x300eae=>_0x300eae[_0x235866(0x1db7)](_0x235866(0x455a),_0x235866(0x5ec),_0x117496),'future-perfect-progressive':_0x189317=>(_0x189317[_0x235866(0xdc0)](_0x235866(0x2160))[_0x235866(0x3dd0)](_0x235866(0x5ec)),_0x189317[_0x235866(0x80a)](_0x235866(0xb66))[_0x235866(0x80a)]('will')),'passive-past':(_0x504b90,_0x1797c8)=>{const _0x40850b=_0x235866;let _0x4c5784=_0x2b8d19(_0x504b90,_0x1797c8);return _0x504b90[_0x40850b(0x5ec)](_0x40850b(0x3905))&&_0x504b90[_0x40850b(0x5ec)](_0x40850b(0x182e))?(_0x504b90[_0x40850b(0x1db7)]('(had|have|has)',_0x4c5784,_0x117496),_0x504b90[_0x40850b(0x1db7)](_0x40850b(0x182e),'being'),_0x504b90):_0x504b90[_0x40850b(0x1db7)](_0x40850b(0x1be4),_0x4c5784);},'passive-present':_0x50fa6d,'passive-future':_0x44c146=>(_0x44c146['replace'](_0x235866(0x2160),'is'),_0x44c146[_0x235866(0x1db7)]('be',_0x235866(0x491e))),'present-conditional':_0x50fa6d,'past-conditional':_0xce3a8=>(_0xce3a8[_0x235866(0x1db7)]('been','be'),_0xce3a8[_0x235866(0x80a)](_0x235866(0xb66))),'auxiliary-future':(_0x329480,_0x157bf1)=>(_0x541923(_0x329480,_0x157bf1),_0x329480[_0x235866(0x80a)](_0x235866(0x325e)),_0x329480),'auxiliary-past':(_0x3a040c,_0x299b80)=>{const _0x3135db=_0x235866;if(_0x299b80[_0x3135db(0x213e)]['has'](_0x3135db(0x3516))){let _0x178754=_0x4aa009(_0x3a040c,_0x299b80);return _0x3a040c['replace'](_0x299b80[_0x3135db(0x213e)],_0x178754),_0x3a040c;}return _0x541923(_0x3a040c,_0x299b80),_0x3a040c[_0x3135db(0x1db7)](_0x299b80[_0x3135db(0x213e)],'is'),_0x3a040c;},'auxiliary-present':_0x50fa6d,'modal-infinitive':_0x50fa6d,'modal-past':(_0x47e49f,_0xfd53aa)=>(((_0x13ea9b,_0x33faad)=>{const _0x309c98=_0x235866,{toInfinitive:_0x4ee39a}=_0x13ea9b['methods'][_0x309c98(0x141f)][_0x309c98(0x560)][_0x309c98(0x91)],_0x15883f=_0x33faad[_0x309c98(0xdf8)];let _0x1c2be3=_0x33faad[_0x309c98(0xdf8)][_0x309c98(0x2f35)]('normal');_0x1c2be3=_0x4ee39a(_0x1c2be3,_0x13ea9b[_0x309c98(0x2c3e)],_0x321c85(_0x15883f)),_0x1c2be3&&(_0x13ea9b=_0x13ea9b[_0x309c98(0x1db7)](_0x33faad['root'],_0x1c2be3,_0x117496));})(_0x47e49f,_0xfd53aa),_0x47e49f[_0x235866(0x80a)](_0x235866(0xb66))),'gerund-phrase':(_0x596b5d,_0xc8a534)=>(_0xc8a534[_0x235866(0xdf8)]=_0xc8a534[_0x235866(0xdf8)]['not'](_0x235866(0x3caf)),_0x244545(_0x596b5d,_0xc8a534),_0x596b5d[_0x235866(0x80a)](_0x235866(0x1dd9))),'want-infinitive':(_0x4e40c4,_0x2cdf99)=>{const _0x1f3042=_0x235866;let _0x3de502=_0x1f3042(0x306d);return _0x59295c(_0x4e40c4,_0x2cdf99)&&(_0x3de502=_0x1f3042(0xce5)),_0x4e40c4[_0x1f3042(0x1db7)](_0x1f3042(0x1f7b),_0x3de502,_0x117496),_0x4e40c4[_0x1f3042(0x80a)](_0x1f3042(0x2160)),_0x4e40c4;}},_0x3269ee=function(_0xbc805d,_0xc51c0b,_0x2717de){const _0x5618c3=_0x235866;return _0x197b47[_0x5618c3(0x32b5)](_0x2717de)?((_0xbc805d=_0x197b47[_0x2717de](_0xbc805d,_0xc51c0b))[_0x5618c3(0x12f)]()[_0x5618c3(0x210d)]([_0x5618c3(0x2c29),_0x5618c3(0x23a8)]),_0xbc805d):_0xbc805d;},_0x29e31a={'tags':!0x0},_0xd4c362=(_0x2a05ac,_0xaaf979)=>{const _0x1e811f=_0x235866,{toInfinitive:_0x1ea52f}=_0x2a05ac['methods']['two'][_0x1e811f(0x560)][_0x1e811f(0x91)],{root:_0x359927,auxiliary:_0x12d43f}=_0xaaf979;if(_0x359927['has'](_0x1e811f(0x4ff6)))return _0x2a05ac;let _0x164693=_0x359927[_0x1e811f(0x2f35)](_0x1e811f(0x4cb));return _0x164693=_0x1ea52f(_0x164693,_0x2a05ac[_0x1e811f(0x2c3e)],_0x321c85(_0x359927)),_0x164693&&(_0x2a05ac=_0x2a05ac[_0x1e811f(0x1db7)](_0x359927,_0x164693,_0x29e31a))['not'](_0x1e811f(0x22cb))['tag'](_0x1e811f(0x41f2)),_0x2a05ac[_0x1e811f(0x2bbd)]('will')[_0x1e811f(0xdc0)](_0x1e811f(0x2160))['tag'](_0x1e811f(0x2126)),_0x2a05ac[_0x1e811f(0x80a)](_0x12d43f),_0x2a05ac;},_0x1b1169=(_0x16402b,_0x911594)=>{const _0x115684=_0x235866,{conjugate:_0x45b1d8,toInfinitive:_0x5d264b}=_0x16402b['methods']['two']['transform']['verb'],{root:_0x4e0684,auxiliary:_0x1f1729}=_0x911594;let _0xfd817=_0x4e0684[_0x115684(0x2f35)](_0x115684(0x4cb));return _0xfd817=_0x5d264b(_0xfd817,_0x16402b[_0x115684(0x2c3e)],_0x321c85(_0x4e0684)),_0xfd817&&(_0xfd817=_0x45b1d8(_0xfd817,_0x16402b['model'])['Gerund'],_0x16402b[_0x115684(0x1db7)](_0x4e0684,_0xfd817,_0x29e31a),_0x16402b[_0x115684(0x4163)]('#Particle')[_0x115684(0x17a2)](_0x115684(0x17a6))),_0x16402b[_0x115684(0x80a)](_0x1f1729),_0x16402b[_0x115684(0x2bbd)](_0x115684(0x3018))[_0x115684(0xdc0)](_0x115684(0x3018))[_0x115684(0x17a2)](_0x115684(0x2126)),_0x16402b;},_0x6af463={'infinitive':_0xd4c362,'simple-present':_0xd4c362,'simple-past':_0xd4c362,'simple-future':_0x50fa6d,'present-progressive':_0x1b1169,'past-progressive':_0x1b1169,'future-progressive':_0x50fa6d,'present-perfect':_0x15156f=>(_0x15156f['match'](_0x235866(0x171d))[_0x235866(0x6f5)](_0x235866(0x47ab)),_0x15156f),'past-perfect':_0x2a2d05=>_0x2a2d05[_0x235866(0x1db7)](_0x235866(0xa30),_0x235866(0x47ab)),'future-perfect':_0x50fa6d,'present-perfect-progressive':_0x56597e=>_0x56597e[_0x235866(0x1db7)](_0x235866(0x5ec),_0x235866(0x47ab)),'past-perfect-progressive':_0x407d49=>_0x407d49['replace'](_0x235866(0x455a),_0x235866(0x47ab)),'future-perfect-progressive':_0x50fa6d,'passive-past':_0x525f2e=>_0x525f2e[_0x235866(0x5ec)](_0x235866(0xd17))?_0x525f2e[_0x235866(0x1db7)]('got','will\x20get'):_0x525f2e[_0x235866(0x5ec)]('(was|were)')?(_0x525f2e[_0x235866(0x1db7)](_0x235866(0xab8),'will\x20be'),_0x525f2e['remove'](_0x235866(0x491e))):_0x525f2e[_0x235866(0x5ec)](_0x235866(0x3017))?_0x525f2e[_0x235866(0x1db7)](_0x235866(0x3017),_0x235866(0x3018)):_0x525f2e,'passive-present':_0x1f9d3c=>(_0x1f9d3c[_0x235866(0x1db7)](_0x235866(0x491e),_0x235866(0x3018)),_0x1f9d3c['remove']('(is|are|am)'),_0x1f9d3c),'passive-future':_0x50fa6d,'present-conditional':_0x283b51=>_0x283b51[_0x235866(0x1db7)](_0x235866(0x416a),_0x235866(0x2160)),'past-conditional':_0x5d16fa=>_0x5d16fa[_0x235866(0x1db7)](_0x235866(0x416a),_0x235866(0x2160)),'auxiliary-future':_0x50fa6d,'auxiliary-past':_0x16dcce=>_0x16dcce[_0x235866(0x5ec)](_0x235866(0x29ab))&&_0x16dcce[_0x235866(0x5ec)]('to')?(_0x16dcce['replace'](_0x235866(0x29ab),_0x235866(0x2160)),_0x16dcce[_0x235866(0x80a)]('to')):(_0x16dcce[_0x235866(0x1db7)](_0x235866(0x3516),_0x235866(0x2160)),_0x16dcce),'auxiliary-present':_0x5d1ca0=>_0x5d1ca0[_0x235866(0x1db7)](_0x235866(0x3d87),_0x235866(0x2160)),'modal-infinitive':_0x50fa6d,'modal-past':_0x50fa6d,'gerund-phrase':(_0x1dca22,_0x327a7d)=>(_0x327a7d['root']=_0x327a7d[_0x235866(0xdf8)][_0x235866(0x4163)](_0x235866(0x3caf)),_0xd4c362(_0x1dca22,_0x327a7d),_0x1dca22[_0x235866(0x80a)](_0x235866(0x3bb))),'want-infinitive':_0xebc63=>(_0xebc63[_0x235866(0x1db7)](_0x235866(0x4c7f),_0x235866(0x2303)),_0xebc63)},_0x4eba5e=function(_0x86be13,_0x5a6191,_0x45258a){const _0x1f0ede=_0x235866;return _0x86be13[_0x1f0ede(0x5ec)](_0x1f0ede(0x2160))||_0x86be13[_0x1f0ede(0x5ec)](_0x1f0ede(0x3c58))?_0x86be13:_0x6af463['hasOwnProperty'](_0x45258a)?((_0x86be13=_0x6af463[_0x45258a](_0x86be13,_0x5a6191))[_0x1f0ede(0x12f)]()[_0x1f0ede(0x210d)]([_0x1f0ede(0x2c29),'chunks']),_0x86be13):_0x86be13;},_0x24217e={'tags':!0x0},_0x1cb3a2=function(_0x540ca4,_0x81e5f1){const _0xd7a1f4=_0x235866,{toInfinitive:_0x29fa9c,conjugate:_0x34d0b1}=_0x540ca4['methods']['two'][_0xd7a1f4(0x560)][_0xd7a1f4(0x91)],{root:_0x124e80,auxiliary:_0x5a37b1}=_0x81e5f1;if(_0x540ca4[_0xd7a1f4(0x5ec)](_0xd7a1f4(0x58f)))return _0x540ca4;let _0x3a6f5c=_0x124e80[_0xd7a1f4(0x2f35)](_0xd7a1f4(0x4cb));_0x3a6f5c=_0x29fa9c(_0x3a6f5c,_0x540ca4[_0xd7a1f4(0x2c3e)],_0x321c85(_0x124e80));let _0x5c3178=_0x34d0b1(_0x3a6f5c,_0x540ca4[_0xd7a1f4(0x2c3e)])[_0xd7a1f4(0x1e19)];if(_0x5c3178){let _0x137799=_0x2b8d19(_0x540ca4,_0x81e5f1);_0x540ca4[_0xd7a1f4(0x1db7)](_0x124e80,_0x5c3178,_0x24217e),_0x540ca4[_0xd7a1f4(0x80a)](_0x5a37b1),_0x540ca4[_0xd7a1f4(0x2bbd)](_0x137799);}return _0x540ca4['replace']('not\x20is','is\x20not'),_0x540ca4[_0xd7a1f4(0x1db7)](_0xd7a1f4(0x4d6c),_0xd7a1f4(0x1aeb)),_0x540ca4[_0xd7a1f4(0x12f)]()['compute']([_0xd7a1f4(0x2c29),_0xd7a1f4(0x23a8)]),_0x540ca4;},_0x18720a={'tags':!0x0},_0x17a91b=function(_0x3081a0,_0x4140cf){const _0x2dd0f3=_0x235866;let _0x114969=_0x4aa009(_0x3081a0,_0x4140cf);return _0x3081a0[_0x2dd0f3(0x2bbd)](_0x114969+'\x20not'),_0x3081a0;},_0x48f6ae=function(_0x57d804){const _0x44e7cc=_0x235866;let _0x40aae1=_0x57d804[_0x44e7cc(0xdc0)]('be');return _0x40aae1['found']?(_0x40aae1[_0x44e7cc(0x2bbd)]('not'),_0x57d804):(_0x40aae1=_0x57d804[_0x44e7cc(0xdc0)](_0x44e7cc(0xdd)),_0x40aae1[_0x44e7cc(0x622)]?(_0x40aae1[_0x44e7cc(0x180a)](_0x44e7cc(0x4163)),_0x57d804):_0x57d804);},_0x4bc2bb=_0xa18d67=>_0xa18d67[_0x235866(0x5ec)](_0x235866(0x3070)),_0x3442b9={'simple-present':(_0x2b38e2,_0x1d7308)=>!0x0===_0x4bc2bb(_0x2b38e2)?_0x48f6ae(_0x2b38e2):(_0x2b38e2=_0x4f52c1(_0x2b38e2,_0x1d7308),_0x2b38e2=_0x17a91b(_0x2b38e2,_0x1d7308)),'simple-past':(_0xbf10a5,_0x263426)=>!0x0===_0x4bc2bb(_0xbf10a5)?_0x48f6ae(_0xbf10a5):((_0xbf10a5=_0x4f52c1(_0xbf10a5,_0x263426))[_0x235866(0x2bbd)](_0x235866(0x406)),_0xbf10a5),'imperative':_0xb4abdc=>(_0xb4abdc[_0x235866(0x2bbd)](_0x235866(0x2172)),_0xb4abdc),'infinitive':(_0x5c62bd,_0x53d40c)=>!0x0===_0x4bc2bb(_0x5c62bd)?_0x48f6ae(_0x5c62bd):_0x17a91b(_0x5c62bd,_0x53d40c),'passive-past':_0x3ff2b1=>{const _0xd35730=_0x235866;if(_0x3ff2b1[_0xd35730(0x5ec)](_0xd35730(0xd17)))return _0x3ff2b1['replace'](_0xd35730(0xd17),_0xd35730(0x2685),_0x18720a),_0x3ff2b1[_0xd35730(0x2bbd)](_0xd35730(0x406)),_0x3ff2b1;let _0x2e08d2=_0x3ff2b1['match'](_0xd35730(0x37ba));return _0x2e08d2[_0xd35730(0x622)]&&_0x2e08d2[_0xd35730(0x180a)](_0xd35730(0x4163)),_0x3ff2b1;},'auxiliary-past':_0x40f696=>{const _0x3bd18f=_0x235866;if(_0x40f696[_0x3bd18f(0x5ec)]('used'))return _0x40f696[_0x3bd18f(0x2bbd)]('did\x20not'),_0x40f696;let _0x28a7f6=_0x40f696[_0x3bd18f(0xdc0)](_0x3bd18f(0x1c37));return _0x28a7f6[_0x3bd18f(0x622)]&&_0x28a7f6[_0x3bd18f(0x180a)](_0x3bd18f(0x4163)),_0x40f696;},'want-infinitive':(_0x12a4c7,_0x18e90c)=>_0x12a4c7=(_0x12a4c7=_0x17a91b(_0x12a4c7,_0x18e90c))['replace'](_0x235866(0x306d),_0x235866(0xce5),_0x18720a)},_0x5363cc=function(_0x431cbf,_0x3060fb,_0x2a7f61){const _0x19690b=_0x235866;if(_0x431cbf[_0x19690b(0x5ec)](_0x19690b(0x3201)))return _0x431cbf;if(_0x3442b9[_0x19690b(0x32b5)](_0x2a7f61))return _0x431cbf=_0x3442b9[_0x2a7f61](_0x431cbf,_0x3060fb);let _0x1e77f0=_0x431cbf[_0x19690b(0x873)]('be');return _0x1e77f0[_0x19690b(0x622)]?(_0x1e77f0[_0x19690b(0x2bbd)](_0x19690b(0x4163)),_0x431cbf):!0x0===_0x4bc2bb(_0x431cbf)?_0x48f6ae(_0x431cbf):(_0x1e77f0=_0x431cbf[_0x19690b(0x873)]('(will|had|have|has|did|does|do|#Modal)'),_0x1e77f0[_0x19690b(0x622)]?(_0x1e77f0[_0x19690b(0x180a)](_0x19690b(0x4163)),_0x431cbf):_0x431cbf);},_0x2526ec=function(_0x569a29){const _0x5e30ad=_0x235866;class _0x54cf1f extends _0x569a29{constructor(_0x1730a8,_0x4525b5,_0x5936b5){const _0x51e7fb=a0_0x329b;super(_0x1730a8,_0x4525b5,_0x5936b5),this[_0x51e7fb(0x3784)]=_0x51e7fb(0xc92);}[_0x5e30ad(0x1b07)](_0x305a32){const _0x27354e=_0x5e30ad;return this[_0x27354e(0x2ead)](_0x305a32)['map'](_0x5dd7f9);}[_0x5e30ad(0x25b9)](_0x2377cb,_0x48c884){const _0x4dfd70=_0x5e30ad;let _0x493ced=this[_0x4dfd70(0x2ead)](_0x48c884)[_0x4dfd70(0x2c94)](_0x18826d=>{const _0x507ce4=_0x4dfd70;let _0x1bde22=_0x18826d[_0x507ce4(0xc6b)]()[_0x507ce4(0x25b9)](_0x2377cb)[0x0]||{};return _0x1bde22['verb']=_0x218a6e(_0x18826d),_0x1bde22;},[]);return _0x493ced;}[_0x5e30ad(0x31f5)](_0xfa1e20){return this['getNth'](_0xfa1e20)['map'](_0x54160c=>{let _0x34cd67=_0x5dd7f9(_0x54160c);return _0x784bca(_0x54160c,_0x34cd67)['subject'];});}[_0x5e30ad(0x2143)](_0xc88e28){const _0x2ea8f6=_0x5e30ad;return this[_0x2ea8f6(0x2ead)](_0xc88e28)[_0x2ea8f6(0x2c94)](_0x28604a=>_0x28604a[_0x2ea8f6(0xdc0)](_0x2ea8f6(0x1213)));}[_0x5e30ad(0x4f5c)](_0x405ca1){const _0x381200=_0x5e30ad;return this['getNth'](_0x405ca1)[_0x381200(0x295e)](_0x952443=>!0x0!==_0x784bca(_0x952443)[_0x381200(0x1ee6)]);}[_0x5e30ad(0x33cd)](_0x54b081){const _0x1e25ab=_0x5e30ad;return this[_0x1e25ab(0x2ead)](_0x54b081)[_0x1e25ab(0x295e)](_0x2f5c35=>!0x0===_0x784bca(_0x2f5c35)[_0x1e25ab(0x1ee6)]);}[_0x5e30ad(0x1bcd)](_0x55cb9c){const _0x28af14=_0x5e30ad;return this[_0x28af14(0x2ead)](_0x55cb9c)[_0x28af14(0x295e)](_0x1944f8=>_0x1944f8['has']('#Imperative'));}[_0x5e30ad(0x3510)](_0x504ac4){const _0x42ae9f=_0x5e30ad;return this['getNth'](_0x504ac4)[_0x42ae9f(0x2c94)](_0x1fa0de=>{let _0x4ce902=_0x5dd7f9(_0x1fa0de),_0x15e14d=_0x5f2402(_0x1fa0de,_0x4ce902);return _0x2dcd26(_0x1fa0de,_0x4ce902,_0x15e14d['form']);});}[_0x5e30ad(0x1d50)](_0x427694){const _0x268408=_0x5e30ad;return this[_0x268408(0x2ead)](_0x427694)[_0x268408(0x2c94)](_0x5dd4f9=>{const _0x36694f=_0x268408;let _0x10430f=_0x5dd7f9(_0x5dd4f9),_0x336300=_0x5f2402(_0x5dd4f9,_0x10430f);return _0x336300[_0x36694f(0x2c91)]?_0x5dd4f9:_0x3269ee(_0x5dd4f9,_0x10430f,_0x336300[_0x36694f(0x377b)]);});}[_0x5e30ad(0xa80)](_0x3a1077){const _0x3169db=_0x5e30ad;return this['getNth'](_0x3a1077)[_0x3169db(0x2c94)](_0x223891=>{const _0x2bce45=_0x3169db;let _0x4e7efb=_0x5dd7f9(_0x223891),_0x1b95da=_0x5f2402(_0x223891,_0x4e7efb);return _0x1b95da[_0x2bce45(0x2c91)]?_0x223891:_0x500cb0(_0x223891,_0x4e7efb,_0x1b95da['form']);});}[_0x5e30ad(0x3f0e)](_0x4223e6){const _0x180404=_0x5e30ad;return this[_0x180404(0x2ead)](_0x4223e6)[_0x180404(0x2c94)](_0x2104a6=>{const _0x5e13b4=_0x180404;let _0x3ee658=_0x5dd7f9(_0x2104a6),_0x450715=_0x5f2402(_0x2104a6,_0x3ee658);return _0x450715[_0x5e13b4(0x2c91)]?_0x2104a6:_0x4eba5e(_0x2104a6,_0x3ee658,_0x450715[_0x5e13b4(0x377b)]);});}[_0x5e30ad(0xa4)](_0x1d96fe){const _0xc7dd59=_0x5e30ad;return this[_0xc7dd59(0x2ead)](_0x1d96fe)[_0xc7dd59(0x2c94)](_0x2bdd74=>{const _0x5ecf6e=_0xc7dd59;let _0x30b414=_0x5dd7f9(_0x2bdd74),_0x266b89=_0x5f2402(_0x2bdd74,_0x30b414);return _0x266b89[_0x5ecf6e(0x2c91)]?_0x2bdd74:_0x1cb3a2(_0x2bdd74,_0x30b414,_0x266b89[_0x5ecf6e(0x377b)]);});}[_0x5e30ad(0xd8f)](_0x355c1a){const _0x5e62d2=_0x5e30ad;return this[_0x5e62d2(0x2ead)](_0x355c1a)['map'](_0x2cdf32=>{const _0x2b65f6=_0x5e62d2;let _0x9bf149=_0x5dd7f9(_0x2cdf32),_0x2638d4=_0x5f2402(_0x2cdf32,_0x9bf149);return _0x2638d4[_0x2b65f6(0x2c91)]?_0x2cdf32:_0x1c3a1f(_0x2cdf32,_0x9bf149,_0x2638d4[_0x2b65f6(0x377b)]);});}['conjugate'](_0x95220){const _0x14e990=_0x5e30ad,{conjugate:_0x520d1c,toInfinitive:_0x12a6c6}=this[_0x14e990(0x3e71)]['methods']['two'][_0x14e990(0x560)][_0x14e990(0x91)];return this['getNth'](_0x95220)[_0x14e990(0x2c94)](_0x9f432d=>{const _0x56502f=_0x14e990;let _0x23a7a3=_0x5dd7f9(_0x9f432d),_0x52a616=_0x5f2402(_0x9f432d,_0x23a7a3);_0x56502f(0x11be)===_0x52a616['form']&&(_0x52a616[_0x56502f(0x377b)]=_0x56502f(0x3c3f));let _0x4b3507=_0x23a7a3[_0x56502f(0xdf8)]['text'](_0x56502f(0x4cb));if(!_0x23a7a3['root'][_0x56502f(0x5ec)](_0x56502f(0xe73))){let _0xcbef8b=_0x321c85(_0x23a7a3['root']);_0x4b3507=_0x12a6c6(_0x4b3507,_0x9f432d[_0x56502f(0x2c3e)],_0xcbef8b)||_0x4b3507;}return _0x520d1c(_0x4b3507,_0x9f432d[_0x56502f(0x2c3e)]);},[]);}[_0x5e30ad(0x1262)](){const _0x52a756=_0x5e30ad;return this['if'](_0x52a756(0x3201));}[_0x5e30ad(0x2662)](){const _0x61f822=_0x5e30ad;return this[_0x61f822(0x4641)](_0x61f822(0x3201));}[_0x5e30ad(0x2237)](){const _0x53119a=_0x5e30ad;let _0x3db13b=this[_0x53119a(0xdc0)](_0x53119a(0x4498));return _0x3db13b[_0x53119a(0x622)]&&_0x3db13b[_0x53119a(0x80a)]('do\x20not'),this[_0x53119a(0x80a)](_0x53119a(0x3201));}[_0x5e30ad(0x4fb3)](_0x302dd5){const _0x317ab3=_0x5e30ad;return this[_0x317ab3(0x2ead)](_0x302dd5)[_0x317ab3(0x2c94)](_0x21644d=>{const _0x11e6b3=_0x317ab3;let _0x4c85eb=_0x5dd7f9(_0x21644d),_0x3e83ad=_0x5f2402(_0x21644d,_0x4c85eb);return _0x5363cc(_0x21644d,_0x4c85eb,_0x3e83ad[_0x11e6b3(0x377b)]);});}[_0x5e30ad(0xf93)](_0x1e1563){const _0x434466=_0x5e30ad;let _0xae7326=new _0x54cf1f(this[_0x434466(0x46d9)],_0x1e1563);return _0xae7326[_0x434466(0x1d5f)]=this[_0x434466(0x1d5f)],_0xae7326;}}_0x54cf1f['prototype']['toPast']=_0x54cf1f[_0x5e30ad(0x2b5c)]['toPastTense'],_0x54cf1f['prototype'][_0x5e30ad(0x30c2)]=_0x54cf1f[_0x5e30ad(0x2b5c)][_0x5e30ad(0x1d50)],_0x54cf1f['prototype'][_0x5e30ad(0x349f)]=_0x54cf1f['prototype'][_0x5e30ad(0x3f0e)],_0x569a29[_0x5e30ad(0x2b5c)][_0x5e30ad(0x333a)]=function(_0x292869){const _0x4c2bd6=_0x5e30ad;let _0x2be5f5=_0x275641(this);return _0x2be5f5=_0x2be5f5[_0x4c2bd6(0x2ead)](_0x292869),new _0x54cf1f(this[_0x4c2bd6(0x46d9)],_0x2be5f5[_0x4c2bd6(0x1d95)]);};},_0x7868f3={'api':_0x2526ec},_0x3f71ef=function(_0x15423c,_0x4acef1){const _0x366cd4=_0x235866;let _0x21ea90=_0x4acef1[_0x366cd4(0xdc0)](_0x15423c);if(_0x21ea90[_0x366cd4(0x622)]){let _0x1a09f4=_0x21ea90[_0x366cd4(0x16f3)]()[_0x366cd4(0x226a)]();if(_0x1a09f4[_0x366cd4(0x622)])return _0x1a09f4;}return _0x4acef1[_0x366cd4(0x80b)]();},_0x15a68=function(_0x130fda){const _0x10d459=_0x235866;if(!_0x130fda[_0x10d459(0x622)])return _0x130fda;let [_0x16827c]=_0x130fda[_0x10d459(0x48da)][0x0];return _0x16827c&&_0x16827c>0x0?_0x130fda[_0x10d459(0xf93)]([[_0x16827c-0x1]]):_0x130fda[_0x10d459(0x80b)]();},_0x4770f8=function(_0x53e282,_0x1ee483){const _0x246c9e=_0x235866;let _0x5aea4c=_0x53e282[_0x246c9e(0x2764)]();return _0x5aea4c=function(_0x3573f5,_0x5e7552){const _0x3bf86c=_0x246c9e;return'm'===_0x5e7552?_0x3573f5['filter'](_0x356fcc=>!_0x356fcc[_0x3bf86c(0x511b)]()[_0x3bf86c(0x622)]):'f'===_0x5e7552?_0x3573f5['filter'](_0x740387=>!_0x740387['presumedMale']()[_0x3bf86c(0x622)]):_0x3573f5;}(_0x5aea4c,_0x1ee483),_0x5aea4c['found']?_0x5aea4c[_0x246c9e(0x401a)]():(_0x5aea4c=_0x53e282['nouns'](_0x246c9e(0x40ad)),_0x5aea4c['found']?_0x5aea4c[_0x246c9e(0x401a)]():'f'===_0x1ee483?_0x3f71ef(_0x246c9e(0x2069),_0x53e282):'m'===_0x1ee483?_0x3f71ef('(he|him|his)',_0x53e282):_0x53e282[_0x246c9e(0x80b)]());},_0x26fd54=function(_0x382774){const _0x374675=_0x235866;let _0x26a99f=_0x382774[_0x374675(0x4111)](),_0x1dbb1c=_0x26a99f[_0x374675(0x33cd)]()[_0x374675(0xfba)](_0x374675(0x23eb));if(_0x1dbb1c['found'])return _0x1dbb1c[_0x374675(0x401a)]();let _0x1f9b92=_0x3f71ef(_0x374675(0x1d5b),_0x382774);return _0x1f9b92[_0x374675(0x622)]?_0x1f9b92:(_0x1dbb1c=_0x26a99f[_0x374675(0xdc0)](_0x374675(0x120)),_0x1dbb1c[_0x374675(0x622)]?_0x1dbb1c[_0x374675(0x401a)]():_0x382774[_0x374675(0x80b)]());},_0xb6a861=function(_0x12361d,_0x27c039){const _0xac5c70=_0x235866;let _0x3ea251=_0x12361d['before'](),_0x4140a3=_0x27c039(_0x3ea251);return _0x4140a3['found']?_0x4140a3:(_0x3ea251=_0x15a68(_0x12361d),_0x4140a3=_0x27c039(_0x3ea251),_0x4140a3[_0xac5c70(0x622)]?_0x4140a3:(_0x3ea251=_0x15a68(_0x3ea251),_0x4140a3=_0x27c039(_0x3ea251),_0x4140a3[_0xac5c70(0x622)]?_0x4140a3:_0x12361d['none']()));},_0x5f2938=function(_0x5d241d){const _0x55240a=_0x235866;_0x5d241d['pronouns']()['if'](_0x55240a(0x321))[_0x55240a(0x4854)](_0x55cdde=>{const _0x3c50c6=_0x55240a;let _0x81fd16=null;_0x55cdde[_0x3c50c6(0x5ec)]('(he|him|his)')?_0x81fd16=_0xb6a861(_0x55cdde,_0x16aaba=>_0x4770f8(_0x16aaba,'m')):_0x55cdde[_0x3c50c6(0x5ec)](_0x3c50c6(0x2069))?_0x81fd16=_0xb6a861(_0x55cdde,_0x257bbf=>_0x4770f8(_0x257bbf,'f')):_0x55cdde[_0x3c50c6(0x5ec)](_0x3c50c6(0x1d5b))&&(_0x81fd16=_0xb6a861(_0x55cdde,_0x26fd54)),_0x81fd16&&_0x81fd16[_0x3c50c6(0x622)]&&function(_0x105b57,_0x5e8856){const _0x4fb582=_0x3c50c6;_0x5e8856&&_0x5e8856[_0x4fb582(0x622)]&&(_0x105b57[_0x4fb582(0x3f72)][0x0][0x0][_0x4fb582(0x3085)]=_0x5e8856[_0x4fb582(0x33fe)][0x0]);}(_0x55cdde,_0x81fd16);});},_0xb08cce=function(_0x22c2b8){const _0x1505f7=_0x235866;class _0x163d35 extends _0x22c2b8{constructor(_0x41b6f2,_0x2d73f9,_0x268e56){const _0xe0c9c4=a0_0x329b;super(_0x41b6f2,_0x2d73f9,_0x268e56),this[_0xe0c9c4(0x3784)]=_0xe0c9c4(0x383e);}[_0x1505f7(0x4c7b)](){const _0x2de2eb=_0x1505f7;return this[_0x2de2eb(0x210d)](_0x2de2eb(0x1b03)),this[_0x2de2eb(0x295e)](_0x3e7c66=>_0x3e7c66[_0x2de2eb(0x3f72)][0x0][0x0]['reference']);}[_0x1505f7(0x226a)](){const _0x260109=_0x1505f7;return this['compute'](_0x260109(0x1b03)),this[_0x260109(0x2c94)](_0x2a49e2=>{const _0x4631bd=_0x260109;if(!_0x2a49e2[_0x4631bd(0x622)])return _0x2a49e2[_0x4631bd(0x80b)]();let _0x23161b=_0x2a49e2[_0x4631bd(0x3f72)][0x0][0x0];return _0x23161b[_0x4631bd(0x3085)]?_0x2a49e2[_0x4631bd(0xf93)]([_0x23161b[_0x4631bd(0x3085)]]):_0x2a49e2[_0x4631bd(0x80b)]();});}[_0x1505f7(0xf93)](_0x56446e){const _0x1127d7=_0x1505f7;let _0xcaa8ea=new _0x163d35(this['document'],_0x56446e);return _0xcaa8ea[_0x1127d7(0x1d5f)]=this['_cache'],_0xcaa8ea;}}_0x22c2b8[_0x1505f7(0x2b5c)]['pronouns']=function(_0xcbf2ae){const _0x3b8c0e=_0x1505f7;let _0x588353=this[_0x3b8c0e(0xdc0)](_0x3b8c0e(0x23eb));return _0x588353=_0x588353['getNth'](_0xcbf2ae),new _0x163d35(_0x588353['document'],_0x588353['pointer']);};},_0x13108e={'compute':{'coreference':_0x5f2938},'api':_0xb08cce};_0x3d975f['plugin'](_0x31882f),_0x3d975f[_0x235866(0x4c30)](_0x5a5ffd),_0x3d975f[_0x235866(0x4c30)](_0x16af0c),_0x3d975f[_0x235866(0x4c30)](_0x13108e),_0x3d975f['plugin'](_0x148a5f),_0x3d975f['plugin'](_0x3357b1),_0x3d975f[_0x235866(0x4c30)](_0x5a0853),_0x3d975f['plugin'](_0x27926f),_0x3d975f['plugin'](_0x379bfb),_0x3d975f[_0x235866(0x4c30)](_0x241d53),_0x3d975f[_0x235866(0x4c30)](_0xadb267),_0x3d975f[_0x235866(0x4c30)](_0x7868f3);const _0x1c715f=_0x3d975f;function _0x592733(_0x3ade91){const _0x4dac1d=_0x235866;return _0x1c715f(_0x3ade91)[_0x4dac1d(0x4ef1)]()[_0x4dac1d(0x4284)]('array');}function _0x124365(_0x51a11a){const _0x344343=_0x235866;return _0x1c715f(_0x51a11a)[_0x344343(0x4111)]()[_0x344343(0x4284)](_0x344343(0x47f8));}function _0x54bd4c(_0xf7ced0){const _0xfacc77=_0x235866;return _0x1c715f(_0xf7ced0)['normalize']()[_0xfacc77(0x80a)](_0xfacc77(0x246e))['out'](_0xfacc77(0x2f35));}function _0x3b194b(_0x3dbc65){const _0x199c48=_0x235866;let _0x1a8227=_0x3dbc65[_0x199c48(0x1db7)](/<[^>]*>/g,'');return[_0x199c48(0x1023),'BACKGROUND\x20KNOWLEDGE',_0x199c48(0x2375),'QUOTE',_0x199c48(0x289),_0x199c48(0x1202),_0x199c48(0x1cc9)][_0x199c48(0x4854)](_0x412110=>{const _0x2e5966=_0x199c48,_0x3a54d4=new RegExp(_0x412110+_0x2e5966(0x3cbd),'gi');_0x1a8227=_0x1a8227[_0x2e5966(0x1db7)](_0x3a54d4,'');}),_0x1a8227=_0x1a8227['trim']()[_0x199c48(0x1db7)](/\s+/g,'\x20'),_0x1a8227;}function _0x2c4c04(_0x4243d7){const _0xc74399=_0x235866;let _0x1d4b13=function(_0xb81e4e){const _0x4a5f51=a0_0x329b,_0x2c18ec=document[_0x4a5f51(0x23d7)](_0x4a5f51(0x257d));return _0x2c18ec[_0x4a5f51(0x22eb)]=_0xb81e4e,_0x2c18ec[_0x4a5f51(0x38cb)]||_0x2c18ec[_0x4a5f51(0x2ab6)]||'';}(_0x4243d7);_0x1d4b13=_0x3b194b(_0x4243d7),_0x1d4b13=_0x1d4b13['replace'](/\s+/g,'\x20')[_0xc74399(0x1db7)](/\n+/g,'\x0a')[_0xc74399(0x1d0e)](),_0x1d4b13=_0x54bd4c(_0x1d4b13);let _0x19c656=_0x592733(_0x1d4b13);return 0x0===_0x19c656[_0xc74399(0x205b)]&&(_0x19c656=_0x124365(_0x1d4b13),0x0===_0x19c656[_0xc74399(0x205b)]&&(_0x19c656=_0x1d4b13[_0xc74399(0x29d0)]('\x20'))),_0x19c656;}function _0x3d5224(){const _0x1b210e=_0x235866,_0x1556ac=document[_0x1b210e(0x3673)][_0x1b210e(0x38cb)];return _0x1556ac[_0x1b210e(0x1db7)](/\s+/g,'\x20')[_0x1b210e(0x1d0e)]();}const _0x24912e=(_0x4f946a,_0x33dd77)=>_0x33dd77[_0x235866(0x3f5f)](_0x17bac4=>_0x4f946a instanceof _0x17bac4);let _0x32528b,_0x5a798b;const _0x5f4e91=new WeakMap(),_0x462cde=new WeakMap(),_0x316422=new WeakMap();let _0x1dfdc9={'get'(_0x2d6d67,_0x3b3f3f,_0xfc13c1){const _0x52c37a=_0x235866;if(_0x2d6d67 instanceof IDBTransaction){if('done'===_0x3b3f3f)return _0x5f4e91[_0x52c37a(0x2685)](_0x2d6d67);if(_0x52c37a(0x2e6c)===_0x3b3f3f)return _0xfc13c1['objectStoreNames'][0x1]?void 0x0:_0xfc13c1[_0x52c37a(0x2a82)](_0xfc13c1[_0x52c37a(0x12f6)][0x0]);}return _0x59db4c(_0x2d6d67[_0x3b3f3f]);},'set':(_0x31b851,_0x56dde3,_0x53b552)=>(_0x31b851[_0x56dde3]=_0x53b552,!0x0),'has':(_0x1ca135,_0x30ac2c)=>_0x1ca135 instanceof IDBTransaction&&(_0x235866(0x48dc)===_0x30ac2c||'store'===_0x30ac2c)||_0x30ac2c in _0x1ca135};function _0x3a9c01(_0x3fc134){_0x1dfdc9=_0x3fc134(_0x1dfdc9);}function _0x491534(_0x134793){const _0x5b11c2=_0x235866;return(_0x5a798b||(_0x5a798b=[IDBCursor[_0x5b11c2(0x2b5c)]['advance'],IDBCursor[_0x5b11c2(0x2b5c)]['continue'],IDBCursor['prototype'][_0x5b11c2(0x3eaf)]]))['includes'](_0x134793)?function(..._0x2c2d08){const _0x497e94=_0x5b11c2;return _0x134793['apply'](_0x43fc1a(this),_0x2c2d08),_0x59db4c(this[_0x497e94(0x4595)]);}:function(..._0x3ea9ee){return _0x59db4c(_0x134793['apply'](_0x43fc1a(this),_0x3ea9ee));};}function _0x323f01(_0x543d9b){return'function'==typeof _0x543d9b?_0x491534(_0x543d9b):(_0x543d9b instanceof IDBTransaction&&function(_0x206f96){const _0x2abb52=a0_0x329b;if(_0x5f4e91['has'](_0x206f96))return;const _0x476213=new Promise((_0x30c21b,_0x4f79c8)=>{const _0x1aaeb0=a0_0x329b,_0x4e469d=()=>{const _0x2d9157=a0_0x329b;_0x206f96['removeEventListener'](_0x2d9157(0x2c88),_0x2e89cd),_0x206f96[_0x2d9157(0x2a94)]('error',_0xd87662),_0x206f96[_0x2d9157(0x2a94)](_0x2d9157(0x504b),_0xd87662);},_0x2e89cd=()=>{_0x30c21b(),_0x4e469d();},_0xd87662=()=>{const _0x274055=a0_0x329b;_0x4f79c8(_0x206f96[_0x274055(0x4b47)]||new DOMException(_0x274055(0x16e1),_0x274055(0x16e1))),_0x4e469d();};_0x206f96[_0x1aaeb0(0x20d0)](_0x1aaeb0(0x2c88),_0x2e89cd),_0x206f96['addEventListener']('error',_0xd87662),_0x206f96[_0x1aaeb0(0x20d0)](_0x1aaeb0(0x504b),_0xd87662);});_0x5f4e91[_0x2abb52(0x2d7e)](_0x206f96,_0x476213);}(_0x543d9b),_0x24912e(_0x543d9b,_0x32528b||(_0x32528b=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(_0x543d9b,_0x1dfdc9):_0x543d9b);}function _0x59db4c(_0x29f84b){const _0x287b86=_0x235866;if(_0x29f84b instanceof IDBRequest)return function(_0x56eee4){const _0x46ffdd=a0_0x329b,_0x33205c=new Promise((_0x2fb667,_0x1c39be)=>{const _0x52056d=a0_0x329b,_0x202f06=()=>{const _0x371bd9=a0_0x329b;_0x56eee4[_0x371bd9(0x2a94)](_0x371bd9(0x3d14),_0x1d8fd6),_0x56eee4[_0x371bd9(0x2a94)]('error',_0x6a8076);},_0x1d8fd6=()=>{const _0x93f199=a0_0x329b;_0x2fb667(_0x59db4c(_0x56eee4[_0x93f199(0x209a)])),_0x202f06();},_0x6a8076=()=>{_0x1c39be(_0x56eee4['error']),_0x202f06();};_0x56eee4[_0x52056d(0x20d0)](_0x52056d(0x3d14),_0x1d8fd6),_0x56eee4[_0x52056d(0x20d0)](_0x52056d(0x4b47),_0x6a8076);});return _0x316422[_0x46ffdd(0x2d7e)](_0x33205c,_0x56eee4),_0x33205c;}(_0x29f84b);if(_0x462cde[_0x287b86(0x5ec)](_0x29f84b))return _0x462cde[_0x287b86(0x2685)](_0x29f84b);const _0x27cca4=_0x323f01(_0x29f84b);return _0x27cca4!==_0x29f84b&&(_0x462cde['set'](_0x29f84b,_0x27cca4),_0x316422['set'](_0x27cca4,_0x29f84b)),_0x27cca4;}const _0x43fc1a=_0x588b09=>_0x316422[_0x235866(0x2685)](_0x588b09),_0x2e4af2=['get',_0x235866(0x3e98),'getAll','getAllKeys',_0x235866(0x4d47)],_0x1d649f=[_0x235866(0x1b1a),_0x235866(0x2fd8),_0x235866(0x450b),_0x235866(0x30a1)],_0x296c8a=new Map();function _0x547cf7(_0x1017ea,_0x24908b){const _0x2a81b4=_0x235866;if(!(_0x1017ea instanceof IDBDatabase)||_0x24908b in _0x1017ea||_0x2a81b4(0x4f7c)!=typeof _0x24908b)return;if(_0x296c8a['get'](_0x24908b))return _0x296c8a[_0x2a81b4(0x2685)](_0x24908b);const _0x3e368a=_0x24908b[_0x2a81b4(0x1db7)](/FromIndex$/,''),_0x53d0e7=_0x24908b!==_0x3e368a,_0x75f850=_0x1d649f['includes'](_0x3e368a);if(!(_0x3e368a in(_0x53d0e7?IDBIndex:IDBObjectStore)['prototype'])||!_0x75f850&&!_0x2e4af2[_0x2a81b4(0x1fa2)](_0x3e368a))return;const _0x5a8eff=async function(_0x215657,..._0x33d85a){const _0x4d558d=_0x2a81b4,_0x4501e8=this[_0x4d558d(0x4ffd)](_0x215657,_0x75f850?'readwrite':_0x4d558d(0x1e2b));let _0x98365b=_0x4501e8['store'];return _0x53d0e7&&(_0x98365b=_0x98365b['index'](_0x33d85a['shift']())),(await Promise[_0x4d558d(0x1d1f)]([_0x98365b[_0x3e368a](..._0x33d85a),_0x75f850&&_0x4501e8[_0x4d558d(0x48dc)]]))[0x0];};return _0x296c8a[_0x2a81b4(0x2d7e)](_0x24908b,_0x5a8eff),_0x5a8eff;}_0x3a9c01(_0x227376=>({..._0x227376,'get':(_0x3f5d07,_0x30d6b3,_0x163d4c)=>_0x547cf7(_0x3f5d07,_0x30d6b3)||_0x227376[_0x235866(0x2685)](_0x3f5d07,_0x30d6b3,_0x163d4c),'has':(_0x2cc3a8,_0xb7e5c6)=>!!_0x547cf7(_0x2cc3a8,_0xb7e5c6)||_0x227376[_0x235866(0x5ec)](_0x2cc3a8,_0xb7e5c6)}));const _0x486408=[_0x235866(0x495f),_0x235866(0x3eaf),'advance'],_0x44808f={},_0x3c30af=new WeakMap(),_0x18a5fd=new WeakMap(),_0x6a9696={'get'(_0xb9aa4c,_0x203142){const _0x19713f=_0x235866;if(!_0x486408[_0x19713f(0x1fa2)](_0x203142))return _0xb9aa4c[_0x203142];let _0x539b9f=_0x44808f[_0x203142];return _0x539b9f||(_0x539b9f=_0x44808f[_0x203142]=function(..._0x4b52af){_0x3c30af['set'](this,_0x18a5fd['get'](this)[_0x203142](..._0x4b52af));}),_0x539b9f;}};async function*_0x4ba4cc(..._0x4382a4){const _0x515d63=_0x235866;let _0xf4f01b=this;if(_0xf4f01b instanceof IDBCursor||(_0xf4f01b=await _0xf4f01b[_0x515d63(0x4914)](..._0x4382a4)),!_0xf4f01b)return;const _0x494d7b=new Proxy(_0xf4f01b,_0x6a9696);for(_0x18a5fd['set'](_0x494d7b,_0xf4f01b),_0x316422[_0x515d63(0x2d7e)](_0x494d7b,_0x43fc1a(_0xf4f01b));_0xf4f01b;)yield _0x494d7b,_0xf4f01b=await(_0x3c30af['get'](_0x494d7b)||_0xf4f01b[_0x515d63(0x495f)]()),_0x3c30af[_0x515d63(0x450b)](_0x494d7b);}function _0x4147b8(_0x749c20,_0x2066d5){const _0x358314=_0x235866;return _0x2066d5===Symbol[_0x358314(0x3e7)]&&_0x24912e(_0x749c20,[IDBIndex,IDBObjectStore,IDBCursor])||'iterate'===_0x2066d5&&_0x24912e(_0x749c20,[IDBIndex,IDBObjectStore]);}_0x3a9c01(_0x45a68d=>({..._0x45a68d,'get':(_0x27b756,_0x12ca23,_0x363871)=>_0x4147b8(_0x27b756,_0x12ca23)?_0x4ba4cc:_0x45a68d[_0x235866(0x2685)](_0x27b756,_0x12ca23,_0x363871),'has':(_0x172b4f,_0x178824)=>_0x4147b8(_0x172b4f,_0x178824)||_0x45a68d[_0x235866(0x5ec)](_0x172b4f,_0x178824)}));const _0x400db2=_0x235866(0x47a5);function _0x26f7f9(_0x15788e,_0x2907a5,_0x50fede){const _0x33d8ab=_0x235866;try{let _0x218007;if(_0x33d8ab(0x3d14)===_0x50fede)return _0x218007=_0x15788e[_0x33d8ab(0xe9f)](_0x33d8ab(0x20e1)),_0x218007||(_0x218007=document[_0x33d8ab(0x23d7)]('div'),_0x218007['id']=_0x33d8ab(0x64f),_0x218007[_0x33d8ab(0x3098)]['display']=_0x33d8ab(0x80b),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x3a28)]=_0x33d8ab(0x2940),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0xaf9)]=_0x33d8ab(0x4b7),_0x218007['style'][_0x33d8ab(0x24d0)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x2d5)]=_0x33d8ab(0x3e31),_0x218007[_0x33d8ab(0x3098)]['padding']='5px',_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x23da)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0xf7d)]='9999',_0x15788e['appendChild'](_0x218007)),_0x218007[_0x33d8ab(0x38cb)]=_0x2907a5,_0x218007[_0x33d8ab(0x3098)]['display']=_0x33d8ab(0x3eab),setTimeout(()=>{const _0x18eada=_0x33d8ab;_0x218007[_0x18eada(0x3098)][_0x18eada(0x254a)]=_0x18eada(0x80b);},0x7d0),_0x33d8ab(0x80b);_0x218007=_0x15788e[_0x33d8ab(0xe9f)](_0x33d8ab(0x1eb8)),_0x218007||(_0x218007=document[_0x33d8ab(0x23d7)](_0x33d8ab(0x257d)),_0x218007['id']=_0x33d8ab(0x31b3),_0x218007[_0x33d8ab(0x3098)]['display']=_0x33d8ab(0x80b),_0x218007[_0x33d8ab(0x3098)]['position']=_0x33d8ab(0x2940),_0x218007['style'][_0x33d8ab(0xaf9)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x24d0)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x2d5)]=_0x33d8ab(0x4b8d),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x20c4)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0x23da)]=_0x33d8ab(0x4b7),_0x218007[_0x33d8ab(0x3098)][_0x33d8ab(0xf7d)]=_0x33d8ab(0x3623),_0x15788e[_0x33d8ab(0x1952)](_0x218007)),_0x218007[_0x33d8ab(0x38cb)]=_0x2907a5,_0x218007[_0x33d8ab(0x3098)]['display']=_0x33d8ab(0x3eab),setTimeout(()=>{const _0xe88963=_0x33d8ab;_0x218007[_0xe88963(0x3098)][_0xe88963(0x254a)]=_0xe88963(0x80b);},0x7d0);}catch(_0x1596fe){}}function _0x4c0aad(_0x4fc162){const _0x27194b=_0x235866,_0x29a316=_0x4fc162[_0x27194b(0xe9f)](_0x27194b(0x1ff8));_0x29a316&&requestAnimationFrame(()=>{const _0x554e5b=_0x27194b;_0x29a316['scrollTop']=_0x29a316[_0x554e5b(0x4b8a)];});}function _0x51496e(_0x4a8c66){const _0xb1844=_0x235866,_0x17ca4e=_0x4a8c66['querySelector'](_0xb1844(0x1ff8));let _0x10c448=_0x4a8c66[_0xb1844(0xe9f)](_0xb1844(0x366b));_0x17ca4e&&_0x10c448?_0x10c448['scrollIntoView']({'behavior':_0xb1844(0x45a0)}):_0x17ca4e&&!_0x10c448&&(_0x10c448=document[_0xb1844(0x23d7)](_0xb1844(0x257d)),_0x10c448['id']=_0xb1844(0x45f6),_0x17ca4e[_0xb1844(0x1952)](_0x10c448),_0x10c448[_0xb1844(0x25d1)]({'behavior':_0xb1844(0x45a0)}));}function _0x30d856(_0x3107c3,_0x15aab6,_0x338161='',_0x377942=''){const _0x50438c=_0x235866,_0x12f248=_0x3107c3[_0x50438c(0xe9f)]('#'+_0x15aab6);if(!_0x12f248)return null;const _0x23a1e0=_0x12f248['cloneNode'](!0x0);if(''!==_0x338161?_0x23a1e0['id']=_0x338161:_0x23a1e0[_0x50438c(0x701)]('id'),''!==_0x377942){const _0x281901=_0x3107c3[_0x50438c(0xe9f)]('#'+_0x377942);if(_0x281901){if(_0x50438c(0x49e4)===_0x377942){const _0x1dd9ac=_0x3107c3['querySelector'](_0x50438c(0x366b));_0x281901['insertBefore'](_0x23a1e0,_0x1dd9ac);}else _0x281901[_0x50438c(0x1952)](_0x23a1e0);}}return _0x23a1e0;}function _0x184d80(_0x48fe12){const _0x2d98fa=_0x235866;_0x48fe12['id']=_0x2d98fa(0x42d9)+performance[_0x2d98fa(0x29c6)]()[_0x2d98fa(0x44de)]()[_0x2d98fa(0x1db7)]('.','')+'-'+Math[_0x2d98fa(0x4a2c)]()[_0x2d98fa(0x44de)](0x24)['substring'](0x2,0xf),_0x48fe12[_0x2d98fa(0x44dc)]('*')[_0x2d98fa(0x4854)](_0x184d80);}function _0x101050(_0x2023af,_0x11fa06,_0x4be96e){const _0x33333d=_0x235866,_0x28ef6e=document[_0x33333d(0x23d7)]('div');_0x28ef6e[_0x33333d(0x2987)](_0x33333d(0x42ec),'flex\x20justify-between');const _0x34d0f1=document[_0x33333d(0x23d7)](_0x33333d(0x257d));_0x34d0f1[_0x33333d(0x2987)](_0x33333d(0x42ec),_0x33333d(0x1483)),_0x4be96e instanceof Element&&_0x34d0f1[_0x33333d(0x1952)](_0x4be96e);const _0x244093=document[_0x33333d(0x23d7)](_0x33333d(0x257d));_0x244093[_0x33333d(0x22eb)]=_0x400db2,_0x28ef6e[_0x33333d(0x1952)](_0x34d0f1),_0x28ef6e[_0x33333d(0x1952)](_0x244093),_0x11fa06[_0x33333d(0x1952)](_0x28ef6e),function(_0xb958fc,_0x314f08){const _0x1a316b=_0x33333d,_0x41d86a=_0x314f08[_0x1a316b(0xe9f)]('#copy-btn'),_0x1931de=_0x314f08[_0x1a316b(0xe9f)](_0x1a316b(0x2103)),_0x4af177=_0x314f08['querySelector'](_0x1a316b(0x14d9)),_0x2ba05c=_0x314f08[_0x1a316b(0xe9f)](_0x1a316b(0x28f1));_0x41d86a[_0x1a316b(0x20d0)](_0x1a316b(0x4da9),function(){const _0x1367f1=_0x1a316b;navigator[_0x1367f1(0x2abf)]['writeText'](_0x2ba05c[_0x1367f1(0x38cb)])[_0x1367f1(0x452b)](()=>{const _0x3093b0=_0x1367f1;_0x26f7f9(_0xb958fc,_0x3093b0(0x3ab6),'success');})[_0x1367f1(0x424a)](_0x4b64a5=>{});}),_0x1931de['addEventListener'](_0x1a316b(0x4da9),function(){const _0x491156=_0x1a316b,_0x4602c4=_0x2ba05c['textContent'],_0x43ca0e=new Blob([_0x4602c4],{'type':_0x491156(0x3be7)}),_0x93f30d=URL['createObjectURL'](_0x43ca0e),_0x447f03=document[_0x491156(0x23d7)]('a');_0x447f03[_0x491156(0x354f)]=_0x93f30d,_0x447f03[_0x491156(0x292a)]=_0x491156(0x2cf3),document[_0x491156(0x3673)][_0x491156(0x1952)](_0x447f03),_0x447f03['click'](),document[_0x491156(0x3673)]['removeChild'](_0x447f03),URL[_0x491156(0x2236)](_0x93f30d);}),_0x4af177['addEventListener']('click',function(){const _0x36e92e=_0x1a316b,_0x4d2756=_0x36e92e(0x4c85)+encodeURIComponent(_0x36e92e(0x2d64))+_0x36e92e(0x2408)+encodeURIComponent(_0x2ba05c['textContent']);window[_0x36e92e(0x94a)][_0x36e92e(0x354f)]=_0x4d2756;});}(_0x2023af,_0x11fa06);}let _0xc3febe,_0x243ecc,_0x55d2b2,_0x2f048a,_0x337a9d,_0x59f223=!0x1,_0x3befe7=!0x1,_0x4efdc3='';function _0x31f41c(_0x3a1e53){const _0x56643f=_0x235866;let _0x28b03d=function(){const _0x574fac=a0_0x329b,_0x31e078=document[_0x574fac(0x44dc)]('p'),_0x9b25c9=Array[_0x574fac(0xc81)](_0x31e078)[_0x574fac(0x2c94)](_0x8c8855=>_0x8c8855[_0x574fac(0x38cb)]['trim']());return _0x9b25c9;}()['join']('\x20');void 0x0!==_0x28b03d&&0x0!==_0x28b03d[_0x56643f(0x205b)]||(_0x28b03d=_0x3d5224()),_0x337a9d=function(_0x315c4b){const _0x112f41=_0x56643f;let _0x41f516=_0x1c715f(_0x315c4b),_0x270dbb=[];return _0x41f516[_0x112f41(0xb8c)]()['forEach'](_0x1749db=>{const _0x2362f8=_0x112f41;let _0x4cc723=0x0,_0xfa3382=_0x1749db[_0x2362f8(0x2f35)]();_0x1749db[_0x2362f8(0xdc0)](_0x2362f8(0x1833))['found']&&(_0x4cc723+=0x2),_0x1749db[_0x2362f8(0x436d)]()[_0x2362f8(0x622)]&&(_0x4cc723+=0x1),_0xfa3382[_0x2362f8(0x29d0)]('\x20')[_0x2362f8(0x205b)]>0xc&&(_0x4cc723+=0x1),_0x4cc723>0x0&&_0x270dbb[_0x2362f8(0x4131)]({'sentence':_0xfa3382,'score':_0x4cc723});}),_0x270dbb[_0x112f41(0x509)]((_0x423d20,_0x595b72)=>_0x595b72[_0x112f41(0x1198)]-_0x423d20[_0x112f41(0x1198)]),_0x270dbb[_0x112f41(0x428e)](0x0,0x3)[_0x112f41(0x2c94)](_0x57e87b=>_0x57e87b[_0x112f41(0x3cfb)])[_0x112f41(0x379c)]('\x20');}(_0x28b03d),_0x55d2b2=_0x3a1e53,_0xc3febe=_0x3a1e53[_0x56643f(0x3f98)]('text-selection-menu');const _0x357877=_0x3a1e53[_0x56643f(0x3f98)]('user-input');function _0x36f1a7(_0x306bc9,_0x54dd0e){const _0x34c94a=_0x56643f,_0x41731d=_0x54dd0e[_0x34c94a(0xe9f)]('#explain-btn');_0x306bc9?(_0x41731d[_0x34c94a(0x318e)]['remove']('pointer-events-none','opacity-50'),_0x41731d[_0x34c94a(0x882)]=!0x1):(_0x41731d['classList'][_0x34c94a(0x2fd8)](_0x34c94a(0x4ad3),'opacity-50'),_0x41731d['disabled']=!0x0);}document[_0x56643f(0x20d0)](_0x56643f(0x1747),async _0x3206a2=>{const _0x1baa7d=_0x56643f,_0x4cb8c2=await window[_0x1baa7d(0x2aa1)](),_0x3306ce=_0x3206a2[_0x1baa7d(0x1146)]()['includes'](_0xc3febe);_0x2f048a=function(_0x40b03d,_0x1e11ca){const _0x53611f=_0x1baa7d;if(_0x40b03d[_0x53611f(0x44de)]()[_0x53611f(0x205b)]>0x0){var _0x56deae=document[_0x53611f(0x20c0)](_0x1e11ca[_0x53611f(0x20f)],_0x1e11ca[_0x53611f(0x87c)])['closest'](_0x53611f(0x4ba));if(_0x56deae)_0x2f048a=''+window['location'][_0x53611f(0x39a6)]+window[_0x53611f(0x94a)]['pathname']+'#'+_0x56deae['id'];else{const _0xeb1ec2=_0x1e11ca[_0x53611f(0x2ab2)],_0x29881b=_0x1e11ca[_0x53611f(0x2f8f)];_0x2f048a=window[_0x53611f(0x94a)][_0x53611f(0x354f)]['split']('?')[0x0]+_0x53611f(0x586)+_0xeb1ec2+'&y='+_0x29881b;}}return _0x2f048a;}(_0x4cb8c2,_0x3206a2),_0x1a081e(),_0x243ecc=_0x4cb8c2['toString']()[_0x1baa7d(0x1d0e)](),_0x243ecc['length']>0x0&&!_0x59f223?(_0x3befe7=!0x0,_0x36f1a7(!0x0,_0x55d2b2),setTimeout(()=>{_0x3befe7=!0x1;},0x14),_0x59f223=!0x0):_0x243ecc[_0x1baa7d(0x205b)]>0x0&&_0x59f223&&_0x4efdc3!==_0x243ecc&&!_0x3306ce?_0x36f1a7(!0x0,_0x55d2b2):0x0===_0x243ecc[_0x1baa7d(0x205b)]&&_0x36f1a7(!0x1,_0x55d2b2),_0x4efdc3=_0x243ecc;}),document[_0x56643f(0x20d0)]('click',_0x1555f0=>{const _0x28c44e=_0x56643f,_0x11cd65=_0x1555f0[_0x28c44e(0x1146)](),_0x447215=window[_0x28c44e(0x2aa1)]()['toString']()[_0x28c44e(0x1d0e)]();if(!_0x3befe7&&_0x59f223){const _0x306b54=_0x11cd65[_0x28c44e(0x1fa2)](_0xc3febe);_0x306b54||0x0!==_0x447215[_0x28c44e(0x205b)]?_0x306b54?_0x36f1a7(!0x1,_0x55d2b2):_0x447215!==_0x243ecc&&_0x447215['length']>0x0&&(_0x243ecc=_0x447215,_0x1a081e(window[_0x28c44e(0x2aa1)]()),_0x36f1a7(!0x0,_0x55d2b2)):(_0x59f223=!0x1,document[_0x28c44e(0x44dc)](_0x28c44e(0x1142))[_0x28c44e(0x4854)](_0x3d6966=>_0x3d6966[_0x28c44e(0x80a)]()),_0x36f1a7(!0x1,_0x55d2b2));}});const _0x41a28d=_0x3a1e53['getElementById'](_0x56643f(0x2eb4)),_0x56b2dc=_0x3a1e53[_0x56643f(0x3f98)]('quiz-btn'),_0x2b4a98=_0x3a1e53[_0x56643f(0x3f98)](_0x56643f(0x175c)),_0x31fad7=_0x3a1e53[_0x56643f(0x3f98)](_0x56643f(0x1373)),_0x27e6a3=_0x3a1e53['getElementById'](_0x56643f(0x2297)),_0x489422=_0x3a1e53[_0x56643f(0x3f98)](_0x56643f(0x37dd)),_0x17b321=_0x3a1e53['getElementById'](_0x56643f(0x283)),_0x2fa9ef=_0x3a1e53[_0x56643f(0x3f98)](_0x56643f(0x346c));function _0x587696(_0x37f0af,_0x19c0e8){const _0x3de237=_0x56643f,_0x5c9d21=new CustomEvent(_0x3de237(0x42fa),{'detail':{'text':_0x37f0af,'type':_0x3de237(0x2373),'links':_0x19c0e8}});window[_0x3de237(0x3ad1)](_0x5c9d21);}_0x27e6a3[_0x56643f(0x20d0)](_0x56643f(0x4da9),function(){const _0x167c24=_0x56643f;_0x587696(_0x167c24(0x3dbc)+_0x337a9d,[window[_0x167c24(0x94a)][_0x167c24(0x354f)]]);}),_0x2fa9ef['addEventListener']('click',function(){const _0x5125f0=_0x56643f;_0x587696('You\x20are\x20a\x20creative\x20master\x20mindfulness\x20coach.\x20Share\x20a\x20simple\x201\x20minute\x20non-generic\x20mindfulness\x20practice\x20to\x20help\x20someone\x20rejuvenate.',[window[_0x5125f0(0x94a)][_0x5125f0(0x354f)]]);}),_0x489422['addEventListener'](_0x56643f(0x4da9),async function(){const _0x24b78d=_0x56643f;!function(_0x2cdd45,_0xfbde59){const _0x23d2b7=a0_0x329b,_0x305ec0=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x2cdd45,'type':_0x23d2b7(0x5a4),'links':_0xfbde59}});window['dispatchEvent'](_0x305ec0);}(_0x337a9d,[window[_0x24b78d(0x94a)][_0x24b78d(0x354f)]]);}),_0x17b321['addEventListener'](_0x56643f(0x4da9),function(){const _0x83442f=_0x56643f;_0x587696(_0x83442f(0x203a)+_0x337a9d,[window['location']['href']]);}),_0x2b4a98[_0x56643f(0x20d0)](_0x56643f(0x4da9),function(){_0x3ad1f8(_0x55d2b2),_0x51496e(_0x55d2b2);}),_0x357877[_0x56643f(0x20d0)]('keydown',_0x55ebed=>{const _0x22ae11=_0x56643f,_0x1ddeb0=_0x357877[_0x22ae11(0x1827)];_0x22ae11(0x50be)!==_0x55ebed[_0x22ae11(0x435)]||_0x55ebed[_0x22ae11(0x4b82)]||_0x55ebed[_0x22ae11(0xd14)]||(_0x55ebed[_0x22ae11(0x4eda)](),function(_0x2e9af9,_0x5390f5,_0x45665e){const _0x4685f0=new CustomEvent(_0x5390f5,{'detail':{'text':_0x2e9af9,'type':_0x45665e}});window['dispatchEvent'](_0x4685f0);}(_0x1ddeb0,_0x22ae11(0x42fa),_0x22ae11(0x9a2)),_0x357877[_0x22ae11(0x1827)]='');}),_0x31fad7[_0x56643f(0x20d0)]('click',_0x2de67a=>{!function(_0x2a6cb3){const _0x205881=a0_0x329b,_0x1b91f8=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x2a6cb3,'type':_0x205881(0x2a75),'links':[_0x2f048a]}});window['dispatchEvent'](_0x1b91f8);}(_0x243ecc);}),_0x41a28d[_0x56643f(0x20d0)](_0x56643f(0x4da9),_0x42a872=>{const _0x51d180=_0x56643f;_0x42a872[_0x51d180(0x531)]();const _0x5b79ce=_0x357877[_0x51d180(0x1827)];_0x357877['value']='';const _0x2edd0c=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x5b79ce,'type':_0x51d180(0x9a2)}});window[_0x51d180(0x3ad1)](_0x2edd0c);},{'capture':!0x0}),_0x56b2dc[_0x56643f(0x20d0)](_0x56643f(0x4da9),_0x33927f=>{const _0x1bfd5a=_0x56643f;_0x33927f[_0x1bfd5a(0x531)](),_0x243ecc||(_0x243ecc=_0x337a9d);const _0x35b0c1=new CustomEvent(_0x1bfd5a(0x42fa),{'detail':{'text':_0x243ecc,'type':_0x1bfd5a(0x1e04)}});window[_0x1bfd5a(0x3ad1)](_0x35b0c1);});}function _0x291eba(_0x3eef17){const _0x40cb6d=_0x235866,_0x193e5d=_0x3eef17[_0x40cb6d(0xe9f)]('#markdown-preview');return _0x193e5d[_0x40cb6d(0x22eb)]=_0x3e2e97,_0x193e5d;}const _0x200754='https://tinymlbackend3.azurewebsites.net/',_0x151414=[_0x235866(0x4893),_0x235866(0x13d2),_0x235866(0x4500),_0x235866(0x4a24),_0x235866(0x41ce)],_0x5708f9=['Retrieving\x20relevant\x20context\x20from\x20website','Calling\x20LLM\x20model',_0x235866(0x41ce)],_0x18902f=[_0x235866(0x4500),_0x235866(0x4331),_0x235866(0x4a24),_0x235866(0x41ce)],_0x12d0da=[_0x235866(0x3e6f),_0x235866(0x1dd7),'Calling\x20LLM\x20model',_0x235866(0x41ce)],_0x14a33c=[_0x235866(0x1652),'Generating\x20possible\x20questions',_0x235866(0x4a24),_0x235866(0x41ce)];let _0x222211=_0x235866(0x3ff7);const _0x249c7b={'prompt':'Explain\x20the\x20following\x20quote\x20to\x20a\x20beginner,\x20including\x20any\x20necessary\x20background\x20knowledge,\x20in\x20markdown\x20format.\x20Do\x20not\x20repeat\x20the\x20quote\x20or\x20add\x20commentary.\x20For\x20important\x20keywords\x20or\x20phrases\x20in\x20your\x20response\x20that\x20also\x20have\x20wikipedia\x20pages,\x20you\x20must\x20surround\x20them\x20with\x20double\x20slashes.\x20For\x20example\x20\x27\x5cmachine\x20learning\x5c\x27.\x20Each\x20response\x20MUST\x20have\x20at\x20least\x20two\x20keywords\x20or\x20phrases.\x20At\x20the\x20end\x20of\x20your\x20response,\x20place\x20\x27%%%\x27\x203\x20percent\x20signs,\x20and\x20then\x20write\x202\x20to\x203\x20followup\x20questions\x20that\x20the\x20user\x20might\x20ask\x20to\x20expand\x20their\x20knowledge.','quote':'','comments':'','background_knowledge':'','power_up':0x14,'understanding':0x3},_0x2fbe57={'prompt':'\x0aCreate\x20a\x20quiz\x20from\x20a\x20QUOTE,\x20guided\x20by\x20the\x20user\x27s\x20understanding\x20level\x20(1-10).\x20The\x20quiz\x20should\x20have\x203\x20questions\x20in\x20JSON\x20format:\x0a-\x20Q1\x20&\x20Q2:\x20Directly\x20related\x20to\x20the\x20quote\x27s\x20content.\x0a-\x20Q3:\x20Requires\x20deeper\x20inference.\x0a\x0aUse\x20this\x20JSON\x20template,\x20modifying\x20it\x20as\x20needed:\x0a\x0a{\x0a\x20\x20\x22questions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22question\x22:\x20\x22Q1\x20here?\x22,\x0a\x20\x20\x20\x20\x20\x20\x22answers\x22:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x22text\x22:\x20\x22A1\x22,\x20\x22correct\x22:\x20true/false,\x20\x22explanation\x22:\x20\x22explanation\x22},\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x22text\x22:\x20\x22A2\x22,\x20\x22correct\x22:\x20false,\x20\x22explanation\x22:\x20\x22explanation\x22},\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x22text\x22:\x20\x22A3\x22,\x20\x22correct\x22:\x20false,\x20\x22explanation\x22:\x20\x22explanation\x22},\x0a\x20\x20\x20\x20\x20\x20]\x0a\x20\x20\x20\x20},\x0a\x20\x20\x20\x20{\x22question\x22:\x20\x22Q2\x20here?\x22,\x20\x22answers\x22:\x20[/*\x20options\x20*/]},\x0a\x20\x20\x20\x20{\x22question\x22:\x20\x22Q3\x20here?\x22,\x20\x22answers\x22:\x20[/*\x20options\x20*/]}\x0a\x20\x20]\x0a}\x0a\x0a\x0aAdjust\x20content\x20for\x20quote,\x20understanding\x20level,\x20questions,\x20and\x20answers.\x0aQUOTE:\x20','quote':'','comments':'','power_up':0x14,'understanding':0x3},_0x515980={'prompt':_0x235866(0x2ee1),'conversation_history':'','question':'','query':'','quote':'','background_knowledge':'','comments':'','power_up':0x14,'understanding':0x3};function _0x48e45e(_0x37b51a=_0x235866(0x2a75)){const _0x4792dd=_0x235866;let _0x45e381,_0x305578;if(_0x4792dd(0x2a75)===_0x37b51a)_0x45e381={..._0x249c7b};else{if(_0x4792dd(0x1e04)===_0x37b51a)_0x45e381={..._0x2fbe57};else{if(_0x4792dd(0x9a2)!==_0x37b51a)throw new Error(_0x4792dd(0x4346)+_0x37b51a);_0x45e381={..._0x515980};}}return _0x305578={..._0x45e381},{'set_field':function(_0x15335e,_0x159d3d){const _0x28f1e6=_0x4792dd;if(!_0x305578[_0x28f1e6(0x32b5)](_0x15335e))throw new Error(_0x28f1e6(0xabd)+_0x15335e+_0x28f1e6(0x2ae9));_0x305578[_0x15335e]=_0x159d3d;},'get_field':function(_0x93aef9){const _0x502ba9=_0x4792dd;if(_0x305578[_0x502ba9(0x32b5)](_0x93aef9))return _0x305578[_0x93aef9];throw new Error(_0x502ba9(0xabd)+_0x93aef9+_0x502ba9(0x2ae9));},'make_field':function(_0x3b653f,_0x31c69b){const _0x263bed=_0x4792dd;_0x305578['hasOwnProperty'](_0x3b653f)?this[_0x263bed(0x2329)](_0x3b653f,_0x31c69b):_0x305578[_0x3b653f]=_0x31c69b;},'return_all_fields':function(){return _0x305578;},'reset_fields':function(){_0x305578={..._0x45e381};}};}const _0x40f490=_0x200754+_0x235866(0x1e94),_0x72c272=_0x200754+_0x235866(0x538),_0x2b8fb7=_0x200754+'api/query_agent_stream_powerful',_0x5300aa=_0x200754+'api/query_agent_conversational_memory';async function*_0x6b503a(_0x1f673f,_0x4b4c71,_0x4a0a23=!0x1,_0x5191ad=!0x1){const _0x2a6f72=_0x235866;let _0x1d4527=_0x40f490;try{_0x4a0a23&&(_0x1d4527=_0x2b8fb7),_0x5191ad&&(_0x1d4527=_0x5300aa);const _0x4e81c1=await fetch(_0x1d4527,{'method':_0x2a6f72(0x4827),'headers':{'Authorization':'Bearer\x20'+_0x4b4c71,'Content-Type':_0x2a6f72(0x198d)},'body':JSON[_0x2a6f72(0xf0b)](_0x1f673f)});if(!_0x4e81c1['ok'])throw new Error(_0x2a6f72(0x2e25)+_0x4e81c1[_0x2a6f72(0x33de)]+_0x2a6f72(0xfaf)+_0x4e81c1);const _0x30f18b=_0x4e81c1['body'][_0x2a6f72(0x37b)](),_0x46ff04=new TextDecoder(_0x2a6f72(0x11dc));for(;;){const {done:_0xe1c3d4,value:_0x467a70}=await _0x30f18b['read']();if(_0xe1c3d4)break;let _0x1e8977=_0x46ff04['decode'](_0x467a70,{'stream':!0x0});yield _0x1e8977;}}catch(_0x4a96d8){}}const _0x15f457=_0x200754+'api/query-lance_azure';async function _0x27be53(_0x15280d,_0x192f9a){const _0x300fa6=_0x235866;try{const _0x5b4e9f=await fetch(_0x15f457,{'method':_0x300fa6(0x4827),'headers':{'Content-Type':_0x300fa6(0x198d),'Authorization':_0x300fa6(0x2485)+_0x192f9a},'body':JSON['stringify']({'text':_0x15280d})});if(!_0x5b4e9f['ok'])throw new Error('HTTP\x20error!\x20status:\x20'+_0x5b4e9f[_0x300fa6(0x33de)]);return await _0x5b4e9f[_0x300fa6(0x25b9)]();}catch(_0x1a04a0){}}function _0x457895(_0x35ae4c,_0x16e538){const _0x2b87e3=_0x235866,_0x38042a=_0x35ae4c['querySelector'](_0x2b87e3(0x1d61));_0x35ae4c[_0x2b87e3(0xe9f)](_0x2b87e3(0x7bb))[_0x2b87e3(0x20d0)](_0x2b87e3(0x4da9),_0x3ffc42=>{const _0x320ef7=_0x2b87e3;_0x3ffc42[_0x320ef7(0x4eda)]();const _0x57111e=_0x38042a[_0x320ef7(0x44dc)](_0x320ef7(0x3d9c)),_0x54cc0e=_0x38042a[_0x320ef7(0x44dc)](_0x320ef7(0x50c2));let _0x1cb5ab=0x0;_0x57111e[_0x320ef7(0x4854)](_0x3ef165=>{const _0x1b3b40=_0x320ef7,_0x28415c=_0x1b3b40(0x23f6)===_0x3ef165['dataset'][_0x1b3b40(0x17e3)],_0x1d7d75=_0x3ef165['parentElement'];_0x28415c?(_0x1cb5ab++,_0x1d7d75['classList'][_0x1b3b40(0x2fd8)](_0x1b3b40(0x184c))):_0x1d7d75['classList'][_0x1b3b40(0x2fd8)](_0x1b3b40(0x3db4));}),_0x54cc0e['forEach'](_0x2302bb=>{const _0x4dc037=_0x320ef7;_0x2302bb[_0x4dc037(0x318e)]['remove'](_0x4dc037(0x17f8));});const _0x3b39f5=_0x320ef7(0x19ab)+_0x1cb5ab+_0x320ef7(0x4e49)+_0x16e538[_0x320ef7(0x205b)]+'\x20questions\x20correct.';_0x35ae4c['querySelector']('#result')[_0x320ef7(0x38cb)]=_0x3b39f5;}),function(_0x10b1cc){const _0x98bb15=_0x2b87e3;_0x38042a[_0x98bb15(0x22eb)]='',_0x10b1cc[_0x98bb15(0x4854)]((_0x53aec7,_0x32d52c)=>{const _0x46e225=_0x98bb15,_0x2410ea=document[_0x46e225(0x23d7)](_0x46e225(0x257d));_0x2410ea[_0x46e225(0x318e)][_0x46e225(0x2fd8)]('mb-8');const _0x35f52b=document[_0x46e225(0x23d7)]('h4');_0x35f52b[_0x46e225(0x318e)][_0x46e225(0x2fd8)](_0x46e225(0x15df),_0x46e225(0x46ab),_0x46e225(0x1b91)),_0x35f52b[_0x46e225(0x38cb)]=_0x53aec7[_0x46e225(0xaeb)],_0x2410ea[_0x46e225(0x1952)](_0x35f52b);const _0xc20446=document[_0x46e225(0x23d7)]('ul');_0xc20446['classList'][_0x46e225(0x2fd8)](_0x46e225(0x3a45),_0x46e225(0x388e)),_0x53aec7['answers'][_0x46e225(0x4854)]((_0x8524cd,_0x4c4e76)=>{const _0x5bece0=_0x46e225,_0x258f0f=document['createElement']('li'),_0x12ca93=document['createElement'](_0x5bece0(0x257d));_0x12ca93['classList'][_0x5bece0(0x2fd8)]('answer-option',_0x5bece0(0x3ac9),'items-center');const _0x393b83=document[_0x5bece0(0x23d7)](_0x5bece0(0xe2d));_0x393b83[_0x5bece0(0x70a)]='radio';const _0x2ed265=new Date()['getTime']()+'-'+Math['random']()[_0x5bece0(0x44de)](0x24)[_0x5bece0(0x3934)](0x2,0xf);_0x393b83['id']=_0x2ed265,_0x393b83[_0x5bece0(0x3d9d)]=_0x5bece0(0xaeb)+_0x32d52c,_0x393b83[_0x5bece0(0x1827)]=_0x4c4e76,_0x393b83[_0x5bece0(0x318e)][_0x5bece0(0x2fd8)](_0x5bece0(0x751)),_0x393b83['dataset'][_0x5bece0(0x17e3)]=_0x8524cd[_0x5bece0(0x17e3)];const _0x1ef799=document[_0x5bece0(0x23d7)](_0x5bece0(0x22d5));_0x1ef799[_0x5bece0(0x3684)]=_0x2ed265,_0x1ef799[_0x5bece0(0x38cb)]=_0x8524cd[_0x5bece0(0x2f35)],_0x1ef799[_0x5bece0(0x318e)]['add']('flex-1');const _0x4284d4=document['createElement'](_0x5bece0(0x257d));if(_0x4284d4[_0x5bece0(0x318e)][_0x5bece0(0x2fd8)](_0x5bece0(0x40d6),'hidden'),_0x8524cd[_0x5bece0(0x17e3)]){_0x4284d4['classList'][_0x5bece0(0x2fd8)](_0x5bece0(0x564),_0x5bece0(0x1c29),_0x5bece0(0x9a6),'border-2','border-green-500',_0x5bece0(0x3695));const _0x292840=document[_0x5bece0(0x23d7)](_0x5bece0(0x257d));_0x292840['classList']['add'](_0x5bece0(0x21e9),'-top-3',_0x5bece0(0x19bc),_0x5bece0(0x9a6),_0x5bece0(0x4123),_0x5bece0(0x35aa),_0x5bece0(0x15c3),_0x5bece0(0xf72),_0x5bece0(0x3898),'text-green-500'),_0x292840[_0x5bece0(0x38cb)]=_0x5bece0(0x27a),_0x4284d4[_0x5bece0(0x1952)](_0x292840);}const _0x49ff5f=document[_0x5bece0(0x23d7)]('p');_0x49ff5f[_0x5bece0(0x38cb)]=_0x8524cd['explanation'],_0x49ff5f[_0x5bece0(0x318e)]['add']('explanation',_0x5bece0(0x23fd),_0x5bece0(0x187e)),_0x4284d4[_0x5bece0(0x1952)](_0x49ff5f),_0x12ca93['appendChild'](_0x393b83),_0x12ca93[_0x5bece0(0x1952)](_0x1ef799),_0x258f0f['append'](_0x12ca93),_0x258f0f['appendChild'](_0x4284d4),_0xc20446[_0x5bece0(0x1952)](_0x258f0f);}),_0x2410ea[_0x46e225(0x1952)](_0xc20446),_0x38042a['appendChild'](_0x2410ea);});}(_0x16e538);}class _0x1cf4a6{constructor(_0x4edecb){const _0x208c20=_0x235866;this[_0x208c20(0x1b88)]=_0x4edecb,this['shadowEle']=_0x4edecb['querySelector'](_0x208c20(0x3a70)),this[_0x208c20(0x128c)]={'sliderValue':0x1,'selectedDropdownValue':'','checkboxes':{},'modalDisplayed':!0x1},this[_0x208c20(0x38dd)]();}[_0x235866(0x243)](){const _0x2d64e5=_0x235866,_0x4232bb=this['shadowEle'][_0x2d64e5(0xe9f)](_0x2d64e5(0x1a46));_0x4232bb&&(_0x4232bb[_0x2d64e5(0x20d0)](_0x2d64e5(0xe2d),_0x4d1d5d=>{const _0x242312=_0x2d64e5;this[_0x242312(0x467c)](_0x4d1d5d['target'][_0x242312(0x1827)]);}),this['updateSlider'](_0x4232bb['value']));const _0x1b1c2f=this['shadowEle'][_0x2d64e5(0xe9f)](_0x2d64e5(0x1840));_0x1b1c2f&&(_0x1b1c2f[_0x2d64e5(0x20d0)](_0x2d64e5(0x2f77),_0x572ce3=>{const _0x2256dd=_0x2d64e5;this[_0x2256dd(0x2111)](_0x572ce3[_0x2256dd(0x1245)][_0x2256dd(0x1827)]);}),this[_0x2d64e5(0x2111)](_0x1b1c2f[_0x2d64e5(0x1827)])),this[_0x2d64e5(0x38e7)][_0x2d64e5(0x44dc)](_0x2d64e5(0x32d8))[_0x2d64e5(0x4854)](_0x1c1159=>{const _0x5a9cdb=_0x2d64e5;_0x1c1159['addEventListener'](_0x5a9cdb(0x2f77),_0x98c312=>{const _0x3cb693=_0x5a9cdb;this[_0x3cb693(0x4801)](_0x1c1159['id'],_0x98c312[_0x3cb693(0x1245)][_0x3cb693(0x3527)]);}),this[_0x5a9cdb(0x4801)](_0x1c1159['id'],_0x1c1159[_0x5a9cdb(0x3527)]);});const _0x7ba132=this[_0x2d64e5(0x38e7)][_0x2d64e5(0xe9f)]('#Enable-highlight-menu'),_0x4dcba9=this[_0x2d64e5(0x1b88)][_0x2d64e5(0xe9f)]('#hidden-menu-start-body');_0x7ba132&&_0x7ba132[_0x2d64e5(0x20d0)]('change',_0x174d5b=>{const _0x11d6f1=_0x2d64e5;_0x174d5b[_0x11d6f1(0x1245)][_0x11d6f1(0x3527)]?_0x4dcba9[_0x11d6f1(0x318e)][_0x11d6f1(0x80a)](_0x11d6f1(0x17f8)):_0x4dcba9[_0x11d6f1(0x318e)][_0x11d6f1(0x2fd8)](_0x11d6f1(0x17f8));}),this['dispatchAndUpdate'](_0x2d64e5(0x243),!0x0),this['dispatchAndUpdate_settings'](_0x2d64e5(0x243),!0x0);}[_0x235866(0x4a53)](_0x5ddeae){const _0x53f744=_0x235866,_0x3ac745=new CustomEvent(_0x53f744(0x4a4d),{'detail':{'enabled':_0x5ddeae}});window['dispatchEvent'](_0x3ac745);}['dispatchAndUpdate'](_0x479235,_0x17fac4){const _0x914808=_0x235866,_0x5c341f=new CustomEvent(_0x914808(0x42fa),{'detail':{'type':_0x914808(0x3ac0),'text':this[_0x914808(0x268c)]()}});window[_0x914808(0x3ad1)](_0x5c341f),'init'!==_0x479235&&_0x26f7f9(this['shadowEle'],_0x914808(0x9d3)+_0x479235+_0x914808(0xe9e)+_0x17fac4+_0x914808(0x4304),_0x914808(0x3d14));}['dispatchAndUpdate_settings'](_0x294819,_0x34d1b0){const _0x4ea1d6=_0x235866,_0x2ab0a9=new CustomEvent(_0x4ea1d6(0x42fa),{'detail':{'settings':this['generateSettings'](),'type':_0x4ea1d6(0x128c)}});window[_0x4ea1d6(0x3ad1)](_0x2ab0a9),_0x4ea1d6(0x243)!==_0x294819&&_0x26f7f9(this[_0x4ea1d6(0x38e7)],_0x4ea1d6(0x5dc)+_0x294819+_0x4ea1d6(0xe9e)+_0x34d1b0+_0x4ea1d6(0x4304),_0x4ea1d6(0x3d14));}[_0x235866(0x467c)](_0x5cd318){const _0x2d83bc=_0x235866;this[_0x2d83bc(0x128c)]['sliderValue']=parseInt(_0x5cd318,0xa),this[_0x2d83bc(0x1228)](),this['dispatchAndUpdate'](_0x2d83bc(0x178b),this['settings'][_0x2d83bc(0x178b)]);}[_0x235866(0x2111)](_0x38468b){const _0x4a75fa=_0x235866;this['settings'][_0x4a75fa(0x293b)]=_0x38468b,this['saveSettings'](),this[_0x4a75fa(0x242a)]('selectedDropdownValue',this[_0x4a75fa(0x128c)][_0x4a75fa(0x293b)]);}[_0x235866(0x4801)](_0x3dc23d,_0x148504){const _0x3753b8=_0x235866;this['settings'][_0x3753b8(0x4860)][_0x3dc23d]=_0x148504,this[_0x3753b8(0x1228)](),_0x3753b8(0x341e)===_0x3dc23d?this[_0x3753b8(0x4b28)](_0x3dc23d,_0x148504):this[_0x3753b8(0x242a)](_0x3dc23d,_0x148504);}[_0x235866(0x268c)](){const _0x2c5285=_0x235866;return _0x2c5285(0x33ac)+([_0x2c5285(0x5bc),_0x2c5285(0x482e),'expert\x20understanding',_0x2c5285(0x605)][this[_0x2c5285(0x128c)][_0x2c5285(0x178b)]]||_0x2c5285(0x1a36))+'.\x20'+(this['settings'][_0x2c5285(0x4860)][_0x2c5285(0x341e)]?'':_0x2c5285(0x36ed));}[_0x235866(0x1430)](){const _0x5b9295=_0x235866;return{'llm_model':this[_0x5b9295(0x128c)]['selectedDropdownValue'],'show_progress':this['settings']['checkboxes'][_0x5b9295(0x39f3)]};}['saveSettings'](){const _0x151ee2=_0x235866;localStorage[_0x151ee2(0x3acc)](_0x151ee2(0x3a0c),JSON[_0x151ee2(0xf0b)](this[_0x151ee2(0x128c)]));}[_0x235866(0x38dd)](){const _0x48d2bb=_0x235866,_0x17c175=localStorage[_0x48d2bb(0x22a5)]('userSettings');_0x17c175&&(this[_0x48d2bb(0x128c)]=JSON[_0x48d2bb(0x1b07)](_0x17c175));}}const _0x2e724d=_0x235866(0x183e);function _0x41ce66(_0x51c228=_0x235866(0xc22),_0x12f8e2=_0x235866(0x34aa)){return new Promise((_0x361b86,_0x49c3e2)=>{const _0x422f3d=a0_0x329b,_0x261da4=indexedDB['open'](_0x51c228,0x1);_0x261da4[_0x422f3d(0x1075)]=function(_0x52d38c){const _0x13abbe=_0x422f3d;_0x49c3e2(_0x13abbe(0x470)+_0x52d38c[_0x13abbe(0x1245)]['errorCode']);},_0x261da4[_0x422f3d(0x609)]=function(_0x2e596c){const _0x395ab1=_0x422f3d;_0x361b86(_0x2e596c['target'][_0x395ab1(0x209a)]);},_0x261da4[_0x422f3d(0x2a27)]=function(_0x5832e8){const _0x387352=_0x422f3d;_0x5832e8[_0x387352(0x1245)]['result'][_0x387352(0x3e13)](_0x12f8e2,{'keyPath':'id'});};});}function _0x2e5625(_0x518bbd){const _0x373ad6=_0x235866;return _0x518bbd[_0x373ad6(0x1db7)](/[^a-zA-Z\s]/g,'');}async function _0x1be239(_0x59d55d){const _0x2cf3ba=_0x235866,_0x5b6826=_0x59d55d[_0x2cf3ba(0x3f98)]('message-container'),_0x92f7c5=_0x5b6826[_0x2cf3ba(0x22eb)];let _0x4f5315=function(_0x1d7962){const _0x186324=_0x2cf3ba;let _0x52c453='';const _0x512156=document[_0x186324(0x325c)](_0x1d7962,NodeFilter[_0x186324(0x2a79)],{'acceptNode':function(_0x7a63ce){const _0x40f62a=_0x186324;return _0x7a63ce[_0x40f62a(0x19bf)]['tagName'][_0x40f62a(0xdc0)](/SCRIPT|STYLE/i)||''===_0x7a63ce[_0x40f62a(0x4cd0)]['trim']()?NodeFilter[_0x40f62a(0x2a45)]:NodeFilter['FILTER_ACCEPT'];}},!0x1);let _0x317aa1;for(;_0x317aa1=_0x512156[_0x186324(0x330b)]();)_0x52c453+=_0x317aa1[_0x186324(0x38cb)]+'\x20';return _0x52c453[_0x186324(0x1d0e)]();}(_0x5b6826),_0x565da9=_0x2c4c04(_0x4f5315);if(_0x565da9=_0x565da9[_0x2cf3ba(0x205b)]>0x3?[..._0x565da9][_0x2cf3ba(0x509)](()=>0.5-Math[_0x2cf3ba(0x4a2c)]())['slice'](0x0,0x3)[_0x2cf3ba(0x379c)]('-'):_0x565da9[_0x2cf3ba(0x379c)]('-'),0x0===_0x565da9[_0x2cf3ba(0x205b)])return new Date()[_0x2cf3ba(0x44de)]();try{const _0x2f544d=await async function(_0x169764,_0x57922e,_0x54eb91=_0x2cf3ba(0x34aa)){const _0x5979e7=_0x2cf3ba,_0x29aaf9=(await _0x41ce66())[_0x5979e7(0x4ffd)]([_0x54eb91],'readwrite')[_0x5979e7(0x2a82)](_0x54eb91),_0x1fcef0=_0x29aaf9[_0x5979e7(0x4d47)](),_0x4ee545=await new Promise((_0x3984fd,_0x23cf2c)=>{const _0x1cb357=_0x5979e7;_0x1fcef0['onsuccess']=()=>{const _0x7f03de=a0_0x329b;_0x3984fd(_0x1fcef0[_0x7f03de(0x209a)]+0x1);},_0x1fcef0[_0x1cb357(0x1075)]=_0x7f033d=>{const _0x191fa5=_0x1cb357;_0x23cf2c(_0x191fa5(0x4d13)+_0x7f033d['target'][_0x191fa5(0x1776)]);};});return new Promise((_0x49124f,_0x5e0bc5)=>{const _0x4e0417=_0x5979e7,_0x2b274e=_0x29aaf9[_0x4e0417(0x1b1a)]({'id':_0x4ee545,'title':_0x169764,'html_content':_0x57922e});_0x2b274e[_0x4e0417(0x609)]=()=>_0x49124f({'success':!0x0,'id':_0x4ee545}),_0x2b274e[_0x4e0417(0x1075)]=_0x4f424a=>_0x5e0bc5(_0x4e0417(0x39be)+_0x4f424a[_0x4e0417(0x1245)][_0x4e0417(0x1776)]);});}(_0x565da9,_0x92f7c5);return _0x2f544d['id'];}catch(_0x19b35f){return null;}}async function _0x50193f(_0xefe4c2,_0x2626d8,_0x100615=_0x235866(0xc22),_0x5ab4e7=_0x235866(0x34aa)){const _0x57894d=_0x235866;(async function(_0x31461f='tinyMLDB',_0x11bcdf=_0x57894d(0x34aa),_0x375a3d){const _0x27d223=_0x57894d,_0x2a3024=(await _0x41ce66(_0x31461f))['transaction']([_0x11bcdf],_0x27d223(0x1e2b))[_0x27d223(0x2a82)](_0x11bcdf)[_0x27d223(0x2685)](_0x375a3d);return new Promise((_0xe05612,_0x4e7e7c)=>{const _0x53c87c=_0x27d223;_0x2a3024[_0x53c87c(0x609)]=_0x4c2712=>{const _0x32163d=_0x53c87c;_0xe05612(_0x4c2712[_0x32163d(0x1245)][_0x32163d(0x209a)]);},_0x2a3024[_0x53c87c(0x1075)]=_0x5eb75c=>{const _0xca8957=_0x53c87c;_0x4e7e7c(_0xca8957(0x430e)+_0x5eb75c['target']['errorCode']);};});}(_0x100615,_0x5ab4e7,_0x2626d8)[_0x57894d(0x452b)](_0xf15f41=>{const _0x36f5ad=_0x57894d,_0x7256df=_0xefe4c2[_0x36f5ad(0x3f98)]('message-container');_0xf15f41&&void 0x0!==_0xf15f41[_0x36f5ad(0xf1c)]&&(_0x7256df[_0x36f5ad(0x22eb)]=_0xf15f41[_0x36f5ad(0xf1c)]);})[_0x57894d(0x424a)](_0x33d39b=>{}));}async function _0x4b0eef(_0x4ca9e8,_0x1436ff=_0x235866(0xc22),_0x553902='tinyMLDB_chats'){const _0x2eddef=_0x235866;(function(_0x4c66ef,_0x21ef85,_0x463e43){return new Promise((_0x238b8a,_0x375343)=>{const _0x1234ec=a0_0x329b,_0x52d8ff=indexedDB[_0x1234ec(0x36fa)](_0x4c66ef);_0x52d8ff[_0x1234ec(0x1075)]=_0xe0acd5=>{const _0x3e8846=_0x1234ec;_0x375343(_0x3e8846(0x12b5),_0xe0acd5['target'][_0x3e8846(0x4b47)]);},_0x52d8ff[_0x1234ec(0x609)]=_0x44bbb5=>{const _0x445877=_0x1234ec,_0x295848=_0x44bbb5[_0x445877(0x1245)][_0x445877(0x209a)][_0x445877(0x4ffd)]([_0x21ef85],_0x445877(0x2eca))[_0x445877(0x2a82)](_0x21ef85)[_0x445877(0x450b)](_0x463e43);_0x295848[_0x445877(0x609)]=()=>{_0x238b8a();},_0x295848[_0x445877(0x1075)]=_0x35fc39=>{const _0x360ee0=_0x445877;_0x375343('Delete\x20request\x20error:',_0x35fc39[_0x360ee0(0x1245)][_0x360ee0(0x4b47)]);};};});}(_0x1436ff,_0x553902,_0x4ca9e8)['then'](()=>!0x0)[_0x2eddef(0x424a)](_0x805397=>!0x1));}async function _0x1be061(_0x5a108c,_0xedb783){const _0x580eef=_0x235866;if(void 0x0===_0xedb783)_0xedb783=await _0x1be239(_0x5a108c);else{const _0x18bf5f=_0x5a108c[_0x580eef(0xe9f)]('#message-container');if(!_0x18bf5f)return;(async function(_0x59f5c3,_0x4de4b8,_0x4b28b8=_0x580eef(0x34aa)){const _0x27b136=_0x580eef;if(null==_0x59f5c3)throw new Error(_0x27b136(0x2e6e));const _0x538797=await _0x41ce66(),_0x5c3557=_0x538797[_0x27b136(0x4ffd)]([_0x4b28b8],_0x27b136(0x2eca))['objectStore'](_0x4b28b8);return new Promise((_0x29c507,_0x4dd7b3)=>{const _0xadf7e8=_0x27b136,_0x5af1d1=_0x5c3557[_0xadf7e8(0x2685)](_0x59f5c3);_0x5af1d1[_0xadf7e8(0x609)]=()=>{const _0x47742f=_0xadf7e8,_0x46d526=_0x5af1d1[_0x47742f(0x209a)];if(_0x46d526){_0x46d526[_0x47742f(0xf1c)]=_0x4de4b8;const _0x1618d5=_0x5c3557[_0x47742f(0x1b1a)](_0x46d526);_0x1618d5[_0x47742f(0x609)]=()=>{_0x29c507({'success':!0x0,'id':_0x59f5c3});},_0x1618d5[_0x47742f(0x1075)]=_0x21c403=>_0x4dd7b3('Error\x20updating\x20content:\x20'+_0x21c403['target']['errorCode']);}else _0x4dd7b3(_0x47742f(0x3613)+_0x59f5c3);},_0x5af1d1[_0xadf7e8(0x1075)]=_0x3ff783=>_0x4dd7b3(_0xadf7e8(0x43df)+_0x3ff783['target']['errorCode']);});}(_0xedb783,_0x18bf5f[_0x580eef(0x22eb)])[_0x580eef(0x452b)](_0x9bade=>{})[_0x580eef(0x424a)](_0x28da19=>{}));}return _0xedb783;}async function _0x39d552(_0x57786a=_0x235866(0xc22),_0x1039bb='tinyMLDB_chats',_0x93960f){const _0x414d2f=_0x235866;try{const _0x31067e=await async function(_0x5c42da,_0x2d7bc6){const _0x32dda4=a0_0x329b,_0x3683df=(await _0x41ce66(_0x5c42da))[_0x32dda4(0x4ffd)]([_0x2d7bc6],_0x32dda4(0x1e2b))[_0x32dda4(0x2a82)](_0x2d7bc6)['openCursor'](),_0x21559f=[];return new Promise((_0x5cb572,_0x39fbc1)=>{const _0x205382=_0x32dda4;_0x3683df[_0x205382(0x609)]=_0x326615=>{const _0xff3f8b=_0x205382,_0x5dbec5=_0x326615[_0xff3f8b(0x1245)][_0xff3f8b(0x209a)];_0x5dbec5?(_0x21559f[_0xff3f8b(0x4131)](_0x5dbec5['value']),_0x5dbec5['continue']()):_0x5cb572(_0x21559f);},_0x3683df[_0x205382(0x1075)]=_0x50abac=>{const _0x4f0d30=_0x205382;_0x39fbc1(_0x4f0d30(0xa39)+_0x50abac[_0x4f0d30(0x1245)][_0x4f0d30(0x1776)]);};});}(_0x57786a,_0x1039bb),_0x1cc08b=_0x2e5625(_0x93960f)['toLowerCase']();return _0x31067e[_0x414d2f(0x295e)](_0x1c5184=>_0x2e5625(_0x1c5184[_0x414d2f(0xf1c)])[_0x414d2f(0x1a57)]()[_0x414d2f(0x1fa2)](_0x1cc08b));}catch(_0x39e812){return[];}}function _0x191c16(_0x2ed244,_0x582fb6){const _0x3e7e73=_0x235866,_0x1f5774=_0x2ed244[_0x3e7e73(0xe9f)](_0x3e7e73(0x2766));if(_0x1f5774){const _0x454836=document[_0x3e7e73(0x23d7)]('li');_0x454836['id']=_0x3e7e73(0x4e2a),_0x454836[_0x3e7e73(0x35ce)]=_0x3e7e73(0x25ef),_0x454836[_0x3e7e73(0x22eb)]=_0x3e7e73(0x168)+_0x582fb6['id']+'\x22\x0a\x20\x20\x20\x20class=\x22flex\x20items-center\x20justify-between\x20w-full\x20px-4\x20py-2\x20text-left\x20text-zinc-800\x20bg-zinc-100\x20rounded-lg\x20hover:bg-zinc-300\x20focus:outline-none\x22\x0a\x20\x20\x20\x20style=\x22background-color:\x20#f4f4f5;\x22\x0a>\x0a\x20\x20\x20\x20'+_0x582fb6[_0x3e7e73(0x5f1)]+_0x3e7e73(0x2b89)+_0x582fb6['id']+_0x3e7e73(0x9f8)+_0x582fb6['id']+_0x3e7e73(0xb35);const _0x5dbe00=_0x454836[_0x3e7e73(0xe9f)]('#delete-'+_0x582fb6['id']);_0x454836[_0x3e7e73(0xe9f)](_0x3e7e73(0x161f)+_0x582fb6['id'])['addEventListener']('click',()=>{-0x1!==_0x582fb6['id']&&async function(_0xde25b5,_0x14e30a){const _0x452c22=a0_0x329b;await _0x50193f(_0xde25b5,_0x14e30a,'tinyMLDB',_0x452c22(0x34aa)),_0x26f7f9(_0xde25b5,_0x452c22(0x38a2)+_0x14e30a,_0x452c22(0x3d14)),_0x288707(_0xde25b5),_0x51496e(_0xde25b5);}(_0x2ed244,_0x582fb6['id']);}),_0x5dbe00['addEventListener']('click',async()=>{await _0x4b0eef(_0x582fb6['id']),_0x48759d(_0x2ed244);}),_0x1f5774[_0x3e7e73(0x1952)](_0x454836);}}function _0x127de6(){const _0x3aed43=_0x235866,_0x299630=new CustomEvent(_0x3aed43(0xfc8),{'detail':{'containerId':_0x3aed43(0x4f01)}});window[_0x3aed43(0x3ad1)](_0x299630);}let _0x1d30ec;async function _0x48759d(_0x27cee5){const _0x5c968b=_0x235866,_0x4dc974=await async function(_0x20d48e,_0x3954c1){const _0x2d32a7=a0_0x329b,_0x4361f6=(await _0x41ce66(_0x20d48e))[_0x2d32a7(0x4ffd)]([_0x3954c1],_0x2d32a7(0x1e2b))['objectStore'](_0x3954c1)['openCursor'](),_0x59518b=[];return new Promise((_0x252f50,_0x1fa3f2)=>{const _0x27834e=_0x2d32a7;_0x4361f6[_0x27834e(0x609)]=_0x58263d=>{const _0x323e59=_0x27834e,_0x13896c=_0x58263d['target'][_0x323e59(0x209a)];_0x13896c?(_0x59518b[_0x323e59(0x4131)](_0x13896c[_0x323e59(0x1827)]),_0x13896c[_0x323e59(0x495f)]()):_0x252f50(_0x59518b);},_0x4361f6[_0x27834e(0x1075)]=_0xe925b4=>{const _0x108cdb=_0x27834e;_0x1fa3f2(_0x108cdb(0xa39)+_0xe925b4[_0x108cdb(0x1245)]['errorCode']);};});}(_0x5c968b(0xc22),_0x5c968b(0x34aa)),_0x515fe1=_0x27cee5[_0x5c968b(0xe9f)](_0x5c968b(0x2766));if(_0x515fe1){if(_0x1d30ec&&_0x4dc974[_0x5c968b(0x205b)]===_0x1d30ec[_0x5c968b(0x205b)])return;_0x515fe1[_0x5c968b(0x22eb)]='',_0x4dc974['forEach']((_0x50293e,_0x433941)=>{_0x191c16(_0x27cee5,_0x50293e);});}_0x1d30ec=_0x4dc974;}const _0x288707=async _0x503293=>{const _0x107405=_0x235866,_0x192716=_0x503293[_0x107405(0xe9f)](_0x107405(0x94e));let _0x66d146=_0x503293[_0x107405(0xe9f)](_0x107405(0x1701));_0x107405(0x3eab)===_0x192716[_0x107405(0x3098)][_0x107405(0x254a)]?(_0x192716[_0x107405(0x3098)]['display']=_0x107405(0x80b),_0x66d146[_0x107405(0x3098)][_0x107405(0x254a)]=_0x107405(0x80b)):(await _0x48759d(_0x503293),_0x192716[_0x107405(0x3098)][_0x107405(0x254a)]=_0x107405(0x3eab),_0x66d146[_0x107405(0x3098)][_0x107405(0x254a)]=_0x107405(0x3eab));};function _0x15fe64(_0x5ebdc1){const _0x3798c5=_0x235866,_0x30d23c=_0x5ebdc1['querySelector']('#popover-container'),_0x13c35a=_0x5ebdc1['querySelector'](_0x3798c5(0x2b8c)),_0x1ccfbc=_0x5ebdc1[_0x3798c5(0xe9f)](_0x3798c5(0x2447));let _0x4c4a71=_0x5ebdc1[_0x3798c5(0xe9f)](_0x3798c5(0x1701));if(_0x5ebdc1[_0x3798c5(0xe9f)](_0x3798c5(0x1be7))[_0x3798c5(0x20d0)]('click',async()=>{const _0x182df7=_0x3798c5;confirm(_0x182df7(0x429d))&&(await function(_0x2d5ecf=_0x182df7(0xc22),_0xa6a655='tinyMLDB_chats'){return new Promise((_0x5cb331,_0x2e5b41)=>{const _0xd29ef7=a0_0x329b,_0x1640f9=indexedDB[_0xd29ef7(0x36fa)](_0x2d5ecf);_0x1640f9[_0xd29ef7(0x1075)]=_0x4a56a8=>{const _0x2bfb18=_0xd29ef7;_0x2e5b41(_0x2bfb18(0x12b5),_0x4a56a8[_0x2bfb18(0x1245)][_0x2bfb18(0x4b47)]);},_0x1640f9[_0xd29ef7(0x609)]=_0xd0fbea=>{const _0xfa17f0=_0xd29ef7,_0x42a519=_0xd0fbea[_0xfa17f0(0x1245)]['result'][_0xfa17f0(0x4ffd)]([_0xa6a655],_0xfa17f0(0x2eca))[_0xfa17f0(0x2a82)](_0xa6a655)[_0xfa17f0(0x30a1)]();_0x42a519[_0xfa17f0(0x609)]=()=>{_0x5cb331();},_0x42a519[_0xfa17f0(0x1075)]=_0x294d33=>{const _0x451395=_0xfa17f0;_0x2e5b41(_0x451395(0xdda),_0x294d33[_0x451395(0x1245)][_0x451395(0x4b47)]);};};});}(_0x182df7(0xc22),_0x182df7(0x34aa)),_0x48759d(_0x5ebdc1),_0x127de6());}),!_0x4c4a71){const _0x3e1107=_0x5ebdc1[_0x3798c5(0xe9f)]('#text-selection-menu');_0x4c4a71=document['createElement']('div'),_0x4c4a71['style'][_0x3798c5(0x3a28)]='fixed',_0x4c4a71['style'][_0x3798c5(0x139d)]='0',_0x4c4a71[_0x3798c5(0x3098)][_0x3798c5(0x24d0)]='0',_0x4c4a71[_0x3798c5(0x3098)][_0x3798c5(0x3879)]=_0x3798c5(0x1f23),_0x4c4a71['style'][_0x3798c5(0x349)]='100vh',_0x4c4a71[_0x3798c5(0x3098)]['backgroundColor']=_0x3798c5(0x972),_0x4c4a71[_0x3798c5(0x3098)]['zIndex']=_0x3798c5(0x19db),_0x4c4a71[_0x3798c5(0x3098)][_0x3798c5(0x254a)]='none',_0x4c4a71[_0x3798c5(0x318e)][_0x3798c5(0x2fd8)](_0x3798c5(0x2800)),_0x3e1107[_0x3798c5(0x1952)](_0x4c4a71);}const _0x474550=_0x5ebdc1['querySelector'](_0x3798c5(0x3cae)),_0xf1e61=_0x5ebdc1[_0x3798c5(0xe9f)]('#chat-history-btn');_0x474550[_0x3798c5(0x20d0)]('click',()=>{_0x127de6(),_0x288707(_0x5ebdc1);}),_0xf1e61[_0x3798c5(0x20d0)]('click',async()=>{_0x288707(_0x5ebdc1);}),_0x13c35a&&_0x13c35a[_0x3798c5(0x20d0)]('click',()=>{const _0x569f48=_0x3798c5;_0x30d23c[_0x569f48(0x3098)][_0x569f48(0x254a)]='none',_0x4c4a71[_0x569f48(0x3098)][_0x569f48(0x254a)]='none';}),_0x1ccfbc&&_0x1ccfbc['addEventListener'](_0x3798c5(0x4ee8),async _0x5222b0=>{const _0x4e9ba0=_0x3798c5;await async function(_0x42107c,_0x2d6a8e){const _0x2731ce=a0_0x329b,_0x47de54=await _0x39d552('tinyMLDB',_0x2731ce(0x34aa),_0x42107c);!function(_0x2d5ad0,_0x5a94ee){const _0x2db0b4=_0x2731ce;if(_0x2d5ad0===_0x5a94ee)return!0x0;if(null==_0x2d5ad0||null==_0x5a94ee)return!0x1;if(_0x2d5ad0[_0x2db0b4(0x205b)]!==_0x5a94ee[_0x2db0b4(0x205b)])return!0x1;for(let _0xec900b=0x0;_0xec900b<_0x2d5ad0[_0x2db0b4(0x205b)];++_0xec900b)if(_0x2d5ad0[_0xec900b]!==_0x5a94ee[_0xec900b])return!0x1;return!0x0;}(_0x47de54,_0x1efe80)&&(_0x2d6a8e[_0x2731ce(0xe9f)](_0x2731ce(0x2766))[_0x2731ce(0x22eb)]='',_0x47de54[_0x2731ce(0x4854)]((_0x1bbcb5,_0x344f12)=>{_0x191c16(_0x2d6a8e,_0x1bbcb5),_0x1efe80=_0x47de54;}));}(_0x5222b0[_0x4e9ba0(0x1245)]['value'],_0x5ebdc1);}),_0x4c4a71[_0x3798c5(0x20d0)](_0x3798c5(0x4da9),()=>{const _0x2bb38c=_0x3798c5;_0x30d23c[_0x2bb38c(0x3098)][_0x2bb38c(0x254a)]=_0x2bb38c(0x80b),_0x4c4a71[_0x2bb38c(0x3098)][_0x2bb38c(0x254a)]=_0x2bb38c(0x80b);}),window['addEventListener']('click',_0x17e16e=>{const _0xa95a0a=_0x3798c5;_0x17e16e[_0xa95a0a(0x1245)]!==_0x30d23c&&_0x17e16e[_0xa95a0a(0x1245)]!==_0x4c4a71||(_0x30d23c[_0xa95a0a(0x3098)][_0xa95a0a(0x254a)]=_0xa95a0a(0x80b),_0x4c4a71[_0xa95a0a(0x3098)]['display']=_0xa95a0a(0x80b));}),window['addEventListener']('keydown',_0x21a659=>{const _0xf4ec0d=_0x3798c5;_0xf4ec0d(0x1f74)===_0x21a659[_0xf4ec0d(0x435)]&&_0xf4ec0d(0x3eab)===_0x30d23c[_0xf4ec0d(0x3098)]['display']&&(_0x30d23c[_0xf4ec0d(0x3098)]['display']=_0xf4ec0d(0x80b),_0x4c4a71['style'][_0xf4ec0d(0x254a)]=_0xf4ec0d(0x80b));});}let _0x1efe80=[];const _0x28f258=_0x235866(0x249e);function _0x52359e(_0xf011b8){const _0x3bd81f=_0x235866;return!!_0xf011b8[_0x3bd81f(0x3f98)](_0x3bd81f(0x160))[_0x3bd81f(0x318e)][_0x3bd81f(0x160d)](_0x3bd81f(0x4e43));}function _0x847c20(_0x4ba02e){const _0x4795c7=_0x235866,_0xbb68e3=_0x4ba02e[_0x4795c7(0xe9f)](_0x4795c7(0xb31));!function(_0x5e2f72){const _0x30cc63=_0x4795c7,_0x15696a=_0x5e2f72[_0x30cc63(0xe9f)](_0x30cc63(0x38ad)),_0x5c8732=_0x5e2f72[_0x30cc63(0xe9f)](_0x30cc63(0x4896));_0x5e2f72[_0x30cc63(0xe9f)](_0x30cc63(0x3f48))['classList']['add'](_0x30cc63(0x17f8)),_0x15696a[_0x30cc63(0x318e)][_0x30cc63(0x2fd8)]('hidden'),_0x5c8732[_0x30cc63(0x318e)]['remove']('hidden');}(_0xbb68e3),_0xbb68e3[_0x4795c7(0x318e)][_0x4795c7(0x2fd8)](_0x4795c7(0x17f8));}let _0x13b820,_0x9f1ed6,_0x5f3c8e,_0x702fb0,_0x553e6f,_0x13b768,_0x22a6d1,_0x1c9fbb,_0xc865a4,_0x51a92d,_0x2ee2ac,_0x19a03f,_0x2b40e8,_0x1c0a89,_0x20b3e6=!0x1,_0x3e0042=!0x1,_0x5e221b='',_0xdea452=_0x235866(0x124),_0x4a7bd0;function _0x40df13(_0x3b93e8,_0x3f84e7){const _0x3e6ec8=_0x235866;_0x3b93e8[_0x3e6ec8(0x3098)]['position']='fixed',_0x3b93e8['style'][_0x3e6ec8(0x139d)]=_0x3f84e7[_0x3e6ec8(0x87c)]-0xc8+'px',_0x3b93e8['style'][_0x3e6ec8(0x24d0)]=_0x3f84e7[_0x3e6ec8(0x20f)]+'px',_0x3b93e8['classList']['remove']('hidden'),setTimeout(()=>{const _0x20c70f=_0x3e6ec8,_0x154f61=_0x3b93e8[_0x20c70f(0x467)]();_0x154f61[_0x20c70f(0x11fd)]>window[_0x20c70f(0x2b67)]&&(_0x3b93e8['style'][_0x20c70f(0x24d0)]=window[_0x20c70f(0x2b67)]-_0x154f61['width']-0x19+'px'),_0x154f61[_0x20c70f(0xaf9)]>window['innerHeight']&&(_0x3b93e8[_0x20c70f(0x3098)][_0x20c70f(0x139d)]=window[_0x20c70f(0x7a8)]-_0x154f61['height']+'px');},0x0);}function _0x52b1c7(_0x227f5,_0x23528c=''){const _0x2a87ac=_0x235866,_0x23081e=new CustomEvent(_0x2a87ac(0x42fa),{'detail':{'text':_0x227f5,'type':'general','links':[window['location'][_0x2a87ac(0x354f)]]}});window[_0x2a87ac(0x3ad1)](_0x23081e);}function _0x39f0aa(_0x5114a4){const _0x167d04=_0x235866;_0x553e6f=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0xc4b)),_0x13b768=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0x1aaa)),_0x22a6d1=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0xc9d)),_0x1c9fbb=_0x5114a4['querySelector']('#researchMiniBtn'),_0x51a92d=_0x5114a4['querySelector']('#chicago'),_0xc865a4=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0x3fc5)),_0x2ee2ac=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0x185c)),_0x2b40e8=_0x5114a4[_0x167d04(0xe9f)](_0x167d04(0x31a2));const _0x112144=function(_0x49653c=''){const _0x31dc3c=_0x167d04,_0x5d54a3=document[_0x31dc3c(0x5f1)],_0xf91cc8=window['location'][_0x31dc3c(0x354f)],_0xba2fd5=new Date()[_0x31dc3c(0x2df4)](_0x31dc3c(0x1465),{'year':_0x31dc3c(0x2f42),'month':_0x31dc3c(0x3c8d),'day':_0x31dc3c(0x2f42)});let _0x5ca1d5='';return _0x5ca1d5=(document[_0x31dc3c(0xe9f)]('meta[name=\x22author\x22]')?document[_0x31dc3c(0xe9f)](_0x31dc3c(0x427))[_0x31dc3c(0x4186)]('content'):_0x31dc3c(0x1b7a))+'\x20('+(document[_0x31dc3c(0xe9f)](_0x31dc3c(0x2978))?document[_0x31dc3c(0xe9f)](_0x31dc3c(0x2978))[_0x31dc3c(0x4186)](_0x31dc3c(0x498f)):_0x31dc3c(0x1d98))+_0x31dc3c(0x450c)+_0x5d54a3+'.\x20Retrieved\x20'+_0xba2fd5+',\x20from\x20'+_0xf91cc8,_0x5ca1d5;}();function _0x5ba1b8(_0x2b954a){const _0xd59584=_0x167d04;_0x2b954a[_0xd59584(0x4eda)](),_0x52359e(_0x5114a4)||_0x246a7d();const _0xa6bad2=_0x2b40e8[_0xd59584(0x1827)];_0x2b40e8['value']='',!function(_0x145c2c,_0x4a9798=_0xd59584(0x42fa),_0x5f3186=_0xd59584(0x9a2)){const _0x307a8e=_0xd59584,_0x15c27d=new CustomEvent(_0x4a9798,{'detail':{'text':_0x145c2c,'type':_0x5f3186,'fromRightClickMenu':!0x0}});window[_0x307a8e(0x3ad1)](_0x15c27d);}(_0xd59584(0x39c9)+_0x5f3c8e+_0xd59584(0x1267)+_0xa6bad2+_0xd59584(0x4709));}function _0x246a7d(){_0x3ad1f8(_0x5114a4),_0x847c20(_0x5114a4);}_0xdea452='citation:\x20'+_0x112144+'\x20'+_0xdea452,_0x2b40e8[_0x167d04(0x20d0)](_0x167d04(0xd1c),function(_0x3c23a7){const _0x108a31=_0x167d04;_0x108a31(0x50be)===_0x3c23a7['key']&&_0x5ba1b8(_0x3c23a7);}),_0x553e6f[_0x167d04(0x20d0)]('click',_0xabf29=>{_0x5ba1b8(_0xabf29);}),_0x13b768[_0x167d04(0x20d0)](_0x167d04(0x4da9),_0x5d9b0a=>{!function(_0x8bc715){const _0x1d6753=a0_0x329b,_0x2af177=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x8bc715,'type':_0x1d6753(0x2a75),'links':[window['location']['href']]}});window[_0x1d6753(0x3ad1)](_0x2af177);}(_0x5f3c8e),_0x52359e(_0x5114a4)||_0x246a7d();}),_0x22a6d1[_0x167d04(0x20d0)](_0x167d04(0x4da9),_0x3b3570=>{!function(_0x4df6d4){const _0x2e9f80=a0_0x329b,_0xcc7ab=new CustomEvent(_0x2e9f80(0x42fa),{'detail':{'text':_0x4df6d4,'type':_0x2e9f80(0x1e04),'links':[window['location']['href']]}});window[_0x2e9f80(0x3ad1)](_0xcc7ab);}(_0x5f3c8e),_0x52359e(_0x5114a4)||_0x246a7d();}),_0x1c9fbb[_0x167d04(0x20d0)](_0x167d04(0x4da9),_0x261f15=>{!function(_0x4cb1b7,_0x17fb62=''){const _0x260c93=a0_0x329b,_0x387f1f=new CustomEvent('aiActionCompleted',{'detail':{'text':_0x4cb1b7,'type':_0x260c93(0x5a4),'links':[window[_0x260c93(0x94a)][_0x260c93(0x354f)]],'getNew':!0x0}});window[_0x260c93(0x3ad1)](_0x387f1f);}(_0x5f3c8e),_0x52359e(_0x5114a4)||_0x246a7d();}),_0x51a92d[_0x167d04(0x20d0)](_0x167d04(0x4da9),_0x1cdefb=>{_0x52b1c7(_0xdea452+'chicago'),_0x52359e(_0x5114a4)||_0x246a7d();}),_0xc865a4['addEventListener'](_0x167d04(0x4da9),_0x448189=>{const _0x339ec7=_0x167d04;_0x52b1c7(_0xdea452+_0x339ec7(0x3c82)),_0x52359e(_0x5114a4)||_0x246a7d();}),_0x2ee2ac[_0x167d04(0x20d0)](_0x167d04(0x4da9),_0x306fc7=>{const _0x450c8c=_0x167d04;_0x52b1c7(_0xdea452+_0x450c8c(0x579)),_0x52359e(_0x5114a4)||_0x246a7d();}),_0x19a03f=localStorage['getItem']('token_avaya');}let _0x530359,_0x2d6ec8='',_0x2c7f6c='',_0x4eb945=[_0x235866(0x268),_0x235866(0x1552)];function _0x4ddb21(_0x4f46f0,_0x5e8d82){const _0x9c302b=_0x235866;return _0x4f46f0[_0x9c302b(0x205b)]<=_0x5e8d82?_0x4f46f0:_0x4f46f0[_0x9c302b(0x428e)](0x0,_0x5e8d82)+_0x9c302b(0x23a);}const _0x5eed57=function(_0x56c74f){const _0x2d74b7=_0x235866,_0x8835c0=document[_0x2d74b7(0x23d7)]('div');return _0x8835c0[_0x2d74b7(0x22eb)]=_0x56c74f[_0x2d74b7(0x1d0e)](),_0x8835c0['firstChild'];}('TAB');function _0x52e54f(_0x23466f){return _0x23466f['replace'](/[^a-zA-Z0-9 \-+?.,:;"'*()&^%$#@!{}\[\]]/g,'');}function _0x5bd4c1(){const _0x739048=_0x235866;_0x2d6ec8='',_0x4a7bd0[_0x739048(0x22eb)]='';}function _0x164107(_0x1b7692){const _0x1a0a03=_0x235866;_0x4a7bd0=_0x1b7692['querySelector'](_0x1a0a03(0x146b));const _0x837656=_0x1b7692[_0x1a0a03(0xe9f)](_0x1a0a03(0x31a2));function _0x196715(_0x26ddd9,_0xc5ebb5){const _0x4624e5=_0x1a0a03;_0x560a95(_0x26ddd9);let _0x1fa8a3=_0x26ddd9[_0x4624e5(0x1a57)]();if(_0x1fa8a3=_0x52e54f(_0x1fa8a3),_0x530359=!0x1,_0x26ddd9)_0x530359=_0x4eb945[_0x4624e5(0x3f5f)](_0x3401f8=>!!_0x3401f8[_0x4624e5(0x1a57)]()[_0x4624e5(0xe6e)](_0x1fa8a3)&&(_0x2d6ec8=_0x3401f8['substring'](_0x26ddd9['length']),_0x4a7bd0[_0x4624e5(0x38cb)]=_0x4ddb21(_0x26ddd9+_0x2d6ec8,0x3c),_0x4a7bd0[_0x4624e5(0x1952)](_0x5eed57),!0x0));else{if(0x0===_0x26ddd9['length']){const _0x53cb3a=Math[_0x4624e5(0x4dbd)](Math['random']()*_0x4eb945[_0x4624e5(0x205b)]);_0x2d6ec8=_0x4eb945[_0x53cb3a],_0x4a7bd0['textContent']=_0x4ddb21(_0x2d6ec8,0x3c),_0x4a7bd0[_0x4624e5(0x1952)](_0x5eed57);}}!_0x530359&&_0x26ddd9[_0x4624e5(0x205b)]>0x0&&_0x5bd4c1();}_0x837656['addEventListener']('input',function(_0x52aa08){const _0x5bbdfe=_0x1a0a03;_0x196715(_0x52aa08[_0x5bbdfe(0x1245)][_0x5bbdfe(0x1827)],_0x1b7692);}),_0x837656[_0x1a0a03(0x20d0)](_0x1a0a03(0x356d),function(){const _0x1bf021=_0x1a0a03;''===this[_0x1bf021(0x1827)]&&_0x196715('',_0x1b7692),this['removeAttribute']('placeholder');}),_0x837656[_0x1a0a03(0x20d0)](_0x1a0a03(0x3666),function(){const _0x3d6913=_0x1a0a03;0x0===this[_0x3d6913(0x1827)]['length']&&(_0x5bd4c1(),this['setAttribute']('placeholder',_0x3d6913(0x1677)));}),_0x837656[_0x1a0a03(0x20d0)]('keydown',function(_0x55b34e){const _0x4fda83=_0x1a0a03;_0x4fda83(0x43fa)===_0x55b34e['key']&&_0x2d6ec8?(_0x55b34e[_0x4fda83(0x4eda)](),function(_0xf183e2){const _0x2c4a98=_0x4fda83,_0x42e296=_0xf183e2[_0x2c4a98(0xe9f)](_0x2c4a98(0x31a2));_0x2d6ec8&&(_0x42e296['value']+=_0x2d6ec8,_0x196715(_0x42e296['value'],_0xf183e2),_0x5bd4c1());}(_0x1b7692)):'Backspace'===_0x55b34e[_0x4fda83(0x435)]&&_0x2d6ec8&&_0x5bd4c1();}),_0x837656['addEventListener']('focus',function(){const _0x3475b1=_0x1a0a03;_0x196715(''),this[_0x3475b1(0x701)]('placeholder');});}async function _0x2a8853(_0x1fc74f){const _0x42d56f=_0x235866;if(_0x1fc74f!==_0x2c7f6c&&_0x1fc74f){_0x2c7f6c=_0x1fc74f;const _0xe6707c=_0x42d56f(0x433a)+_0x2c7f6c+_0x42d56f(0xe71),_0x130d53=await async function(_0x3dd71a,_0x2496bd=''){const _0x140192=_0x42d56f,_0x438671={'prompt':_0x3dd71a=_0x140192(0x338c)+_0x5f3c8e+_0x140192(0x28fd)+_0x3dd71a};let _0x32952a='';try{for await(let _0x35033f of _0x6b503a(_0x438671,_0x19a03f))_0x32952a+=_0x35033f;}catch(_0x3f5d61){}return _0x32952a;}(_0xe6707c);_0x130d53&&(_0x4eb945[_0x42d56f(0x214d)](_0x52e54f(_0x130d53)),_0x4eb945=_0x4eb945[_0x42d56f(0x428e)](0x0,0x5));}}const _0x560a95=function(_0x1e4caa,_0x3515c6){let _0x4c4637;return function(..._0xe616e3){const _0x33895f=a0_0x329b,_0x4b47f0=this;clearTimeout(_0x4c4637),_0x4c4637=setTimeout(()=>_0x1e4caa[_0x33895f(0x3138)](_0x4b47f0,_0xe616e3),_0x3515c6);};}(_0x38e96e=>_0x2a8853(_0x38e96e),0x1f4);function _0x4cdca2(_0x4856ba){const _0x2f877c=_0x235866,_0x3b0f2b=document[_0x2f877c(0x23d7)](_0x2f877c(0x2db6));_0x3b0f2b[_0x2f877c(0x22eb)]=_0x28f258,_0x4856ba[_0x2f877c(0x1952)](_0x3b0f2b['content'][_0x2f877c(0x1c24)](!0x0)),function(_0x2bbbde){const _0x7dd616=_0x2f877c;async function _0x4d4d7a(_0x3c6a68){const _0x5de0b8=a0_0x329b,_0x540ca7=await window['getSelection'](),_0x46e26c=_0x3c6a68[_0x5de0b8(0x1146)](),_0x392eff=_0x46e26c['includes'](_0x13b820),_0x9e5503=_0x46e26c[_0x5de0b8(0x1fa2)](_0x9f1ed6);_0x392eff||_0x9e5503||(_0x5f3c8e=_0x540ca7['toString']()['trim']()),_0x5f3c8e[_0x5de0b8(0x205b)]>0x0&&!_0x20b3e6&&!_0x9e5503?(_0x3e0042=!0x0,setTimeout(()=>{_0x3e0042=!0x1;},0x14),_0x40df13(_0x13b820,_0x3c6a68),_0x13b820[_0x5de0b8(0x318e)][_0x5de0b8(0x80a)](_0x5de0b8(0x17f8)),_0x20b3e6=!0x0):_0x5f3c8e[_0x5de0b8(0x205b)],_0x5e221b=_0x5f3c8e;}_0x702fb0=_0x2bbbde,_0x13b820=_0x2bbbde[_0x7dd616(0x3f98)](_0x7dd616(0x720)),_0x9f1ed6=_0x2bbbde[_0x7dd616(0x3f98)](_0x7dd616(0x160)),document[_0x7dd616(0x20d0)](_0x7dd616(0x33e8),async function(_0x5317d2){_0x1c0a89=setTimeout(async()=>{const _0x26c8e2=a0_0x329b;await _0x4d4d7a(_0x5317d2[_0x26c8e2(0x221f)][0x0]);},0x320);}),document[_0x7dd616(0x20d0)](_0x7dd616(0x1ced),function(_0x3496cf){const _0x2555af=_0x7dd616;clearTimeout(_0x1c0a89),_0x13b820[_0x2555af(0x160d)](_0x3496cf[_0x2555af(0x1245)])||_0x2555af(0x17f8)!==!_0x13b820[_0x2555af(0x318e)][_0x2555af(0x160d)]||_0x847c20(_0x702fb0);}),document[_0x7dd616(0x20d0)](_0x7dd616(0x1747),async _0x26f77a=>{await _0x4d4d7a(_0x26f77a);}),document['addEventListener'](_0x7dd616(0x4da9),_0x2a70fe=>{const _0x966d0d=_0x7dd616,_0x51d83e=_0x2a70fe['composedPath'](),_0x4e88fc=window[_0x966d0d(0x2aa1)]()[_0x966d0d(0x44de)]()['trim']();if(!_0x3e0042&&_0x20b3e6){const _0x15d60d=_0x51d83e[_0x966d0d(0x1fa2)](_0x13b820);_0x15d60d||0x0!==_0x4e88fc[_0x966d0d(0x205b)]?_0x15d60d||_0x4e88fc!==_0x5f3c8e&&_0x4e88fc[_0x966d0d(0x205b)]>0x0&&!_0x15d60d&&(_0x5f3c8e=_0x4e88fc,_0x40df13(_0x13b820,_0x2a70fe)):(_0x847c20(_0x702fb0),_0x20b3e6=!0x1);}});}(_0x4856ba),function(_0x5bf51d){const _0x52adc0=_0x2f877c;_0x5bf51d['querySelector'](_0x52adc0(0x269e))[_0x52adc0(0x20d0)](_0x52adc0(0x4da9),function(){const _0x16f217=_0x52adc0,_0x4447cd=_0x5bf51d[_0x16f217(0xe9f)]('#citationMenu'),_0x1d9f11=this[_0x16f217(0xe9f)](_0x16f217(0x38ad)),_0x158dc3=this[_0x16f217(0xe9f)](_0x16f217(0x4896));_0x4447cd['classList'][_0x16f217(0x195b)](_0x16f217(0x17f8)),_0x158dc3[_0x16f217(0x318e)][_0x16f217(0x195b)](_0x16f217(0x17f8)),_0x1d9f11['classList'][_0x16f217(0x195b)]('hidden');});}(_0x4856ba),_0x39f0aa(_0x4856ba),_0x164107(_0x4856ba);}function _0x15cf87(_0x24ca0f,_0x46dfd3){const _0x5c87e0=_0x235866;let _0x9636e8;return _0x9636e8=_0x30d856(_0x24ca0f,'ai'===_0x46dfd3?_0x5c87e0(0x5078):_0x5c87e0(0x180c),'',_0x5c87e0(0x49e4)),_0x9636e8;}function _0x574c15(_0x3e78ca,_0x3082c0,_0x5536ed){const _0x450873=_0x235866,_0x3ee0a2=_0x30d856(_0x3e78ca,'reference-btn-container','');return _0x5536ed[_0x450873(0x4854)]((_0x4f8d08,_0x1d1c23)=>{const _0x13df3a=_0x450873,_0x3f72de=_0x30d856(_0x3e78ca,'reference-btn','');_0x3f72de[_0x13df3a(0x2987)](_0x13df3a(0x354f),_0x4f8d08),_0x3f72de['textContent']=_0x1d1c23+0x1,_0x3ee0a2[_0x13df3a(0x1952)](_0x3f72de);}),_0x3ee0a2;}const _0x406037=_0x235866(0x3625);async function _0x160117(_0x9f9b86,_0x5a4b34){const _0x189cf0=_0x235866,_0xffbff9=_0x9f9b86[_0x189cf0(0x2c94)](async _0x989a4c=>{const _0x5295a1=_0x189cf0,_0x33165b=await fetch(''+_0x406037+_0x989a4c+'&max_results='+_0x5a4b34),_0x7494a=await _0x33165b[_0x5295a1(0x2f35)](),_0x3cdd75=new DOMParser()[_0x5295a1(0xc80)](_0x7494a,_0x5295a1(0x4156));return Array[_0x5295a1(0xc81)](_0x3cdd75[_0x5295a1(0x44dc)](_0x5295a1(0xc44)))['map'](_0x39606c=>{const _0x203c83=_0x5295a1,_0x39ea9b=_0x39606c[_0x203c83(0xe9f)]('title')[_0x203c83(0x38cb)],_0x3b4f10=_0x39606c[_0x203c83(0xe9f)]('id')[_0x203c83(0x38cb)],_0x20a526=_0x39606c[_0x203c83(0xe9f)](_0x203c83(0x7ba))[_0x203c83(0x38cb)],_0x5e2edd=_0xfb8423(_0x39606c[_0x203c83(0xe9f)](_0x203c83(0xe54))[_0x203c83(0x38cb)]),_0x882afc=_0x39606c[_0x203c83(0xe9f)](_0x203c83(0x4e0c))[_0x203c83(0x38cb)];return{'title':_0x39ea9b,'link':_0x3b4f10,'author':_0x20a526,'summary':_0x5e2edd,'year':new Date(_0x882afc)['getFullYear']()};});});return(await Promise[_0x189cf0(0x1d1f)](_0xffbff9))[_0x189cf0(0x1a6e)]();}function _0x520987(_0x415ec7,_0x447a2d){const _0x23db65=_0x235866;let _0x14f5bc='';var _0x5a4a18;return _0x14f5bc+=_0x23db65(0x2ee),_0x14f5bc+=_0x23db65(0x2942),_0x14f5bc+='|\x20'+(_0x5a4a18=_0x415ec7[_0x23db65(0x5f1)],_0x5a4a18[_0x23db65(0x1db7)](/[\r\n]+/g,''))+_0x23db65(0x2a0e)+_0x415ec7[_0x23db65(0x3622)]+_0x23db65(0x154f),_0x415ec7[_0x23db65(0x2853)]&&(_0x14f5bc+=_0x23db65(0x1dde)+_0x415ec7[_0x23db65(0x2853)]+'\x0a\x0a'),_0x415ec7[_0x23db65(0x34e6)]&&_0x23db65(0x2a37)!==_0x415ec7[_0x23db65(0x34e6)]&&(_0x14f5bc+=_0x23db65(0x1470)+_0x415ec7[_0x23db65(0x34e6)]+'\x0a\x0a'),_0x415ec7['similarity']&&(_0x14f5bc+='≈\x20Similarity:\x20'+(0x64*_0x415ec7[_0x23db65(0x2232)])[_0x23db65(0x38b2)](0x2)+'%\x0a\x0a'),(_0x14f5bc+=':::\x20spoiler\x20Summary\x0a*'+_0x415ec7['summary']+_0x23db65(0x27ed),_0x14f5bc+=_0x23db65(0x44db),_0x14f5bc);}async function _0x3b95cd(_0x4c627b,_0x474e95,_0x2e5870,_0x1cde91,_0x2cf6a2=0xa){const _0x39a8f9=await async function(_0x23e056,_0x433227=0x5){const _0xa37cbf=a0_0x329b,_0x694604=[];try{const _0x3eeb66=await async function(_0x2831d2){const _0x573fe4=a0_0x329b,_0x430315=_0x5c8693+_0x573fe4(0x4a84)+encodeURIComponent(_0x2831d2)+_0x573fe4(0x20c2),_0x410744=await fetch(_0x430315,{'headers':{'x-api-key':_0x56da77,'Accept':_0x573fe4(0x198d)}});if(!_0x410744['ok'])throw new Error('Semantic\x20Scholar\x20API\x20request\x20failed\x20with\x20status\x20'+_0x410744[_0x573fe4(0x33de)]);const _0x367c80=await _0x410744['json']();if(!_0x367c80['data'])throw new Error('Unexpected\x20response\x20structure\x20from\x20Semantic\x20Scholar',_0x367c80);const _0x280293=_0x367c80[_0x573fe4(0x2a43)]['map'](_0x22dfa1=>({'title':_0x22dfa1[_0x573fe4(0x5f1)],'author':_0x22dfa1[_0x573fe4(0x4139)][_0x573fe4(0x2c94)](_0xa42a26=>_0xa42a26['name'])[_0x573fe4(0x379c)](',\x20'),'year':_0x22dfa1[_0x573fe4(0x2853)],'link':_0x22dfa1[_0x573fe4(0x200e)],'summary':_0xfb8423(_0x22dfa1['abstract'])||'No\x20summary\x20available','citations':_0x22dfa1[_0x573fe4(0x1f29)]||_0x573fe4(0x2a37)}))['sort']((_0x250200,_0x2a908d)=>_0x2a908d['citations']-_0x250200['citations']);return _0x280293;}(_0x23e056);_0x694604['push'](..._0x3eeb66);}catch(_0x465219){try{const [_0x5ad7aa]=await Promise['all']([_0x160117([_0x23e056],_0x433227)]);_0x694604[_0xa37cbf(0x4131)](..._0x5ad7aa);}catch(_0x2f1021){}}return _0x694604;}(_0x1cde91,_0x2cf6a2),_0xd13e8d=function(_0x4b8267,_0x437fc9){const _0x50ff08=a0_0x329b;let _0x383c8c='';if(_0x437fc9['slice'](0x0,0x5)[_0x50ff08(0x4854)]((_0x2707cb,_0x2e660b)=>{_0x383c8c+=_0x520987(_0x2707cb);}),_0x437fc9[_0x50ff08(0x205b)]>0x5){const _0x4f4cc4=_0x50ff08(0x12e0)+_0x4b8267;_0x383c8c+=_0x50ff08(0x2a0d)+_0x4b8267+_0x50ff08(0x44a9)+_0x4b8267+'\x20bg-white\x20text-black\x20border\x20border-blue-500\x20px-4\x20py-2\x20rounded\x22>Show\x20More\x20Papers\x0a\x0a\x0a',_0x437fc9['slice'](0x5)[_0x50ff08(0x4854)]((_0x15e0d4,_0x3e678a)=>{_0x383c8c+=_0x520987(_0x15e0d4);}),_0x383c8c+='\x0a{const _0x3dcab7=_0x3f872d;_0x48c4e3[_0x3dcab7(0x318e)][_0x3dcab7(0x80a)](_0x3dcab7(0x17f8));});}(_0x2f99e6),setTimeout(()=>{const _0x509c3c=_0x51329f;_0x2f99e6[_0x509c3c(0x19bf)]&&_0x2f99e6[_0x509c3c(0x19bf)][_0x509c3c(0x184b)](_0x2f99e6);},0x1f4));}function _0x501c91(_0x5ca939,_0x7665f6){if(_0x5db997)return;!function(_0x1b2e21,_0x182e3f,_0x5eb372,_0x88d8d,_0x392d18){const _0x11fb1a=a0_0x329b;if(_0x5db997)return;const _0x270a2b=Date[_0x11fb1a(0x29c6)](),_0x24da2a=setInterval(function(){const _0x387231=_0x11fb1a;if(Date[_0x387231(0x29c6)]()-_0x270a2b>_0x392d18)return void clearInterval(_0x24da2a);const _0x1c1053=_0x182e3f[_0x387231(0xe9f)](_0x1b2e21);_0x1c1053&&(clearInterval(_0x24da2a),_0x5eb372(_0x1c1053));},_0x88d8d);}('#'+('progress'+_0x7665f6),_0x5ca939,function(_0x14d5ea){const _0x415d5e=a0_0x329b;_0x14d5ea['classList'][_0x415d5e(0x80a)](_0x415d5e(0x17f8));},0x64,0x1388);}function _0x4b25dc(_0x17c407,_0x51fc43){const _0x78e778=_0x235866;_0x5db997||_0x17c407[_0x78e778(0x4854)]((_0x2ec02c,_0x1a9d92)=>{setTimeout(()=>function(_0x42eb91,_0x1e723f,_0x3d35d3){const _0x27ede2=a0_0x329b;if(_0x5db997)return;const _0xf8a535=_0x42eb91[_0x27ede2(0xe9f)](_0x27ede2(0x1a07));if(_0xf8a535){const _0x588697=document['createElement'](_0x27ede2(0x257d));_0x588697[_0x27ede2(0x35ce)]='flex\x20items-center\x20text-blue-400\x20dark:text-blue-400\x20bg-transparent\x20p-1\x20rounded-lg\x20border-b\x20border-zinc-300\x20dark:border-zinc-700\x20animate-fadeInUp',_0x588697[_0x27ede2(0x22eb)]='\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20•\x20'+_0x1e723f+_0x27ede2(0x110f)+('progress'+_0x3d35d3)+_0x27ede2(0x209e),_0xf8a535[_0x27ede2(0x1952)](_0x588697);}}(_0x51fc43,_0x2ec02c,_0x1a9d92),0x64*_0x1a9d92);});}function _0x46b4d3(_0x39bcab){const _0xe8a9eb=function(_0x1d06b1){const _0x297666=a0_0x329b;let _0x45c8e6=_0x1c715f(_0x1d06b1)['sentences']()['out']('array')[_0x297666(0x2c94)](_0x53a3fa=>{const _0x12053b=_0x297666;let _0x1aac81=_0x1c715f(_0x53a3fa),_0x1e9ae7=_0x1aac81['topics']()[_0x12053b(0x4284)](_0x12053b(0x47f8)),_0xc618d9=_0x1aac81['nouns']()[_0x12053b(0x4284)](_0x12053b(0x47f8))[_0x12053b(0x295e)](_0x1db496=>!_0x1e9ae7[_0x12053b(0x1fa2)](_0x1db496));return{'sentence':_0x53a3fa,'entities':_0x1e9ae7,'nouns':_0xc618d9};});return _0x45c8e6;}(_0x39bcab),_0x340c5c=function(_0x339a7a){const _0x26ed64=a0_0x329b;let _0x4dbdb0=[];return _0x339a7a[_0x26ed64(0x4854)](({sentence:_0x1881fd,entities:_0x184dd7,nouns:_0x30094a})=>{const _0x25f58e=_0x26ed64;let _0x406613=_0x1c715f(_0x1881fd)[_0x25f58e(0x18a5)]()[_0x25f58e(0x4284)]('array')['filter'](_0x38e7e8=>!_0x184dd7['includes'](_0x38e7e8)&&!_0x30094a[_0x25f58e(0x1fa2)](_0x38e7e8)),_0x4c385f=_0x184dd7['length']>0x0?_0x184dd7:_0x30094a;_0x4c385f[_0x25f58e(0x4854)](_0x461823=>{const _0x3747ac=_0x25f58e;let _0x3a958d=_0x1881fd['replace'](_0x461823,'______'),_0x56adba=_0x461823,_0x2dfc7c=_0x4c385f[_0x3747ac(0x295e)](_0x191b20=>_0x191b20!==_0x461823)[_0x3747ac(0x41bf)](_0x30094a[_0x3747ac(0x295e)](_0x7b76e7=>_0x7b76e7!==_0x461823),_0x406613);_0x277e15(_0x2dfc7c);let _0x4464f3=_0x2dfc7c[_0x3747ac(0x428e)](0x0,0x3);for(;_0x4464f3[_0x3747ac(0x205b)]<0x3&&_0x406613['length']>0x0;){let _0x4545f3=_0x406613['pop']();_0x4464f3['includes'](_0x4545f3)||_0x4464f3['push'](_0x4545f3);}let _0x3a7e2f={'question':_0x3a958d,'answers':[]};_0x4464f3['forEach'](_0x41d7f1=>{const _0x130b8a=_0x3747ac;_0x3a7e2f['answers']['push']({'text':_0x41d7f1,'correct':!0x1,'explanation':_0x130b8a(0x1137)});}),_0x3a7e2f['answers']['push']({'text':_0x56adba,'correct':!0x0,'explanation':'This\x20is\x20the\x20correct\x20answer\x20based\x20on\x20the\x20context.'}),_0x277e15(_0x3a7e2f[_0x3747ac(0x41e8)]),_0x4dbdb0[_0x3747ac(0x4131)](_0x3a7e2f);});}),_0x4dbdb0;}(_0xe8a9eb);return function(_0x2f76ec){const _0x4bb792=a0_0x329b;let _0x120add=_0x2f76ec[_0x4bb792(0x295e)](_0x4155ba);return _0x277e15(_0x120add),{'questions':_0x120add[_0x4bb792(0x428e)](0x0,0x3)[_0x4bb792(0x2c94)](_0x1c2b9b=>({..._0x1c2b9b,'question':_0x37a060(_0x1c2b9b[_0x4bb792(0xaeb)])}))};}(_0x340c5c)['questions'];}function _0x37a060(_0x7ef5be){return _0x7ef5be=(_0x7ef5be=_0x7ef5be['replace'](/<\/?[^>]+(>|$)/g,''))['replace'](/\b[A-Z]{1,2}\s*:\s*/g,'');}function _0x277e15(_0x9701d8){const _0x510ae7=_0x235866;for(let _0x8ee8ac=_0x9701d8[_0x510ae7(0x205b)]-0x1;_0x8ee8ac>0x0;_0x8ee8ac--){const _0x549613=Math[_0x510ae7(0x4dbd)](Math[_0x510ae7(0x4a2c)]()*(_0x8ee8ac+0x1));[_0x9701d8[_0x8ee8ac],_0x9701d8[_0x549613]]=[_0x9701d8[_0x549613],_0x9701d8[_0x8ee8ac]];}}function _0x4155ba(_0x269438){const _0x8a4694=_0x235866;return _0x37a060(_0x269438[_0x8a4694(0xaeb)])['replace'](/______/g,'')['trim']()[_0x8a4694(0x29d0)](/\s+/)[_0x8a4694(0x205b)]>=0x3;}function _0x2c9fc9(_0x47767f){const _0x336077=_0x235866;let _0x40522c=!0x0;const _0x34263f=_0x47767f[_0x336077(0x3f98)]('collapsible-content'),_0x5c2f32=_0x47767f[_0x336077(0x3f98)](_0x336077(0x257b));function _0x9068df(){const _0x38e0ee=_0x336077;_0x40522c=!_0x40522c,_0x40522c?(_0x34263f[_0x38e0ee(0x3098)][_0x38e0ee(0x349)]=_0x34263f[_0x38e0ee(0x4b8a)]+'px',_0x5c2f32[_0x38e0ee(0x318e)]['remove'](_0x38e0ee(0x1b2b))):(_0x34263f['style'][_0x38e0ee(0x349)]='0',_0x5c2f32[_0x38e0ee(0x318e)]['add']('rotate-180'));}_0x34263f[_0x336077(0x3098)][_0x336077(0x1962)]='hidden',_0x5c2f32['addEventListener']('click',_0x9068df),_0x47767f[_0x336077(0x58b)]=_0x9068df;}const _0x151ffd=_0x235866(0x24ca);function _0x34e8e9(_0x52d03a){const _0x3ffb8c=_0x235866,_0x3b8cd9=_0x52d03a[_0x3ffb8c(0xe9f)]('#helpModal'),_0x1c70a1=_0x3b8cd9[_0x3ffb8c(0x318e)]['contains']('hidden'),_0x194617=_0x3b8cd9['querySelector'](_0x3ffb8c(0x1311));_0x1c70a1?(_0x3b8cd9[_0x3ffb8c(0x318e)][_0x3ffb8c(0x80a)]('hidden'),document['addEventListener']('click',_0x5b064b),_0x194617[_0x3ffb8c(0x22eb)]=_0x3ffb8c(0x106d)):(_0x3b8cd9[_0x3ffb8c(0x318e)][_0x3ffb8c(0x2fd8)](_0x3ffb8c(0x17f8)),document[_0x3ffb8c(0x2a94)](_0x3ffb8c(0x4da9),_0x5b064b),function(_0x5dc509){const _0xa0fb23=_0x3ffb8c;var _0x21f968=_0x5dc509['querySelector'](_0xa0fb23(0x742));_0x21f968&&_0x21f968[_0xa0fb23(0x1005)][_0xa0fb23(0x1fa2)](_0xa0fb23(0x239d))&&_0x21f968[_0xa0fb23(0x2c2c)][_0xa0fb23(0x4f4a)](JSON[_0xa0fb23(0xf0b)]({'event':_0xa0fb23(0xd8c),'func':_0xa0fb23(0x462d)}),'*');}(_0x3b8cd9),_0x194617['innerHTML']='');}function _0x226a10(_0xb7ec09){const _0xee1ce4=_0x235866,_0x22ac77=(function(){const _0x5586f3=a0_0x329b,_0x4cec9c=document[_0x5586f3(0x23d7)](_0x5586f3(0x257d));_0x4cec9c[_0x5586f3(0x35ce)]=_0x5586f3(0x19b1),_0x4cec9c['id']=_0x5586f3(0x2caf);const _0x58f5a5=document['createElement'](_0x5586f3(0x257d));_0x58f5a5[_0x5586f3(0x35ce)]='bg-white\x20shadow-lg\x20rounded-lg\x20relative\x20max-w-lg\x20mx-auto',_0x58f5a5[_0x5586f3(0x3098)][_0x5586f3(0x2fff)]=_0x5586f3(0x4c70),_0x58f5a5['id']=_0x5586f3(0x15cd),_0x58f5a5[_0x5586f3(0x3098)][_0x5586f3(0x3879)]=_0x5586f3(0x2c10),_0x58f5a5[_0x5586f3(0x118c)]=_0x20a6da=>_0x20a6da[_0x5586f3(0x531)]();const _0x5976e0=document[_0x5586f3(0x23d7)](_0x5586f3(0x257d));_0x5976e0[_0x5586f3(0x35ce)]=_0x5586f3(0x2eb0),_0x5976e0[_0x5586f3(0x3098)]['maxHeight']=_0x5586f3(0x20cd);const _0x153c4d=document[_0x5586f3(0x23d7)](_0x5586f3(0x257d));_0x153c4d[_0x5586f3(0x35ce)]=_0x5586f3(0x3713),_0x153c4d[_0x5586f3(0x22eb)]='
',_0x5976e0[_0x5586f3(0x1952)](_0x153c4d),_0x58f5a5['appendChild'](_0x5976e0);const _0x706541=document[_0x5586f3(0x23d7)]('div');_0x706541[_0x5586f3(0x35ce)]=_0x5586f3(0x3518);const _0x5eee44=document[_0x5586f3(0x23d7)](_0x5586f3(0x1de1));_0x5eee44[_0x5586f3(0x2ab6)]=_0x5586f3(0x471b),_0x5eee44[_0x5586f3(0x35ce)]=_0x5586f3(0xfde),_0x5eee44['id']=_0x5586f3(0x4fdc),_0x5eee44['onclick']=()=>{const _0xa8e3ad=_0x5586f3;window[_0xa8e3ad(0x94a)][_0xa8e3ad(0x354f)]=_0xa8e3ad(0x384a);};const _0x4d4deb=document[_0x5586f3(0x23d7)](_0x5586f3(0x1de1));return _0x4d4deb[_0x5586f3(0x2ab6)]='Close',_0x4d4deb[_0x5586f3(0x35ce)]=_0x5586f3(0x3244),_0x4d4deb['id']=_0x5586f3(0x237a),_0x706541[_0x5586f3(0x1952)](_0x5eee44),_0x706541[_0x5586f3(0x1952)](_0x4d4deb),_0x58f5a5['appendChild'](_0x706541),_0x4cec9c[_0x5586f3(0x1952)](_0x58f5a5),_0x4cec9c;}()),_0x3905e4=_0xb7ec09[_0xee1ce4(0xe9f)](_0xee1ce4(0x334));_0x3905e4['contains'](_0x22ac77)||_0x3905e4[_0xee1ce4(0x1952)](_0x22ac77),function(_0x3aa50b){const _0x4480c6=_0xee1ce4,_0x5418b9=_0x3aa50b[_0x4480c6(0xe9f)](_0x4480c6(0x3490));_0x5418b9[_0x4480c6(0x118c)]=()=>_0x34e8e9(_0x3aa50b);}(_0xb7ec09),document[_0xee1ce4(0x20d0)](_0xee1ce4(0xd1c),function(_0x38dc6f){const _0x266d69=_0xee1ce4;'Escape'!==_0x38dc6f['key']||_0x22ac77['classList'][_0x266d69(0x160d)]('hidden')||_0x22ac77[_0x266d69(0x318e)]['add'](_0x266d69(0x17f8));}),_0x22ac77[_0xee1ce4(0xe9f)](_0xee1ce4(0x4ced))['onclick']=()=>_0x34e8e9(_0xb7ec09);}function _0x5b064b(_0x137b8c){const _0x5dc969=_0x235866,_0x54ea06=document[_0x5dc969(0xe9f)](_0x5dc969(0x334)),_0x31169e=document[_0x5dc969(0xe9f)](_0x5dc969(0x1da0));!_0x54ea06||_0x54ea06[_0x5dc969(0x160d)](_0x137b8c[_0x5dc969(0x1245)])||_0x31169e['contains'](_0x137b8c[_0x5dc969(0x1245)])||_0x34e8e9(document);}const _0x1e483f=new Worker(new URL(_0x356cb5['p']+_0x356cb5['u'](0x8e),_0x356cb5['b'])),_0x4cebe9=new Map();let _0x5a3b93=0x0;_0x1e483f[_0x235866(0x2125)]=function(_0x357591){const _0x576f6c=_0x235866,_0x37b64a=_0x4cebe9[_0x576f6c(0x2685)](_0x357591[_0x576f6c(0x2a43)]['id']);'success'===_0x357591[_0x576f6c(0x2a43)][_0x576f6c(0x33de)]&&_0x37b64a?_0x37b64a[_0x576f6c(0xfbf)](_0x357591[_0x576f6c(0x2a43)][_0x576f6c(0x2a43)]):_0x37b64a&&_0x37b64a[_0x576f6c(0x3bbb)](_0x357591[_0x576f6c(0x2a43)][_0x576f6c(0x18ac)]),_0x4cebe9[_0x576f6c(0x450b)](_0x357591[_0x576f6c(0x2a43)]['id']);},new class{constructor(_0x5da1ef,_0x5b2e00,_0x58dc09='\x0a\x0a'){const _0x163d4b=_0x235866;this[_0x163d4b(0x3f86)]=_0x5da1ef,this[_0x163d4b(0x2de4)]=_0x5b2e00,this['charToSplit']=_0x58dc09;}[_0x235866(0x29d0)](_0x55f7b7){const _0x59e443=_0x235866,_0x4d9fef=[],_0x5f5b80=_0x55f7b7[_0x59e443(0x29d0)](this[_0x59e443(0x3810)]);let _0x5eac21=[],_0x1981ea=0x0;return _0x5f5b80[_0x59e443(0x4854)](_0x3b3591=>{const _0xd0c98d=_0x59e443;(_0x3b3591['match'](/\w+|[^\w\s]+/g)||[])[_0xd0c98d(0x4854)](_0x30515b=>{const _0x3a3abd=_0xd0c98d;_0x1981ea+_0x30515b[_0x3a3abd(0x205b)]+0x1>this[_0x3a3abd(0x3f86)]&&(_0x4d9fef[_0x3a3abd(0x4131)](_0x5eac21[_0x3a3abd(0x379c)]('\x20')),_0x5eac21=_0x5eac21[_0x3a3abd(0x428e)](-this[_0x3a3abd(0x2de4)]),_0x1981ea=_0x5eac21[_0x3a3abd(0x379c)]('\x20')[_0x3a3abd(0x205b)]+0x1),_0x5eac21['push'](_0x30515b),_0x1981ea+=_0x30515b['length']+0x1;});}),_0x5eac21[_0x59e443(0x205b)]>0x0&&_0x4d9fef[_0x59e443(0x4131)](_0x5eac21['join']('\x20')),_0x4d9fef;}}(0xc8,0x14,'\x0a\x0a');const _0x2977c0=navigator[_0x235866(0x3f8c)]||0x2,_0xcce808=[];for(let _0x29c520=0x0;_0x29c520<_0x2977c0;_0x29c520++){const _0x5455ee=new Worker(new URL(_0x356cb5['p']+_0x356cb5['u'](0x2f9),_0x356cb5['b']));_0x5455ee[_0x235866(0x2125)]=_0x49c403,_0xcce808[_0x235866(0x4131)](_0x5455ee);}function _0x49c403(_0x541733){const _0x5d9029=_0x235866,_0x1a3f8a=_0x4cebe9['get'](_0x541733[_0x5d9029(0x2a43)]['id']);_0x1a3f8a&&(_0x5d9029(0x3d14)===_0x541733[_0x5d9029(0x2a43)][_0x5d9029(0x33de)]?_0x1a3f8a['resolve'](_0x541733[_0x5d9029(0x2a43)][_0x5d9029(0x2a43)]):_0x1a3f8a[_0x5d9029(0x3bbb)](_0x541733[_0x5d9029(0x2a43)]['message']),_0x4cebe9['delete'](_0x541733[_0x5d9029(0x2a43)]['id']));}async function _0x5d8ad1(_0xe1797c,_0x2ba5d3,_0x54c4fc,_0x19f9bd=!0x0){return new Promise((_0x152483,_0x35f0c4)=>{const _0x16a9ff=a0_0x329b,_0x58a9ec=_0x5a3b93++;_0x4cebe9[_0x16a9ff(0x2d7e)](_0x58a9ec,{'resolve':_0x152483,'reject':_0x35f0c4});const _0x406ce7={'id':_0x58a9ec,'command':_0xe1797c,'useLocal':_0x19f9bd,'token':_0x54c4fc,..._0x2ba5d3};switch(_0xe1797c){case _0x16a9ff(0xcb3):case _0x16a9ff(0x2925):case'search':case'delete':case'update':_0x1e483f[_0x16a9ff(0x4f4a)](_0x406ce7);break;default:_0x35f0c4(_0x16a9ff(0x281)),_0x4cebe9[_0x16a9ff(0x450b)](_0x58a9ec);}});}let _0x1abf8f;function _0x59d041(_0x28a9a6){const _0x4c5a6d=_0x235866;_0x1abf8f=parseInt(_0x28a9a6[_0x4c5a6d(0x428e)](-0x1)),_0x5d8ad1(_0x4c5a6d(0xcb3),{'dbName':_0x28a9a6},'',!0x1);}function _0x37bbfd(_0x5a3956,_0x4d1dc0,_0x165ce8,_0x478b04){const _0x204156=_0x235866;_0x1abf8f!==_0x5a3956&&_0x59d041(_0x204156(0x31f8)+_0x5a3956),_0x5d8ad1(_0x204156(0x2925),{'chatId':_0x5a3956,'role':_0x4d1dc0,'text':''+_0x165ce8},_0x478b04,!0x1);}function _0x6eaaba(_0x19c369,_0x4ea303){const _0x1c6915=_0x235866,_0x4f375b=_0x4ea303[_0x1c6915(0x44dc)]('.'+_0x19c369);let _0x53ffe4=!0x1;_0x4f375b['forEach'](_0x2bce71=>{const _0x42c7f9=_0x1c6915,_0x7498ed=document[_0x42c7f9(0x23d7)](_0x42c7f9(0x257d));_0x7498ed[_0x42c7f9(0x35ce)]=_0x42c7f9(0x1b15),_0x7498ed['role']=_0x42c7f9(0x27aa),_0x7498ed[_0x42c7f9(0x22eb)]=_0x42c7f9(0x146c),_0x2bce71[_0x42c7f9(0x6f5)](_0x7498ed),_0x53ffe4=!0x0;}),_0x53ffe4&&function(_0x354c8c,_0x487001){const _0x1f4190=_0x1c6915,_0x48cdca=_0x487001[_0x1f4190(0x44dc)]('#'+_0x354c8c);_0x48cdca[_0x1f4190(0x4854)](_0x6d5171=>{_0x6d5171['remove']();});}(_0x19c369,_0x4ea303);}function _0xacee53(_0x168876){const _0x496d05=_0x235866;let _0x445608=!0x1;const _0xbdac13=document[_0x496d05(0xe9f)]('.quarto-color-scheme-toggle');function _0x4dd303(_0x296aa3){const _0x90b443=_0x496d05;_0x445608?_0x296aa3['classList']['add']('dark-mode'):_0x296aa3[_0x90b443(0x318e)][_0x90b443(0x80a)](_0x90b443(0xb71));}_0xbdac13&&_0xbdac13[_0x496d05(0x318e)]['contains'](_0x496d05(0x45cb))&&(_0x445608=!0x0),['text-selection-menu',_0x496d05(0x720),_0x496d05(0x1efa),_0x496d05(0x4805),_0x496d05(0x82a)][_0x496d05(0x4854)](_0x3d6e52=>{const _0x4748ea=_0x496d05,_0x876dc8=_0x168876[_0x4748ea(0x3f98)](_0x3d6e52);if(_0x876dc8&&(_0x4dd303(_0x876dc8),_0x876dc8[_0x4748ea(0x44dc)]('*')[_0x4748ea(0x4854)](_0x4dd303),_0x4748ea(0x82a)===_0x3d6e52)){const _0x577899=_0x876dc8[_0x4748ea(0xe9f)](_0x4748ea(0x2918));if(_0x577899&&_0x577899['contentDocument']){const _0x2a9336=_0x577899[_0x4748ea(0x1521)];_0x4dd303(_0x2a9336[_0x4748ea(0x351f)]),_0x2a9336[_0x4748ea(0x44dc)]('*')[_0x4748ea(0x4854)](_0x4dd303);}}});}_0x356cb5(0x459),_0x356cb5(0x1279);var _0x30cd9f=_0x356cb5(0x1121),_0x6d4711=_0x356cb5['n'](_0x30cd9f),_0x489acd=new URL(_0x356cb5(0x1fe3),_0x356cb5['b']),_0xaf8715=new URL(_0x356cb5(0x133e),_0x356cb5['b']);_0x6d4711()(_0x489acd),_0x6d4711()(_0xaf8715);const _0x1912a0=_0x235866(0x443d);function _0xa4590c(){const _0xdbaf40=_0x235866,_0x9a7db0=document['getElementById'](_0xdbaf40(0x42e6));let _0x2447be=_0x9a7db0[_0xdbaf40(0x38cb)]['split']('');const _0x123938='The\x20Generative\x20AI\x20Chapter\x20is\x20Coming\x20Soon...',_0xb14fd3=document['getElementById'](_0xdbaf40(0xe6f));let _0xc23dca=_0x123938[_0xdbaf40(0x29d0)]('')[_0xdbaf40(0x2c94)](_0x17e210=>({'char':_0x17e210,'revealed':!0x1,'settled':!0x1}));function _0x18189b(){const _0x473ef0=_0xdbaf40,_0x37c798='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';return _0x37c798[_0x473ef0(0x32fe)](Math['floor'](0x3e*Math[_0x473ef0(0x4a2c)]()));}function _0x1e8f42(){const _0x36f279=_0xdbaf40,_0x1bec76=[_0x36f279(0x3e6d),_0x36f279(0x1c2a),_0x36f279(0x485f),'borderLeft'];return _0x1bec76[Math['floor'](Math[_0x36f279(0x4a2c)]()*_0x1bec76[_0x36f279(0x205b)])];}function _0x5f1bb5(){const _0x56e96d=_0xdbaf40;let _0x5e6404='#';for(let _0x1b8122=0x0;_0x1b8122<0x6;_0x1b8122++)_0x5e6404+=_0x56e96d(0xb58)[Math[_0x56e96d(0x4dbd)](0x10*Math['random']())];return _0x5e6404;}function _0x443ed3(){const _0x1773f1=_0xdbaf40,_0x5d8fef=_0xc23dca[_0x1773f1(0x2c94)]((_0x138105,_0x9cbb52)=>_0x138105[_0x1773f1(0x2f7d)]?-0x1:_0x9cbb52)[_0x1773f1(0x295e)](_0x23e652=>-0x1!==_0x23e652);if(_0x5d8fef['length']>0x0){const _0x4d9a9d=_0x5d8fef[Math['floor'](Math[_0x1773f1(0x4a2c)]()*_0x5d8fef[_0x1773f1(0x205b)])];_0xc23dca[_0x4d9a9d][_0x1773f1(0x2f7d)]=!0x0;}_0xb14fd3[_0x1773f1(0x38cb)]=_0xc23dca[_0x1773f1(0x2c94)](_0x32d0c7=>_0x32d0c7[_0x1773f1(0x2f7d)]?_0x32d0c7[_0x1773f1(0x4743)]:'\x20')[_0x1773f1(0x379c)]('');}function _0x2369e1(){const _0x4059cd=_0xdbaf40;_0xc23dca['forEach'](_0x192de5=>{const _0x1048dc=a0_0x329b;_0x192de5['revealed']&&!_0x192de5[_0x1048dc(0x3362)]&&Math[_0x1048dc(0x4a2c)]()<0.05&&(_0x192de5[_0x1048dc(0x4743)]=_0x18189b()),_0x192de5['revealed']&&!_0x192de5['settled']&&Math[_0x1048dc(0x4a2c)]()<0.01&&(_0x192de5['settled']=!0x0,_0x192de5['char']=_0x123938[_0xc23dca[_0x1048dc(0x3458)](_0x192de5)]);}),_0xb14fd3[_0x4059cd(0x38cb)]=_0xc23dca['map'](_0x32a131=>_0x32a131['char'])[_0x4059cd(0x379c)](''),_0xc23dca[_0x4059cd(0x3f5f)](_0x4924af=>!_0x4924af[_0x4059cd(0x3362)])&&requestAnimationFrame(_0x2369e1);}requestAnimationFrame(function _0x47229d(){const _0x42151e=_0xdbaf40;!(function(){const _0x1da7c2=a0_0x329b;for(let _0x287ff4=0x0;_0x287ff4<_0x2447be[_0x1da7c2(0x205b)];_0x287ff4++)'\x20'!==_0x2447be[_0x287ff4]&&Math[_0x1da7c2(0x4a2c)]()<0.05&&(_0x2447be[_0x287ff4]=_0x18189b());_0x9a7db0[_0x1da7c2(0x22eb)]=_0x2447be[_0x1da7c2(0x2c94)](_0x5e37c8=>{const _0x7ab22e=_0x1da7c2,_0x1cd6b1=document[_0x7ab22e(0x23d7)](_0x7ab22e(0x3fe3));if(_0x1cd6b1[_0x7ab22e(0x38cb)]=_0x5e37c8,_0x1cd6b1[_0x7ab22e(0x318e)][_0x7ab22e(0x2fd8)](_0x7ab22e(0x540)),'\x20'!==_0x5e37c8&&Math['random']()<0.2){const _0x9f3bed=_0x1e8f42(),_0x3452a8=_0x5f1bb5();_0x1cd6b1[_0x7ab22e(0x3098)][_0x7ab22e(0x378f)]=_0x3452a8,_0x1cd6b1['style'][_0x9f3bed]=_0x7ab22e(0x9ea)+_0x3452a8;}return _0x1cd6b1[_0x7ab22e(0x3250)];})['join']('');}()),(function(){const _0x34abea=a0_0x329b;for(let _0x376a18=0x0;_0x376a18<_0x2447be[_0x34abea(0x205b)];_0x376a18++)'\x20'!==_0x2447be[_0x376a18]&&Math['random']()<0.01&&(_0x2447be[_0x376a18]='\x20');_0x9a7db0['innerHTML']=_0x2447be[_0x34abea(0x2c94)](_0x26419f=>{const _0x6131f7=_0x34abea,_0x5e762e=document[_0x6131f7(0x23d7)](_0x6131f7(0x3fe3));if(_0x5e762e[_0x6131f7(0x38cb)]=_0x26419f,_0x5e762e[_0x6131f7(0x318e)][_0x6131f7(0x2fd8)]('char-border'),'\x20'!==_0x26419f&&Math[_0x6131f7(0x4a2c)]()<0.2){const _0x2f4961=_0x1e8f42(),_0x58f69f=_0x5f1bb5();_0x5e762e[_0x6131f7(0x3098)][_0x6131f7(0x378f)]=_0x58f69f,_0x5e762e['style'][_0x2f4961]='2px\x20solid\x20'+_0x58f69f;}return _0x5e762e[_0x6131f7(0x3250)];})['join']('');}()),''!==_0x2447be['join']('')[_0x42151e(0x1d0e)]()&&requestAnimationFrame(_0x47229d);}),setTimeout(()=>{setInterval(_0x443ed3,0xc8),setTimeout(()=>{requestAnimationFrame(_0x2369e1);},0xfa0);},0x3e8);}function _0x3e76bd(){const _0x5af7bc=_0x235866;document[_0x5af7bc(0xe9f)]('#quarto-document-content')[_0x5af7bc(0x22eb)]+=_0x1912a0,_0xa4590c();}const _0x27cada=_0x235866(0x3c60);let _0x4586ac,_0x2c6959,_0x36a8f0,_0x58daab,_0x4f05ea,_0x541f8f=_0x48e45e(_0x235866(0x2a75)),_0x2eedf2=_0x48e45e(_0x235866(0x1e04)),_0x538513=_0x48e45e('query'),_0x4c99f2='',_0x20a893='',_0x77b020=_0x222211,_0x2040c9=0x0;async function _0x4fafc0(){const _0x509a14=_0x235866,_0x2d8f9a=document[_0x509a14(0x23d7)]('div');_0x2d8f9a['style'][_0x509a14(0x3a28)]=_0x509a14(0x2940),_0x2d8f9a[_0x509a14(0x3098)][_0x509a14(0xf7d)]=_0x509a14(0x3623),document[_0x509a14(0x3673)][_0x509a14(0x1952)](_0x2d8f9a),_0x2c6959=_0x2d8f9a[_0x509a14(0x3d39)]({'mode':'open'});const _0x57466c=document[_0x509a14(0x23d7)]('link');_0x57466c[_0x509a14(0x1f9e)]=_0x509a14(0x17d9),_0x57466c[_0x509a14(0x354f)]='https://cdn.jsdelivr.net/npm/tailwindcss@^2.2.19/dist/tailwind.min.css',_0x2c6959[_0x509a14(0x1952)](_0x57466c);const _0x6ab35a=document[_0x509a14(0x23d7)]('style');_0x6ab35a[_0x509a14(0x38cb)]=_0x509a14(0x5002)+_0x10ba1f()+_0x509a14(0x4f34),_0x2c6959['appendChild'](_0x6ab35a),_0x2c6959[_0x509a14(0x22eb)]+=_0x48a5ab,window[_0x509a14(0x20d0)](_0x509a14(0xfc8),_0x2bde9a=>{const _0x578a1c=_0x509a14;_0x2bde9a[_0x578a1c(0x304a)]&&_0x2bde9a[_0x578a1c(0x304a)][_0x578a1c(0x4a0d)]&&(_0x36a8f0=function(_0xd7f853,_0x50c3d6){const _0x4ff8a7=_0x578a1c,_0x458160=_0xd7f853['querySelector'](_0x4ff8a7(0x1ff8));_0x458160&&(_0x458160['innerHTML']='');}(_0x2c6959,_0x2bde9a[_0x578a1c(0x304a)][_0x578a1c(0x4a0d)]));}),window[_0x509a14(0x20d0)](_0x509a14(0x42fa),async _0x5e84b9=>{const _0x48c8a7=_0x509a14;_0x4c0aad(_0x2c6959);const _0x404c4b=_0x5e84b9[_0x48c8a7(0x304a)]['type'],_0x4e9db3=_0x5e84b9[_0x48c8a7(0x304a)][_0x48c8a7(0x2f35)],_0x1e18e7=_0x5e84b9['detail'][_0x48c8a7(0x43d)],_0x45ca34=_0x5e84b9[_0x48c8a7(0x304a)][_0x48c8a7(0x128c)];let _0x97fcbb=_0x5e84b9['detail'][_0x48c8a7(0x38a9)]||!0x1;const _0x278db8=_0x5e84b9[_0x48c8a7(0x304a)][_0x48c8a7(0x3479)]||!0x1;switch(_0x404c4b){case _0x48c8a7(0x2a75):await async function(_0x1dcd4b,_0x546078=['https://harvard-edge.github.io/cs249r_book/'],_0x5abcf3=0x3,_0x156130=0x3){const _0x58555b=_0x48c8a7;_0x541f8f['reset_fields'](),_0x541f8f[_0x58555b(0x2329)](_0x58555b(0x5a8),_0x1dcd4b),_0x541f8f[_0x58555b(0x2329)]('understanding',_0x5abcf3),_0x541f8f['set_field']('power_up',_0x156130);let _0x33267f=_0x541f8f[_0x58555b(0x53b)](_0x58555b(0x43fc));const _0x358e81=_0x77b020+_0x58555b(0xeba)+_0x1dcd4b+_0x58555b(0xd8e)+_0x33267f;_0x541f8f[_0x58555b(0x2329)](_0x58555b(0x43fc),_0x358e81);const _0x8594f6=_0x541f8f[_0x58555b(0x3e0c)]();_0x8594f6[_0x58555b(0x2c3e)]=_0x58daab,_0x4c99f2='';const _0x17a4c0=_0x4c99f2+_0x27cada,_0x496089=_0x15cf87(_0x2c6959,'ai'),_0x49550c=_0x56d92b(_0x496089);_0x4b25dc(_0x5708f9,_0x49550c);let _0x5c3a25=0x0;_0x501c91(_0x49550c,_0x5c3a25),_0x60383d(_0x17a4c0,_0x496089);let _0x4118e5=0x0;try{for await(let _0x4c1d93 of _0x6b503a(_0x8594f6,_0x4586ac))0x0===_0x4118e5&&(_0x5c3a25+=0x1,_0x501c91(_0x49550c,_0x5c3a25),_0x4c99f2+=_0x58555b(0x1691)+_0x1dcd4b+_0x58555b(0x492d)),_0x4118e5+=0x1,_0x5c3a25+=0x1,_0x501c91(_0x49550c,_0x5c3a25),_0x4c99f2+=_0x4c1d93,_0x60383d(_0x4c99f2,_0x496089),_0x4c0aad(_0x2c6959);_0x4c99f2=_0x4c99f2[_0x58555b(0x1db7)](/\t/g,_0x58555b(0x115)),_0x60383d(_0x4c99f2,_0x496089);}catch(_0x400238){_0x26f7f9(_0x2c6959,_0x400238+_0x58555b(0x593),'error');}_0x37bbfd(_0x36a8f0||0x1,_0x58555b(0x6cd),_0x4c99f2,_0x4586ac);const _0x8fc58f=_0x574c15(_0x2c6959,0x0,[]);_0x101050(_0x2c6959,_0x496089,_0x8fc58f),_0x4f50a1(_0x496089,_0x58555b(0x2b13)),_0x184d80(_0x496089),_0x6eaaba(_0x58555b(0x203b),_0x2c6959),_0x4c0aad(_0x2c6959);}(_0x4e9db3,_0x1e18e7),_0x37bbfd(_0x36a8f0||0x1,_0x48c8a7(0xef),_0x4e9db3,_0x4586ac),_0x2040c9+=0x1;break;case _0x48c8a7(0x9a2):await async function(_0x4575c8,_0x238512=!0x1,_0x58e667=0x3,_0x3ed27e=0x3){const _0x4a4cee=_0x48c8a7;let _0x133e99=_0x4575c8;const _0x723bf3=_0x15cf87(_0x2c6959,_0x4a4cee(0x2d6b));_0x238512&&(_0x133e99=function(_0x5aa458){const _0x2cb017=_0x4a4cee,_0x5671c1=/~\+~([^~]+?)~\+~/g;let _0x4a609b,_0xbfb9fd=[];for(;null!==(_0x4a609b=_0x5671c1[_0x2cb017(0x3bbd)](_0x5aa458));)_0xbfb9fd[_0x2cb017(0x4131)](_0x4a609b[0x1][_0x2cb017(0x1d0e)]());return _0xbfb9fd;}(_0x133e99),_0x133e99='\x0a:::\x20spoiler\x20quote\x0a*'+_0x133e99[0x0]+_0x4a4cee(0x5025)+_0x133e99[0x1]);const _0x90b8e1=function(_0x2f13ea){const _0x47b7b9=_0x4a4cee,_0x4aa7b9=_0x2a66b8[_0x47b7b9(0x4662)](_0x2f13ea),_0x46ca62=document[_0x47b7b9(0x23d7)](_0x47b7b9(0x257d));return _0x46ca62[_0x47b7b9(0x22eb)]=_0x4aa7b9,_0x48c869(_0x46ca62),_0x46ca62['innerHTML'];}(_0x133e99);_0x723bf3[_0x4a4cee(0xe9f)]('p')[_0x4a4cee(0x22eb)]=_0x90b8e1,_0x4c99f2='';const _0x487553=_0x15cf87(_0x2c6959,'ai'),_0x403bd6=_0x56d92b(_0x487553);_0x4b25dc(_0x151414,_0x403bd6);let _0x4dd22a=0x0;_0x501c91(_0x403bd6,_0x4dd22a),_0x60383d(_0x27cada,_0x487553),_0x4c0aad(_0x2c6959);let _0x3de7d2=[],_0x55ea62=[];const _0x46ed16=0x7d0,_0x47a7ae=new Promise((_0x127a25,_0x2323ee)=>setTimeout(()=>_0x2323ee(new Error(_0x4a4cee(0x3212))),_0x46ed16));try{_0x2040c9>0x0&&(_0x3de7d2=await async function(_0x5f5aa1,_0x2220d5,_0x503b2e=0x5,_0x2f41a3){const _0x4b9785=_0x4a4cee;let _0x23daf3,_0x3d84ed=_0x4b9785(0x31f8)+_0x5f5aa1;return _0x1abf8f!==_0x5f5aa1&&(_0x3d84ed=_0x4b9785(0x31f8)+_0x5f5aa1,_0x59d041(_0x3d84ed)),_0x23daf3=await _0x5d8ad1(_0x4b9785(0x1929),{'chatId':_0x5f5aa1,'text':_0x2220d5,'k':_0x503b2e},_0x2f41a3,!0x1),_0x23daf3=function(_0x447dbf){const _0x5b4314=_0x4b9785,_0x1d8b9a=[];let _0x4302fa=null,_0x2c99a8='';return _0x447dbf[_0x5b4314(0x4854)](_0x57b79d=>{const _0x1c026d=_0x5b4314,{role:_0x2806f0,text:_0x5bd80f}=_0x57b79d['object'];_0x2806f0!==_0x4302fa?(null!==_0x4302fa&&_0x1d8b9a[_0x1c026d(0x4131)]({'role':_0x4302fa,'content':_0x2c99a8}),_0x4302fa=_0x2806f0,_0x2c99a8=_0x5bd80f):_0x2c99a8+='\x20'+_0x5bd80f;}),null!==_0x4302fa&&_0x1d8b9a['push']({'role':_0x4302fa,'content':_0x2c99a8}),_0x1d8b9a;}(_0x23daf3),_0x23daf3;}(_0x36a8f0||0x1,_0x4575c8,0x5,_0x4586ac)),_0x55ea62=await Promise[_0x4a4cee(0x4456)]([_0x27be53(_0x4575c8,_0x4586ac),_0x47a7ae]),_0x4dd22a+=0x1,_0x501c91(_0x403bd6,_0x4dd22a);}catch(_0x3ab0c4){0x0===_0x55ea62[_0x4a4cee(0x205b)]&&(_0x55ea62=[{'text':'Error\x20retrieving\x20text','url':_0x4a4cee(0x17b6)}],_0x26f7f9(_0x2c6959,_0x4a4cee(0x4b55),_0x4a4cee(0x4b47)));}let _0x19cc1a=[];const _0x47745c=_0x55ea62['map'](_0x282fe5=>(_0x19cc1a[_0x4a4cee(0x4131)](_0x282fe5[_0x4a4cee(0x200e)]),_0x282fe5[_0x4a4cee(0x2f35)]))['join']('\x0a');let _0x324c51='',_0x379feb=_0x538513[_0x4a4cee(0x53b)](_0x4a4cee(0x43fc));const _0x461ea4=_0x77b020+_0x4a4cee(0xe15)+_0x47745c+'\x20\x0a\x0a\x20QUESTION:\x20'+_0x4575c8+_0x4a4cee(0xd8e)+_0x379feb,_0x2f8de1={'prompt':_0x461ea4,'messages':_0x3de7d2};_0x2f8de1[_0x4a4cee(0x2c3e)]=_0x58daab,_0x4dd22a+=0x1,_0x501c91(_0x403bd6,_0x4dd22a);let _0xc2225c=0x0;_0x4dd22a+=0x1,_0x501c91(_0x403bd6,_0x4dd22a);try{for await(let _0x3acd9e of _0x6b503a(_0x2f8de1,_0x4586ac,!0x0,!0x0))0x0===_0xc2225c&&(_0x4dd22a+=0x1,_0x501c91(_0x403bd6,_0x4dd22a)),_0xc2225c+=0x1,_0x324c51+=_0x3acd9e,_0x60383d(_0x324c51,_0x487553);}catch(_0x3a7f6a){_0x26f7f9(_0x2c6959,_0x3a7f6a+_0x4a4cee(0x593),_0x4a4cee(0x4b47));}_0x37bbfd(_0x36a8f0||0x1,_0x4a4cee(0x6cd),_0x324c51,_0x4586ac),_0x4c99f2=_0x324c51+_0x4a4cee(0x3b9a);const _0xbf5f40=_0x574c15(_0x2c6959,0x0,_0x19cc1a);_0x101050(_0x2c6959,_0x487553,_0xbf5f40),await _0x4f50a1(_0x487553,'progress'),_0x184d80(_0x487553),_0x4c0aad(_0x2c6959),_0x6eaaba(_0x4a4cee(0x203b),_0x2c6959),await _0x51e843();}(_0x4e9db3,_0x278db8),_0x37bbfd(_0x36a8f0||0x1,'user',_0x4e9db3,_0x4586ac),_0x2040c9+=0x1;break;case _0x48c8a7(0x1e04):await async function(_0x3fe5ad,_0x29dcc5=0x3,_0x11cc4b=0x14){const _0x15a455=_0x48c8a7;_0x2eedf2[_0x15a455(0x2329)]('quote',_0x3fe5ad),_0x2eedf2[_0x15a455(0x2329)]('understanding',_0x29dcc5),_0x2eedf2[_0x15a455(0x2329)](_0x15a455(0x3442),_0x11cc4b);const _0x4a581a=_0x2eedf2[_0x15a455(0x3e0c)]();_0x4a581a[_0x15a455(0x2c3e)]=_0x15a455(0x1c76);const _0x5bd6f8=_0x15cf87(_0x2c6959,'ai');let _0x38da71='';const _0x4885fb=_0x56d92b(_0x5bd6f8);_0x4b25dc(_0x12d0da,_0x4885fb);let _0x133944=0x0;_0x501c91(_0x4885fb,_0x133944),_0x60383d(_0x27cada,_0x5bd6f8),_0x133944+=0x1,_0x501c91(_0x4885fb,_0x133944);try{if(_0x38da71=await async function(_0x13ac50,_0x576f5c){const _0x2cb6f1=_0x15a455;try{const _0x28af3a=await fetch(_0x72c272,{'method':'POST','headers':{'Content-Type':_0x2cb6f1(0x198d),'Authorization':_0x2cb6f1(0x2485)+_0x576f5c},'body':JSON[_0x2cb6f1(0xf0b)](_0x13ac50)});if(!_0x28af3a['ok'])throw new Error(_0x2cb6f1(0x1a58)+_0x28af3a[_0x2cb6f1(0x33de)]);return await _0x28af3a[_0x2cb6f1(0x25b9)]();}catch(_0x13fb96){}}(_0x4a581a,_0x4586ac),_0x291eba(_0x5bd6f8),_0x133944+=0x1,_0x501c91(_0x4885fb,_0x133944),Array[_0x15a455(0x477f)](_0x38da71))_0x457895(_0x5bd6f8,_0x38da71);else{if(null!==_0x38da71&&_0x15a455(0x2b58)==typeof _0x38da71){const _0x4adbab=Object[_0x15a455(0x2f75)](_0x38da71);if(_0x4adbab[_0x15a455(0x205b)]>0x0&&_0x38da71[_0x4adbab[0x0]][_0x15a455(0x205b)]>0x0){const _0x33d57c=_0x4adbab[0x0];_0x457895(_0x5bd6f8,_0x38da71[_0x33d57c]);}else _0x38da71='0',_0x457895(_0x5bd6f8,_0x38da71),_0x26f7f9(_0x2c6959,_0x15a455(0xd62),'Error');}else _0x38da71=_0x46b4d3(_0x3fe5ad),_0x457895(_0x5bd6f8,_0x38da71),_0x26f7f9(_0x5bd6f8,'AI\x20returned\x20an\x20unexpected\x20response.\x20\x20Building\x20quiz\x20locally.','Error');}}catch(_0x4d829e){const _0xec4bed=_0x46b4d3(_0x3fe5ad);_0x291eba(_0x5bd6f8),_0x457895(_0x5bd6f8,_0xec4bed),_0x26f7f9(_0x5bd6f8,_0x15a455(0x3a60),_0x15a455(0x3e38));}_0x37bbfd(_0x36a8f0||0x1,'assistant',_0x38da71,_0x4586ac),_0x133944+=0x1,_0x501c91(_0x4885fb,_0x133944),_0x133944+=0x1,_0x501c91(_0x4885fb,_0x133944),_0x4f50a1(_0x5bd6f8,_0x15a455(0x2b13)),_0x4c0aad(_0x2c6959),_0x6eaaba(_0x15a455(0x203b),_0x2c6959),await _0x51e843();}(_0x4e9db3),_0x37bbfd(_0x36a8f0||0x1,'user',_0x4e9db3,_0x4586ac),_0x2040c9+=0x1;break;case _0x48c8a7(0x2373):await async function(_0x2cfed9,_0x1cd7f4=[_0x48c8a7(0x17b6)],_0x546d3a=0x3,_0x141d51=0x3){const _0x505165=_0x48c8a7;_0x541f8f['set_field']('quote',''),_0x541f8f[_0x505165(0x2329)](_0x505165(0x497e),_0x546d3a),_0x541f8f[_0x505165(0x2329)](_0x505165(0x3442),_0x141d51);let _0x3b3da8=_0x541f8f[_0x505165(0x53b)](_0x505165(0x43fc));_0x3b3da8=_0x2cfed9,_0x541f8f['set_field'](_0x505165(0x43fc),_0x77b020+'\x20'+_0x3b3da8+_0x505165(0x4fb4));const _0x1119aa=_0x541f8f['return_all_fields']();_0x1119aa[_0x505165(0x2c3e)]=_0x58daab,_0x4c99f2='';const _0x10919d=_0x4c99f2+_0x27cada,_0x4656db=_0x15cf87(_0x2c6959,'ai'),_0x44a1a3=_0x56d92b(_0x4656db);_0x4b25dc(_0x18902f,_0x44a1a3);let _0x56232b=0x0;_0x501c91(_0x44a1a3,_0x56232b),_0x60383d(_0x10919d,_0x4656db),_0x56232b+=0x1,_0x501c91(_0x44a1a3,_0x56232b);let _0x94c437=0x0;_0x56232b+=0x1,_0x501c91(_0x44a1a3,_0x56232b);try{for await(let _0x57e366 of _0x6b503a(_0x1119aa,_0x4586ac))_0x94c437+=0x1,_0x4c99f2+=_0x57e366,_0x60383d(_0x4c99f2,_0x4656db);}catch(_0xe4dcfc){_0x26f7f9(_0x2c6959,_0xe4dcfc+_0x505165(0x593),_0x505165(0x4b47));}_0x37bbfd(_0x36a8f0||0x1,'assistant',_0x4c99f2,_0x4586ac),_0x4c99f2+=_0x505165(0x2214),_0x56232b+=0x1,_0x501c91(_0x44a1a3,_0x56232b);const _0x3f67c3=_0x574c15(_0x2c6959,0x0,[]);_0x101050(_0x2c6959,_0x4656db,_0x3f67c3),_0x4f50a1(_0x4656db,'progress'),_0x184d80(_0x4656db),_0x4c0aad(_0x2c6959),_0x6eaaba(_0x505165(0x203b),_0x2c6959),await _0x51e843();}(_0x4e9db3,_0x1e18e7),_0x37bbfd(_0x36a8f0||0x1,_0x48c8a7(0xef),_0x4e9db3,_0x4586ac),_0x2040c9+=0x1;break;case _0x48c8a7(0x5a4):await _0x186a0e(_0x4e9db3,['https://harvard-edge.github.io/cs249r_book/'],0x3,0x3,_0x97fcbb),_0x37bbfd(_0x36a8f0||0x1,_0x48c8a7(0xef),_0x4e9db3,_0x4586ac),_0x2040c9+=0x1;break;case _0x48c8a7(0x3ac0):_0x77b020=_0x222211+_0x4e9db3;break;case'settings':_0x3ad8be=_0x45ca34[_0x48c8a7(0x2862)],_0x5db997=!_0x3ad8be,_0x58daab=_0x45ca34[_0x48c8a7(0x445a)];break;default:_0x26f7f9(_0x2c6959,_0x48c8a7(0x3155)+_0x404c4b,'Error');}var _0x3ad8be;}),_0x31f41c(_0x2c6959),_0x36b36c=_0x2c6959,function(_0x38fd97){const _0x374820=_0x509a14,_0x6228ff=_0x38fd97['querySelector'](_0x374820(0x3a70)),_0x5a6796=_0x38fd97[_0x374820(0xe9f)]('#settings-btn'),_0x2293d1=_0x6228ff[_0x374820(0xe9f)](_0x374820(0x1c14));let _0x130d01=_0x38fd97[_0x374820(0xe9f)](_0x374820(0x2e9b));if(!_0x130d01){const _0x36a0ff=_0x38fd97[_0x374820(0xe9f)]('#text-selection-menu');_0x130d01=document[_0x374820(0x23d7)](_0x374820(0x257d)),_0x130d01[_0x374820(0x318e)][_0x374820(0x2fd8)](_0x374820(0x448b)),_0x130d01[_0x374820(0x3098)][_0x374820(0x3d7a)]='\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20width:\x20100vw;\x0a\x20\x20\x20\x20\x20\x20height:\x20100vh;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20z-index:\x201000;\x0a\x20\x20\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20',_0x36a0ff[_0x374820(0x1952)](_0x130d01);}const _0x7f32ea=()=>{const _0x23f0bb=_0x374820;_0x6228ff['style'][_0x23f0bb(0x254a)]=_0x23f0bb(0x80b),_0x130d01['style'][_0x23f0bb(0x254a)]='none';};_0x5a6796[_0x374820(0x20d0)]('click',()=>{const _0x1df4b8=_0x374820,_0x529b16=_0x1df4b8(0x3eab)===_0x6228ff[_0x1df4b8(0x3098)]['display'];_0x6228ff[_0x1df4b8(0x3098)][_0x1df4b8(0x254a)]=_0x529b16?_0x1df4b8(0x80b):_0x1df4b8(0x3eab),_0x130d01['style'][_0x1df4b8(0x254a)]=_0x529b16?'none':_0x1df4b8(0x3eab);}),_0x2293d1[_0x374820(0x20d0)](_0x374820(0x4da9),_0x7f32ea),_0x130d01[_0x374820(0x20d0)](_0x374820(0x4da9),_0x7f32ea),_0x6228ff[_0x374820(0x20d0)](_0x374820(0x4da9),_0xc652ba=>_0xc652ba[_0x374820(0x531)]()),window[_0x374820(0x20d0)](_0x374820(0x4da9),_0x136059=>{const _0x165b90=_0x374820;_0x136059[_0x165b90(0x1245)]===_0x6228ff&&_0x7f32ea();}),window[_0x374820(0x20d0)](_0x374820(0xd1c),_0x430462=>{const _0x1cca36=_0x374820;_0x1cca36(0x1f74)===_0x430462[_0x1cca36(0x435)]&&_0x7f32ea();});}(_0x2c6959),function(_0x58ba71){const _0xd582f9=_0x509a14,_0x597be6=document[_0xd582f9(0x23d7)](_0xd582f9(0x2db6));_0x597be6['innerHTML']=_0x2e724d;const _0x1a5cbd=_0x58ba71['querySelector'](_0xd582f9(0x13b2));_0x1a5cbd&&(_0x1a5cbd['innerHTML']='',_0x1a5cbd['appendChild'](_0x597be6['content']['cloneNode'](!0x0)));}(_0x2c6959),_0x15fe64(_0x2c6959),_0x4cdca2(_0x2c6959),function(_0x205cf5){const _0xa7a2f1=_0x509a14,_0x2d39d6=_0x205cf5[_0xa7a2f1(0x3f98)](_0xa7a2f1(0x18c0));_0x2d39d6&&_0x2d39d6[_0xa7a2f1(0x20d0)](_0xa7a2f1(0x2f77),function(){const _0x3d4f3f=_0xa7a2f1;this[_0x3d4f3f(0x3527)]&&function(_0x5abab3,_0x2eb1c6=_0x3d4f3f(0x720)){const _0x195eda=_0x3d4f3f,_0x162fb7=_0x5abab3[_0x195eda(0xe9f)]('#'+_0x2eb1c6);_0x162fb7&&(_0x162fb7[_0x195eda(0x318e)][_0x195eda(0x160d)](_0x195eda(0x17f8))||_0x162fb7[_0x195eda(0x318e)][_0x195eda(0x2fd8)](_0x195eda(0x17f8)));}(_0x205cf5);});}(_0x2c6959),_0x2c9fc9(_0x2c6959),function(_0xf5bb3a){const _0x28cf72=_0x509a14,_0x28a85b=document[_0x28cf72(0x23d7)](_0x28cf72(0x2db6));_0x28a85b[_0x28cf72(0x22eb)]=_0x151ffd;const _0x3aeab5=_0xf5bb3a[_0x28cf72(0xe9f)](_0x28cf72(0x3f63));_0x3aeab5&&_0x3aeab5['appendChild'](_0x28a85b[_0x28cf72(0x498f)][_0x28cf72(0x1c24)](!0x0));}(_0x2c6959),function(_0x18dbb3){const _0x3099f7=_0x509a14,_0x2de2a6=_0x18dbb3[_0x3099f7(0xe9f)]('#openModal-feedback'),_0x419a62=_0x18dbb3[_0x3099f7(0xe9f)](_0x3099f7(0x1346)),_0x7cfa44=_0x18dbb3[_0x3099f7(0xe9f)](_0x3099f7(0x3f1d));_0x2de2a6[_0x3099f7(0x20d0)]('click',()=>{const _0x2147e5=_0x3099f7;_0x7cfa44[_0x2147e5(0x318e)][_0x2147e5(0x80a)]('hidden');}),_0x419a62[_0x3099f7(0x20d0)](_0x3099f7(0x4da9),()=>{const _0x16d1b2=_0x3099f7;_0x7cfa44[_0x16d1b2(0x318e)][_0x16d1b2(0x2fd8)]('hidden');});}(_0x2c6959);const _0x28cb6a=new _0x1cf4a6(_0x2c6959);_0x28cb6a['init'](),_0x77b020=_0x28cb6a[_0x509a14(0x268c)](),_0x36a8f0=await async function(_0x4dc75e){const _0x5238df=_0x509a14;let _0x17676;try{const _0x391f72=(function(){const _0x54021a=a0_0x329b,_0x3519a7=localStorage[_0x54021a(0x22a5)]('mostRecentID');return _0x3519a7?parseInt(_0x3519a7,0xa):null;}());null!==_0x391f72&&_0x50193f(_0x4dc75e,_0x391f72)['then'](()=>{})[_0x5238df(0x424a)](_0x2d4bdb=>{});}catch(_0x266ef4){}return _0x59d041(_0x5238df(0x31f8)+(_0x17676||0x1)),_0x17676;}(_0x2c6959),_0x226a10(_0x2c6959),function(_0x35ab2d){const _0x27a793=_0x509a14;_0xacee53(_0x35ab2d),new MutationObserver(_0xede87b=>{const _0x7341f2=a0_0x329b;for(const _0x3a5a0d of _0xede87b)_0x7341f2(0x1b9c)===_0x3a5a0d['type']&&_0x7341f2(0x42ec)===_0x3a5a0d[_0x7341f2(0xb9f)]&&_0xacee53(_0x35ab2d);})[_0x27a793(0x2e34)](document[_0x27a793(0x3673)],{'attributes':!0x0,'attributeFilter':[_0x27a793(0x42ec)]}),window[_0x27a793(0x23f3)]('(prefers-color-scheme:\x20dark)')[_0x27a793(0x20d0)](_0x27a793(0x2f77),()=>{_0xacee53(_0x35ab2d);});}(_0x2c6959),_0x4f05ea[_0x509a14(0x1fa2)]('generative_ai')&&_0x3e76bd(),function(_0x45dc1c,_0x2137d5){const _0x267a1d=_0x509a14;if(_0x2137d5){const _0x46715a=_0x45dc1c['getElementById'](_0x267a1d(0x64f));return _0x46715a[_0x267a1d(0x3098)][_0x267a1d(0x254a)]=_0x267a1d(0x3eab),setTimeout(()=>{const _0x3b5d6=_0x267a1d;_0x46715a[_0x3b5d6(0x3098)]['display']=_0x3b5d6(0x80b);},0xbb8),_0x2137d5;}{const _0x3dba50=_0x45dc1c[_0x267a1d(0x3f98)]('error-notice');_0x3dba50['style']['display']=_0x267a1d(0x3eab),setTimeout(()=>{const _0x22b068=_0x267a1d;_0x3dba50[_0x22b068(0x3098)][_0x22b068(0x254a)]=_0x22b068(0x80b);},0xbb8);}}(_0x2c6959,_0x4586ac);}function _0x46d0d6(_0x143dbc){const _0x33cf55=_0x235866,_0x4f2e4a=_0x143dbc[_0x33cf55(0x1827)];_0x143dbc[_0x33cf55(0x1827)]='',_0x186a0e(_0x4f2e4a,[_0x33cf55(0x17b6)],0x3,0x3,!0x0),_0x4c0aad(_0x2c6959);}async function _0x186a0e(_0x43093d,_0x3ab740=['https://harvard-edge.github.io/cs249r_book/'],_0x21b457=0x3,_0x4f33f1=0x3,_0x4f1f01=!0x1){const _0x1daead=_0x235866,_0x937ad7=window[_0x1daead(0x94a)][_0x1daead(0x354f)];_0x4f05ea!==_0x937ad7&&(_0x4f05ea=_0x937ad7,_0x4f1f01=!0x0);const _0x2504ee=_0x15cf87(_0x2c6959,'ai'),_0x1460e9=_0x56d92b(_0x2504ee);_0x4b25dc(_0x14a33c,_0x1460e9);let _0x16c662=0x0;_0x501c91(_0x1460e9,_0x16c662),_0x60383d(_0x27cada,_0x2504ee),_0x16c662+=0x1,_0x501c91(_0x1460e9,_0x16c662),_0x541f8f[_0x1daead(0x2329)](_0x1daead(0x5a8),''),_0x541f8f[_0x1daead(0x2329)](_0x1daead(0x497e),_0x21b457),_0x541f8f['set_field'](_0x1daead(0x3442),_0x4f33f1);let _0x5a9cc9=_0x541f8f[_0x1daead(0x53b)](_0x1daead(0x43fc));_0x5a9cc9=_0x1daead(0x53d)+_0x43093d,_0x541f8f[_0x1daead(0x2329)](_0x1daead(0x43fc),_0x5a9cc9);const _0x4fa4d1=_0x541f8f[_0x1daead(0x3e0c)]();_0x4fa4d1['model']=_0x58daab;try{let _0x57ede0;if(!_0x20a893||_0x4f1f01){let _0x776a75='';for await(let _0x131b52 of _0x6b503a(_0x4fa4d1,_0x4586ac))_0x776a75+=_0x131b52;_0x57ede0=_0x776a75,_0x20a893=_0x57ede0;}_0x16c662+=0x1,_0x501c91(_0x1460e9,_0x16c662);const _0xbdd97d=Math[_0x1daead(0x4a2c)]()[_0x1daead(0x44de)](0x24)[_0x1daead(0x3934)](0x2,0xf);_0x60383d(await _0x3b95cd(0x0,0x0,_0xbdd97d,_0x20a893,0xa),_0x2504ee,0x1);const _0x3bb922=_0x2c6959[_0x1daead(0xe9f)]('#button-more-papers-'+_0xbdd97d),_0x59893c=_0x2c6959[_0x1daead(0xe9f)]('#more-papers-'+_0xbdd97d),_0x5eefc0=_0x2c6959[_0x1daead(0xe9f)]('#more-papers-search-'+_0xbdd97d),_0x5a89ab=_0x2c6959[_0x1daead(0xe9f)](_0x1daead(0x42a4)+_0xbdd97d);_0x3bb922[_0x1daead(0x20d0)]('click',function(){const _0x137e5d=_0x1daead;_0x59893c&&(_0x59893c[_0x137e5d(0x3098)][_0x137e5d(0x254a)]=_0x137e5d(0x3eab),this[_0x137e5d(0x3098)][_0x137e5d(0x254a)]='none');}),_0x5eefc0[_0x1daead(0x20d0)]('keydown',function(_0x19ccd4){const _0x27a746=_0x1daead;_0x27a746(0x50be)===_0x19ccd4[_0x27a746(0x435)]&&_0x59893c&&_0x46d0d6(this);}),_0x5a89ab[_0x1daead(0x20d0)](_0x1daead(0x4da9),function(){_0x59893c&&_0x46d0d6(_0x5eefc0);}),_0x16c662+=0x1,_0x501c91(_0x1460e9,_0x16c662);}catch(_0x57de83){_0x26f7f9(_0x2c6959,_0x57de83+_0x1daead(0x593),'error');}_0x16c662+=0x1,_0x501c91(_0x1460e9,_0x16c662);const _0x16d79f=_0x574c15(_0x2c6959,0x0,[]);_0x101050(_0x2c6959,_0x2504ee,_0x16d79f),_0x4f50a1(_0x2504ee,_0x1daead(0x2b13)),_0x184d80(_0x2504ee),function(_0x153fd6){const _0x30d6d3=_0x1daead;_0x153fd6['querySelectorAll']('a')[_0x30d6d3(0x4854)](_0xb8e405=>{const _0x8bd2a5=_0x30d6d3;_0xb8e405[_0x8bd2a5(0x2987)](_0x8bd2a5(0x1245),_0x8bd2a5(0x2c1b)),_0xb8e405[_0x8bd2a5(0x2987)]('rel',_0x8bd2a5(0x2a9c));});}(_0x2504ee),_0x4c0aad(_0x2c6959),_0x6eaaba(_0x1daead(0x203b),_0x2c6959),await _0x51e843();}!(async function(){const _0x170603=_0x235866;_0x4f05ea=window[_0x170603(0x94a)]['href'];const _0x1da1a1=new URLSearchParams(window[_0x170603(0x94a)][_0x170603(0x1929)]),_0x55e836=_0x1da1a1['get']('x'),_0x18bdf=_0x1da1a1[_0x170603(0x2685)]('y');_0x55e836&&_0x18bdf&&window[_0x170603(0x5d2)](parseInt(_0x55e836,0xa),parseInt(_0x18bdf,0xa)),_0x4586ac=await(async function(){const _0x48b5a2=_0x170603;return fetch(_0x200754+_0x48b5a2(0x4154),{'method':_0x48b5a2(0x4827),'headers':{'Content-Type':_0x48b5a2(0x198d)},'body':JSON[_0x48b5a2(0xf0b)]({'username':_0x48b5a2(0x16f5),'password':_0x48b5a2(0x755)})})[_0x48b5a2(0x452b)](_0x3685aa=>{const _0x484a7f=_0x48b5a2;if(!_0x3685aa['ok'])throw new Error('Network\x20response\x20was\x20not\x20ok');return _0x3685aa[_0x484a7f(0x25b9)]();})['then'](async _0x51679f=>{const _0x33e597=_0x48b5a2,_0x31942f=_0x51679f[_0x33e597(0x4154)];return localStorage[_0x33e597(0x3acc)](_0x33e597(0x4e24),_0x31942f),_0x31942f;})['catch'](_0x5d9ce3=>{throw _0x5d9ce3;});}()),'loading'===document[_0x170603(0xdbe)]?document[_0x170603(0x20d0)](_0x170603(0x205c),_0x4fafc0):_0x4fafc0();}());let _0x2463c7=_0x36a8f0;async function _0x51e843(){const _0x406257=_0x235866;var _0x2e2162;await new Promise(_0x2d8c17=>setTimeout(_0x2d8c17,0x7d0)),_0x36a8f0=await _0x1be061(_0x2c6959,_0x36a8f0),_0x2e2162=_0x36a8f0,localStorage[_0x406257(0x3acc)](_0x406257(0x3792),_0x2e2162[_0x406257(0x44de)]()),_0x36a8f0!=_0x2463c7&&(_0x2040c9=0x0);}})());})()));function a0_0x461a(){const _0x2eb3a2=['Antonyms','splice','foptnum','isOrdinal','may','energy','Disjoint','AMORLINC','⩯','ds_list_delete','ai-message','ViewAngle','setParticleRandom','gesture_drag_time','⥝','cdsqrt','setLightIntensity','\x5c*/','isNull','nearSupplies','∼','AudioAmplify','grid-gap','SplQueue','architecture','Cap’n\x20Proto','entries','exception','ManagedLibraryExpressionID','Closing','ish','feb','phy_joint_max_length','alta','EDIT','the-well','CharacterName','gesture_get_rotate_time','pattern','sinh','audio_get_recorder_count','unitCombatMode','variable_instance_exists','show_question_async','ImageCollage','Hypergeometric2F1','first','#Singular\x20(seems|appears)\x20#Adverb?\x20[#PastTense$]','external','MatrixForm','Θ','RowSpacings','dr-john-foo','MomentEvaluate','(one|1|#Copula|#Infinitive)','network_create_socket','part_type_destroy','mask','ImageRestyle','stanfuncs','fullscreen','ĜĝĞğĠġĢģƓǤǥǦǧǴǵ','Σ','variable_instance_set','excel','src_Z','InverseJacobiNC','CurryApplied','transparent','_groups','Lasso','(bring|went|go|drive|run|bike)\x20to\x20[%Noun|Verb%]','ds_grid_get_disk_sum','setLightAttenuation','quadrillion','elsif','CoefficientRules','FlattenLayer','firstname-titlecase','ő','Enter','mask-image','CreateShortCut','ev_joystick2_left','.explains_wrapper','#Value\x20[(square|cubic)]\x20#Unit','GeoPolygon','RightArrowLeftArrow','synchronizedTriggers','base-uri','lowerCase','sizeof','gesture_get_pinch_angle_towards','2-tagYear','function\x20constructor\x20destructor\x20procedure','FindEquationalProof','cloud_synchronise','WinVista','DELETE','↙','inline','have\x20not','FunctionAnalytic','SelectionCellParentStyle','shownWarrant','[i]','noiseSeed','⎱','CardinalBSplineBasis','setzcomp','⥽','Cepstrogram','path_get_name','Back','border-right-width','ctrlCreate','SpheroidalQS','$assertpassoff','s_eventually','POISSON.DIST','draw_sprite','ℙ','vec','copied!','(#Verb\x20&&\x20@hasHyphen)\x20over','object_get_physics','instance_count','$FrontEnd','DMAX','(got|were|was|is|are|am)\x20(#PastTense|#Participle)','Resampling','™','allowDamage','million','lnbSetColor','input_unit','загрузитьизфайла\x20вебклиент\x20вместо\x20внешнеесоединение\x20клиент\x20конецобласти\x20мобильноеприложениеклиент\x20мобильноеприложениесервер\x20наклиенте\x20наклиентенасервере\x20наклиентенасерверебезконтекста\x20насервере\x20насерверебезконтекста\x20область\x20перед\x20после\x20сервер\x20толстыйклиентобычноеприложение\x20толстыйклиентуправляемоеприложение\x20тонкийклиент\x20','ProcessEstimator','getSoundController','Extraction','ControllabilityMatrix','listIndent','WinsorizedVariance','InputStringPacket','EvaluationElements','SearchHead','ScaledMousePosition','serverName','AlignmentMarker','err','getHitPointDamage','WordSeparators','OutputAutoOverwrite','TextRecognize','CompleteKaryTree',')([\x5cs[(\x5c]|])','sum','TextOrdinal','->|<-','firstBackpack','menuAdd','\x5c$&','RRSIG','rising_factorial','∬','CellLabelTemplate','ds_grid_get_min','atanh','ev_user4','s_open','IMSQRT','calories','EnumRegValue','presumedFemale','default_trireg_strength','ToDate','⊲','achievement_achievement_info','mp_potential_step_object','compileScript','Superscript','setPiPViewDistance','ds_stack_destroy','PredictorInformation','alarm_set','treat-them-like','macro','$WolframID','__SOURCE_FILE__','←','menuSize','istringstream','csrf_token','view_set_hport','ArrayIterator','NumericQ','VerticalSlider','diag_activeSQSScripts','(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)','ImprovementImportance','CoulombF','norm2','≵','⟿','SharingList','fort','_Thread_local','DiagonalizableMatrixQ','HeaderStyle','PHP\x20template','NextSequenceValue','fade_in','TrackCellChangeTimes','StringTrim','fwrite','RegionResize','HeatSymmetryValue','field_simplify_eq','ibset','\x5cb0[bB][01]+(?:_[01]+)*\x5cb','Cubics','CloudObject','management','TextSearch','IncludeHydrogens','CVI','LinkPatterns','≿','Subfactorial','switch','Snowfall','file_text_eof','have\x20[#PresentTense]','MMULT','dhms','saveregisters','q|0','#Modal\x20(#Adverb|not)+?\x20[have]\x20(#Adverb|not)+?\x20[had]\x20(#Adverb|not)+?\x20#Verb','qsysfunc','nearestObject','cityNameRead','alog\x20alog10\x20amax0\x20amax1\x20amin0\x20amin1\x20amod\x20cabs\x20ccos\x20cexp\x20clog\x20csin\x20csqrt\x20dabs\x20dacos\x20dasin\x20datan\x20datan2\x20dcos\x20dcosh\x20ddim\x20dexp\x20dint\x20dlog\x20dlog10\x20dmax1\x20dmin1\x20dmod\x20dnint\x20dsign\x20dsin\x20dsinh\x20dsqrt\x20dtan\x20dtanh\x20float\x20iabs\x20idim\x20idint\x20idnint\x20ifix\x20isign\x20max0\x20max1\x20min0\x20min1\x20sngl\x20algama\x20cdabs\x20cdcos\x20cdexp\x20cdlog\x20cdsin\x20cdsqrt\x20cqabs\x20cqcos\x20cqexp\x20cqlog\x20cqsin\x20cqsqrt\x20dcmplx\x20dconjg\x20derf\x20derfc\x20dfloat\x20dgamma\x20dimag\x20dlgama\x20iqint\x20qabs\x20qacos\x20qasin\x20qatan\x20qatan2\x20qcmplx\x20qconjg\x20qcos\x20qcosh\x20qdim\x20qerf\x20qerfc\x20qexp\x20qgamma\x20qimag\x20qlgama\x20qlog\x20qlog10\x20qmax1\x20qmin1\x20qmod\x20qnint\x20qsign\x20qsin\x20qsinh\x20qsqrt\x20qtan\x20qtanh\x20abs\x20acos\x20aimag\x20aint\x20anint\x20asin\x20atan\x20atan2\x20char\x20cmplx\x20conjg\x20cos\x20cosh\x20exp\x20ichar\x20index\x20int\x20log\x20log10\x20max\x20min\x20nint\x20sign\x20sin\x20sinh\x20sqrt\x20tan\x20tanh\x20print\x20write\x20dim\x20lge\x20lgt\x20lle\x20llt\x20mod\x20nullify\x20allocate\x20deallocate\x20adjustl\x20adjustr\x20all\x20allocated\x20any\x20associated\x20bit_size\x20btest\x20ceiling\x20count\x20cshift\x20date_and_time\x20digits\x20dot_product\x20eoshift\x20epsilon\x20exponent\x20floor\x20fraction\x20huge\x20iand\x20ibclr\x20ibits\x20ibset\x20ieor\x20ior\x20ishft\x20ishftc\x20lbound\x20len_trim\x20matmul\x20maxexponent\x20maxloc\x20maxval\x20merge\x20minexponent\x20minloc\x20minval\x20modulo\x20mvbits\x20nearest\x20pack\x20present\x20product\x20radix\x20random_number\x20random_seed\x20range\x20repeat\x20reshape\x20rrspacing\x20scale\x20scan\x20selected_int_kind\x20selected_real_kind\x20set_exponent\x20shape\x20size\x20spacing\x20spread\x20sum\x20system_clock\x20tiny\x20transpose\x20trim\x20ubound\x20unpack\x20verify\x20achar\x20iachar\x20transfer\x20dble\x20entry\x20dprod\x20cpu_time\x20command_argument_count\x20get_command\x20get_command_argument\x20get_environment_variable\x20is_iostat_end\x20ieee_arithmetic\x20ieee_support_underflow_control\x20ieee_get_underflow_mode\x20ieee_set_underflow_mode\x20is_iostat_eor\x20move_alloc\x20new_line\x20selected_char_kind\x20same_type_as\x20extends_type_of\x20acosh\x20asinh\x20atanh\x20bessel_j0\x20bessel_j1\x20bessel_jn\x20bessel_y0\x20bessel_y1\x20bessel_yn\x20erf\x20erfc\x20erfc_scaled\x20gamma\x20log_gamma\x20hypot\x20norm2\x20atomic_define\x20atomic_ref\x20execute_command_line\x20leadz\x20trailz\x20storage_size\x20merge_bits\x20bge\x20bgt\x20ble\x20blt\x20dshiftl\x20dshiftr\x20findloc\x20iall\x20iany\x20iparity\x20image_index\x20lcobound\x20ucobound\x20maskl\x20maskr\x20num_images\x20parity\x20popcnt\x20poppar\x20shifta\x20shiftl\x20shiftr\x20this_image\x20IRP_ALIGN\x20irp_here','-copyright','bm_inv_src_colour','Automatic\x20publicPath\x20is\x20not\x20supported\x20in\x20this\x20browser','InverseGammaDistribution','DataView','tvSelection','font-stretch','hmm_latent','TreeElementShapeFunction','outline-color','MaxDetect','currentMagazine','no-preserve','NotLessTilde','phy_position_x','AlternatingGroup','o\x27connor','COVARIANCE.P','ExternalStorageDownload','familial','StringFormatQ','margin-inline-end','incident','^#Infinitive$','TextFormatting','tfoot','methods','foo-over','verb','createReader','FractionBox','‥','intuition','URLDispatcher','c_int_fast32_t','ConstantArrayLayer','board','AudioReverse','#Gerund\x20#Adverb?\x20#Comparative\x20[#PresentTense]','(#Hyphenated\x20&&\x20#Value)\x20fold','Address','html_inline',')[lL]?\x5cb','box-decoration-break','(#WeekDay|#Month)\x20#Value','physics_fixture_add_point','FindFundamentalCycles','toGerund','QuestionGenerator','⧂','hourly','TrueQ','border-top-right-radius','$GeoLocationPrecision','⎴','^(had|have)\x20been\x20#Passive','ExternalDataCharacterEncoding','qgamma','vk_pageup','StirlingS1','airDensityRTD','lockDriver','#Time\x20[(eastern|mountain|pacific|central|est|pst|gmt)]','Cot','alias\x20audit\x20before\x20loglevel\x20noop\x20require\x20subscribe\x20tag\x20owner\x20ensure\x20group\x20mode\x20name|0\x20changes\x20context\x20force\x20incl\x20lens\x20load_path\x20onlyif\x20provider\x20returns\x20root\x20show_diff\x20type_check\x20en_address\x20ip_address\x20realname\x20command\x20environment\x20hour\x20monute\x20month\x20monthday\x20special\x20target\x20weekday\x20creates\x20cwd\x20ogoutput\x20refresh\x20refreshonly\x20tries\x20try_sleep\x20umask\x20backup\x20checksum\x20content\x20ctime\x20force\x20ignore\x20links\x20mtime\x20purge\x20recurse\x20recurselimit\x20replace\x20selinux_ignore_defaults\x20selrange\x20selrole\x20seltype\x20seluser\x20source\x20souirce_permissions\x20sourceselect\x20validate_cmd\x20validate_replacement\x20allowdupe\x20attribute_membership\x20auth_membership\x20forcelocal\x20gid\x20ia_load_module\x20members\x20system\x20host_aliases\x20ip\x20allowed_trunk_vlans\x20description\x20device_url\x20duplex\x20encapsulation\x20etherchannel\x20native_vlan\x20speed\x20principals\x20allow_root\x20auth_class\x20auth_type\x20authenticate_user\x20k_of_n\x20mechanisms\x20rule\x20session_owner\x20shared\x20options\x20device\x20fstype\x20enable\x20hasrestart\x20directory\x20present\x20absent\x20link\x20atboot\x20blockdevice\x20device\x20dump\x20pass\x20remounts\x20poller_tag\x20use\x20message\x20withpath\x20adminfile\x20allow_virtual\x20allowcdrom\x20category\x20configfiles\x20flavor\x20install_options\x20instance\x20package_settings\x20platform\x20responsefile\x20status\x20uninstall_options\x20vendor\x20unless_system_user\x20unless_uid\x20binary\x20control\x20flags\x20hasstatus\x20manifest\x20pattern\x20restart\x20running\x20start\x20stop\x20allowdupe\x20auths\x20expiry\x20gid\x20groups\x20home\x20iterations\x20key_membership\x20keys\x20managehome\x20membership\x20password\x20password_max_age\x20password_min_age\x20profile_membership\x20profiles\x20project\x20purge_ssh_keys\x20role_membership\x20roles\x20salt\x20shell\x20uid\x20baseurl\x20cost\x20descr\x20enabled\x20enablegroups\x20exclude\x20failovermethod\x20gpgcheck\x20gpgkey\x20http_caching\x20include\x20includepkgs\x20keepalive\x20metadata_expire\x20metalink\x20mirrorlist\x20priority\x20protect\x20proxy\x20proxy_password\x20proxy_username\x20repo_gpgcheck\x20s3_enabled\x20skip_if_unavailable\x20sslcacert\x20sslclientcert\x20sslclientkey\x20sslverify\x20mounted','width_bucket','GeologicalPeriodData','findDisplay','isTrulyOpeningTag','libref','groupChat','vivo','Shell\x20Session','⇒','argument_relative','ConservativeConvectionPDETerm','sprite_get_uvs','PROGRAM_FILE','OptionsPattern','LightSources','MaxDisplayedChildren','(#Gerund|come|become)','⥫','kills-me','institutes','Slider2D','Sendable','union','⦷','WeierstrassEta2','Preposition','InterpolationOrder','Noun|Verb','ButterworthFilterModel','ceil','grammat','__PRETTY_FUNCTION__','admin','skeleton_animation_set_frame','#Possessive\x20#PresentTense\x20#Particle?','DiscreteTimeModelQ','c_int_least8_t','CaputoD','border-top-left-radius','(is|was|am|are|will|were)','constr_eq','physics_remove_fixture','selected_int_kind','vertex_usage_colour','É','OrdinalRange','ToUpperCase','departement','outer','MemoryInUse','refine','write','abstract\x20add\x20and\x20array\x20as\x20asc\x20aspect\x20assembly\x20async\x20begin\x20break\x20block\x20by\x20case\x20class\x20concat\x20const\x20copy\x20constructor\x20continue\x20create\x20default\x20delegate\x20desc\x20distinct\x20div\x20do\x20downto\x20dynamic\x20each\x20else\x20empty\x20end\x20ensure\x20enum\x20equals\x20event\x20except\x20exit\x20extension\x20external\x20false\x20final\x20finalize\x20finalizer\x20finally\x20flags\x20for\x20forward\x20from\x20function\x20future\x20global\x20group\x20has\x20if\x20implementation\x20implements\x20implies\x20in\x20index\x20inherited\x20inline\x20interface\x20into\x20invariants\x20is\x20iterator\x20join\x20locked\x20locking\x20loop\x20matching\x20method\x20mod\x20module\x20namespace\x20nested\x20new\x20nil\x20not\x20notify\x20nullable\x20of\x20old\x20on\x20operator\x20or\x20order\x20out\x20override\x20parallel\x20params\x20partial\x20pinned\x20private\x20procedure\x20property\x20protected\x20public\x20queryable\x20raise\x20read\x20readonly\x20record\x20reintroduce\x20remove\x20repeat\x20require\x20result\x20reverse\x20sealed\x20select\x20self\x20sequence\x20set\x20shl\x20shr\x20skip\x20static\x20step\x20soft\x20take\x20then\x20to\x20true\x20try\x20tuple\x20type\x20union\x20unit\x20unsafe\x20until\x20uses\x20using\x20var\x20virtual\x20raises\x20volatile\x20where\x20while\x20with\x20write\x20xor\x20yield\x20await\x20mapped\x20deprecated\x20stdcall\x20cdecl\x20pascal\x20register\x20safecall\x20overload\x20library\x20platform\x20reference\x20packed\x20strict\x20published\x20autoreleasepool\x20selector\x20strong\x20weak\x20unretained','T.INV','≗','LOWER_A','#Emoji','user','TreeInsert','Р','coverpoint','vallies','Node\x20REPL','between','iso_fortran_env','vala','Uint16Array','ropeAttachedObjects','Hyphenation','AssertionError','Remove','RESET','authority','Slider','sliderSetSpeed','nine','flatDir','$dist_chi_square','RecurrenceFilter','Closure','animateSource','instance_create','ISBL','pt_shape_explosion','ropeUnwound','HexahedronBoxOptions','mjs','ContentLocationFunction','Passive','⇾','nmiss','fj','BETAINV','removeGoggles','falling_factorial','\x20\x20\x20\x20','LightPink','#Verb\x20[to]\x20#Adverb?\x20#Infinitive','true¦bewa0come\x20he0;re','OverlayVideo','schema_search','Primes','$fwriteb','dialog','brace','winphone_tile_back_content','(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)','PrintTemporary','allAirports','Extensive','given\x20the\x20partial\x20citation\x20info,\x20create\x20a\x20citation\x20in\x20the\x20style\x20of:\x20','entities','ConfidenceLevel','enableInfoPanelComponent','rethrows','DoubleVerticalBar','layer_get_hspeed','ListSliceContourPlot3D','_Alignas','#Plural','IsomorphicGraphQ','fullSentence','CONVERT','π','CHITEST','forceAddUniform','EST','typescript','vfprintf','KeySelect','fpoint','fconfigure','RANDBETWEEN','tvTooltip','gpu_set_tex_mip_bias_ext','svd_U','translate_regex','$dumpflush','DownRightVector','setTowParent','pause','fread','layerelementtype_tile','argument','bufif1','switchLight','ministry','AdjustmentBoxOptions','LogBarnesG','literal','Libraries','IncludeInflections','IMPORTANT','format_args!','Deletable','CreateNotebook','FactorialMoment','configClasses','Variables','symlink','skipChars','MachineName','character_storage_size','xis','DeviceWriteBuffer','hasComma','ShortDownArrow','northern','informat','removeAllAssignedItems','text-selection-menu','languages','intersect','how-is','CACHE\x20INCREMENT\x20MAXVALUE\x20MINVALUE','І','str_to_zone_name','isAutotest','\x0a\x20\x20\x20\x20','device_get_tilt_y','≦','MemoryAvailable','physics_fixture_bind','setAmmo','gpu_get_texfilter_ext','yellow','DefaultElement','ctrlSetFontHeightH1',')\x5c.)+(?:%TLDS%))','RandomGraph','#Copula\x20#Adverb+?\x20[#Adjective]','ctrlParent','cstring','ucase','ConstantTimesLayer','upcase','END','name-poss','(#Hyphenated\x20&&\x20#Infinitive)\x20#Hyphenated','attached','⦋','ads_move','iap_status_processing','leaf','SplMaxHeap','IntCmp','beginTFT','[(super|pretty)]\x20#Adjective','replacements','filename_name','Clock','allocate','clearbody','GetFunctionAddress','⦼','GenerateHTTPResponse','Annotate','a-is-one','^`\x5cx00-\x5cx20]+|\x27[^\x27]*\x27|\x22[^\x22]*\x22))?)*\x5cs*\x5c/?>','createSoundSource','#Plural\x20[(who|which|when)]\x20.','COMMENTS','deleteCollection','timepart','max','SuperscriptBox','shop_leave_rating','VectorRange','DOCUMENT\x20CONTENT','CoxianDistribution','will\x20#Adjective','number-of-x','withWriterAppend','resolution','bbox_right','DefineOutputStreamMethod','cqabs','RESUME','LETTERS\x20letters\x20month.abb\x20month.name\x20pi\x20T\x20F\x20abs\x20acos\x20acosh\x20all\x20any\x20anyNA\x20Arg\x20as.call\x20as.character\x20as.complex\x20as.double\x20as.environment\x20as.integer\x20as.logical\x20as.null.default\x20as.numeric\x20as.raw\x20asin\x20asinh\x20atan\x20atanh\x20attr\x20attributes\x20baseenv\x20browser\x20c\x20call\x20ceiling\x20class\x20Conj\x20cos\x20cosh\x20cospi\x20cummax\x20cummin\x20cumprod\x20cumsum\x20digamma\x20dim\x20dimnames\x20emptyenv\x20exp\x20expression\x20floor\x20forceAndCall\x20gamma\x20gc.time\x20globalenv\x20Im\x20interactive\x20invisible\x20is.array\x20is.atomic\x20is.call\x20is.character\x20is.complex\x20is.double\x20is.environment\x20is.expression\x20is.finite\x20is.function\x20is.infinite\x20is.integer\x20is.language\x20is.list\x20is.logical\x20is.matrix\x20is.na\x20is.name\x20is.nan\x20is.null\x20is.numeric\x20is.object\x20is.pairlist\x20is.raw\x20is.recursive\x20is.single\x20is.symbol\x20lazyLoadDBfetch\x20length\x20lgamma\x20list\x20log\x20max\x20min\x20missing\x20Mod\x20names\x20nargs\x20nzchar\x20oldClass\x20on.exit\x20pos.to.env\x20proc.time\x20prod\x20quote\x20range\x20Re\x20rep\x20retracemem\x20return\x20round\x20seq_along\x20seq_len\x20seq.int\x20sign\x20signif\x20sin\x20sinh\x20sinpi\x20sqrt\x20standardGeneric\x20substitute\x20sum\x20switch\x20tan\x20tanh\x20tanpi\x20tracemem\x20trigamma\x20trunc\x20unclass\x20untracemem\x20UseMethod\x20xtfrm','BackFaceSurfaceAppearance','layer_get_element_layer','setTiParameter','benchmark','#Value\x20#Adjective\x20[#PresentTense]','creek','NumericFunction','$floor','WeightedData','ignoreIllegals','shoal','in\x20by\x20as','selectNoPlayer','$1$2','DialogNotebook','Fit','#Date\x20#Date\x20#Month','gerund-modal','Catenate','PrimitivePolynomialQ','Chunks','^__END__$','⨮','[%Adj|Noun%]\x20#Noun','charge-back','cat','SpheroidalPS','\x5c}\x22','and\x20case\x20default\x20else\x20elsif\x20false\x20if\x20in\x20import\x20enherits\x20node\x20or\x20true\x20undef\x20unless\x20main\x20settings\x20$string\x20','#NumericValue','kbv_autocapitalize_sentences','NAPTR','NaN16','below','weaponsItems','buffer_read','ScalingTransform','base32','CHAR','animationSourcePhase','undefined','weaponDirection','displayAddEventHandler','addBackpack','view_surface_id','gl_MaxAtomicCounterBindings\x20gl_MaxAtomicCounterBufferSize\x20gl_MaxClipDistances\x20gl_MaxClipPlanes\x20gl_MaxCombinedAtomicCounterBuffers\x20gl_MaxCombinedAtomicCounters\x20gl_MaxCombinedImageUniforms\x20gl_MaxCombinedImageUnitsAndFragmentOutputs\x20gl_MaxCombinedTextureImageUnits\x20gl_MaxComputeAtomicCounterBuffers\x20gl_MaxComputeAtomicCounters\x20gl_MaxComputeImageUniforms\x20gl_MaxComputeTextureImageUnits\x20gl_MaxComputeUniformComponents\x20gl_MaxComputeWorkGroupCount\x20gl_MaxComputeWorkGroupSize\x20gl_MaxDrawBuffers\x20gl_MaxFragmentAtomicCounterBuffers\x20gl_MaxFragmentAtomicCounters\x20gl_MaxFragmentImageUniforms\x20gl_MaxFragmentInputComponents\x20gl_MaxFragmentInputVectors\x20gl_MaxFragmentUniformComponents\x20gl_MaxFragmentUniformVectors\x20gl_MaxGeometryAtomicCounterBuffers\x20gl_MaxGeometryAtomicCounters\x20gl_MaxGeometryImageUniforms\x20gl_MaxGeometryInputComponents\x20gl_MaxGeometryOutputComponents\x20gl_MaxGeometryOutputVertices\x20gl_MaxGeometryTextureImageUnits\x20gl_MaxGeometryTotalOutputComponents\x20gl_MaxGeometryUniformComponents\x20gl_MaxGeometryVaryingComponents\x20gl_MaxImageSamples\x20gl_MaxImageUnits\x20gl_MaxLights\x20gl_MaxPatchVertices\x20gl_MaxProgramTexelOffset\x20gl_MaxTessControlAtomicCounterBuffers\x20gl_MaxTessControlAtomicCounters\x20gl_MaxTessControlImageUniforms\x20gl_MaxTessControlInputComponents\x20gl_MaxTessControlOutputComponents\x20gl_MaxTessControlTextureImageUnits\x20gl_MaxTessControlTotalOutputComponents\x20gl_MaxTessControlUniformComponents\x20gl_MaxTessEvaluationAtomicCounterBuffers\x20gl_MaxTessEvaluationAtomicCounters\x20gl_MaxTessEvaluationImageUniforms\x20gl_MaxTessEvaluationInputComponents\x20gl_MaxTessEvaluationOutputComponents\x20gl_MaxTessEvaluationTextureImageUnits\x20gl_MaxTessEvaluationUniformComponents\x20gl_MaxTessGenLevel\x20gl_MaxTessPatchComponents\x20gl_MaxTextureCoords\x20gl_MaxTextureImageUnits\x20gl_MaxTextureUnits\x20gl_MaxVaryingComponents\x20gl_MaxVaryingFloats\x20gl_MaxVaryingVectors\x20gl_MaxVertexAtomicCounterBuffers\x20gl_MaxVertexAtomicCounters\x20gl_MaxVertexAttribs\x20gl_MaxVertexImageUniforms\x20gl_MaxVertexOutputComponents\x20gl_MaxVertexOutputVectors\x20gl_MaxVertexTextureImageUnits\x20gl_MaxVertexUniformComponents\x20gl_MaxVertexUniformVectors\x20gl_MaxViewports\x20gl_MinProgramTexelOffset\x20gl_BackColor\x20gl_BackLightModelProduct\x20gl_BackLightProduct\x20gl_BackMaterial\x20gl_BackSecondaryColor\x20gl_ClipDistance\x20gl_ClipPlane\x20gl_ClipVertex\x20gl_Color\x20gl_DepthRange\x20gl_EyePlaneQ\x20gl_EyePlaneR\x20gl_EyePlaneS\x20gl_EyePlaneT\x20gl_Fog\x20gl_FogCoord\x20gl_FogFragCoord\x20gl_FragColor\x20gl_FragCoord\x20gl_FragData\x20gl_FragDepth\x20gl_FrontColor\x20gl_FrontFacing\x20gl_FrontLightModelProduct\x20gl_FrontLightProduct\x20gl_FrontMaterial\x20gl_FrontSecondaryColor\x20gl_GlobalInvocationID\x20gl_InstanceID\x20gl_InvocationID\x20gl_Layer\x20gl_LightModel\x20gl_LightSource\x20gl_LocalInvocationID\x20gl_LocalInvocationIndex\x20gl_ModelViewMatrix\x20gl_ModelViewMatrixInverse\x20gl_ModelViewMatrixInverseTranspose\x20gl_ModelViewMatrixTranspose\x20gl_ModelViewProjectionMatrix\x20gl_ModelViewProjectionMatrixInverse\x20gl_ModelViewProjectionMatrixInverseTranspose\x20gl_ModelViewProjectionMatrixTranspose\x20gl_MultiTexCoord0\x20gl_MultiTexCoord1\x20gl_MultiTexCoord2\x20gl_MultiTexCoord3\x20gl_MultiTexCoord4\x20gl_MultiTexCoord5\x20gl_MultiTexCoord6\x20gl_MultiTexCoord7\x20gl_Normal\x20gl_NormalMatrix\x20gl_NormalScale\x20gl_NumSamples\x20gl_NumWorkGroups\x20gl_ObjectPlaneQ\x20gl_ObjectPlaneR\x20gl_ObjectPlaneS\x20gl_ObjectPlaneT\x20gl_PatchVerticesIn\x20gl_Point\x20gl_PointCoord\x20gl_PointSize\x20gl_Position\x20gl_PrimitiveID\x20gl_PrimitiveIDIn\x20gl_ProjectionMatrix\x20gl_ProjectionMatrixInverse\x20gl_ProjectionMatrixInverseTranspose\x20gl_ProjectionMatrixTranspose\x20gl_SampleID\x20gl_SampleMask\x20gl_SampleMaskIn\x20gl_SamplePosition\x20gl_SecondaryColor\x20gl_TessCoord\x20gl_TessLevelInner\x20gl_TessLevelOuter\x20gl_TexCoord\x20gl_TextureEnvColor\x20gl_TextureMatrix\x20gl_TextureMatrixInverse\x20gl_TextureMatrixInverseTranspose\x20gl_TextureMatrixTranspose\x20gl_Vertex\x20gl_VertexID\x20gl_ViewportIndex\x20gl_WorkGroupID\x20gl_WorkGroupSize\x20gl_in\x20gl_out\x20EmitStreamVertex\x20EmitVertex\x20EndPrimitive\x20EndStreamPrimitive\x20abs\x20acos\x20acosh\x20all\x20any\x20asin\x20asinh\x20atan\x20atanh\x20atomicAdd\x20atomicAnd\x20atomicCompSwap\x20atomicCounter\x20atomicCounterDecrement\x20atomicCounterIncrement\x20atomicExchange\x20atomicMax\x20atomicMin\x20atomicOr\x20atomicXor\x20barrier\x20bitCount\x20bitfieldExtract\x20bitfieldInsert\x20bitfieldReverse\x20ceil\x20clamp\x20cos\x20cosh\x20cross\x20dFdx\x20dFdy\x20degrees\x20determinant\x20distance\x20dot\x20equal\x20exp\x20exp2\x20faceforward\x20findLSB\x20findMSB\x20floatBitsToInt\x20floatBitsToUint\x20floor\x20fma\x20fract\x20frexp\x20ftransform\x20fwidth\x20greaterThan\x20greaterThanEqual\x20groupMemoryBarrier\x20imageAtomicAdd\x20imageAtomicAnd\x20imageAtomicCompSwap\x20imageAtomicExchange\x20imageAtomicMax\x20imageAtomicMin\x20imageAtomicOr\x20imageAtomicXor\x20imageLoad\x20imageSize\x20imageStore\x20imulExtended\x20intBitsToFloat\x20interpolateAtCentroid\x20interpolateAtOffset\x20interpolateAtSample\x20inverse\x20inversesqrt\x20isinf\x20isnan\x20ldexp\x20length\x20lessThan\x20lessThanEqual\x20log\x20log2\x20matrixCompMult\x20max\x20memoryBarrier\x20memoryBarrierAtomicCounter\x20memoryBarrierBuffer\x20memoryBarrierImage\x20memoryBarrierShared\x20min\x20mix\x20mod\x20modf\x20noise1\x20noise2\x20noise3\x20noise4\x20normalize\x20not\x20notEqual\x20outerProduct\x20packDouble2x32\x20packHalf2x16\x20packSnorm2x16\x20packSnorm4x8\x20packUnorm2x16\x20packUnorm4x8\x20pow\x20radians\x20reflect\x20refract\x20round\x20roundEven\x20shadow1D\x20shadow1DLod\x20shadow1DProj\x20shadow1DProjLod\x20shadow2D\x20shadow2DLod\x20shadow2DProj\x20shadow2DProjLod\x20sign\x20sin\x20sinh\x20smoothstep\x20sqrt\x20step\x20tan\x20tanh\x20texelFetch\x20texelFetchOffset\x20texture\x20texture1D\x20texture1DLod\x20texture1DProj\x20texture1DProjLod\x20texture2D\x20texture2DLod\x20texture2DProj\x20texture2DProjLod\x20texture3D\x20texture3DLod\x20texture3DProj\x20texture3DProjLod\x20textureCube\x20textureCubeLod\x20textureGather\x20textureGatherOffset\x20textureGatherOffsets\x20textureGrad\x20textureGradOffset\x20textureLod\x20textureLodOffset\x20textureOffset\x20textureProj\x20textureProjGrad\x20textureProjGradOffset\x20textureProjLod\x20textureProjLodOffset\x20textureProjOffset\x20textureQueryLevels\x20textureQueryLod\x20textureSize\x20transpose\x20trunc\x20uaddCarry\x20uintBitsToFloat\x20umulExtended\x20unpackDouble2x32\x20unpackHalf2x16\x20unpackSnorm2x16\x20unpackSnorm4x8\x20unpackUnorm2x16\x20unpackUnorm4x8\x20usubBorrow','scaled_inv_chi_square','execute','IDENT_RE','KernelExecute','textAlign','datalines','department','#Copula\x20just\x20[#Infinitive]','ReadString','camera_get_view_height','$ImagingDevice','iap_data','background','о','rollback','PEAddResource','LicensingSettings','Max','unescape','Enum','physics_get_friction','commandWatch','swap','([G])([0-9]+\x5c.?[0-9]?)','#Date','DifferentialD','__kindof','grid-row-start','draw_path','SemanticInterpretation','sexes','[#Plural]\x20a\x20lot','fl','‖','line_width','true¦0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc\x20dallas,g0Ihouston\x200Hindiana0Gjacksonville\x20jagua0k0El0Am01new\x20UoRpKqueens\x20parkJreal\x20salt\x20lake,sBt6utah\x20jazz,vancouver\x20whitecaps,w4yW;ashington\x204h10;natio1Mredski2wizar0W;ampa\x20bay\x207e6o4;ronto\x204ttenham\x20hotspur;blue\x20ja0Mrapto0;nnessee\x20tita2xasD;buccanee0ra0K;a8eattle\x206porting\x20kansas0Wt4;\x20louis\x204oke0V;c1Drams;marine0s4;eah13ounH;cramento\x20Rn\x204;antonio\x20spu0diego\x204francisco\x20gJjose\x20earthquak1;char08paB;\x20ran07;a9h6ittsburgh\x205ortland\x20t4;imbe0rail\x20blaze0;pirat1steele0;il4oenix\x20su2;adelphia\x204li1;eagl1philNunE;dr1;akland\x204klahoma\x20city\x20thunder,rlando\x20magic;athle0Lrai4;de0;england\x208orleans\x207york\x204;g5je3knYme3red\x20bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal\x20impact;ami\x208lwaukee\x20b7nnesota\x204;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis\x20grizz4ts;li1;a6eic5os\x20angeles\x204;clippe0dodFlaB;esterV;\x20galaxy,ke0;ansas\x20city\x204nF;chiefs,roya0D;\x20pace0polis\x20col3;astr05dynamo,rocke3texa2;olden\x20state\x20warrio0reen\x20bay\x20pac4;ke0;allas\x208e4i04od6;nver\x206troit\x204;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati\x208leveland\x206ol4;orado\x20r4umbus\x20crew\x20sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte\x20horAicago\x204;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina\x20panthe0;\x20city;altimore\x20Alackburn\x20rove0oston\x206rooklyn\x204uffalo\x20bilN;ne3;ts;cel5red4;\x20sox;tics;rs;oriol1rave2;rizona\x20Ast8tlanta\x204;brav1falco2h4;awA;ns;es;on\x20villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls','array_replace','|\x20\x20Title\x20\x20|Link\x20|\x0a','Arrowheads','NORMSINV','facebook_accesstoken','Upper','StringPart','part_emitter_destroy','◸','','curatorPoints','oct','RawBoxes','T.DIST.RT','attachGPRS','VerifyDigitalSignature','.\x20.\x20if\x20.{4}','❘','FieldSize','\x5cb(FALSE|TRUE)\x5cb','getPilotCameraDirection','RecordSeparators','HKEY_DYN_DATA','lowerThan','ShortLeftArrow','nearestMines','BinnedVariogramList','ParentList','ev_global_middle_release','ManifestSupportedOS','ClickToCopyEnabled','journal','angle_difference','DynamicModuleBoxOptions','SetFont','ugc_sortorder_ForModeration','audio_emitter_get_y','Money','))[eE][+-]?(','draw_line_width_color','localparam','\x5c[=*\x5c[','physics_particle_group_circle','≧','CompleteGraphQ','BSplineCurveBoxOptions','LinearLayer','MINA','ef_ellipse','subprojects','TakeLargest','$EmbeddableServices','(he|him|his|she|her|hers|they|their|theirs|it|its)','ctrlSetFontHeightH3','UNICHAR','#sourceLocation','OuterIterator','Pink','MarkdownIt.\x20Failed\x20to\x20disable\x20unknown\x20rule(s):\x20','co\x20#Singular','halos','PadLeft','thisAspectInstance','phy_particle_flag_elastic',':^P','physics_joint_enable_motor','ugc_sortorder_SubscriptionDateDesc','TimeSeriesAggregate','tvPictureRight','become-verb','𝕍','#helpModal','EdgeDetect',')[fFdD]?\x5cb|\x5c.([fFdD]\x5cb)?)','^@(?:BASE|USE|CLASS|OPTIONS)$','#Comparative\x20(for|at)\x20[%Noun|Gerund%]','tpl_host_port_no_ip_fuzzy_strict','readNetworks','comptags','[#PastTense]\x20#PastTense','SmithDelayCompensator','FindDistribution','removeAllItemsWithMagazines','case_insensitive','AstroCenter','locationNull','multiply','ParetoDistribution','matmul','setMarkerAlphaLocal','#Determiner','phy_debug_render_aabb','height','rev','≡⃥','test','FindCurvePath','associativity','SYD','PartBehavior','withoutActuallyEscaping','','pharmaceuticals','quotations','part','Confirm','MessageBox','varray','SymmetricReduction','DateFormat','asyncIterator','RarerProbability','audio_emitter_pitch','ev_no_more_lives','FORECAST','unsafe_unretained','__tlds_replaced__','the-verb-of','NetworkAccess','ReferenceLineStyle','addSecondaryWeaponItem','lbPictureRight','mkfifo','motion_set','openSteamApp','VertexLabelStyle','powershell','REPT','$1ses','RemoveDiacritics','regexMatch','⊉','Ptr','DiscreteConvolve','audio_is_playing','room_width','Mouse','draw_surface_part_ext','(the|this|those|these)\x20#Adjective\x20[%Verb|Noun%]','tile_set_flip','MINUTE','did\x20not','shmwrite','PacletDirectoryLoad','◂','TimeSeriesThread','CensoredDistribution','Enabled','posMax','FORECAST.ETS','StatusArea','sliderSetRange','𝒫','fallthrough','isolated','GeoStylingImageFunction','⦅','PowerDistribution','layer_sprite_x','whend','match_number','GraphicsGroup3DBox','fromAdverb','lengthdir_y','InputFieldBoxOptions','Intersects','⤌','RECENT','border-top-color','\x5c)$','audio_queue_sound','collate','ToPolarCoordinates','MannedSpaceMissionData','meta[name=\x22author\x22]','fetch','TransferFunctionModel','fwd','draw_light_get','Residue','BandstopFilter','getMissionDLCs','startEntity','president-of','SyntaxInformation','RecursiveIteratorIterator','Rationals','padding-inline-end','key','autorewrite','iap_ev_purchase','gumbel','stringstream','ResetScheduledTask','\x5cb([gtps][A-Z]{1}[a-zA-Z0-9]*)(\x5c[.+\x5c])?(?:\x5cs*?)','where','links','actor','bm_src_alpha_sat','HelpBrowserNotebook','network_type_connect','BoxForm','NearestNeighborGraph','c_long_double_complex','Polygon','LET','Dict','PolyhedronGenus','distance','AlphabeticSort','hintC','SplicedDistribution','ure','QuantityVariablePhysicalQuantity','keyframes','WeakKeyDict','many-poses','ne\x27er','HomeDirectory','forty','ApartSquareFree','~[A-Z](?=','Save','united-sportsteam','EstimatedDistribution','sealed','deferred','currentCommand','array_agg','in-range','cycle','TotalLayer','clonglong','html_classes','regexp_position','Eigensystem','say-','server','getBoundingClientRect','ev_step_end','lheading','TrainingUpdateSchedule','^[\x20\x09]*','ComplexVectorPlot','nohup','GeoVariant','insteadof','Database\x20error:\x20','(^despite|^during|^before|^through|^throughout)','chemicals','BinaryDeserialize','him','assembly','WrapAround','select','Antialiasing','ŴŵƜωώϖϢϣШЩшщѡѿ','openDLCPage','GaugeFaceElementFunction','SocketReadyQ','scroll-margin-block-end','StyleData','check','LineBoxOptions','$FinancialDataSource','meta','Term','fst','ually','MIDBs','currentWeapon','voice-range','PVector','setMarkerShape','consume','RESOURCES','ERL','iap_unavailable','normalize','╡','DiscretePlot','fps_real','FindVertexColoring','PossibleZeroQ','RoundingMode','agences','#Verb\x20#Adverb?\x20#Noun\x20[(that|which)]','percentile_disc','layer_set_target_room','diag_dumpScriptAssembly','setMarkerAlpha','gunner','ranuni','AudioLoudness','phy_particle_data_flag_typeflags','allDead','window_get_colour','ev_joystick1_button2','natural','seek','LibraryFunctionUnload','$UserBasePacletsDirectory','ily','winphone_tile_cycle_images','#Place','leaderboardRequestRowsGlobal','ctrlMapAnimAdd','is_struct','\x5cb)','PRINTHOOD','⌭','HighlightJS','NetworkPacketRecording','physics_particle_delete','CovarianceEstimatorFunction','#Copula\x20[fucked\x20up?]','vacuum-sealed','long-live','5px','vertex_type_float1','container','[id]','Separate','skew_double_exponential','COMMON','driver','COT','CombinatorC','GreekStyle','ExecShell','Num','scroll-padding-block-start','eighteen','RightTriangleBar','dust','@protected','part_system_create_layer','gestureState','normal','steam_activate_overlay','ℳ','rain','third','$swriteo','MathieuGroupM23','steam_user_installed_dlc','on\x20off\x20all\x20deny\x20allow','ctrlAnimateModel','getConnectedUAV','CUBEMEMBERPROPERTY','C_LINE_COMMENT_MODE','HeunTPrime','𝔤','DiscreteShift','bless','NotGreaterLess','BoxData','countSide','buffer_write','(a|an)\x20#Adverb\x20[#Participle]\x20#Noun','setSpeech','PrivateEvaluationOptions','UnitRange','always','name\x20count\x20channels\x20instance-data\x20instance-state\x20instance\x20of','vk_lshift','physics_fixture_set_kinematic','Average','██████████','@catch','multiplier','NotSucceeds','vk_numpad6','SEARCHB','RiceDistribution','#Month\x20#Ordinal\x20#Cardinal','CreatePermissionsGroup','inherit','TransferFunctionExpand','DatasetTheme','markerSize','rand','FunctionExpand','SoftwareSerial','lambert_w0','MoleculePlot','ByteArray','TakeDrop','FindKClub','MandelbrotSetBoettcher','physics_particle_group_get_inertia','PearsonChiSquareTest','#FirstName\x20#Person\x20.','$1ves','Exists','vk_f9','ContentDetectorFunction','draw_surface_part','X++','achievement_show_ui','sort','TraceAbove','AudioPartition','mailto:','CreateChannel','#Preposition','DesignMatrix','ℛ','move_wrap','⧅','\x5cb(\x5c$[a-zA-Z0-9]+|0o[0-7]+)','friend','ImageApply','leading','buffer_get_address','vformatnx','draw_text_ext_transformed','un.directory','moveToCompleted','ctrlMapScreenToWorld','ENVIRON','scudState','Asin','Monomorphic','#Modal\x20[%Person|Verb%]','display_set_sleep_margin','publicly','MetaCharacters','multiply_lower_tri_self_transpose','ctrlActivate','⊨','Characters','Ordinal','FunctionSign','0b\x201b','SetCurInstType','tm_sleep','MomentGeneratingFunction','getgrnam','preTagger','stopPropagation','FormBoxOptions','words','$bitstoshortreal','LabelVisibility','ruler','[more]\x20#Noun','open_ai_agent_json_non_stream_tiny','recl','^(?=','get_field','worldToModelVisual','Output\x20a\x20single\x20search\x20term\x20or\x20phrase\x20for\x20this\x20text\x20that\x20I\x20can\x20use\x20to\x20search\x20for\x20the\x20most\x20related\x20papers\x20on\x20Arxiv.\x20Do\x20not\x20add\x20any\x20commentary.\x20Text:\x20','#Singular\x20in\x20#Determiner?\x20#Singular','RegionWithin','char-border','marsh','PrivatePaths','^(like\x20&&\x20@hasComma)','SENDTO','isWalking','object-fit','NotSucceedsSlantEqual','chronicle','ConfirmMatch','vector','𝔐','ImageFeatureTrack','DirichletWindow','fullSentences','requestImage','Fibonorial','HKCR','crmsh','RAND','runShellCommand','AdjacencyGraph','SetSystemOptions','lambda','⫓','Ь','Sunday','->|<-[|:]?|#!?|>>=|\x5c{\x5c||\x5c|\x5c}|:==|=:|<>','kingdom','uniqueUnitItems','rcmos','BinaryFormat','transform','ase','WolframAlphaQuantity','textureinfo','relative','\x20of','PointLegend','getdllversion','PageTheme','Ġ','orientation','cdexp','sun-feb','Ask','teamType','allowCrewInImmobile','isprint','CoordinateTransformData','AnglePath','flush','curatorMouseOver','with|0','date','DamerauLevenshteinDistance','path_index','Harvard','verbose','⩲','⪒','Right','ImportedObject','OutputMathEditExpression','$CloudConnection','NotDoubleVerticalBar','StridedArray','nearestObjects','Construct','⌕','?x=','(\x5cs+|;|$)','drawRectangle','GumbelDistribution','FilledCurve','toggleCollapse','singular-were','track','Messages','#Gerund','ctrlSetFontH4B','weaponCargo','(world|global|international|national|#Demonym)\x20#Organization','.\x20Please\x20try\x20again.','cue-before','erl','(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)','independent','joinAsSilent','LocationTest','#Pronoun\x20[#Adjective]\x20#Determiner\x20#Adjective?\x20#Noun','ugc_list_Favorited','$CloudObjectNameFormat','$DefaultNetworkInterface','haskell','GraphPlot','removeUserActionEventHandler','LaguerreL','#Value\x20#Unit\x20[(per|an)\x20(hr|hour|sec|second|min|minute)]','RE_STARTERS_RE','research','MinStableDistribution','BubbleChart','room_set_viewport','quote','cameraEffect','⦦','removeOwnedMine','\x5c[\x0a(multipart)?','himself','(#Modal|#PhrasalVerb)','[;$]','(?=','/','ǵ','[#$=]\x5cd+','SpatialMedian','forceref','verb-propernoun','bm_inv_dest_alpha','save3DENInventory','sqr','initAmbientLife','validateNumericCharacterReference','complete\x20beginner','fdelete','\x5cb(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\x5cb','DEFAULT','ds_set_precision','true¦leaves','InitialEvaluationHistory','(\x5c|[\x20]*)?','с','getObjectScale','gpu_get_blendmode_destalpha','[.%]?','gpu_get_blendmode_srcalpha','OverTilde','$ProgressReporting','isalpha','vunit','pointer_invalid','findNearestEnemy','requires','PickedElements','InformationData','scrollTo','operator','Ø','uncache','customChat','GeoOrientationData','BINOM.INV','HostLookup','remember','shownArtilleryComputer','setting\x20','toPast','diag_list','∉','^[#Infinitive]\x20(up|down|over)\x20#Determiner','URLSave','allDiaryRecords','\x5cs+)+','permanent','array_ifnull','FEEnableConsolePrintPacket','diag_scope','Opacity','SHEBANG','(many|few|several|couple)\x20[#PresentTense]','getUserMFDValue','has','physics_particle_draw','layer_background_get_vtiled','Regex','MatrixNormalDistribution','title','splitBefore','◬','ini_read_real','VandermondeMatrix','FileErrorText','DeleteDuplicatesBy','▀','vec!','$ByteOrdering','^provided\x20that','to$','buffer_base64_encode','GraphPower','WikidataData','Mathematica','c_int_least64_t','border-inline-start-color','$1–','path_set_kind','mastery\x20understanding','trusted-types','invalid-input','tilemap_tileset','onsuccess','logistic','locked','Equality','StartScheduledTask','srand','Filling','addPublicVariableEventHandler','EdgeValueSizes','⋙̸','theses','lowByte','stay-cool','GradientFilter','view_hport','__emitter','ac\x20asnp\x20cat\x20cd\x20CFS\x20chdir\x20clc\x20clear\x20clhy\x20cli\x20clp\x20cls\x20clv\x20cnsn\x20compare\x20copy\x20cp\x20cpi\x20cpp\x20curl\x20cvpa\x20dbp\x20del\x20diff\x20dir\x20dnsn\x20ebp\x20echo|0\x20epal\x20epcsv\x20epsn\x20erase\x20etsn\x20exsn\x20fc\x20fhx\x20fl\x20ft\x20fw\x20gal\x20gbp\x20gc\x20gcb\x20gci\x20gcm\x20gcs\x20gdr\x20gerr\x20ghy\x20gi\x20gin\x20gjb\x20gl\x20gm\x20gmo\x20gp\x20gps\x20gpv\x20group\x20gsn\x20gsnp\x20gsv\x20gtz\x20gu\x20gv\x20gwmi\x20h\x20history\x20icm\x20iex\x20ihy\x20ii\x20ipal\x20ipcsv\x20ipmo\x20ipsn\x20irm\x20ise\x20iwmi\x20iwr\x20kill\x20lp\x20ls\x20man\x20md\x20measure\x20mi\x20mount\x20move\x20mp\x20mv\x20nal\x20ndr\x20ni\x20nmo\x20npssc\x20nsn\x20nv\x20ogv\x20oh\x20popd\x20ps\x20pushd\x20pwd\x20r\x20rbp\x20rcjb\x20rcsn\x20rd\x20rdr\x20ren\x20ri\x20rjb\x20rm\x20rmdir\x20rmo\x20rni\x20rnp\x20rp\x20rsn\x20rsnp\x20rujb\x20rv\x20rvpa\x20rwmi\x20sajb\x20sal\x20saps\x20sasv\x20sbp\x20sc\x20scb\x20select\x20set\x20shcm\x20si\x20sl\x20sleep\x20sls\x20sort\x20sp\x20spjb\x20spps\x20spsv\x20start\x20stz\x20sujb\x20sv\x20swmi\x20tee\x20trcm\x20type\x20wget\x20where\x20wjb\x20write','m|qr','stmt','AggregationLayer','array_sort','PreDecrement','vertical-align','↳','if\x20else\x20foreach\x20return\x20do\x20while\x20until\x20elseif\x20begin\x20for\x20trap\x20data\x20dynamicparam\x20end\x20break\x20throw\x20param\x20continue\x20finally\x20in\x20switch\x20exit\x20filter\x20try\x20process\x20catch\x20hidden\x20static\x20parameter','found','GrammarRules','Interlaced','curatorSelected','ProcessTimeDomain','FindThreshold','csr_extract','Feature','menuSetText','iachar','command_argument_count',':-@','CriterionFunction','white-space','layer_sprite_get_y','draw_line','DomainName','KumaraswamyDistribution','ev_global_gesture_drag_start','$displayh','specifictype','RRI','tce','RealExponent','configurations','$NetworkInterfaces','FindArgMin','PacletUninstall','TemplateSlot','BoxRotationPoint','ini_write_real','getSlingLoad','TickDirection','∁','MaxExtraBandwidths','tolower','background-repeat','import\x20include','⪕','encoding','trailz','rectMode','erewrite','iap_purchase_details','Diff','success-notice','HilbertFilter','Ы','𝔷','finalize','said-that-he','text-rendering','LANGUAGE','NotebookFind','ValueBox','[will]\x20#Verb','mapAnimAdd','⪫','auto_ptr','is_iostat_eor','ThreadingLayer','EllipticReducedHalfPeriods','handlebars','prefers-color-scheme','sentencesEnabled','lbSort','connectTerminalToUAV','rannor','NakagamiDistribution','skipCharsBack','Check','Collection','PALETTE','isSimpleObject','gov','setVehicleId','(have|had)\x20read','draw_roundrect_colour','_Null_unspecified','msgsnd','CloudDeploy','resultBuilder','menuDelete','ĸ','ImageData','(\x5cb0[xX][a-fA-F0-9_]+)|(\x5cb\x5cd(\x5cd|_\x5cd)*(\x5c.(\x5cd(\x5cd|_\x5cd)*)?)?(_*[eE]([-+]\x5cd(_\x5cd|\x5cd)*)?)?[_a-z]*)','margin-block','ButtonCell','NS_ENUM','ByteCount','rectangle_in_rectangle','∧','ProbabilityPlot','audio_listener_set_velocity','addCuratorEditingArea','lb_sort_none','newInputStream','#Copula\x20[#Gerund]\x20#PastTense','AdjustmentBox','isMultiplayer','NextScheduledTaskTime','LeftUpVectorBar','sec','withWriter','False','keyCode','breadth\x20first','getRules','randc','⋨','skeleton_animation_get','35buQNCV','foreign\x20key','𝔲','VAR.P','nullopt','enableWeaponDisassembly','NSApplicationMain','more-noun','cookies','VAL','BlockRandom','netObjNull','supt','fill','pushMatrix','CaseOrdering','csin','tvSortByValueAll','@private','⋧','exs','CoordinatesToolOptions','PlanarFaceList','Level','camera_get_update_script','(#WeekDay\x20&&\x20@hasComma)\x20#Date','LogicException','noDisplay','NetDecoder','probchi','baht','⟭','VectorAngle','motors','Cumulant','battlefield','ArcCos','getTextureInfo','feet','IMTAN','inheritsFrom','EmpiricalDistribution','setTimeMultiplier','$1o','ButtonSource','MaxFeatureDisplacement','[><|]','vk_down','#PresentTense\x20#Adjective','GapPenalty','Possessives','AudioCapture','Product','IntervalMemberQ','ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ','addUserActionEventHandler','InputAliases','similar','BlockLowerTriangularMatrix','[\x20\x5ct]*=','assistant','AcousticPressureCondition','$dumpportsflush','monthname','ds_stack_top','TypeOf','(the|any)\x20[more]','PartialCorrelationFunction','#Demonym\x20#Currency','selectFolder','ctFindRowHeader','addressof\x20and\x20andalso\x20await\x20directcast\x20gettype\x20getxmlnamespace\x20is\x20isfalse\x20isnot\x20istrue\x20like\x20mod\x20nameof\x20new\x20not\x20or\x20orelse\x20trycast\x20typeof\x20xor\x20cbool\x20cbyte\x20cchar\x20cdate\x20cdbl\x20cdec\x20cint\x20clng\x20cobj\x20csbyte\x20cshort\x20csng\x20cstr\x20cuint\x20culng\x20cushort','facebook_graph_request','tf_anisotropic','point','Materials','#Determiner\x20#Adjective\x20#Adjective?\x20[#Infinitive]','υ','StereoDecoder','EntityStart','\x5c+\x5c/','$AddOnsDirectory','leftShift','parseText','COVAR','window_views_mouse_get_y','xs:anyAtomicType','ij','↞','draw_clear','syllables','EDATE','ScheduledTasks','unicodeRegex','CSS_NUMBER_MODE','(?=\x5c:\x5cs)','splitString','FindExternalEvaluators','#ProperNoun\x20(b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)\x20#ProperNoun','(#Copula|#Pronoun)','replaceWith','setSpeed','GeodesicClosing','OUTDIR','!','fl\x20oz','Atan','2UQJdTd','⨕','Transparent','were','modal-verb','removeAttribute','undef','Win10','gamemaker_pro','nth-of-type','beginSpeaker','[(here|there)]\x20#Noun','Find','loc','type','room_assign','game_id','hosthelp','assignedCommander','NotLessLess','[#Cardinal+]\x20(#Fraction\x20&&\x20/s$/)','createDisplay','localStorage','layer_y','enumerate','CorrelationFunction','align-items','border-right-color','endmodule','LameEigenvalueA','GraphLinkEfficiency','margin-inline-start','ds_map_replace_list','\x5cb(0|[1-9](_?[0-9])*)n\x5cb','audio_get_type','strcpy','text-selection-menu-highlight','end','markdown_to_html','$MinNumber','NotebookGet','tuneWrite',')[jJ]?','limitSpeed','displayWidth','CEILING','thisJoinPointStaticPart','⪑','tower','љ','current_path','device_ios_iphone_retina','$OutputForms','ctrlFontHeight','XQuery','set3DENAttributes','findIndex','[a-z-]+','≥','windStr','UntrackedVariables','TabViewBox','value-k','
\x0a','☎','mouse_wheel_up','MersennePrimeExponentQ','isxdigit','BartlettWindow','SymletWavelet','iframe','bezier','part_type_direction','#Adjective\x20[enough]','area','((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)(\x5c.(25[0-5]|2[0-4]\x5cd|1\x5cd\x5cd|[1-9]?\x5cd)){3}))|:)))\x5cb','setHumidity','CreateScheduledTask','Stan','YIELDMAT','⥶','remoteNumber','StableDistribution','or\x20[#PastTense]\x20#Noun','LaplaceDistribution','mr-2','details','≔','room_set_height','password','infoPanel','livecodeserver','DeleteStopwords','gamepad_set_colour','Tidy_Parameters','buttonSetAction','ctrlScrollValues','GammaRegularized','-behaviour','AirPressureData','does-that-work','LOWER_X','GeoLabels','parseMatch','abort\x20break\x20case\x20clear\x20catch\x20continue\x20do\x20elseif\x20else\x20endfunction\x20end\x20for\x20function\x20global\x20if\x20pause\x20return\x20resume\x20select\x20try\x20then\x20while','SystemsModelFeedbackConnect','Expression','part_system_automatic_draw','kbv_type_url','CheckAbort','society','pt_shape_ring','anyfunc','HighpassFilter','#Determiner\x20#Noun+\x20[which]\x20#Verb','FindAnomalies','AddSides','AstroProjection','-include_lib','PacletDirectoryRemove','⦓','gamepad_is_supported','sprite_xoffset','toupper','diag_captureFrame','θ','camera_get_proj_mat','CanonicalWarpingDistance','bluff','infinity','ToonShading','DEC2OCT','bessel_first_kind','[#Verb\x20(in|out|up|down|off|back)]\x20(on|in)','3-no-period-acronym','camCommit','ˇ','stdin','argument10','DOLLAR','OpacityFunction','1-punct-hyphen\x27\x27','humanize','antlrtask','limited','AugmentedPolyhedron','$EvaluationEnvironment','StringRepeat','as-pale-as','#Adjective\x20[#Gerund]','EntityPrefetch','buffer_create_from_vertex_buffer','Multinomial','$NoValue','q\x22\x5c{','mathemat','chief\x20.\x20officer','$assertnonvacuouson','CorrelationTest','upper','work-in-the','sprite_get_bbox_bottom','assert','setVisibleIfTreeCollapsed','device-height','MultivariatePoissonDistribution','display_get_sleep_margin','analyt','MB_ICONSTOP','ROWS','#Verb\x20[around]','log10','innerHeight','SecuredAuthenticationKeys','triggerActivation','FourierCosTransform','enableStressDamage','FindEulerianCycle','Speak','matchIndexes','addParameter','plugin-types','primary\x20key','cflow','current','KeySortBy','keywordPatternRe','Factorial','physics_fixture_delete','lge','author\x20name','#submit-quiz-btn','directSay','php','CSCH','ds_list_sort','government-of-x','ProgressIndicator','ц','textarea','capnp','HorizontalScrollPosition','gpu_push_state','SubCaption','FACT','isSubordinate','SurfaceGraphics','pending','∢','elseif','pt_shape_line','log_sum_exp','debugger','data:image/svg+xml,','⪨','magazine','$','partial','ReadRegDWORD','company-wide','CDS','SampledSoundList','covar_pop','draw_line_width_colour','⋚','#Copula\x20[#Adverb]$','enableVehicleSensor','VertexDegree','opinion','separate','InstallDir','JacobiSC','\x5c\x5c([\x27\x22\x5c?\x5c\x5cabfnrtv]|u[\x5cdA-Fa-f]{4}|[0-7]{1,3}|x[\x5cdA-Fa-f]{2}|U[\x5cdA-Fa-f]{8})|&[a-zA-Z\x5cd]{2,};','SetPermissions','и','ugc_visibility_public','svd_V','atn','⤦','Dodecahedron','mapCenterOnCamera','answerCall','commandChat','ToRules','hundred\x20thousand','DETECT','CreatePalette','ExponentialBackOff','NORMAL','contradict','FischerGroupFi22','brotherhood','$asinh','$HomeDirectory','TrainImageContentDetector','$KernelCount','three','GreaterEqual','couldnt','about-love','Ѓ','Sow','getSignalStrength','won\x27t','MatchLocalNames','RealSign','__schema__','GeoVisibleRegionBoundary','phy_inertia','shape-margin','remove','none','InternalError','fipnamel','DateValue','switches','physics_joint_gear_create','selectionPosition','BitClear','layer_background_blend','schism','license','ConnesWindow','2-verb-type\x27\x27','WattsStrogatzGraphDistribution','⥟','$ActivationUserRegistered','ammoOnPylon','FormBox','$system','NestWhile','camera_create','iap_status_unavailable','WaveletThreshold','seventy','menuCollapse','ImageDeconvolve','gpu_get_blendmode_src','∖','toarray','BSSID','WeierstrassInvariants','modal_feedback','precision','⃛','AreaGeodetic','MapAll','AudioStop','dependencies','buffer_save_async','may-want','UninstallButtonText','SpheroidalQSPrime','clone','RegexIterator','row-gap','vertex_usage_position','Text','lookAfter','PaulWavelet','mp_potential_path','ctrlURL','⥕','voice-that-rocks','DiscreteWaveletData','enabled','FillingStyle','[#Infinitive]\x20(yourself|yourselves)','∀','LetterNumber','Conjunction','ParametricNDSolve','OceanData','AffineTransform','IBOutlet','redirect','ImportByteArray','PoissonWindow','make_color_hsv','[second]\x20#Noun','FinancialDerivative','render_esi','ImageInstanceQ','deptab','WebAssembly','maleable','NetInsertSharedArrays','AlgebraicNumberNorm','COSH','ŧ','path_get_point_speed','vertex_submit','^\x5cs*\x5cw+\x5cs*(,|%)','crew','hasQuote','GammaDistribution','WeatherForecastData','daccdb','\x5cb\x5cd{1,3}\x5c.\x5cd{1,3}\x5c.\x5cd{1,3}\x5c.\x5cd{1,3}(:\x5cd{1,5})?\x5cb','EmptyRegion','conference','UnitBox','draw_set_colour','GeoProjectionData','UnRegDLL','createGroup','Yesterday','\x5c.?','ycomp','could','PolyhedronBox','(?:(?![><|]|','background_colour','needReload','drawPolygon','matchOne','simulInClouds','lnbColorRight','StandardForm','Attributes','$CurrentTask','LinkFlush','gp_shoulderr','[\x5c[\x5c]\x5c|\x5c$\x5c?%,~#@]','clientY','EdgeTaggedGraphQ','SGN','FTEST','FnOnce','setCombatMode','disabled','os_xbox360','RegularExpression','RoundNearestTiesAway','grid-row','mask-clip','lbIsSelected','ef_spark','endMission','setForceGeneratorRTD','TextCardinal','MedicalTestData','sysmsg','draw_get_color','€','NetworkPacketCapture','einduction','[;.\x5c-]','ClusteringMeasurements','DensityPlot','AcyclicGraphQ','WilksW','file_text_open_from_string','audio_pause_all','[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)]\x20#Adjective','CloudAccountData','PacletInformation','AspectJ','do-you','(have|had|has)','\x5cs+','sliderPosition','DefaultLabelStyle','Wronskian','FeatureSetByName','ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uin¦3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,cap¦3ming:tem,wim,rim,kim,lim¦3ting:mat,cut,pot,lit,lot,hat,set,pit,put¦3ding:hed,bed,bid¦3king:rek¦3ling:cil,pel¦3bing:rib¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcel¦4ring:efer,nfer¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret¦4ling:evel,xcel,ivel¦4ding:hred¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil','color_get_blue','setShotParents','cbv','elevatePeriscope','PreserveColor','setGroupOwner','StreamColorFunction','\x5c(|=>','ConicHullRegion3DBoxOptions','CONT','nil','ChemicalData','malloc','some-kind-of','Box','≮','#Honorific\x20#Actor','ImageVectorscopePlot',')^:','ready','RankedMin','clipboard_has_text','BreadthFirstScan','typographer','LegendreP','parameter_count','html_to_markdown','[a-zA-Z0-9_]+','found-it-gerund','achievement_show_achievements','triand','(#Gerund|her)','without\x20timezone','sourceSets','array_height_2d','nonempty','AnnotationDelete','Negative','vertex','VideoReplace','quadraticVertex','font_get_name','(?:documentclass|usepackage|input|include)','$atanh','LengthException','ColorFunction','border-block-start','LocalResponseNormalizationLayer','StateFeedbackGains','vk_pause','#Honorific\x20#FirstName?\x20#ProperNoun','word-break','FillForm','⋋','allowedService','MoleculeMatchQ','Line3DBox','AudioInputDevice','NotebookClose','CDNSKEY','break-inside','InverseChiSquareDistribution','slug','FeatureExtractorFunction',')\x5c.)+(?:%TLDS%)))','\x22|$','Loopback','$MaxNumber','□','compgroups','EntityStores','PowerSymmetricPolynomial','One\x20of\x20your\x20code\x20blocks\x20includes\x20unescaped\x20HTML.','unreachable!','removeHandgunItem','for','LiouvilleLambda','setDropInterval','LaplacianPDETerm','@autoreleasepool','ByteOrdering','diag_tickTime','ctrlSetActiveColor','$tanh','ctrlSetFontH3B','small','bindkey','NValues','x86asm','𝕚','draw_set_valign','coffeescript','cmd','URLRead','ArcSin','CreateFile','RETURN|0','lock','zep','part_type_step','LineNumberNode','xs:positiveInteger','BinaryRead','assoc','layer_tile_change','ResamplingMethod','#Reflexive$','inline\x20rule\x20didn\x27t\x20increment\x20state.pos','colour_get_hue','Scilab','ravine','⇇','qnint','LegendMarkerSize','weekdayname','$CloudVersionNumber','BackFaceOpacity','ReturnEntersInput','getAllUnitTraits','side','Likelihood','yaml','show_message','order','\x5c{|;','popd','denominator','setRank','part_type_orientation','^\x5cs*[a-z_\x5c.\x5c$][a-z0-9_\x5c.\x5c$]+:','transitivity','ImagePad','sha256sum','AnchoredSearch','string_byte_at','waypointScript','ArrayPad','NEGBINOMDIST','layer_tilemap_destroy','║','toInteger','YES','Red','Hint','#Unit','(become|fall|grow)\x20#Adverb?\x20[#PastTense]','shownScoretable','Eigenvalues','EXEDIR','𝔠','dabs','⤪','kbv_returnkey_continue','Ť','inv_chi_square','setMarkerDir','mp_potential_path_object','WithLock','src_tlds','hypergeometric','restrict','vectorNormalized','IDOK','march-and-feb','location','GeoBoundsRegion','LEFTB','C++','#popover-container','grid-auto-flow','$dist_poisson','pf.conf','setFeatureType','list-style','ToCharacterCode','ConfidenceRange','bm_inv_src_color','room_duplicate','DeleteDuplicates','event_object','is_iostat_end','layer_get_element_type','ConstellationData','code_block','∳','Apache\x20config','IncludeDirectories','[way]\x20#Adverb\x20#Adjective','#Gerund\x20[#Gerund]','lockCargo','this-month','mp_grid_clear_rectangle','GraphicsArray','getWingsPositionRTD','-file','window_mouse_get_x','isRealTime','Arrow3DBox','Open','AiryAiPrime','waypointHousePosition','tile_rotate','juldate','ė','rgba(0,\x200,\x200,\x200.5)','LevyDistribution','$isunbounded','DynamicName','fmax','GridElementStyleOptions','phenomena','PacletUpdate','SSID','once','setFormDir','Ĥ','omit','VectorGreater','FunctionSurjective','AllowedHeads','FixedPointList','xpath','[a-zA-Z0-9_]+@','defer','⊂⃒','CrossingDetect','StreamStyle','HumpDownHump','⪯','view_set_yport','skeleton_animation_mix','∿','↫','GetFileTime','×','CellChangeTimes','any-verbs-for','fa_center','INCLUDE','53rd','⊊︀','mark','[\x5c]\x5c}]','DownTeeArrow','win8_settingscharm_add_html_entry','SynchronousUpdating','ocks','ChartLayout','MinorPlanetData','background-attachment','weaponAccessories','no-highlight','query','setRadioMsg','greatest','seems-filled','rounded-lg','VerticalGauge','json_table_primitive','edge','CloudObjectURLType',')?\x5c.(','begin_keywords','ds_map_find_previous','ses','remotePort','GeoVectorENU','NumberFieldRootsOfUnity','condition_variable','noLights','podspec','buildingExit','true\x20false','is3DENMultiplayer','audio_old_system','csr_to_dense_matrix','steam_file_persisted','Adverb\x20Adjective','PolygonAngle','SemialgebraicComponentInstances','cull_clockwise','forceWalk','gamepad_set_button_threshold',')\x20#Cardinal','tilemap_get_mask','pmouseX','⋮','HeldPart','html`','xs:time','zombies','⪂','GeodesicErosion','SummationLayer','SyntaxQ','buffer_seek_end','post','REPLACEB','sen','$BoxForms','fileprivate','Option\x20','BlockchainBase','Compute','steam_ugc_send_query','insert\x20into','ArrayBuffer','map\x20is\x20read-only','PrintingOptions','special','list_item_close','setGroupIconsVisible','WindowTitle','InverseFourierSequenceTransform','BooleanConvert','LinkProtocol','SpaceForm','cmplx','mouseMoved','$RegisteredUserName','vertex_format_add_position','date_time_string','getgrgid','coulda','2px\x20solid\x20','GCD','MatchLocalNameQ','got-tired-of','AsyncFunction','audio_pause_music','IndependentUnit','Subscript','TildeEqual','trimn','profileNamespace','child-src','VARA','tcl_wordBreakAfter','\x20class=\x27rounded-lg\x20hover:bg-blue-100\x27>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a','Include','RoundImplies','RangeException','four','CoulombH2','fipstate','ShowStringCharacters','RecursiveDirectoryIterator','eval','FactorTermsList','CellInsertionPointCell','encode_json','lcobound','ListLinePlot','perspective','dec','hurled','\x5cb(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\x5cb','GeoDistance','cbn','decimal','Read','ASLToATL','⪥','PHONETIC','asset_font','console','now_millis','bit_size','Elm','physics_particle_group_get_ang_vel','Permute','⋍','Enclose','0123456789ABCDEF','PointProcessFitTest','room_persistent','gimme','setVehicleLock','historic','does-mean','true¦earlier','subscription','ArcCsc','⋌','PickMode','FromDateString','BezierCurve3DBoxOptions','have','WindowFrame','to\x20#Verb+\x20#Conjunction\x20#Verb','(&[oO][0-7]{1,6})','xls','WheelGraph','td_open','package\x20body','NicholsPlot','xs:long','LowerLeftArrow','dark-mode','matches','^(was|were)\x20#Gerund$','RT_LD','WalleniusHypergeometricDistribution','SEMI','datalines4','Υ','gpu_set_alphatestfunc','shores','clear3DENInventory','PointProcessParameterAssumptions','srl','EdgeLabeling','NotTilde','Placeholder','ShortestMatch','Stack','localtimestamp','$async$nand$plane','superlatives','removeMenuItem','system_clock','text-decoration','$BasePacletsDirectory','Filter','⪡̸','sentences','ParallelProduct','PhaseMargins','is_string','preloadTitleRsc','HYPGEOMDIST','$MinorReleaseNumber','matchAll','ĴĵǰȷɈɉϳЈј','SubstitutionString','CreateTypeInstance','ComposeList','nfc','decodeURIComponent','ConicHullRegionBox','capital','tilemap_clear','about\x20[#Infinitive]','ShowCellTags','attributeName','KeyValueMap','isNet','enum\x20class\x20struct\x20union','avoid-loud-noises','PageBreakBelow','catname','Scala','Cuint','phy_joint_frequency','rest_arg','heading_close','TimeSeries','Sec','Clonglong','achievement_increment','phy_joint_anchor_1_y','more-gerund-than','WriteString','sextillion','schema_test','showWarrant','1\x20#Value\x20#PhoneNumber','2-xvii','NeighborhoodGraph','Ć','URLSaveAsynchronous','countUnknown','InverseDistanceTransform','SignTest','groups','IgnoreIsotopes','dirichlet','#ProperNoun\x20(ltd|co|inc|dept|assn|bros)','rawDefinition','recover','getSteamFriendsServers','facebook_request_read_permissions','OverwriteTarget','teaches-x','physics_particle_group_join','LinkRead','Processing','WindowFloating','GraphDistanceMatrix','SKEW','gpu_get_tex_max_mip_ext','ev_draw_post','Attachments','code','CHISQ.TEST','gql`','CMake','$SyntaxHandler','ise','our-full-support','.properties','diffuse','AnimatorBox','LeftDownVectorBar','AbstractArray','removeAllHandgunItems','InverseErfc','enableChannel','localhost|www\x5c.|\x5c.\x5cd{1,3}\x5c.|(?:\x5c.(?:%TLDS%)(?:','dart','event_perform','DamData','╛','ChannelObject','FindDistributionParameters','was-empty$','sysprod','))((?![$+<=>^`||])','not\x20null\x20constant\x20access\x20function\x20procedure\x20in\x20out\x20aliased\x20exception','parseNumber','BSplineCurve','ParentConnect','like-the','unformatted','times','backgroundColor','конецпроцедуры\x20конецфункции','clientSide','pmos','ev_close_button','currentChannel','TTEST','FindFirst','Uint32Array','ev_mouse_wheel_up','$CurrentLink','>⃒','SplDoublyLinkedList','in\x20of\x20on\x20if\x20for\x20while\x20finally\x20var\x20new\x20function\x20do\x20return\x20void\x20else\x20break\x20catch\x20instanceof\x20with\x20throw\x20case\x20default\x20try\x20this\x20switch\x20continue\x20typeof\x20delete\x20let\x20yield\x20const\x20export\x20super\x20debugger\x20as\x20async\x20await\x20import','TickLabelOrientation','ctrlSetShadow','safe','Convolve','Inf32','failwith','netId','About','set3DENModelsVisible','checkPUK','-export','MissingDataRules','$fstrobeh','≓','sep','velocityModelSpace','FILE_ATTRIBUTE_SYSTEM','char8_t','>','tombolo','ASC','KelvinBei','(?:New|Renew|Provide|Declare)DocumentEnvironment','popStyle','algae','camera_get_view_width','INSTDIR','ActiveClassification','enableDiagLegend','emojis','at\x20some\x20[#Infinitive]','EQUALS','```','‹','color-index','path_get_speed','tinyMLDB','NOW','LegendFunction','MatrixTDistribution','PowerMod','steam_file_delete','ImageClip','Normalized','Cosr','SubsetPosition','territory','ScientificForm','toArray','title.class','InputForm','list_item_open','implements','ClockwiseContourIntegral','physics_fixture_set_friction','std','#Cardinal+\x20out?\x20of\x20every?\x20#Cardinal','MaxItems','BitAnd','DumpSave','FourierTransform','physics_joint_wheel_create','gases','rest-before','unit_vector','ArrowBox','windDir','layerelementtype_instance','hanging-punctuation','$PreferencesDirectory','entry','^[\x20\x5ct]*(?=#)','ReadProtected','kbv_returnkey_route','foreach\x20do\x20while\x20for\x20if\x20from\x20to\x20step\x20else\x20on-error\x20and\x20or\x20not\x20in','2.3.1','KarhunenLoeveDecomposition','#sendMiniBtn','AudioLooping','GeoLength','physics_particle_set_density','bgerror','OutputStream','Databin','cdf','WithCleanup','layer_get_id_at_depth','#Place+\x20fc','COLUMN','ImportString','AudioQ','VertexLabeling','AtomLabels','if\x20.{2,9}\x20then\x20.','TriangleWave','audio_resume_sync_group','UserDefinedWavelet','classical_left','SystemHelpPath','MeshRange','mme','a-nice-inf','CoefficientList','ACOTH',')(?=(\x5cs|/?>|$))','is-no','dot_product_normalized','char_length','form|0','toView','src_domain_root','PostScript','directory','audio_music_gain','⩄','DimensionMismatch','↢','AudioSpectralMap','$size','md5_string_unicode','FinancialBond','PositionIndex','fromCharCode','moveInCommander','FromCodePoint','WebPageMetaInformation','###','\x1b[34m','is-he-cool','APL','parseFromString','from','MineralData','createTrigger','\x5cb0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\x5cb','screenToWorld','ProgressReporting','⫃','had-been-smoked','Kotlin','!%&*+-/<>@^|~?','the\x20can','OpenWrite','NestGraph','transcode','layer_tile_get_blend','draw_background','GetEnvironment','Verbs','defined','NonNegativeRationals','KernelObject','doc','\x5cs\x5c^','ExtentElementFunction','camSetTarget','$ExportFormats','#imageLiteral','translation','#quizMiniBtn','darccos','ds_list_size','Ü','toPlural','firstonly','TensorDimensions','c_green','isign','r\x27\x27\x27','HEXCOLOR','f64','DirectedGraph','layer_get_shader','os_tvos','SystemsModelSeriesConnect','layer_set_visible','VertexAdd','ScreenStyleEnvironment','GraphAutomorphismGroup','__tlds__','steam_ugc_get_item_install_info','initiate','^\x5cs*[0-9]+:','fadeRadio','TraceDepth','Tidy_Off','tpl_host_fuzzy','RamanujanTau','BadFunctionCallException','ButtonNote','ControllerLinking','FirstName',');?\x5cs)+','å','ColumnForm','vertex_usage_color','FormPage','GraphQL','$DisplayFunction','∥','TemplateWith','RSSI','FindVertexIndependentPaths','estimatedTimeLeft','phy_particle_flag_colourmixing','room_set_view','ps_distr_invgaussian','maskl','TravelDirections','MinMax','Codeunit','ieee_support_underflow_control','gpu_set_tex_mip_filter','vertex_format_add_color','steam_send_screenshot','#Value\x20(am|pm)','regr_intercept','rotorsForcesRTD','setParticleFire','SimplePolygonQ','iomsg','KroneckerDelta','ATan2','SQR','InverseHankelTransform','__weak','ds_queue_destroy','DiscreteChirpZTransform','as-we-please','!once?\x20[(a|an)]\x20(#Duration|hundred|thousand|million|billion|trillion)','unichar','want','/[a-z][a-z\x5cd-]*/','SwatchLegend','TensorExpand','SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT\x20SYSRES_CONST_ACCES_RIGHT_TYPE_FULL\x20SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW\x20SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_NO_ACCESS_VIEW\x20SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_VIEW\x20SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE\x20SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE\x20SYSRES_CONST_ACCESS_TYPE_CHANGE\x20SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE\x20SYSRES_CONST_ACCESS_TYPE_EXISTS\x20SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE\x20SYSRES_CONST_ACCESS_TYPE_FULL\x20SYSRES_CONST_ACCESS_TYPE_FULL_CODE\x20SYSRES_CONST_ACCESS_TYPE_VIEW\x20SYSRES_CONST_ACCESS_TYPE_VIEW_CODE\x20SYSRES_CONST_ACTION_TYPE_ABORT\x20SYSRES_CONST_ACTION_TYPE_ACCEPT\x20SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS\x20SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT\x20SYSRES_CONST_ACTION_TYPE_CHANGE_CARD\x20SYSRES_CONST_ACTION_TYPE_CHANGE_KIND\x20SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE\x20SYSRES_CONST_ACTION_TYPE_CONTINUE\x20SYSRES_CONST_ACTION_TYPE_COPY\x20SYSRES_CONST_ACTION_TYPE_CREATE\x20SYSRES_CONST_ACTION_TYPE_CREATE_VERSION\x20SYSRES_CONST_ACTION_TYPE_DELETE\x20SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT\x20SYSRES_CONST_ACTION_TYPE_DELETE_VERSION\x20SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS\x20SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS\x20SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE\x20SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD\x20SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD\x20SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK\x20SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK\x20SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK\x20SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK\x20SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE\x20SYSRES_CONST_ACTION_TYPE_LOCK\x20SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER\x20SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY\x20SYSRES_CONST_ACTION_TYPE_MARK_AS_READED\x20SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED\x20SYSRES_CONST_ACTION_TYPE_MODIFY\x20SYSRES_CONST_ACTION_TYPE_MODIFY_CARD\x20SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE\x20SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION\x20SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE\x20SYSRES_CONST_ACTION_TYPE_PERFORM\x20SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY\x20SYSRES_CONST_ACTION_TYPE_RESTART\x20SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE\x20SYSRES_CONST_ACTION_TYPE_REVISION\x20SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL\x20SYSRES_CONST_ACTION_TYPE_SIGN\x20SYSRES_CONST_ACTION_TYPE_START\x20SYSRES_CONST_ACTION_TYPE_UNLOCK\x20SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER\x20SYSRES_CONST_ACTION_TYPE_VERSION_STATE\x20SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY\x20SYSRES_CONST_ACTION_TYPE_VIEW\x20SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY\x20SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY\x20SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY\x20SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE\x20SYSRES_CONST_ADD_REFERENCE_MODE_NAME\x20SYSRES_CONST_ADDITION_REQUISITE_CODE\x20SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE\x20SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME\x20SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME\x20SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME\x20SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME\x20SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION\x20SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE\x20SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION\x20SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS\x20SYSRES_CONST_ALL_USERS_GROUP\x20SYSRES_CONST_ALL_USERS_GROUP_NAME\x20SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME\x20SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE\x20SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME\x20SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE\x20SYSRES_CONST_APPROVING_SIGNATURE_NAME\x20SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE\x20SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE\x20SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE\x20SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN\x20SYSRES_CONST_ATTACH_TYPE_DOC\x20SYSRES_CONST_ATTACH_TYPE_EDOC\x20SYSRES_CONST_ATTACH_TYPE_FOLDER\x20SYSRES_CONST_ATTACH_TYPE_JOB\x20SYSRES_CONST_ATTACH_TYPE_REFERENCE\x20SYSRES_CONST_ATTACH_TYPE_TASK\x20SYSRES_CONST_AUTH_ENCODED_PASSWORD\x20SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE\x20SYSRES_CONST_AUTH_NOVELL\x20SYSRES_CONST_AUTH_PASSWORD\x20SYSRES_CONST_AUTH_PASSWORD_CODE\x20SYSRES_CONST_AUTH_WINDOWS\x20SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME\x20SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE\x20SYSRES_CONST_AUTO_ENUM_METHOD_FLAG\x20SYSRES_CONST_AUTO_NUMERATION_CODE\x20SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG\x20SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE\x20SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE\x20SYSRES_CONST_AUTOTEXT_USAGE_ALL\x20SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE\x20SYSRES_CONST_AUTOTEXT_USAGE_SIGN\x20SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE\x20SYSRES_CONST_AUTOTEXT_USAGE_WORK\x20SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE\x20SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE\x20SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE\x20SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE\x20SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE\x20SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_BTN_PART\x20SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE\x20SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE\x20SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE\x20SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT\x20SYSRES_CONST_CARD_PART\x20SYSRES_CONST_CARD_REFERENCE_MODE_NAME\x20SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE\x20SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE\x20SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE\x20SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE\x20SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE\x20SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE\x20SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE\x20SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE\x20SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE\x20SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE\x20SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN\x20SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER\x20SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS\x20SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS\x20SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE\x20SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER\x20SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE\x20SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT\x20SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT\x20SYSRES_CONST_CODE_COMPONENT_TYPE_URL\x20SYSRES_CONST_CODE_REQUISITE_ACCESS\x20SYSRES_CONST_CODE_REQUISITE_CODE\x20SYSRES_CONST_CODE_REQUISITE_COMPONENT\x20SYSRES_CONST_CODE_REQUISITE_DESCRIPTION\x20SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT\x20SYSRES_CONST_CODE_REQUISITE_RECORD\x20SYSRES_CONST_COMMENT_REQ_CODE\x20SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE\x20SYSRES_CONST_COMP_CODE_GRD\x20SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE\x20SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS\x20SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS\x20SYSRES_CONST_COMPONENT_TYPE_DOCS\x20SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS\x20SYSRES_CONST_COMPONENT_TYPE_EDOCS\x20SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE\x20SYSRES_CONST_COMPONENT_TYPE_OTHER\x20SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES\x20SYSRES_CONST_COMPONENT_TYPE_REFERENCES\x20SYSRES_CONST_COMPONENT_TYPE_REPORTS\x20SYSRES_CONST_COMPONENT_TYPE_SCRIPTS\x20SYSRES_CONST_COMPONENT_TYPE_URL\x20SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE\x20SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION\x20SYSRES_CONST_CONST_FIRM_STATUS_COMMON\x20SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL\x20SYSRES_CONST_CONST_NEGATIVE_VALUE\x20SYSRES_CONST_CONST_POSITIVE_VALUE\x20SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE\x20SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE\x20SYSRES_CONST_CONTENTS_REQUISITE_CODE\x20SYSRES_CONST_DATA_TYPE_BOOLEAN\x20SYSRES_CONST_DATA_TYPE_DATE\x20SYSRES_CONST_DATA_TYPE_FLOAT\x20SYSRES_CONST_DATA_TYPE_INTEGER\x20SYSRES_CONST_DATA_TYPE_PICK\x20SYSRES_CONST_DATA_TYPE_REFERENCE\x20SYSRES_CONST_DATA_TYPE_STRING\x20SYSRES_CONST_DATA_TYPE_TEXT\x20SYSRES_CONST_DATA_TYPE_VARIANT\x20SYSRES_CONST_DATE_CLOSE_REQ_CODE\x20SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR\x20SYSRES_CONST_DATE_OPEN_REQ_CODE\x20SYSRES_CONST_DATE_REQUISITE\x20SYSRES_CONST_DATE_REQUISITE_CODE\x20SYSRES_CONST_DATE_REQUISITE_NAME\x20SYSRES_CONST_DATE_REQUISITE_TYPE\x20SYSRES_CONST_DATE_TYPE_CHAR\x20SYSRES_CONST_DATETIME_FORMAT_VALUE\x20SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE\x20SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE\x20SYSRES_CONST_DESCRIPTION_REQUISITE_CODE\x20SYSRES_CONST_DET1_PART\x20SYSRES_CONST_DET2_PART\x20SYSRES_CONST_DET3_PART\x20SYSRES_CONST_DET4_PART\x20SYSRES_CONST_DET5_PART\x20SYSRES_CONST_DET6_PART\x20SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE\x20SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE\x20SYSRES_CONST_DETAIL_REQ_CODE\x20SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE\x20SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME\x20SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE\x20SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME\x20SYSRES_CONST_DOCUMENT_STORAGES_CODE\x20SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME\x20SYSRES_CONST_DOUBLE_REQUISITE_CODE\x20SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE\x20SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE\x20SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE\x20SYSRES_CONST_EDITORS_REFERENCE_CODE\x20SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE\x20SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE\x20SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE\x20SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE\x20SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE\x20SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE\x20SYSRES_CONST_EDOC_DATE_REQUISITE_CODE\x20SYSRES_CONST_EDOC_KIND_REFERENCE_CODE\x20SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE\x20SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE\x20SYSRES_CONST_EDOC_NONE_ENCODE_CODE\x20SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE\x20SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE\x20SYSRES_CONST_EDOC_READONLY_ACCESS_CODE\x20SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE\x20SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE\x20SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE\x20SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE\x20SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE\x20SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE\x20SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE\x20SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE\x20SYSRES_CONST_EDOC_WRITE_ACCES_CODE\x20SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE\x20SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE\x20SYSRES_CONST_END_DATE_REQUISITE_CODE\x20SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE\x20SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE\x20SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE\x20SYSRES_CONST_EXIST_CONST\x20SYSRES_CONST_EXIST_VALUE\x20SYSRES_CONST_EXPORT_LOCK_TYPE_ASK\x20SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK\x20SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK\x20SYSRES_CONST_EXPORT_VERSION_TYPE_ASK\x20SYSRES_CONST_EXPORT_VERSION_TYPE_LAST\x20SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE\x20SYSRES_CONST_EXTENSION_REQUISITE_CODE\x20SYSRES_CONST_FILTER_NAME_REQUISITE_CODE\x20SYSRES_CONST_FILTER_REQUISITE_CODE\x20SYSRES_CONST_FILTER_TYPE_COMMON_CODE\x20SYSRES_CONST_FILTER_TYPE_COMMON_NAME\x20SYSRES_CONST_FILTER_TYPE_USER_CODE\x20SYSRES_CONST_FILTER_TYPE_USER_NAME\x20SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME\x20SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR\x20SYSRES_CONST_FLOAT_REQUISITE_TYPE\x20SYSRES_CONST_FOLDER_AUTHOR_VALUE\x20SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS\x20SYSRES_CONST_FOLDER_KIND_COMPONENTS\x20SYSRES_CONST_FOLDER_KIND_EDOCS\x20SYSRES_CONST_FOLDER_KIND_JOBS\x20SYSRES_CONST_FOLDER_KIND_TASKS\x20SYSRES_CONST_FOLDER_TYPE_COMMON\x20SYSRES_CONST_FOLDER_TYPE_COMPONENT\x20SYSRES_CONST_FOLDER_TYPE_FAVORITES\x20SYSRES_CONST_FOLDER_TYPE_INBOX\x20SYSRES_CONST_FOLDER_TYPE_OUTBOX\x20SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH\x20SYSRES_CONST_FOLDER_TYPE_SEARCH\x20SYSRES_CONST_FOLDER_TYPE_SHORTCUTS\x20SYSRES_CONST_FOLDER_TYPE_USER\x20SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG\x20SYSRES_CONST_FULL_SUBSTITUTE_TYPE\x20SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE\x20SYSRES_CONST_FUNCTION_CANCEL_RESULT\x20SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM\x20SYSRES_CONST_FUNCTION_CATEGORY_USER\x20SYSRES_CONST_FUNCTION_FAILURE_RESULT\x20SYSRES_CONST_FUNCTION_SAVE_RESULT\x20SYSRES_CONST_GENERATED_REQUISITE\x20SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE\x20SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE\x20SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME\x20SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE\x20SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME\x20SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE\x20SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE\x20SYSRES_CONST_GROUP_NAME_REQUISITE_CODE\x20SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE\x20SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE\x20SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE\x20SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE\x20SYSRES_CONST_GROUP_USER_REQUISITE_CODE\x20SYSRES_CONST_GROUPS_REFERENCE_CODE\x20SYSRES_CONST_GROUPS_REQUISITE_CODE\x20SYSRES_CONST_HIDDEN_MODE_NAME\x20SYSRES_CONST_HIGH_LVL_REQUISITE_CODE\x20SYSRES_CONST_HISTORY_ACTION_CREATE_CODE\x20SYSRES_CONST_HISTORY_ACTION_DELETE_CODE\x20SYSRES_CONST_HISTORY_ACTION_EDIT_CODE\x20SYSRES_CONST_HOUR_CHAR\x20SYSRES_CONST_ID_REQUISITE_CODE\x20SYSRES_CONST_IDSPS_REQUISITE_CODE\x20SYSRES_CONST_IMAGE_MODE_COLOR\x20SYSRES_CONST_IMAGE_MODE_GREYSCALE\x20SYSRES_CONST_IMAGE_MODE_MONOCHROME\x20SYSRES_CONST_IMPORTANCE_HIGH\x20SYSRES_CONST_IMPORTANCE_LOW\x20SYSRES_CONST_IMPORTANCE_NORMAL\x20SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE\x20SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE\x20SYSRES_CONST_INT_REQUISITE\x20SYSRES_CONST_INT_REQUISITE_TYPE\x20SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR\x20SYSRES_CONST_INTEGER_TYPE_CHAR\x20SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE\x20SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE\x20SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE\x20SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE\x20SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE\x20SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE\x20SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE\x20SYSRES_CONST_JOB_BLOCK_DESCRIPTION\x20SYSRES_CONST_JOB_KIND_CONTROL_JOB\x20SYSRES_CONST_JOB_KIND_JOB\x20SYSRES_CONST_JOB_KIND_NOTICE\x20SYSRES_CONST_JOB_STATE_ABORTED\x20SYSRES_CONST_JOB_STATE_COMPLETE\x20SYSRES_CONST_JOB_STATE_WORKING\x20SYSRES_CONST_KIND_REQUISITE_CODE\x20SYSRES_CONST_KIND_REQUISITE_NAME\x20SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE\x20SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE\x20SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE\x20SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE\x20SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE\x20SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE\x20SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE\x20SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE\x20SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE\x20SYSRES_CONST_KOD_INPUT_TYPE\x20SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE\x20SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE\x20SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT\x20SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT\x20SYSRES_CONST_LINK_OBJECT_KIND_EDOC\x20SYSRES_CONST_LINK_OBJECT_KIND_FOLDER\x20SYSRES_CONST_LINK_OBJECT_KIND_JOB\x20SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE\x20SYSRES_CONST_LINK_OBJECT_KIND_TASK\x20SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE\x20SYSRES_CONST_LIST_REFERENCE_MODE_NAME\x20SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE\x20SYSRES_CONST_MAIN_VIEW_CODE\x20SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG\x20SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE\x20SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE\x20SYSRES_CONST_MAXIMIZED_MODE_NAME\x20SYSRES_CONST_ME_VALUE\x20SYSRES_CONST_MESSAGE_ATTENTION_CAPTION\x20SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION\x20SYSRES_CONST_MESSAGE_ERROR_CAPTION\x20SYSRES_CONST_MESSAGE_INFORMATION_CAPTION\x20SYSRES_CONST_MINIMIZED_MODE_NAME\x20SYSRES_CONST_MINUTE_CHAR\x20SYSRES_CONST_MODULE_REQUISITE_CODE\x20SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION\x20SYSRES_CONST_MONTH_FORMAT_VALUE\x20SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE\x20SYSRES_CONST_NAME_REQUISITE_CODE\x20SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE\x20SYSRES_CONST_NAMEAN_INPUT_TYPE\x20SYSRES_CONST_NEGATIVE_PICK_VALUE\x20SYSRES_CONST_NEGATIVE_VALUE\x20SYSRES_CONST_NO\x20SYSRES_CONST_NO_PICK_VALUE\x20SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE\x20SYSRES_CONST_NO_VALUE\x20SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE\x20SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE\x20SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE\x20SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE\x20SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE\x20SYSRES_CONST_NORMAL_MODE_NAME\x20SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE\x20SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME\x20SYSRES_CONST_NOTE_REQUISITE_CODE\x20SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION\x20SYSRES_CONST_NUM_REQUISITE\x20SYSRES_CONST_NUM_STR_REQUISITE_CODE\x20SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG\x20SYSRES_CONST_NUMERATION_AUTO_STRONG\x20SYSRES_CONST_NUMERATION_FROM_DICTONARY\x20SYSRES_CONST_NUMERATION_MANUAL\x20SYSRES_CONST_NUMERIC_TYPE_CHAR\x20SYSRES_CONST_NUMREQ_REQUISITE_CODE\x20SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE\x20SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE\x20SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE\x20SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE\x20SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE\x20SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX\x20SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_ORIGINALREF_REQUISITE_CODE\x20SYSRES_CONST_OURFIRM_REF_CODE\x20SYSRES_CONST_OURFIRM_REQUISITE_CODE\x20SYSRES_CONST_OURFIRM_VAR\x20SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE\x20SYSRES_CONST_PICK_NEGATIVE_RESULT\x20SYSRES_CONST_PICK_POSITIVE_RESULT\x20SYSRES_CONST_PICK_REQUISITE\x20SYSRES_CONST_PICK_REQUISITE_TYPE\x20SYSRES_CONST_PICK_TYPE_CHAR\x20SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE\x20SYSRES_CONST_PLATFORM_VERSION_COMMENT\x20SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE\x20SYSRES_CONST_POSITIVE_PICK_VALUE\x20SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE\x20SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE\x20SYSRES_CONST_PRIORITY_REQUISITE_CODE\x20SYSRES_CONST_QUALIFIED_TASK_TYPE\x20SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE\x20SYSRES_CONST_RECSTAT_REQUISITE_CODE\x20SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE\x20SYSRES_CONST_REF_REQUISITE\x20SYSRES_CONST_REF_REQUISITE_TYPE\x20SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE\x20SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE\x20SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE\x20SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE\x20SYSRES_CONST_REFERENCE_TYPE_CHAR\x20SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME\x20SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE\x20SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE\x20SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING\x20SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN\x20SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY\x20SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE\x20SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL\x20SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE\x20SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE\x20SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE\x20SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE\x20SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE\x20SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE\x20SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE\x20SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE\x20SYSRES_CONST_REQ_MODE_AVAILABLE_CODE\x20SYSRES_CONST_REQ_MODE_EDIT_CODE\x20SYSRES_CONST_REQ_MODE_HIDDEN_CODE\x20SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE\x20SYSRES_CONST_REQ_MODE_VIEW_CODE\x20SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE\x20SYSRES_CONST_REQ_SECTION_VALUE\x20SYSRES_CONST_REQ_TYPE_VALUE\x20SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT\x20SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL\x20SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME\x20SYSRES_CONST_REQUISITE_FORMAT_LEFT\x20SYSRES_CONST_REQUISITE_FORMAT_RIGHT\x20SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT\x20SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE\x20SYSRES_CONST_REQUISITE_SECTION_ACTIONS\x20SYSRES_CONST_REQUISITE_SECTION_BUTTON\x20SYSRES_CONST_REQUISITE_SECTION_BUTTONS\x20SYSRES_CONST_REQUISITE_SECTION_CARD\x20SYSRES_CONST_REQUISITE_SECTION_TABLE\x20SYSRES_CONST_REQUISITE_SECTION_TABLE10\x20SYSRES_CONST_REQUISITE_SECTION_TABLE11\x20SYSRES_CONST_REQUISITE_SECTION_TABLE12\x20SYSRES_CONST_REQUISITE_SECTION_TABLE13\x20SYSRES_CONST_REQUISITE_SECTION_TABLE14\x20SYSRES_CONST_REQUISITE_SECTION_TABLE15\x20SYSRES_CONST_REQUISITE_SECTION_TABLE16\x20SYSRES_CONST_REQUISITE_SECTION_TABLE17\x20SYSRES_CONST_REQUISITE_SECTION_TABLE18\x20SYSRES_CONST_REQUISITE_SECTION_TABLE19\x20SYSRES_CONST_REQUISITE_SECTION_TABLE2\x20SYSRES_CONST_REQUISITE_SECTION_TABLE20\x20SYSRES_CONST_REQUISITE_SECTION_TABLE21\x20SYSRES_CONST_REQUISITE_SECTION_TABLE22\x20SYSRES_CONST_REQUISITE_SECTION_TABLE23\x20SYSRES_CONST_REQUISITE_SECTION_TABLE24\x20SYSRES_CONST_REQUISITE_SECTION_TABLE3\x20SYSRES_CONST_REQUISITE_SECTION_TABLE4\x20SYSRES_CONST_REQUISITE_SECTION_TABLE5\x20SYSRES_CONST_REQUISITE_SECTION_TABLE6\x20SYSRES_CONST_REQUISITE_SECTION_TABLE7\x20SYSRES_CONST_REQUISITE_SECTION_TABLE8\x20SYSRES_CONST_REQUISITE_SECTION_TABLE9\x20SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE\x20SYSRES_CONST_RIGHT_ALIGNMENT_CODE\x20SYSRES_CONST_ROLES_REFERENCE_CODE\x20SYSRES_CONST_ROUTE_STEP_AFTER_RUS\x20SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS\x20SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS\x20SYSRES_CONST_ROUTE_TYPE_COMPLEX\x20SYSRES_CONST_ROUTE_TYPE_PARALLEL\x20SYSRES_CONST_ROUTE_TYPE_SERIAL\x20SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE\x20SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE\x20SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE\x20SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION\x20SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE\x20SYSRES_CONST_SEARCHES_COMPONENT_CONTENT\x20SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME\x20SYSRES_CONST_SEARCHES_EDOC_CONTENT\x20SYSRES_CONST_SEARCHES_FOLDER_CONTENT\x20SYSRES_CONST_SEARCHES_JOB_CONTENT\x20SYSRES_CONST_SEARCHES_REFERENCE_CODE\x20SYSRES_CONST_SEARCHES_TASK_CONTENT\x20SYSRES_CONST_SECOND_CHAR\x20SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_CODE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE\x20SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE\x20SYSRES_CONST_SELECT_REFERENCE_MODE_NAME\x20SYSRES_CONST_SELECT_TYPE_SELECTABLE\x20SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD\x20SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD\x20SYSRES_CONST_SELECT_TYPE_UNSLECTABLE\x20SYSRES_CONST_SERVER_TYPE_MAIN\x20SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE\x20SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE\x20SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE\x20SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE\x20SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE\x20SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE\x20SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE\x20SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE\x20SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE\x20SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE\x20SYSRES_CONST_STATE_REQ_NAME\x20SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE\x20SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE\x20SYSRES_CONST_STATE_REQUISITE_CODE\x20SYSRES_CONST_STATIC_ROLE_TYPE_CODE\x20SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE\x20SYSRES_CONST_STATUS_VALUE_AUTOCLEANING\x20SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE\x20SYSRES_CONST_STATUS_VALUE_COMPLETE\x20SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE\x20SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE\x20SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE\x20SYSRES_CONST_STATUS_VALUE_RED_SQUARE\x20SYSRES_CONST_STATUS_VALUE_SUSPEND\x20SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE\x20SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE\x20SYSRES_CONST_STORAGE_TYPE_FILE\x20SYSRES_CONST_STORAGE_TYPE_SQL_SERVER\x20SYSRES_CONST_STR_REQUISITE\x20SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE\x20SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR\x20SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR\x20SYSRES_CONST_STRING_REQUISITE_CODE\x20SYSRES_CONST_STRING_REQUISITE_TYPE\x20SYSRES_CONST_STRING_TYPE_CHAR\x20SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE\x20SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION\x20SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE\x20SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE\x20SYSRES_CONST_SYSTEM_VERSION_COMMENT\x20SYSRES_CONST_TASK_ACCESS_TYPE_ALL\x20SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS\x20SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL\x20SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION\x20SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD\x20SYSRES_CONST_TASK_ENCODE_TYPE_NONE\x20SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD\x20SYSRES_CONST_TASK_ROUTE_ALL_CONDITION\x20SYSRES_CONST_TASK_ROUTE_AND_CONDITION\x20SYSRES_CONST_TASK_ROUTE_OR_CONDITION\x20SYSRES_CONST_TASK_STATE_ABORTED\x20SYSRES_CONST_TASK_STATE_COMPLETE\x20SYSRES_CONST_TASK_STATE_CONTINUED\x20SYSRES_CONST_TASK_STATE_CONTROL\x20SYSRES_CONST_TASK_STATE_INIT\x20SYSRES_CONST_TASK_STATE_WORKING\x20SYSRES_CONST_TASK_TITLE\x20SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE\x20SYSRES_CONST_TASK_TYPES_REFERENCE_CODE\x20SYSRES_CONST_TEMPLATES_REFERENCE_CODE\x20SYSRES_CONST_TEST_DATE_REQUISITE_NAME\x20SYSRES_CONST_TEST_DEV_DATABASE_NAME\x20SYSRES_CONST_TEST_DEV_SYSTEM_CODE\x20SYSRES_CONST_TEST_EDMS_DATABASE_NAME\x20SYSRES_CONST_TEST_EDMS_MAIN_CODE\x20SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME\x20SYSRES_CONST_TEST_EDMS_SECOND_CODE\x20SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME\x20SYSRES_CONST_TEST_EDMS_SYSTEM_CODE\x20SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME\x20SYSRES_CONST_TEXT_REQUISITE\x20SYSRES_CONST_TEXT_REQUISITE_CODE\x20SYSRES_CONST_TEXT_REQUISITE_TYPE\x20SYSRES_CONST_TEXT_TYPE_CHAR\x20SYSRES_CONST_TYPE_CODE_REQUISITE_CODE\x20SYSRES_CONST_TYPE_REQUISITE_CODE\x20SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR\x20SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE\x20SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE\x20SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE\x20SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE\x20SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME\x20SYSRES_CONST_USE_ACCESS_TYPE_CODE\x20SYSRES_CONST_USE_ACCESS_TYPE_NAME\x20SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE\x20SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE\x20SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE\x20SYSRES_CONST_USER_CATEGORY_NORMAL\x20SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE\x20SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE\x20SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE\x20SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE\x20SYSRES_CONST_USER_COMMON_CATEGORY\x20SYSRES_CONST_USER_COMMON_CATEGORY_CODE\x20SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE\x20SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE\x20SYSRES_CONST_USER_LOGIN_REQUISITE_CODE\x20SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE\x20SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE\x20SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE\x20SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE\x20SYSRES_CONST_USER_SERVICE_CATEGORY\x20SYSRES_CONST_USER_SERVICE_CATEGORY_CODE\x20SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE\x20SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME\x20SYSRES_CONST_USER_STATUS_DEVELOPER_CODE\x20SYSRES_CONST_USER_STATUS_DEVELOPER_NAME\x20SYSRES_CONST_USER_STATUS_DISABLED_CODE\x20SYSRES_CONST_USER_STATUS_DISABLED_NAME\x20SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE\x20SYSRES_CONST_USER_STATUS_USER_CODE\x20SYSRES_CONST_USER_STATUS_USER_NAME\x20SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED\x20SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER\x20SYSRES_CONST_USER_TYPE_REQUISITE_CODE\x20SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE\x20SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE\x20SYSRES_CONST_USERS_REFERENCE_CODE\x20SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME\x20SYSRES_CONST_USERS_REQUISITE_CODE\x20SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE\x20SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE\x20SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE\x20SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE\x20SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE\x20SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME\x20SYSRES_CONST_VIEW_DEFAULT_CODE\x20SYSRES_CONST_VIEW_DEFAULT_NAME\x20SYSRES_CONST_VIEWER_REQUISITE_CODE\x20SYSRES_CONST_WAITING_BLOCK_DESCRIPTION\x20SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING\x20\x20SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING\x20SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE\x20SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE\x20SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE\x20SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE\x20SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE\x20SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS\x20SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS\x20SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD\x20SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT\x20SYSRES_CONST_XML_ENCODING\x20SYSRES_CONST_XREC_STAT_REQUISITE_CODE\x20SYSRES_CONST_XRECID_FIELD_NAME\x20SYSRES_CONST_YES\x20SYSRES_CONST_YES_NO_2_REQUISITE_CODE\x20SYSRES_CONST_YES_NO_REQUISITE_CODE\x20SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE\x20SYSRES_CONST_YES_PICK_VALUE\x20SYSRES_CONST_YES_VALUE\x20CR\x20FALSE\x20nil\x20NO_VALUE\x20NULL\x20TAB\x20TRUE\x20YES_VALUE\x20ADMINISTRATORS_GROUP_NAME\x20CUSTOMIZERS_GROUP_NAME\x20DEVELOPERS_GROUP_NAME\x20SERVICE_USERS_GROUP_NAME\x20DECISION_BLOCK_FIRST_OPERAND_PROPERTY\x20DECISION_BLOCK_NAME_PROPERTY\x20DECISION_BLOCK_OPERATION_PROPERTY\x20DECISION_BLOCK_RESULT_TYPE_PROPERTY\x20DECISION_BLOCK_SECOND_OPERAND_PROPERTY\x20ANY_FILE_EXTENTION\x20COMPRESSED_DOCUMENT_EXTENSION\x20EXTENDED_DOCUMENT_EXTENSION\x20SHORT_COMPRESSED_DOCUMENT_EXTENSION\x20SHORT_EXTENDED_DOCUMENT_EXTENSION\x20JOB_BLOCK_ABORT_DEADLINE_PROPERTY\x20JOB_BLOCK_AFTER_FINISH_EVENT\x20JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT\x20JOB_BLOCK_ATTACHMENT_PROPERTY\x20JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY\x20JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY\x20JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT\x20JOB_BLOCK_BEFORE_START_EVENT\x20JOB_BLOCK_CREATED_JOBS_PROPERTY\x20JOB_BLOCK_DEADLINE_PROPERTY\x20JOB_BLOCK_EXECUTION_RESULTS_PROPERTY\x20JOB_BLOCK_IS_PARALLEL_PROPERTY\x20JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY\x20JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY\x20JOB_BLOCK_JOB_TEXT_PROPERTY\x20JOB_BLOCK_NAME_PROPERTY\x20JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY\x20JOB_BLOCK_PERFORMER_PROPERTY\x20JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY\x20JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY\x20JOB_BLOCK_SUBJECT_PROPERTY\x20ENGLISH_LANGUAGE_CODE\x20RUSSIAN_LANGUAGE_CODE\x20smHidden\x20smMaximized\x20smMinimized\x20smNormal\x20wmNo\x20wmYes\x20COMPONENT_TOKEN_LINK_KIND\x20DOCUMENT_LINK_KIND\x20EDOCUMENT_LINK_KIND\x20FOLDER_LINK_KIND\x20JOB_LINK_KIND\x20REFERENCE_LINK_KIND\x20TASK_LINK_KIND\x20COMPONENT_TOKEN_LOCK_TYPE\x20EDOCUMENT_VERSION_LOCK_TYPE\x20MONITOR_BLOCK_AFTER_FINISH_EVENT\x20MONITOR_BLOCK_BEFORE_START_EVENT\x20MONITOR_BLOCK_DEADLINE_PROPERTY\x20MONITOR_BLOCK_INTERVAL_PROPERTY\x20MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY\x20MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY\x20MONITOR_BLOCK_NAME_PROPERTY\x20MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY\x20MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY\x20NOTICE_BLOCK_AFTER_FINISH_EVENT\x20NOTICE_BLOCK_ATTACHMENT_PROPERTY\x20NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY\x20NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY\x20NOTICE_BLOCK_BEFORE_START_EVENT\x20NOTICE_BLOCK_CREATED_NOTICES_PROPERTY\x20NOTICE_BLOCK_DEADLINE_PROPERTY\x20NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY\x20NOTICE_BLOCK_NAME_PROPERTY\x20NOTICE_BLOCK_NOTICE_TEXT_PROPERTY\x20NOTICE_BLOCK_PERFORMER_PROPERTY\x20NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY\x20NOTICE_BLOCK_SUBJECT_PROPERTY\x20dseAfterCancel\x20dseAfterClose\x20dseAfterDelete\x20dseAfterDeleteOutOfTransaction\x20dseAfterInsert\x20dseAfterOpen\x20dseAfterScroll\x20dseAfterUpdate\x20dseAfterUpdateOutOfTransaction\x20dseBeforeCancel\x20dseBeforeClose\x20dseBeforeDelete\x20dseBeforeDetailUpdate\x20dseBeforeInsert\x20dseBeforeOpen\x20dseBeforeUpdate\x20dseOnAnyRequisiteChange\x20dseOnCloseRecord\x20dseOnDeleteError\x20dseOnOpenRecord\x20dseOnPrepareUpdate\x20dseOnUpdateError\x20dseOnUpdateRatifiedRecord\x20dseOnValidDelete\x20dseOnValidUpdate\x20reOnChange\x20reOnChangeValues\x20SELECTION_BEGIN_ROUTE_EVENT\x20SELECTION_END_ROUTE_EVENT\x20CURRENT_PERIOD_IS_REQUIRED\x20PREVIOUS_CARD_TYPE_NAME\x20SHOW_RECORD_PROPERTIES_FORM\x20ACCESS_RIGHTS_SETTING_DIALOG_CODE\x20ADMINISTRATOR_USER_CODE\x20ANALYTIC_REPORT_TYPE\x20asrtHideLocal\x20asrtHideRemote\x20CALCULATED_ROLE_TYPE_CODE\x20COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE\x20DCTS_TEST_PROTOCOLS_FOLDER_PATH\x20E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED\x20E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER\x20E_EDOC_VERSION_ALREDY_SIGNED\x20E_EDOC_VERSION_ALREDY_SIGNED_BY_USER\x20EDOC_TYPES_CODE_REQUISITE_FIELD_NAME\x20EDOCUMENTS_ALIAS_NAME\x20FILES_FOLDER_PATH\x20FILTER_OPERANDS_DELIMITER\x20FILTER_OPERATIONS_DELIMITER\x20FORMCARD_NAME\x20FORMLIST_NAME\x20GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE\x20GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE\x20INTEGRATED_REPORT_TYPE\x20IS_BUILDER_APPLICATION_ROLE\x20IS_BUILDER_APPLICATION_ROLE2\x20IS_BUILDER_USERS\x20ISBSYSDEV\x20LOG_FOLDER_PATH\x20mbCancel\x20mbNo\x20mbNoToAll\x20mbOK\x20mbYes\x20mbYesToAll\x20MEMORY_DATASET_DESRIPTIONS_FILENAME\x20mrNo\x20mrNoToAll\x20mrYes\x20mrYesToAll\x20MULTIPLE_SELECT_DIALOG_CODE\x20NONOPERATING_RECORD_FLAG_FEMININE\x20NONOPERATING_RECORD_FLAG_MASCULINE\x20OPERATING_RECORD_FLAG_FEMININE\x20OPERATING_RECORD_FLAG_MASCULINE\x20PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE\x20PROGRAM_INITIATED_LOOKUP_ACTION\x20ratDelete\x20ratEdit\x20ratInsert\x20REPORT_TYPE\x20REQUIRED_PICK_VALUES_VARIABLE\x20rmCard\x20rmList\x20SBRTE_PROGID_DEV\x20SBRTE_PROGID_RELEASE\x20STATIC_ROLE_TYPE_CODE\x20SUPPRESS_EMPTY_TEMPLATE_CREATION\x20SYSTEM_USER_CODE\x20UPDATE_DIALOG_DATASET\x20USED_IN_OBJECT_HINT_PARAM\x20USER_INITIATED_LOOKUP_ACTION\x20USER_NAME_FORMAT\x20USER_SELECTION_RESTRICTIONS\x20WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH\x20ELS_SUBTYPE_CONTROL_NAME\x20ELS_FOLDER_KIND_CONTROL_NAME\x20REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME\x20PRIVILEGE_COMPONENT_FULL_ACCESS\x20PRIVILEGE_DEVELOPMENT_EXPORT\x20PRIVILEGE_DEVELOPMENT_IMPORT\x20PRIVILEGE_DOCUMENT_DELETE\x20PRIVILEGE_ESD\x20PRIVILEGE_FOLDER_DELETE\x20PRIVILEGE_MANAGE_ACCESS_RIGHTS\x20PRIVILEGE_MANAGE_REPLICATION\x20PRIVILEGE_MANAGE_SESSION_SERVER\x20PRIVILEGE_OBJECT_FULL_ACCESS\x20PRIVILEGE_OBJECT_VIEW\x20PRIVILEGE_RESERVE_LICENSE\x20PRIVILEGE_SYSTEM_CUSTOMIZE\x20PRIVILEGE_SYSTEM_DEVELOP\x20PRIVILEGE_SYSTEM_INSTALL\x20PRIVILEGE_TASK_DELETE\x20PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE\x20PRIVILEGES_PSEUDOREFERENCE_CODE\x20ACCESS_TYPES_PSEUDOREFERENCE_CODE\x20ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE\x20ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE\x20ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE\x20AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE\x20COMPONENTS_PSEUDOREFERENCE_CODE\x20FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE\x20GROUPS_PSEUDOREFERENCE_CODE\x20RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE\x20REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE\x20REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE\x20REFTYPES_PSEUDOREFERENCE_CODE\x20REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE\x20SEND_PROTOCOL_PSEUDOREFERENCE_CODE\x20SUBSTITUTES_PSEUDOREFERENCE_CODE\x20SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE\x20UNITS_PSEUDOREFERENCE_CODE\x20USERS_PSEUDOREFERENCE_CODE\x20VIEWERS_PSEUDOREFERENCE_CODE\x20CERTIFICATE_TYPE_ENCRYPT\x20CERTIFICATE_TYPE_SIGN\x20CERTIFICATE_TYPE_SIGN_AND_ENCRYPT\x20STORAGE_TYPE_FILE\x20STORAGE_TYPE_NAS_CIFS\x20STORAGE_TYPE_SAPERION\x20STORAGE_TYPE_SQL_SERVER\x20COMPTYPE2_REQUISITE_DOCUMENTS_VALUE\x20COMPTYPE2_REQUISITE_TASKS_VALUE\x20COMPTYPE2_REQUISITE_FOLDERS_VALUE\x20COMPTYPE2_REQUISITE_REFERENCES_VALUE\x20SYSREQ_CODE\x20SYSREQ_COMPTYPE2\x20SYSREQ_CONST_AVAILABLE_FOR_WEB\x20SYSREQ_CONST_COMMON_CODE\x20SYSREQ_CONST_COMMON_VALUE\x20SYSREQ_CONST_FIRM_CODE\x20SYSREQ_CONST_FIRM_STATUS\x20SYSREQ_CONST_FIRM_VALUE\x20SYSREQ_CONST_SERVER_STATUS\x20SYSREQ_CONTENTS\x20SYSREQ_DATE_OPEN\x20SYSREQ_DATE_CLOSE\x20SYSREQ_DESCRIPTION\x20SYSREQ_DESCRIPTION_LOCALIZE_ID\x20SYSREQ_DOUBLE\x20SYSREQ_EDOC_ACCESS_TYPE\x20SYSREQ_EDOC_AUTHOR\x20SYSREQ_EDOC_CREATED\x20SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE\x20SYSREQ_EDOC_EDITOR\x20SYSREQ_EDOC_ENCODE_TYPE\x20SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME\x20SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION\x20SYSREQ_EDOC_EXPORT_DATE\x20SYSREQ_EDOC_EXPORTER\x20SYSREQ_EDOC_KIND\x20SYSREQ_EDOC_LIFE_STAGE_NAME\x20SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE\x20SYSREQ_EDOC_MODIFIED\x20SYSREQ_EDOC_NAME\x20SYSREQ_EDOC_NOTE\x20SYSREQ_EDOC_QUALIFIED_ID\x20SYSREQ_EDOC_SESSION_KEY\x20SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME\x20SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION\x20SYSREQ_EDOC_SIGNATURE_TYPE\x20SYSREQ_EDOC_SIGNED\x20SYSREQ_EDOC_STORAGE\x20SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE\x20SYSREQ_EDOC_STORAGES_CHECK_RIGHTS\x20SYSREQ_EDOC_STORAGES_COMPUTER_NAME\x20SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE\x20SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE\x20SYSREQ_EDOC_STORAGES_FUNCTION\x20SYSREQ_EDOC_STORAGES_INITIALIZED\x20SYSREQ_EDOC_STORAGES_LOCAL_PATH\x20SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME\x20SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT\x20SYSREQ_EDOC_STORAGES_SERVER_NAME\x20SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME\x20SYSREQ_EDOC_STORAGES_TYPE\x20SYSREQ_EDOC_TEXT_MODIFIED\x20SYSREQ_EDOC_TYPE_ACT_CODE\x20SYSREQ_EDOC_TYPE_ACT_DESCRIPTION\x20SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID\x20SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE\x20SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS\x20SYSREQ_EDOC_TYPE_ACT_SECTION\x20SYSREQ_EDOC_TYPE_ADD_PARAMS\x20SYSREQ_EDOC_TYPE_COMMENT\x20SYSREQ_EDOC_TYPE_EVENT_TEXT\x20SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR\x20SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID\x20SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID\x20SYSREQ_EDOC_TYPE_NUMERATION_METHOD\x20SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE\x20SYSREQ_EDOC_TYPE_REQ_CODE\x20SYSREQ_EDOC_TYPE_REQ_DESCRIPTION\x20SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID\x20SYSREQ_EDOC_TYPE_REQ_IS_LEADING\x20SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED\x20SYSREQ_EDOC_TYPE_REQ_NUMBER\x20SYSREQ_EDOC_TYPE_REQ_ON_CHANGE\x20SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS\x20SYSREQ_EDOC_TYPE_REQ_ON_SELECT\x20SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND\x20SYSREQ_EDOC_TYPE_REQ_SECTION\x20SYSREQ_EDOC_TYPE_VIEW_CARD\x20SYSREQ_EDOC_TYPE_VIEW_CODE\x20SYSREQ_EDOC_TYPE_VIEW_COMMENT\x20SYSREQ_EDOC_TYPE_VIEW_IS_MAIN\x20SYSREQ_EDOC_TYPE_VIEW_NAME\x20SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID\x20SYSREQ_EDOC_VERSION_AUTHOR\x20SYSREQ_EDOC_VERSION_CRC\x20SYSREQ_EDOC_VERSION_DATA\x20SYSREQ_EDOC_VERSION_EDITOR\x20SYSREQ_EDOC_VERSION_EXPORT_DATE\x20SYSREQ_EDOC_VERSION_EXPORTER\x20SYSREQ_EDOC_VERSION_HIDDEN\x20SYSREQ_EDOC_VERSION_LIFE_STAGE\x20SYSREQ_EDOC_VERSION_MODIFIED\x20SYSREQ_EDOC_VERSION_NOTE\x20SYSREQ_EDOC_VERSION_SIGNATURE_TYPE\x20SYSREQ_EDOC_VERSION_SIGNED\x20SYSREQ_EDOC_VERSION_SIZE\x20SYSREQ_EDOC_VERSION_SOURCE\x20SYSREQ_EDOC_VERSION_TEXT_MODIFIED\x20SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE\x20SYSREQ_FOLDER_KIND\x20SYSREQ_FUNC_CATEGORY\x20SYSREQ_FUNC_COMMENT\x20SYSREQ_FUNC_GROUP\x20SYSREQ_FUNC_GROUP_COMMENT\x20SYSREQ_FUNC_GROUP_NUMBER\x20SYSREQ_FUNC_HELP\x20SYSREQ_FUNC_PARAM_DEF_VALUE\x20SYSREQ_FUNC_PARAM_IDENT\x20SYSREQ_FUNC_PARAM_NUMBER\x20SYSREQ_FUNC_PARAM_TYPE\x20SYSREQ_FUNC_TEXT\x20SYSREQ_GROUP_CATEGORY\x20SYSREQ_ID\x20SYSREQ_LAST_UPDATE\x20SYSREQ_LEADER_REFERENCE\x20SYSREQ_LINE_NUMBER\x20SYSREQ_MAIN_RECORD_ID\x20SYSREQ_NAME\x20SYSREQ_NAME_LOCALIZE_ID\x20SYSREQ_NOTE\x20SYSREQ_ORIGINAL_RECORD\x20SYSREQ_OUR_FIRM\x20SYSREQ_PROFILING_SETTINGS_BATCH_LOGING\x20SYSREQ_PROFILING_SETTINGS_BATCH_SIZE\x20SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED\x20SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED\x20SYSREQ_PROFILING_SETTINGS_START_LOGGED\x20SYSREQ_RECORD_STATUS\x20SYSREQ_REF_REQ_FIELD_NAME\x20SYSREQ_REF_REQ_FORMAT\x20SYSREQ_REF_REQ_GENERATED\x20SYSREQ_REF_REQ_LENGTH\x20SYSREQ_REF_REQ_PRECISION\x20SYSREQ_REF_REQ_REFERENCE\x20SYSREQ_REF_REQ_SECTION\x20SYSREQ_REF_REQ_STORED\x20SYSREQ_REF_REQ_TOKENS\x20SYSREQ_REF_REQ_TYPE\x20SYSREQ_REF_REQ_VIEW\x20SYSREQ_REF_TYPE_ACT_CODE\x20SYSREQ_REF_TYPE_ACT_DESCRIPTION\x20SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID\x20SYSREQ_REF_TYPE_ACT_ON_EXECUTE\x20SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS\x20SYSREQ_REF_TYPE_ACT_SECTION\x20SYSREQ_REF_TYPE_ADD_PARAMS\x20SYSREQ_REF_TYPE_COMMENT\x20SYSREQ_REF_TYPE_COMMON_SETTINGS\x20SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME\x20SYSREQ_REF_TYPE_EVENT_TEXT\x20SYSREQ_REF_TYPE_MAIN_LEADING_REF\x20SYSREQ_REF_TYPE_NAME_IN_SINGULAR\x20SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID\x20SYSREQ_REF_TYPE_NAME_LOCALIZE_ID\x20SYSREQ_REF_TYPE_NUMERATION_METHOD\x20SYSREQ_REF_TYPE_REQ_CODE\x20SYSREQ_REF_TYPE_REQ_DESCRIPTION\x20SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID\x20SYSREQ_REF_TYPE_REQ_IS_CONTROL\x20SYSREQ_REF_TYPE_REQ_IS_FILTER\x20SYSREQ_REF_TYPE_REQ_IS_LEADING\x20SYSREQ_REF_TYPE_REQ_IS_REQUIRED\x20SYSREQ_REF_TYPE_REQ_NUMBER\x20SYSREQ_REF_TYPE_REQ_ON_CHANGE\x20SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS\x20SYSREQ_REF_TYPE_REQ_ON_SELECT\x20SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND\x20SYSREQ_REF_TYPE_REQ_SECTION\x20SYSREQ_REF_TYPE_VIEW_CARD\x20SYSREQ_REF_TYPE_VIEW_CODE\x20SYSREQ_REF_TYPE_VIEW_COMMENT\x20SYSREQ_REF_TYPE_VIEW_IS_MAIN\x20SYSREQ_REF_TYPE_VIEW_NAME\x20SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID\x20SYSREQ_REFERENCE_TYPE_ID\x20SYSREQ_STATE\x20SYSREQ_STATЕ\x20SYSREQ_SYSTEM_SETTINGS_VALUE\x20SYSREQ_TYPE\x20SYSREQ_UNIT\x20SYSREQ_UNIT_ID\x20SYSREQ_USER_GROUPS_GROUP_FULL_NAME\x20SYSREQ_USER_GROUPS_GROUP_NAME\x20SYSREQ_USER_GROUPS_GROUP_SERVER_NAME\x20SYSREQ_USERS_ACCESS_RIGHTS\x20SYSREQ_USERS_AUTHENTICATION\x20SYSREQ_USERS_CATEGORY\x20SYSREQ_USERS_COMPONENT\x20SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC\x20SYSREQ_USERS_DOMAIN\x20SYSREQ_USERS_FULL_USER_NAME\x20SYSREQ_USERS_GROUP\x20SYSREQ_USERS_IS_MAIN_SERVER\x20SYSREQ_USERS_LOGIN\x20SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC\x20SYSREQ_USERS_STATUS\x20SYSREQ_USERS_USER_CERTIFICATE\x20SYSREQ_USERS_USER_CERTIFICATE_INFO\x20SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME\x20SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION\x20SYSREQ_USERS_USER_CERTIFICATE_STATE\x20SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME\x20SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT\x20SYSREQ_USERS_USER_DEFAULT_CERTIFICATE\x20SYSREQ_USERS_USER_DESCRIPTION\x20SYSREQ_USERS_USER_GLOBAL_NAME\x20SYSREQ_USERS_USER_LOGIN\x20SYSREQ_USERS_USER_MAIN_SERVER\x20SYSREQ_USERS_USER_TYPE\x20SYSREQ_WORK_RULES_FOLDER_ID\x20RESULT_VAR_NAME\x20RESULT_VAR_NAME_ENG\x20AUTO_NUMERATION_RULE_ID\x20CANT_CHANGE_ID_REQUISITE_RULE_ID\x20CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID\x20CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID\x20CHECK_CODE_REQUISITE_RULE_ID\x20CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID\x20CHECK_FILTRATER_CHANGES_RULE_ID\x20CHECK_RECORD_INTERVAL_RULE_ID\x20CHECK_REFERENCE_INTERVAL_RULE_ID\x20CHECK_REQUIRED_DATA_FULLNESS_RULE_ID\x20CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID\x20MAKE_RECORD_UNRATIFIED_RULE_ID\x20RESTORE_AUTO_NUMERATION_RULE_ID\x20SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID\x20SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID\x20SET_IDSPS_VALUE_RULE_ID\x20SET_NEXT_CODE_VALUE_RULE_ID\x20SET_OURFIRM_BOUNDS_RULE_ID\x20SET_OURFIRM_REQUISITE_RULE_ID\x20SCRIPT_BLOCK_AFTER_FINISH_EVENT\x20SCRIPT_BLOCK_BEFORE_START_EVENT\x20SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY\x20SCRIPT_BLOCK_NAME_PROPERTY\x20SCRIPT_BLOCK_SCRIPT_PROPERTY\x20SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY\x20SUBTASK_BLOCK_AFTER_FINISH_EVENT\x20SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT\x20SUBTASK_BLOCK_ATTACHMENTS_PROPERTY\x20SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY\x20SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY\x20SUBTASK_BLOCK_BEFORE_START_EVENT\x20SUBTASK_BLOCK_CREATED_TASK_PROPERTY\x20SUBTASK_BLOCK_CREATION_EVENT\x20SUBTASK_BLOCK_DEADLINE_PROPERTY\x20SUBTASK_BLOCK_IMPORTANCE_PROPERTY\x20SUBTASK_BLOCK_INITIATOR_PROPERTY\x20SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY\x20SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY\x20SUBTASK_BLOCK_JOBS_TYPE_PROPERTY\x20SUBTASK_BLOCK_NAME_PROPERTY\x20SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY\x20SUBTASK_BLOCK_PERFORMERS_PROPERTY\x20SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY\x20SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY\x20SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY\x20SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY\x20SUBTASK_BLOCK_START_EVENT\x20SUBTASK_BLOCK_STEP_CONTROL_PROPERTY\x20SUBTASK_BLOCK_SUBJECT_PROPERTY\x20SUBTASK_BLOCK_TASK_CONTROL_PROPERTY\x20SUBTASK_BLOCK_TEXT_PROPERTY\x20SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY\x20SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY\x20SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY\x20SYSCOMP_CONTROL_JOBS\x20SYSCOMP_FOLDERS\x20SYSCOMP_JOBS\x20SYSCOMP_NOTICES\x20SYSCOMP_TASKS\x20SYSDLG_CREATE_EDOCUMENT\x20SYSDLG_CREATE_EDOCUMENT_VERSION\x20SYSDLG_CURRENT_PERIOD\x20SYSDLG_EDIT_FUNCTION_HELP\x20SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE\x20SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS\x20SYSDLG_EXPORT_SINGLE_EDOCUMENT\x20SYSDLG_IMPORT_EDOCUMENT\x20SYSDLG_MULTIPLE_SELECT\x20SYSDLG_SETUP_ACCESS_RIGHTS\x20SYSDLG_SETUP_DEFAULT_RIGHTS\x20SYSDLG_SETUP_FILTER_CONDITION\x20SYSDLG_SETUP_SIGN_RIGHTS\x20SYSDLG_SETUP_TASK_OBSERVERS\x20SYSDLG_SETUP_TASK_ROUTE\x20SYSDLG_SETUP_USERS_LIST\x20SYSDLG_SIGN_EDOCUMENT\x20SYSDLG_SIGN_MULTIPLE_EDOCUMENTS\x20SYSREF_ACCESS_RIGHTS_TYPES\x20SYSREF_ADMINISTRATION_HISTORY\x20SYSREF_ALL_AVAILABLE_COMPONENTS\x20SYSREF_ALL_AVAILABLE_PRIVILEGES\x20SYSREF_ALL_REPLICATING_COMPONENTS\x20SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS\x20SYSREF_CALENDAR_EVENTS\x20SYSREF_COMPONENT_TOKEN_HISTORY\x20SYSREF_COMPONENT_TOKENS\x20SYSREF_COMPONENTS\x20SYSREF_CONSTANTS\x20SYSREF_DATA_RECEIVE_PROTOCOL\x20SYSREF_DATA_SEND_PROTOCOL\x20SYSREF_DIALOGS\x20SYSREF_DIALOGS_REQUISITES\x20SYSREF_EDITORS\x20SYSREF_EDOC_CARDS\x20SYSREF_EDOC_TYPES\x20SYSREF_EDOCUMENT_CARD_REQUISITES\x20SYSREF_EDOCUMENT_CARD_TYPES\x20SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE\x20SYSREF_EDOCUMENT_CARDS\x20SYSREF_EDOCUMENT_HISTORY\x20SYSREF_EDOCUMENT_KINDS\x20SYSREF_EDOCUMENT_REQUISITES\x20SYSREF_EDOCUMENT_SIGNATURES\x20SYSREF_EDOCUMENT_TEMPLATES\x20SYSREF_EDOCUMENT_TEXT_STORAGES\x20SYSREF_EDOCUMENT_VIEWS\x20SYSREF_FILTERER_SETUP_CONFLICTS\x20SYSREF_FILTRATER_SETTING_CONFLICTS\x20SYSREF_FOLDER_HISTORY\x20SYSREF_FOLDERS\x20SYSREF_FUNCTION_GROUPS\x20SYSREF_FUNCTION_PARAMS\x20SYSREF_FUNCTIONS\x20SYSREF_JOB_HISTORY\x20SYSREF_LINKS\x20SYSREF_LOCALIZATION_DICTIONARY\x20SYSREF_LOCALIZATION_LANGUAGES\x20SYSREF_MODULES\x20SYSREF_PRIVILEGES\x20SYSREF_RECORD_HISTORY\x20SYSREF_REFERENCE_REQUISITES\x20SYSREF_REFERENCE_TYPE_VIEWS\x20SYSREF_REFERENCE_TYPES\x20SYSREF_REFERENCES\x20SYSREF_REFERENCES_REQUISITES\x20SYSREF_REMOTE_SERVERS\x20SYSREF_REPLICATION_SESSIONS_LOG\x20SYSREF_REPLICATION_SESSIONS_PROTOCOL\x20SYSREF_REPORTS\x20SYSREF_ROLES\x20SYSREF_ROUTE_BLOCK_GROUPS\x20SYSREF_ROUTE_BLOCKS\x20SYSREF_SCRIPTS\x20SYSREF_SEARCHES\x20SYSREF_SERVER_EVENTS\x20SYSREF_SERVER_EVENTS_HISTORY\x20SYSREF_STANDARD_ROUTE_GROUPS\x20SYSREF_STANDARD_ROUTES\x20SYSREF_STATUSES\x20SYSREF_SYSTEM_SETTINGS\x20SYSREF_TASK_HISTORY\x20SYSREF_TASK_KIND_GROUPS\x20SYSREF_TASK_KINDS\x20SYSREF_TASK_RIGHTS\x20SYSREF_TASK_SIGNATURES\x20SYSREF_TASKS\x20SYSREF_UNITS\x20SYSREF_USER_GROUPS\x20SYSREF_USER_GROUPS_REFERENCE\x20SYSREF_USER_SUBSTITUTION\x20SYSREF_USERS\x20SYSREF_USERS_REFERENCE\x20SYSREF_VIEWERS\x20SYSREF_WORKING_TIME_CALENDARS\x20ACCESS_RIGHTS_TABLE_NAME\x20EDMS_ACCESS_TABLE_NAME\x20EDOC_TYPES_TABLE_NAME\x20TEST_DEV_DB_NAME\x20TEST_DEV_SYSTEM_CODE\x20TEST_EDMS_DB_NAME\x20TEST_EDMS_MAIN_CODE\x20TEST_EDMS_MAIN_DB_NAME\x20TEST_EDMS_SECOND_CODE\x20TEST_EDMS_SECOND_DB_NAME\x20TEST_EDMS_SYSTEM_CODE\x20TEST_ISB5_MAIN_CODE\x20TEST_ISB5_SECOND_CODE\x20TEST_SQL_SERVER_2005_NAME\x20TEST_SQL_SERVER_NAME\x20ATTENTION_CAPTION\x20cbsCommandLinks\x20cbsDefault\x20CONFIRMATION_CAPTION\x20ERROR_CAPTION\x20INFORMATION_CAPTION\x20mrCancel\x20mrOk\x20EDOC_VERSION_ACTIVE_STAGE_CODE\x20EDOC_VERSION_DESIGN_STAGE_CODE\x20EDOC_VERSION_OBSOLETE_STAGE_CODE\x20cpDataEnciphermentEnabled\x20cpDigitalSignatureEnabled\x20cpID\x20cpIssuer\x20cpPluginVersion\x20cpSerial\x20cpSubjectName\x20cpSubjSimpleName\x20cpValidFromDate\x20cpValidToDate\x20ISBL_SYNTAX\x20NO_SYNTAX\x20XML_SYNTAX\x20WAIT_BLOCK_AFTER_FINISH_EVENT\x20WAIT_BLOCK_BEFORE_START_EVENT\x20WAIT_BLOCK_DEADLINE_PROPERTY\x20WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY\x20WAIT_BLOCK_NAME_PROPERTY\x20WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY\x20SYSRES_COMMON\x20SYSRES_CONST\x20SYSRES_MBFUNC\x20SYSRES_SBDATA\x20SYSRES_SBGUI\x20SYSRES_SBINTF\x20SYSRES_SBREFDSC\x20SYSRES_SQLERRORS\x20SYSRES_SYSCOMP\x20atUser\x20atGroup\x20atRole\x20aemEnabledAlways\x20aemDisabledAlways\x20aemEnabledOnBrowse\x20aemEnabledOnEdit\x20aemDisabledOnBrowseEmpty\x20apBegin\x20apEnd\x20alLeft\x20alRight\x20asmNever\x20asmNoButCustomize\x20asmAsLastTime\x20asmYesButCustomize\x20asmAlways\x20cirCommon\x20cirRevoked\x20ctSignature\x20ctEncode\x20ctSignatureEncode\x20clbUnchecked\x20clbChecked\x20clbGrayed\x20ceISB\x20ceAlways\x20ceNever\x20ctDocument\x20ctReference\x20ctScript\x20ctUnknown\x20ctReport\x20ctDialog\x20ctFunction\x20ctFolder\x20ctEDocument\x20ctTask\x20ctJob\x20ctNotice\x20ctControlJob\x20cfInternal\x20cfDisplay\x20ciUnspecified\x20ciWrite\x20ciRead\x20ckFolder\x20ckEDocument\x20ckTask\x20ckJob\x20ckComponentToken\x20ckAny\x20ckReference\x20ckScript\x20ckReport\x20ckDialog\x20ctISBLEditor\x20ctBevel\x20ctButton\x20ctCheckListBox\x20ctComboBox\x20ctComboEdit\x20ctGrid\x20ctDBCheckBox\x20ctDBComboBox\x20ctDBEdit\x20ctDBEllipsis\x20ctDBMemo\x20ctDBNavigator\x20ctDBRadioGroup\x20ctDBStatusLabel\x20ctEdit\x20ctGroupBox\x20ctInplaceHint\x20ctMemo\x20ctPanel\x20ctListBox\x20ctRadioButton\x20ctRichEdit\x20ctTabSheet\x20ctWebBrowser\x20ctImage\x20ctHyperLink\x20ctLabel\x20ctDBMultiEllipsis\x20ctRibbon\x20ctRichView\x20ctInnerPanel\x20ctPanelGroup\x20ctBitButton\x20cctDate\x20cctInteger\x20cctNumeric\x20cctPick\x20cctReference\x20cctString\x20cctText\x20cltInternal\x20cltPrimary\x20cltGUI\x20dseBeforeOpen\x20dseAfterOpen\x20dseBeforeClose\x20dseAfterClose\x20dseOnValidDelete\x20dseBeforeDelete\x20dseAfterDelete\x20dseAfterDeleteOutOfTransaction\x20dseOnDeleteError\x20dseBeforeInsert\x20dseAfterInsert\x20dseOnValidUpdate\x20dseBeforeUpdate\x20dseOnUpdateRatifiedRecord\x20dseAfterUpdate\x20dseAfterUpdateOutOfTransaction\x20dseOnUpdateError\x20dseAfterScroll\x20dseOnOpenRecord\x20dseOnCloseRecord\x20dseBeforeCancel\x20dseAfterCancel\x20dseOnUpdateDeadlockError\x20dseBeforeDetailUpdate\x20dseOnPrepareUpdate\x20dseOnAnyRequisiteChange\x20dssEdit\x20dssInsert\x20dssBrowse\x20dssInActive\x20dftDate\x20dftShortDate\x20dftDateTime\x20dftTimeStamp\x20dotDays\x20dotHours\x20dotMinutes\x20dotSeconds\x20dtkndLocal\x20dtkndUTC\x20arNone\x20arView\x20arEdit\x20arFull\x20ddaView\x20ddaEdit\x20emLock\x20emEdit\x20emSign\x20emExportWithLock\x20emImportWithUnlock\x20emChangeVersionNote\x20emOpenForModify\x20emChangeLifeStage\x20emDelete\x20emCreateVersion\x20emImport\x20emUnlockExportedWithLock\x20emStart\x20emAbort\x20emReInit\x20emMarkAsReaded\x20emMarkAsUnreaded\x20emPerform\x20emAccept\x20emResume\x20emChangeRights\x20emEditRoute\x20emEditObserver\x20emRecoveryFromLocalCopy\x20emChangeWorkAccessType\x20emChangeEncodeTypeToCertificate\x20emChangeEncodeTypeToPassword\x20emChangeEncodeTypeToNone\x20emChangeEncodeTypeToCertificatePassword\x20emChangeStandardRoute\x20emGetText\x20emOpenForView\x20emMoveToStorage\x20emCreateObject\x20emChangeVersionHidden\x20emDeleteVersion\x20emChangeLifeCycleStage\x20emApprovingSign\x20emExport\x20emContinue\x20emLockFromEdit\x20emUnLockForEdit\x20emLockForServer\x20emUnlockFromServer\x20emDelegateAccessRights\x20emReEncode\x20ecotFile\x20ecotProcess\x20eaGet\x20eaCopy\x20eaCreate\x20eaCreateStandardRoute\x20edltAll\x20edltNothing\x20edltQuery\x20essmText\x20essmCard\x20esvtLast\x20esvtLastActive\x20esvtSpecified\x20edsfExecutive\x20edsfArchive\x20edstSQLServer\x20edstFile\x20edvstNone\x20edvstEDocumentVersionCopy\x20edvstFile\x20edvstTemplate\x20edvstScannedFile\x20vsDefault\x20vsDesign\x20vsActive\x20vsObsolete\x20etNone\x20etCertificate\x20etPassword\x20etCertificatePassword\x20ecException\x20ecWarning\x20ecInformation\x20estAll\x20estApprovingOnly\x20evtLast\x20evtLastActive\x20evtQuery\x20fdtString\x20fdtNumeric\x20fdtInteger\x20fdtDate\x20fdtText\x20fdtUnknown\x20fdtWideString\x20fdtLargeInteger\x20ftInbox\x20ftOutbox\x20ftFavorites\x20ftCommonFolder\x20ftUserFolder\x20ftComponents\x20ftQuickLaunch\x20ftShortcuts\x20ftSearch\x20grhAuto\x20grhX1\x20grhX2\x20grhX3\x20hltText\x20hltRTF\x20hltHTML\x20iffBMP\x20iffJPEG\x20iffMultiPageTIFF\x20iffSinglePageTIFF\x20iffTIFF\x20iffPNG\x20im8bGrayscale\x20im24bRGB\x20im1bMonochrome\x20itBMP\x20itJPEG\x20itWMF\x20itPNG\x20ikhInformation\x20ikhWarning\x20ikhError\x20ikhNoIcon\x20icUnknown\x20icScript\x20icFunction\x20icIntegratedReport\x20icAnalyticReport\x20icDataSetEventHandler\x20icActionHandler\x20icFormEventHandler\x20icLookUpEventHandler\x20icRequisiteChangeEventHandler\x20icBeforeSearchEventHandler\x20icRoleCalculation\x20icSelectRouteEventHandler\x20icBlockPropertyCalculation\x20icBlockQueryParamsEventHandler\x20icChangeSearchResultEventHandler\x20icBlockEventHandler\x20icSubTaskInitEventHandler\x20icEDocDataSetEventHandler\x20icEDocLookUpEventHandler\x20icEDocActionHandler\x20icEDocFormEventHandler\x20icEDocRequisiteChangeEventHandler\x20icStructuredConversionRule\x20icStructuredConversionEventBefore\x20icStructuredConversionEventAfter\x20icWizardEventHandler\x20icWizardFinishEventHandler\x20icWizardStepEventHandler\x20icWizardStepFinishEventHandler\x20icWizardActionEnableEventHandler\x20icWizardActionExecuteEventHandler\x20icCreateJobsHandler\x20icCreateNoticesHandler\x20icBeforeLookUpEventHandler\x20icAfterLookUpEventHandler\x20icTaskAbortEventHandler\x20icWorkflowBlockActionHandler\x20icDialogDataSetEventHandler\x20icDialogActionHandler\x20icDialogLookUpEventHandler\x20icDialogRequisiteChangeEventHandler\x20icDialogFormEventHandler\x20icDialogValidCloseEventHandler\x20icBlockFormEventHandler\x20icTaskFormEventHandler\x20icReferenceMethod\x20icEDocMethod\x20icDialogMethod\x20icProcessMessageHandler\x20isShow\x20isHide\x20isByUserSettings\x20jkJob\x20jkNotice\x20jkControlJob\x20jtInner\x20jtLeft\x20jtRight\x20jtFull\x20jtCross\x20lbpAbove\x20lbpBelow\x20lbpLeft\x20lbpRight\x20eltPerConnection\x20eltPerUser\x20sfcUndefined\x20sfcBlack\x20sfcGreen\x20sfcRed\x20sfcBlue\x20sfcOrange\x20sfcLilac\x20sfsItalic\x20sfsStrikeout\x20sfsNormal\x20ldctStandardRoute\x20ldctWizard\x20ldctScript\x20ldctFunction\x20ldctRouteBlock\x20ldctIntegratedReport\x20ldctAnalyticReport\x20ldctReferenceType\x20ldctEDocumentType\x20ldctDialog\x20ldctServerEvents\x20mrcrtNone\x20mrcrtUser\x20mrcrtMaximal\x20mrcrtCustom\x20vtEqual\x20vtGreaterOrEqual\x20vtLessOrEqual\x20vtRange\x20rdYesterday\x20rdToday\x20rdTomorrow\x20rdThisWeek\x20rdThisMonth\x20rdThisYear\x20rdNextMonth\x20rdNextWeek\x20rdLastWeek\x20rdLastMonth\x20rdWindow\x20rdFile\x20rdPrinter\x20rdtString\x20rdtNumeric\x20rdtInteger\x20rdtDate\x20rdtReference\x20rdtAccount\x20rdtText\x20rdtPick\x20rdtUnknown\x20rdtLargeInteger\x20rdtDocument\x20reOnChange\x20reOnChangeValues\x20ttGlobal\x20ttLocal\x20ttUser\x20ttSystem\x20ssmBrowse\x20ssmSelect\x20ssmMultiSelect\x20ssmBrowseModal\x20smSelect\x20smLike\x20smCard\x20stNone\x20stAuthenticating\x20stApproving\x20sctString\x20sctStream\x20sstAnsiSort\x20sstNaturalSort\x20svtEqual\x20svtContain\x20soatString\x20soatNumeric\x20soatInteger\x20soatDatetime\x20soatReferenceRecord\x20soatText\x20soatPick\x20soatBoolean\x20soatEDocument\x20soatAccount\x20soatIntegerCollection\x20soatNumericCollection\x20soatStringCollection\x20soatPickCollection\x20soatDatetimeCollection\x20soatBooleanCollection\x20soatReferenceRecordCollection\x20soatEDocumentCollection\x20soatAccountCollection\x20soatContents\x20soatUnknown\x20tarAbortByUser\x20tarAbortByWorkflowException\x20tvtAllWords\x20tvtExactPhrase\x20tvtAnyWord\x20usNone\x20usCompleted\x20usRedSquare\x20usBlueSquare\x20usYellowSquare\x20usGreenSquare\x20usOrangeSquare\x20usPurpleSquare\x20usFollowUp\x20utUnknown\x20utUser\x20utDeveloper\x20utAdministrator\x20utSystemDeveloper\x20utDisconnected\x20btAnd\x20btDetailAnd\x20btOr\x20btNotOr\x20btOnly\x20vmView\x20vmSelect\x20vmNavigation\x20vsmSingle\x20vsmMultiple\x20vsmMultipleCheck\x20vsmNoSelection\x20wfatPrevious\x20wfatNext\x20wfatCancel\x20wfatFinish\x20wfepUndefined\x20wfepText3\x20wfepText6\x20wfepText9\x20wfepSpinEdit\x20wfepDropDown\x20wfepRadioGroup\x20wfepFlag\x20wfepText12\x20wfepText15\x20wfepText18\x20wfepText21\x20wfepText24\x20wfepText27\x20wfepText30\x20wfepRadioGroupColumn1\x20wfepRadioGroupColumn2\x20wfepRadioGroupColumn3\x20wfetQueryParameter\x20wfetText\x20wfetDelimiter\x20wfetLabel\x20wptString\x20wptInteger\x20wptNumeric\x20wptBoolean\x20wptDateTime\x20wptPick\x20wptText\x20wptUser\x20wptUserList\x20wptEDocumentInfo\x20wptEDocumentInfoList\x20wptReferenceRecordInfo\x20wptReferenceRecordInfoList\x20wptFolderInfo\x20wptTaskInfo\x20wptContents\x20wptFileName\x20wptDate\x20wsrComplete\x20wsrGoNext\x20wsrGoPrevious\x20wsrCustom\x20wsrCancel\x20wsrGoFinal\x20wstForm\x20wstEDocument\x20wstTaskCard\x20wstReferenceRecordCard\x20wstFinal\x20waAll\x20waPerformers\x20waManual\x20wsbStart\x20wsbFinish\x20wsbNotice\x20wsbStep\x20wsbDecision\x20wsbWait\x20wsbMonitor\x20wsbScript\x20wsbConnector\x20wsbSubTask\x20wsbLifeCycleStage\x20wsbPause\x20wdtInteger\x20wdtFloat\x20wdtString\x20wdtPick\x20wdtDateTime\x20wdtBoolean\x20wdtTask\x20wdtJob\x20wdtFolder\x20wdtEDocument\x20wdtReferenceRecord\x20wdtUser\x20wdtGroup\x20wdtRole\x20wdtIntegerCollection\x20wdtFloatCollection\x20wdtStringCollection\x20wdtPickCollection\x20wdtDateTimeCollection\x20wdtBooleanCollection\x20wdtTaskCollection\x20wdtJobCollection\x20wdtFolderCollection\x20wdtEDocumentCollection\x20wdtReferenceRecordCollection\x20wdtUserCollection\x20wdtGroupCollection\x20wdtRoleCollection\x20wdtContents\x20wdtUserList\x20wdtSearchDescription\x20wdtDeadLine\x20wdtPickSet\x20wdtAccountCollection\x20wiLow\x20wiNormal\x20wiHigh\x20wrtSoft\x20wrtHard\x20wsInit\x20wsRunning\x20wsDone\x20wsControlled\x20wsAborted\x20wsContinued\x20wtmFull\x20wtmFromCurrent\x20wtmOnlyCurrent\x20','unlimit','a-pound','MessagePacket','_collapse','ParentForm','SetErrors','CycleIndexPolynomial','$CharacterEncoding','gpu_set_colourwriteenable','DisplayWithVariable','hooks','queryItemsPool','formationMembers','HighlightImage','SliceContourPlot3D','(have|had)\x20[#Adjective]\x20#Preposition\x20.','⤐','moveInAny','layer_sprite_get_id','TAN','current_second','CarmichaelLambda','endsParent','OptionValue','ListFourierSequenceTransform','#Determiner\x20[well]\x20!#PastTense?','FindProcessParameters','≆','SuzukiGroupSuz','break\x20cmake_host_system_information\x20cmake_minimum_required\x20cmake_parse_arguments\x20cmake_policy\x20configure_file\x20continue\x20elseif\x20else\x20endforeach\x20endfunction\x20endif\x20endmacro\x20endwhile\x20execute_process\x20file\x20find_file\x20find_library\x20find_package\x20find_path\x20find_program\x20foreach\x20function\x20get_cmake_property\x20get_directory_property\x20get_filename_component\x20get_property\x20if\x20include\x20include_guard\x20list\x20macro\x20mark_as_advanced\x20math\x20message\x20option\x20return\x20separate_arguments\x20set_directory_properties\x20set_property\x20set\x20site_name\x20string\x20unset\x20variable_watch\x20while\x20add_compile_definitions\x20add_compile_options\x20add_custom_command\x20add_custom_target\x20add_definitions\x20add_dependencies\x20add_executable\x20add_library\x20add_link_options\x20add_subdirectory\x20add_test\x20aux_source_directory\x20build_command\x20create_test_sourcelist\x20define_property\x20enable_language\x20enable_testing\x20export\x20fltk_wrap_ui\x20get_source_file_property\x20get_target_property\x20get_test_property\x20include_directories\x20include_external_msproject\x20include_regular_expression\x20install\x20link_directories\x20link_libraries\x20load_cache\x20project\x20qt_wrap_cpp\x20qt_wrap_ui\x20remove_definitions\x20set_source_files_properties\x20set_target_properties\x20set_tests_properties\x20source_group\x20target_compile_definitions\x20target_compile_features\x20target_compile_options\x20target_include_directories\x20target_link_directories\x20target_link_libraries\x20target_link_options\x20target_sources\x20try_compile\x20try_run\x20ctest_build\x20ctest_configure\x20ctest_coverage\x20ctest_empty_binary_directory\x20ctest_memcheck\x20ctest_read_custom_files\x20ctest_run_script\x20ctest_sleep\x20ctest_start\x20ctest_submit\x20ctest_test\x20ctest_update\x20ctest_upload\x20build_name\x20exec_program\x20export_library_dependencies\x20install_files\x20install_programs\x20install_targets\x20load_command\x20make_directory\x20output_required_files\x20remove\x20subdir_depends\x20subdirs\x20use_mangled_mesa\x20utility_source\x20variable_requires\x20write_file\x20qt5_use_modules\x20qt5_use_package\x20qt5_wrap_cpp\x20on\x20off\x20true\x20false\x20and\x20or\x20not\x20command\x20policy\x20target\x20test\x20exists\x20is_newer_than\x20is_directory\x20is_symlink\x20is_absolute\x20matches\x20less\x20greater\x20equal\x20less_equal\x20greater_equal\x20strless\x20strgreater\x20strequal\x20strless_equal\x20strgreater_equal\x20version_less\x20version_greater\x20version_equal\x20version_less_equal\x20version_greater_equal\x20in_list\x20defined','TubeBezierCurveBox','true\x20false\x20nil','__cache__','base64','intrinsic','must\x20be\x20object','READONLY','u_signed','elimtype','path_mirror','Exclusions','isText','ctrlKey','why','2-implicit-suffix','got','senior?\x20vice?\x20president\x20of\x20#Noun+','buffer_save','resetCamShake','JJS','keydown','Contains','portland\x20[or]','lcfirst','numericCast','AngularGauge','device_ios_iphone','a-quarter','formatcurrency','MissingString','specular','setLeader','Duration','outline','ctrlSetFontH3','PolygonIntersections','shared_timed_mutex','fjord','Â','TableHeadings','ds_priority_clear','because','Graph','mintinline','wisc','difference','CellFrameLabelMargins','PolyLog','TrackAccelerationWindow','#Copula\x20(#Adverb|not)+?\x20[(be|being|been)]\x20#Adverb+?\x20#PastTense','letter-spacing','[$%\x5c[]','multiples','WebImageSearch','LowerTriangularMatrix','transaction_safe','layer_tile_visible','Cuchar','RevolutionPlot3D','KCoreComponents','[^\x5cs\x5c}\x5c{]','multi_normal_prec','device_mouse_x','Iconize','setWaypointCombatMode','#Adverb+\x20and\x20#Adverb\x20#Verb','sequence','abstract\x20as\x20val\x20var\x20vararg\x20get\x20set\x20class\x20object\x20open\x20private\x20protected\x20public\x20noinline\x20crossinline\x20dynamic\x20final\x20enum\x20if\x20else\x20do\x20while\x20for\x20when\x20throw\x20try\x20catch\x20finally\x20import\x20package\x20is\x20in\x20fun\x20override\x20companion\x20reified\x20inline\x20lateinit\x20init\x20interface\x20annotation\x20data\x20sealed\x20internal\x20infix\x20operator\x20out\x20by\x20constructor\x20super\x20tailrec\x20where\x20const\x20inner\x20suspend\x20typealias\x20external\x20expect\x20actual','Fact','gentle','__block','ideolog','transpose','cshift','ColorDataFunction','WindowClickSelect','createDiaryRecord','setBehaviourStrong','border-spacing','postgresql','Int16Array','$DefaultPath','HalfNormalDistribution','BitXor','ò','FullInformationOutputRegulator','true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th','*-:','^(does|do)\x20#Infinitive$','TestID','AI\x20returned\x20an\x20unexpected\x20response.\x20Building\x20quiz\x20locally.','ieee_arithmetic','date_inc_hour','MaxSteps','GouraudShading','⥘','LED_BUILTIN','TitsGroupT','del','BlockDiagonalMatrix','setPos','object_is_ancestor','^---\x5cs*$','#Copula\x20#Pronoun\x20[%Adj|Past%]','\x5cb[a-z\x5cd_]*_t\x5cb','setVehicleReportRemoteTargets','INPUT#','font-size-adjust','HilbertCurve','rainbow','gpu_get_tex_mip_filter_ext','window_get_visible_rects','EmbeddedHTML','(the|those|these|a|an)\x20[#Participle]\x20#Noun','SectionGetText','ctrlTextSecondary','method','AddTo','scroll-margin-bottom','⩍','generalizing','HEX2BIN','NMaximize','moveTime','ConwayGroupCo1','KeyDropFrom','Not','xs:NOTATION','apertureParams','ApplySides','InverseJacobiSD','removeMissionEventHandler','command','$ActivationKey','\x20\x0a\x0a\x20','toPastParticiple','byref','nearTargets','ordered','gpu_set_fog','InputStream','ToExpression','_','scrollY','NevilleThetaD','SetCloudDirectory','https://api.semanticscholar.org/graph/v1/paper/search','dam','FeatureSpacePlot','AudioPlay','$unpacked_dimensions','bessel_j0','autoscroll','(the|this|those|these)\x20#Adverb\x20#Adjective\x20[#Verb]','menuSetPicture','getItemCargo','IncludeConstantBasis','thirteen','scroll-margin-inline','SetCompressorDictSize','stan','StratonovichProcess','ctrlSetFontH2B','vertex_usage_tangent','TypeScript','missionVersion','SET_PIN_MODE','addonFiles','cover','condition','callable','PolyhedronCoordinates','MaxwellDistribution','⦴','IMCOT','Library','ugc_list_Published','isupper','VirtualGroupData','rules2','AlgebraicRules','phy_particle_flag_wall','readyState','musician','match','Maxima','tanh','lreverse|10','ds_list_clear','ContourIntegral','artifacts','show_message_async','timestamp','^\x5cs*[a-zA-Z_][a-zA-Z\x5cd_]*:','html.hbs','[-]?(infinity|inf)','scrollDisplayLeft','INDEX','difficultyEnabledRTD','surface_create_ext','airDensityCurveRTD','startLoop','$PatchLevelID','⟸','true¦a07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght','Win8','PolarAxes','GenerateDerivedKey','image_index','disableBrakes','Clear\x20request\x20error:','AutoDelete','[#Value+]\x20out\x20of\x20every?\x20[#Value+]','buildscript','WordCounts','[A-Za-z](_?[A-Za-z0-9.])*','𝒱','snprintf','const\x20','part_type_death','sub','PolygonScale','RuntimeException','keyboard_virtual_hide','specific','RoundingRadius','ℐ','LeapYearQ','StringReplacePart','shownWatch','thisJoinPoint','Typeclasses','WordList','BGFont','SUMPRODUCT','all-noun','c_long_double','℩','StringByteCount','TreeElementLabel','root','audio_sound_get_track_position','Existentials','steam_get_quota_total','REGEXP_MODE','alog10','IfSilent','ISOWEEKNUM','ppEffectEnable','OCT2HEX','⩷','RollPitchYawAngles','bite','$LocalBase','point_distance_3d','EntityClassList','image_number','Unitize','⥣','𝒮','LeftTee','^\x5cs*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\x5cs+label)','╗','fun\x20macro','Empty','withReader','PlotDivision','phrase_length','isActionMenuVisible','\x20\x0a\x0a\x20BACKGROUND\x20KNOWLEDGE:\x20','SessionSubmit','lastIndexOf','tostring','SucceedsEqual','uniform','MIME','taggerscript','irl','kinda-sparkly-and','interpol','ev_global_gesture_pinch_in','come-have','BinarySerialize','ValidationLength','FindDevices','”','GridDefaultElement','mel','LockWindow','ept','ugc_query_RankedByTotalVotesAsc','OCT2BIN','physics_draw_debug','input','ReverseSort','delay_mode_zero','leaderboardInit','setStaminaScheme','pause-before','Dictionary','NotPrecedes','⥵','ArrayList','endsWith','ů','guess\x20who','true¦0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed','setGroupid','rtsig','flock','lasso','userNameWrite','AskedQ','WEIBULL','clearForcesRTD','ctrlRemoveAllEventHandlers','text-emphasis','forkjoin','процедура\x20функция','steam_ugc_get_item_update_info','LOGEST','pt_shape_star','exist','#Adjective\x20#Noun','ControllerInformationData','FilterRules','have-fun','BoundaryDiscretizeRegion','EdgeIndex','is-there','emitNamedEntityData','EchoLabel','summary','\x5cs*\x5c.end\x5cs[a-zA-Z0-9]*','builtins','DoubleRightArrow','setTag','doorPhase','VHDL','Lower','ChemicalConvert','cascade','tvSetPictureRight','browser_opera','x|0','file_bin_write_byte','$Username','toSingular','unordered_map','Laplacian','configSourceMod','src_ZCc','Extract','iso-date','FindSpanningTree','basefont','countryNameWrite','$ExternalIdentifierTypes','startsWith','overlayText','getPlayerVoNVolume','>\x20predict\x20the\x20completion\x20of\x20the\x20query\x20inside\x20the\x20<>.\x20Output\x20only\x20the\x20completed\x20query.','ExcludedForms','#Infinitive','EvaluateScheduledTask','Proof','IRPF90','SetterBar','sprite_get_texture','rtranif1','―','DatabinSubmit','MeanAbsoluteLossLayer','lineBreak','ImageMultiply','^will\x20#Adverb?\x20#Infinitive','mathop','LinearIndices','AtomLabelStyle','#Copula\x20[(who|what|where|why|how|when)]\x20#Noun','DialogSymbols','thread_local','adm','CHIDIST','lappend|10','provincial','\x5cb(\x5cd+(_\x5cd+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\x5cd+(_\x5cd+)*(\x5c.\x5cd+(_\x5cd+)*)?([eE][-+]?\x5cd+)?)',':^/','ds_priority_destroy','setenv','SingleEvaluation','ring','accesslog','audio_resume_all','a-noun-inf','SliceVectorPlot3D','true¦0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng','InterpretationBox','llc','#Honorific\x20#FirstName\x20[#Singular]','GroupElementFromWord','WaitUntil','ACOSH','inc_beta','#Possessive\x20#Ordinal\x20[#PastTense]','forceCadetDifficulty','\x20with\x20value\x20','querySelector','iqint','xhtml','if\x20else\x20elif\x20endif\x20define\x20undef\x20warning\x20error\x20line\x20region\x20endregion\x20pragma\x20checksum','xs:nonNegativeInteger','PacletInstall','γ','⧞','ds_type_map','withExtendedLifetime','subst\x20patsubst\x20strip\x20findstring\x20filter\x20filter-out\x20sort\x20word\x20wordlist\x20firstword\x20lastword\x20dir\x20notdir\x20suffix\x20basename\x20addsuffix\x20addprefix\x20join\x20wildcard\x20realpath\x20abspath\x20error\x20warning\x20shell\x20origin\x20flavor\x20foreach\x20if\x20or\x20and\x20call\x20eval\x20file\x20value','setMissileTarget','buffer_create','part_type_alpha3','\x27(U|X|0|1|Z|W|L|H|-)\x27','⥮','part_type_color1','map_rect','dateadd','FindIsomorphicSubgraph','ă','os_winphone','Κ','TRIMMEAN','format_date','QuantilePlot','tvData','\x20QUOTE:\x20','FIXED','CellGroup','stateNumericDecimal','æ','stname','will-verb','object_set_mask','inversion_clear','pow','string_height','Binarize','typealias','setMarkerPolyline','preserve','virtual_key_hide','RadicalBoxOptions','VerifyDerivedKey','fence','GlobalPreferences','[still]\x20#Verb','ScheduledTaskObject','Underscript','animate','DeleteRegKey','sfixed32','curatorCoef','Prolog','DayRange','HelmholtzPDEComponent','diag_localized','PrimeNu','WEIBULL.DIST','\x5cW\x5c.|;','integrate_ode','columns_dot_product','playGesture','allAddonsInfo','kip','spacing','Promise','drawIcon','part_system_draw_order','PermutationReplace','frameRate','DynamicModule','ds_map_size','optimisticlock','stddev_pop','addRule','nest','audio_group_unload','DateReduction','actionName','ds_map_empty','FVSCHEDULE','layer_tile_xscale','airlines','part_type_create','JacobiZeta','draw_rectangle_colour','local','link_close','SmoothHistogram','tri1','FischerGroupFi23','deleteLocation','∾̳','ev_global_gesture_pinch_end','endsas','ds_grid_multiply_region','SIX\x20TEN\x20FORMFEED\x20NINE\x20ZERO\x20NONE\x20SPACE\x20FOUR\x20FALSE\x20COLON\x20CRLF\x20PI\x20COMMA\x20ENDOFFILE\x20EOF\x20EIGHT\x20FIVE\x20QUOTE\x20EMPTY\x20ONE\x20TRUE\x20RETURN\x20CR\x20LINEFEED\x20RIGHT\x20BACKSLASH\x20NULL\x20SEVEN\x20TAB\x20THREE\x20TWO\x20six\x20ten\x20formfeed\x20nine\x20zero\x20none\x20space\x20four\x20false\x20colon\x20crlf\x20pi\x20comma\x20endoffile\x20eof\x20eight\x20five\x20quote\x20empty\x20one\x20true\x20return\x20cr\x20linefeed\x20right\x20backslash\x20null\x20seven\x20tab\x20three\x20two\x20RIVERSION\x20RISTATE\x20FILE_READ_MODE\x20FILE_WRITE_MODE\x20FILE_WRITE_MODE\x20DIR_WRITE_MODE\x20FILE_READ_UMASK\x20FILE_WRITE_UMASK\x20DIR_READ_UMASK\x20DIR_WRITE_UMASK','(#Pronoun|#ProperNoun)','AsymptoticSum','dshiftr','HTTPRequest','return','network_config_connect_timeout','Rationalize','nomatch','sendAnalog','stringify','degtorad','autoit','TaskSuspend','bind','NestList','generic','nand','forceRespawn','FrontFaceSpecularColor','ds_stack_copy','PositionSmallest','CorrelationDistance','display_get_orientation','$assertfailoff','$LicenseServer','ddim','html_content','record','window_views_mouse_get_x','NetInformation','⪇','pushd','RATE','è','sir','TableDirections','TRIM','AbsoluteThickness','computers','buffer_f64','⩌','parseInt','ev_gesture_tap','(had|has)\x20#Adverb?\x20[been]\x20#Adverb?\x20#PastTense','Hyperplane','ControllableDecomposition','address','trans_default_domain','Background','reduce','𝕥','ImageScan','⪉','EndRegion','ValueForm','part_system_update','pulsestyle_onevent','uintptr','hcRemoveGroup','VideoMap','datan2','vertex_float2','matrix_stack_top','$sync$nand$array','InterpolatingPolynomial','AlignmentPoint','serverCommandAvailable','∂','ordinal','MinimalStateSpaceModel','NS_VOIDRETURN','First','ÐĎďĐđƉƊȡƋƌ','lax','InertExpression','DeleteINISec','guid','$CryptographicEllipticCurveNames','text-decoration-color','closeDisplay','F.B.I','endswitch','setMarkerDirLocal','CircleThrough','Part','AxesEdge','ands','shader_get_name','uint64','AsMut','Ⓢ','GraphJoin','Stopwatch','fade_out','SuperDagger','ds_queue_create','layer_instance_get_instance','township','≪⃒','Bind','cschar','MultivariateTDistribution','physics_set_density','EmptySpaceF','#Determiner\x20[#Singular]\x20said','RepeatedTiming','qtr','rest-after','to_complex','setlocale','True\x20False','⩓','px-2','owner','XYZColor','NS_DESIGNATED_INITIALIZER','execute_command_line','file_link','𝕐','(\x5cbdef\x5cb)','MATCH','protobuf','windRTD','zIndex','tribunal','linkify','Й','AbsoluteTiming','addForceGeneratorRTD','$ActivationGroupID','RationalExpressionQ','LogRankTest','GraphicsBoxOptions','west-norfolk','texture_get_texel_height','globals','FLOOR.PRECISE','neuroses','csqrt','lineIntersectsObjs','trace_quad_form','jun','Triangle','extends\x20implements','⩽̸','update','orderGetIn','AroundReplace','addGroupIcon','[1-9][0-9]*','$IncomingMailSettings','TreeReplacePart','NullRecords','nothing-like','hashTags','SystemCredential','sync','Ω','¾','ConfirmQuiet','groupEnd','$PersistenceBase','MeshShading','PrismBoxOptions','TargetFunctions','SpatialBinnedPointData','CHISQ.DIST','machine_precision','CreateCellID','MB_RTLREADING','skeleton_bone_data_set','winphone_tile_small_icon_image','PolyGamma',',\x20response:\x20','toCardinal','$monitoro','directorate','ImageAdd','enableSaving','hostname','“”‘’','FindKClan','ColorQ','cr_uparrow','notIf','__debug__','RegionBoundary','cbChecked','texture_wrap','resolve','greaterThan','RotationBox','EventLabels','DirichletL','CriticalityFailureImportance','WolframAlphaResult','NetInitialize','smoked-poutine','resetAIChat','setSimpleTaskAlwaysVisible','ds_map_add','variable.constant','camPrepareTarget','\x22\x20type=\x22text\x22\x20placeholder=\x22Expand\x20your\x20search\x22\x20class=\x22w-64\x20px-4\x20py-2\x20border\x20border-gray-300\x20rounded-l-md\x20focus:outline-none\x20focus:ring-2\x20focus:ring-blue-500\x20focus:border-transparent\x22\x20/>\x0a','Because','abbr','ctrlClassName','OptimumFlowData','playMove','device_mouse_y','too','onerror','MarkovProcessProperties','NotLessGreater','variant','(#Copula|#Gerund)','TextStyle','assignedVehicles','log_mix','ctData','ev_step_begin','keyspace','≇','[there]\x20(#Adverb|#Pronoun)?\x20#Copula','⌝','overcast','$DefaultFont','getDLCUsageTime','GraphIntersection','matcherRe','ImageDimensions','Raster3DBoxOptions','%TLDS%','specparam','GraphicsHighlightColor','warning','(#Determiner|#Comparative|new|different)\x20[kind]','modal-like','[\x5c*&\x5cs]+)+','MassOutflowValue','getpwnam','variable_instance_get_names','//[gim]{0,3}(?=\x5cW)','DistanceGeodetic','@supports\x20(','vectorDotProduct','Copyable','~R(?=','iOS','LeftDownTeeVector','HashMap','@synthesize','lbSetSelectColorRight','RotationAction','fa_hidden','<','⦬','Length','obj-c','FLOOR.MATH','irb','DIM','layer_background_speed','[%-]?%>','Icosahedron','ImageCooccurrence','^stay\x20(out|away|back)','SymmetrizedArray','@(page|font-face)','Undefined','SquareUnion','LOG10','lays','DataType','airy','assume_guarantee','twas','HiddenMarkovProcess','compatibleItems','[a-z\x27][a-zA-Z0-9_\x27]*','encryptionType','position_empty','WeierstrassInvariantG3','Nim','ŹźŻżŽžƵƶȤȥɀΖ','allDeadMen','groupSelectUnit','KleinInvariantJ','NotSucceedsTilde','ev_user3','MarginalDistribution','DualPolyhedron','text_find','chi_square','parks','[#PastTense]\x20#Singular\x20is','𝔖','Octahedron','Throw','LongestMatch','instance_change','keyboard_key_press','collisionDisabledWith','Monkey','os_version','Manual','getPlayerScores','setMarkerColor','FeatureExtract','getSocket','NonPositiveRationals','onBriefingTeamSwitch','ino','DisplayTemporary','DelimiterMatching','mask-repeat','timeline_speed','vk_nokey','VectorDensityPlot','AssociationThread','calif','adv','COUNT','KILL','MaxFeatures','march-quickly','XOR','ctrlSetTooltipColorBox','|0[bB][01_]+|','simple','phy_joint_motor_speed','enableEngineArtillery','setSimpleTaskDescription','menuSetData','resetMatrix','orgWords','buffer_outofbounds','half','twentieth','(would|should|could)\x20have','GeneratedDocumentBinding','2-suffix','FixedPoint','#Gerund\x20[%Plural|Verb%]','sendString','FaceAlign','GraphicsGroupBox','join_none','uint','PTR','DenseMatrix','ugc_list_WillVoteLater','∮','bufif0','$fdisplayb','QueueProperties','scanf','sysseek','⋎','mma','is_infinity','EsploraTFT','LCM','is3DEN','ValenceErrorHandling','\x0a\x20\x20\x20\x20\x20\x20\x5c*?','«','Exp','ctrlCommit','WhittakerM','toOrdinal','DiskBoxOptions','winphone_tile_wide_content','mcdonald','assign','sCount','DisableFormatting','ds_map_find_value','TextureCoordinateScaling','logic','endfor','clinique','Editable','GeneratorFunction','SokalSneathDissimilarity','PrivateKey','class\x20enum','sydney-harbour','cson','tvSetPictureColorSelected','async','⊒','some\x20sort\x20of','конецпроцедуры|конецфункции','GeoGroup','right','$fdisplay','FourierTrigSeries','UniqueElements','decltype','POWER_UP','From','Traversable','(same|some|the|that|a)\x20type\x20of\x20[#PresentTense]','boolean','Protocol\x20Buffers','CreateHintDb','1:aing,iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrolling¦5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploring¦3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving','petroleum','^=end','far-too','\x5cb0[xX](_?[0-9a-fA-F])+[lL]?(?=','JulianDate','eighty','decfloat','lnbSetText','TrackCurrentSpeed','#Adverb','sha1_string_utf8','iabs','DeviceExecuteAsynchronous','dsin','constr','ButtonExpandable','draw_text_ext_color','timescale','AllowChatServices','getResult','fileref','UnionPlus','#Copula\x20[%Adj|Present%]\x20to\x20#Verb','StructuralImportance','layer_tile_get_region','stored','\x5c(|#|//|/\x5c*|\x5c\x5c|:|;','drawLocation','FrontFaceOpacity','ś','saveSettings','Input','tex','_emitter','ctrlSetFontHeightH5','Curl','percentile_cont','class_initialize','same','point_in_triangle','federation','isnumber','⩺','AnimatorElements','DeleteWithContents',':(?!\x5cs)','Ž','$load_coverage_db','IntFmt','atMentions','(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)','digitalWrite','InverseContinuousWaveletTransform','PodWidth','eval\x20isFinite\x20isNaN\x20parseFloat\x20parseInt\x20decodeURI\x20decodeURIComponent\x20encodeURI\x20encodeURIComponent\x20escape\x20unescape\x20Object\x20Function\x20Boolean\x20Error\x20EvalError\x20InternalError\x20RangeError\x20ReferenceError\x20StopIteration\x20SyntaxError\x20TypeError\x20URIError\x20Number\x20Math\x20Date\x20String\x20RegExp\x20Array\x20Float32Array\x20Float64Array\x20Int16Array\x20Int32Array\x20Int8Array\x20Uint16Array\x20Uint32Array\x20Uint8Array\x20Uint8ClampedArray\x20ArrayBuffer\x20DataView\x20JSON\x20Intl\x20arguments\x20require\x20module\x20console\x20window\x20document\x20Symbol\x20Set\x20Map\x20WeakSet\x20WeakMap\x20Proxy\x20Reflect\x20Behavior\x20bool\x20color\x20coordinate\x20date\x20double\x20enumeration\x20font\x20geocircle\x20georectangle\x20geoshape\x20int\x20list\x20matrix4x4\x20parent\x20point\x20quaternion\x20real\x20rect\x20size\x20string\x20url\x20variant\x20vector2d\x20vector3d\x20vector4d\x20Promise','FileSystemScan','Emoticon','URLQueryDecode','animation','target','solid','\x5c/\x5c*','getMousePosition','MoonPosition','HoeffdingDTest','array_contains','menuValue','([_a-zA-Z]\x5cw*\x5c.)*([_a-zA-Z]\x5cw*:)?[_a-zA-Z]\x5cw*','NotNestedGreaterGreater','qml','AutoOpenNotebooks','Exponent','int8','referencing','ResetDirectory','ds_grid_value_disk_x','NumericValue','row_number','higher-costs','setObjectArguments','unregisterTask','bm_max','[(being|having|getting)]\x20#Verb','well-','vertex_get_buffer_size','ImageResize','background-image','DATE$','isNegative','addGoggles','∯','does','KendallTau','\x20~+~\x20and\x20this\x20query:\x20~+~','CALL','javascript','HistogramDistribution','ISO-10303-21;','ARMAProcess','UndoTrackedVariables','MoonScript','Int64','Initialization','#Gerund\x20like\x20#Adjective?\x20[#PresentTense]','layer_has_instance','deleteGroupWhenEmpty','ds_grid_set_grid_region','⇈','minus-sign','compvalues','$display','level','dist','highlight','tvSort','$get_coverage','GeoRangePadding','ev_gesture_pinch_out','rep_vector','matrix_projection','FloatDict','ev_room_end','disable','draw_vertex_texture_color','$signed','fillDown','setVehicleRadar','TriangulateMesh','<%#','⪼','settings','$MachineName','Speech','kts','DropShadowing','HKU','c_int_fast8_t',')(?!\x5c.)(?=\x5cb|\x5cs)','NorlundB','set3DENGrid','RegionUnion','ţ','ida','HandlerFunctions','host_fuzzy_test','SERIESSUM','maxof','[+\x5c-]','pies','draw_enable_drawevent','gpu_set_ztestenable','BiquadraticFilterModel','ConstrainedMin','NearestNeighborG','pauseMode','EXPONDIST','ReverseBiorthogonalSplineWavelet','Interrupt','ShowPageBreaks','CompilerEnvironmentAppend','removeTeamMember','regex','Boxes','svd','setWaypointScript','vectorDir','(\x5c(|:|=|;|,|//|/\x5c*|$)','DocumentGenerators','𝔔','≳','#end','Database\x20error:','FactorSquareFree','dns','cr_size_nwse','find','Wren','bitor',',\x20#','$realtime','RightTeeVector','commandSuppressiveFire','[even]\x20(#Determiner|#Possessive)','Expects','WeierstrassE3','2-punct-colon\x27\x27','draw_get_colour','Sphere','phy_particle_group_flag_rigid','writeMicroseconds','Compile','BufferGeodetic','ctValue','log2','file_excerpt','optical','markerType','allLODs','now_str','moonscript','^come\x20on','AtomDiagramCoordinates','QuestionWord','nulls\x20last','numbered-list','Splice','TTest','gpu_set_tex_max_mip_ext','OpacityFunctionScaling','nonobjc','ConeBox','on\x20overflow','idle','co_broadcast','more-papers-','GroupGenerators','ascw','Admitted','#Gerund\x20[#Gerund]\x20#Plural','getRemoteSensorsDisabled','$GeoEntityTypes','ctrlSetFontH1','all\x20any\x20no-route\x20self\x20urpf-failed\x20egress|5\x20unknown','three-name-person','⦑','getForcedSpeed','ugc_list_VotedOn','⥼','𝕝','ctrlBackgroundColor','={0,1}%>','quickly-march','Pane','ListVectorDensityPlot','targets','DownLeftRightVector','objectStoreNames','linkItem','equ','min','ToFileName','ctrlModelDirAndUp','say-sorry','Refresh','acos','BlockchainBlockData','SetSharedVariable','dir','care','isobject','SetSystemModel','RUSSIAN_CHARSET','IndexOf','EXACT','view_camera','setSystemOfUnits','assignedVehicle','randsequence','fixed64','SignedRankTest','des','empty-sequence','forceFollowRoad','#youtubeVideo-container','ds_queue_write','_infile_','^please\x20do?\x20not?\x20[#Infinitive\x20#Particle?]','⩹','MatrixLog','$1ix','xs:anyURI','ϑ','ushr','priority','evar','$InputFileName','VAR.S',':-)','stay-away','FresnelC','aug','avenue','Auxiliary\x20PastTense','gpu_get_tex_max_mip','OutOfRangeException','$left','ds_grid_sort','audio_start_recording','openscad','append_col','IDNO','StackOverflowError','landResult','audio_sync_group_is_playing','getPlayerUID','variable.language','layer_sprite_exists','wyo','GraphDisjointUnion','^#!','Column','regexp_like','mask-border-width','^has\x20been\x20#Passive','StringEndsQ','FourierSeries','PlaceholderReplace','#Verb\x20[to\x20be]\x20#Verb','Vararg','probf','#Copula\x20#Adverb?\x20(over|under)\x20[#PastTense]','Latitude','$displayo','setPosATL','escaping','disableAI','#closeModal','bldg','STICK','subtype','MEDIAN','AlphabeticOrder','gpu_set_tex_repeat_ext','ropeDestroy','HermiteDecomposition','border-bottom-width','on:end','PermissionsGroup','BulletGauge','absenceOfDigitsInNumericCharacterReference','[#Noun]\x20me','the-south','Ball','MountainData','StreamPoints','vmode','Math','phy_debug_render_core_shapes','IDYES','ev_middle_press','PATH\x20','^never\x20[#Infinitive]','[\x5c)\x5cn]','GeodesyData','if\x20then\x20else\x20elseif\x20for\x20thru\x20do\x20while\x20unless\x20step\x20in\x20and\x20or\x20not','SqrtBox','SQF','Intersection','setSpeedMode','grow','PROGRAMFILES','os_device','frequency','AutoCopy','Proportional','⊽','discard','HistogramTransform','FILE_ATTRIBUTE_READONLY','#Possessive\x20[%Adj|Gerund%]\x20#Noun','AutoRemove','explain-btn','CTCLossLayer','KeyDrop','vinformatdx','get_command_argument','showWaypoint','outref','WatershedComponents','⨸','fi','asm','pr_trianglestrip','yes','sweep','dressed-and-left','DCOUNT','shuf','GeoGraphValuePlot','multi_normal_cholesky','StringExpression','$GeoLocationSource','direct','EnvelopeIntersects','gpu_set_tex_max_mip','┼','setCamShakeDefParams','DVARP','ℚ','END_SAME_AS_BEGIN','constant','SpanLineThickness','ds_list_write','camPreparePos','bernoulli_logit','markerPos','beginRecord','public','_multiCache','Circumsphere','∫','comptry','AutoHotkey','top','▹','Ĵ','⇖','RightArrow','owens_t','//[gim]*','AudioBlockMap','(?=^(\x20{4}|\x5ct))','InitializationCellEvaluation','SourcePDETerm','CometData','overly-weakened','date_part_str','ShenCastanMatrix','LayerSizeFunction','SubPlus','VertexList','knoll','debug_assert_ne!','ctrlSetFontHeightH4','#load_chats','xs:NCName','3-[neighbour]','NetNestOperator','#PresentTense','part_system_position','gpu_set_tex_min_mip','army','VertexWeightedGraphQ','binary','mp_grid_to_ds_grid','regr_count','⩚','BlockchainPut','DifferentiatorFilter','auto_execok','SilentUnInstall','MB_ICONINFORMATION','#Modal\x20#Noun\x20[%Noun|Verb%]','PatternReaction','flex-flow','SolarTime','gap','MeshFunctions','ImageFileFilter','know','SetSharedFunction','SelectionEvaluate','ConditionalExpression','[\x27`]\x5c(','Sort','commandArtilleryFire','Cosine\x20searching\x20vector\x20database','EdgeDelete','HankelH1','ds_grid_set','text-overflow','wildfly-cli','StructuredArrayHeadQ','$ProductInformation','TrigExpand','ℴ','(?=\x5cs*(-)|$)','⊶','getpgrp','getPylonMagazines','UndirectedEdge','AskAppend','#Person\x20[#ProperNoun\x20#ProperNoun]','current_timestamp','border-inline-width','FileWrite','SeedRandom','flex-wrap','Currency','getPosASLVisual','SortedBy','focus-visible','of-some-sort','strokeWeight','ShowInstDetails','⌆','checkVisibility','ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ','Exch','vprop','part_particles_count','$MessageGroups','-else','FromPolarCoordinates','(that|which)\x20were\x20[%Adj|Gerund%]','Gradle','modf','SpeechInterpreter','shift','CHAIN','FileFormatQ','Timezone','scalar','','log_softmax','Require','OverlayBox','[(has|had)]\x20(#Adverb|not)+?\x20#PastTense','DecimalForm','$TimeZoneEntity','SetDirectory','getGroupIcon','TaskAbort','ds_map_secure_load','pkg_mkIndex','LicenseForceSelection','that-seem','\x5c|[\x20]*','draw_vertex_color','AudioTrim','switch-person','libraryDisclaimers','ALPHA','ArrayReshape','-define','LineIntegralConvolutionPlot','CombinatorI','#Infinitive\x20much\x20[#Infinitive]','HeldGroupHe','CellFrame','⧜','inlineMode','FileBufSize','two','hundred\x20quadrillion','ds_grid_multiply_grid_region','adverb','draw_light_enable','ReactionBalancedQ','lnbSortBy','Honorific-TitleCase','actionParams','ColorBalance','ToCharCode','freq','palace','buffer_s8','addItem','tran','camera_get_view_border_y','generateSettings','svh','EllipticExpPrime','switchMove','TimeSeriesInvertibility','LowerRightArrow','radii','tf_point','LightOrange','reified','RemoteProviderSettings','inref','^[0-9]+>\x20','lib\x20enum\x20union','CarlsonRJ','CloudConnections','derfc','FileHash','^\x5cw+(?=:)',')((','cue-after','EllipticE','typ','__attribute__','◯','$SSHAuthentication','RestartInterval','Cast','ViewProjection','inf','taskParent','@[A-Za-z]+','background-clip','(getting|becoming|feeling)','#Fraction{2,}$','FilledTorus','addWeaponCargo','cumulative_sum','PIDDerivativeFilter','win8_share_screenshot','DEC2BIN','dun','tvCollapseAll','BooleanVariables','__esModule','DivisionByZeroError','JohnsonDistribution','getLanguage','ScaleOrigin','(my|our|their|her|his|its)\x20[(#Plural\x20&&\x20#Actor)]\x20#Noun','isA','ű','⋔','en-US','setMode','clinic','audio_play_sound_at','CreateManagedLibraryExpression','move_snap','#suggestionOverlay','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Error:\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Check\x20your\x20network\x20connection\x20and\x20try\x20again.\x0a\x20\x20\x20\x20\x20\x20\x20\x20','ByteArrayQ','_wrap','layer_get_all','☆\x20Citations:\x20','Threaded','varinfmt','lnbText','bm_complex','or_eq','GenerateFileSignature','NotSquareSuperset','Console','[a-z_]\x5cw*\x27[\x5cw\x27]*','Frameless','WorkingPrecision','\x5cb(?!\x5c()','simplex','GompertzMakehamDistribution','weaponState','AREAS','Syntax','null\x20true\x20false\x20nil\x20','flex\x20items-center','(one|two|three|four|five|six|seven|eight|nine)\x20(','\x5cb(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\x5c()','ListZTransform','USING','%Person|Noun%\x20#Organization','co_await','showCuratorCompass','magazines','⩿','parseFloat','PoleZeroMarkers','beta','FileNameToFormatList','BondQ','PalindromeQ','irandom_range','eglise','WeaklyConnectedComponents','setTerrainGrid','Log10','date_get_hour','⤞','WriteINIStr','NonNegativeIntegers','TextCases','Element','slide','disableTIEquipment','ctSetHeaderTemplate','spline','setVectorUp','mut','MachineNumberQ','(i|he|she|we|you|they)','^\x5c/\x5c/','font-variant-caps','VertexIndex','GraphicsGroup','gamemaker_version','Threshold','how\x20to\x20[%Noun|Verb%]','toAdverb','fadeSound','shred','GroupBy','MinIntervalSize','shownRadio','buffer_invalidtype','enableAI','vectorDirVisual','SelectionCreateCell','\x5c$\x5cd+','ShrinkWrapBoundingBox','table','linspaced_vector','vk_f8','VerticalSeparator','SetSelectedNotebook','Rule','Groupings','random_seed','falls','tail','EdgeConnectivity','treat','MailServerConnection','position_regex','probnorm','ImageSubtract','trying','ℱ','clng','requestFrom','DateAdd','x\x22[\x5cda-fA-F\x5cs\x5cn\x5cr]*\x22[cwd]?','bezierInterpolation','TransformedRegion','defstruct','bycopy','GraphData',');\x0a}\x0a\x0a/*\x20Examples\x20of\x20how\x20to\x20use\x20the\x20above\x20styles\x0a\x0a:::\x20{.callout-slide\x20collapse=\x22false\x22}\x0a##\x20Slides\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20[Image\x20Classification](../image_classification/image_classification.qmd)\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a:::\x20{.callout-exercise\x20collapse=\x22false\x22}\x0a#\x20Exercises\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a:::\x20{.callout-lab\x20collapse=\x22false\x22}\x0a##\x20Labs\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20[Image\x20Classification](../image_classification/image_classification.qmd)\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a:::\x20{.callout-question\x20collapse=\x22false\x22}\x0a##\x20Questions\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20[Image\x20Classification](../image_classification/image_classification.qmd)\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a:::\x20{.callout-answer\x20collapse=\x22false\x22}\x0a##\x20Answer\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20[Image\x20Classification](../image_classification/image_classification.qmd)\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a:::\x20{.callout-hint\x20collapse=\x22false\x22}\x0a##\x20Hint\x0a\x0aNow\x20would\x20be\x20a\x20great\x20time\x20for\x20you\x20to\x20try\x20out\x20a\x20small\x20[Image\x20Classification](../image_classification/image_classification.qmd)\x20computer\x20vision\x20model\x20out\x20of\x20the\x20box.\x0a:::\x0a\x0a*/\x0a\x0a\x0a\x0a\x0a/*\x20MODAL\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20/*\x20Modal\x20styles\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20.modal\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20block;\x20/*\x20Automatically\x20opens\x20when\x20the\x20page\x20loads\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x201000;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x2020px;\x20/*\x20Position\x20on\x20the\x20right\x20side\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x2030%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateY(-50%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20200px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#f0f0f0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x208px\x20rgba(0,\x200,\x200,\x200.2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x205px;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20.modal-header\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding-bottom:\x201px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20#ccc;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20move;\x20/*\x20Indicate\x20draggable\x20area\x20*/\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20.modal-content\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding-top:\x2010px;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20.close-icon\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x201.2rem;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20@keyframes\x20fadeIn\x20{\x0a\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x0a\x20\x20\x20\x20.prompts-for-ai{\x0a\x20\x20\x20\x20\x20\x20font-size:\x201.2rem;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20}\x0a\x0a\x0a\x0a/*\x20CONTROL\x20PANEL\x20V2*//*\x20CONTROL\x20PANEL\x20V2\x20*/\x0a.body_genAI_SocratiQ\x20{\x0a\x20\x20font-family:\x20\x27Courier\x20New\x27,\x20Courier,\x20monospace;\x0a\x20\x20/*\x20background-color:\x20#f9f9f9;\x20*/\x0a\x20\x20display:\x20flex;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a\x20\x20margin:\x200;\x0a}\x0a.card_genAI_SocratiQ\x20{\x0a\x20\x20background-color:\x20#f5f5f5;\x0a\x20\x20color:\x20#333333;\x0a\x20\x20box-shadow:\x200\x204px\x208px\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20border-radius:\x208px;\x0a\x20\x20padding:\x2020px;\x0a\x20\x20max-width:\x2090%;\x0a\x20\x20width:\x20500px;\x0a\x20\x20box-sizing:\x20border-box;\x0a\x20\x20margin-bottom:\x2050px;\x0a}\x0a.card_genAI_SocratiQ\x20h2\x20{\x0a\x20\x20font-size:\x2024px;\x0a\x20\x20margin-bottom:\x2016px;\x0a\x20\x20color:\x20#b22222;\x20/*\x20Reddish\x20Maroon\x20Color\x20*/\x0a}\x0a.card_genAI_SocratiQ\x20.description_genAI_SocratiQ\x20{\x0a\x20\x20font-size:\x2014px;\x0a\x20\x20color:\x20#666666;\x0a\x20\x20margin-bottom:\x2024px;\x0a}\x0a.card_genAI_SocratiQ\x20.input-group_genAI_SocratiQ\x20{\x0a\x20\x20display:\x20flex;\x0a\x20\x20flex-direction:\x20column;\x0a\x20\x20gap:\x2012px;\x0a}\x0a.card_genAI_SocratiQ\x20input[type=\x22text\x22]\x20{\x0a\x20\x20padding:\x2010px;\x0a\x20\x20border:\x201px\x20solid\x20#cccccc;\x0a\x20\x20border-radius:\x204px;\x0a\x20\x20font-size:\x2014px;\x0a\x20\x20color:\x20#333333;\x0a\x20\x20background-color:\x20#ffffff;\x0a\x20\x20width:\x20100%;\x0a\x20\x20box-sizing:\x20border-box;\x0a}\x0a.card_genAI_SocratiQ\x20button\x20{\x0a\x20\x20padding:\x2010px;\x0a\x20\x20background-color:\x20#b22222;\x20/*\x20Reddish\x20Maroon\x20Color\x20*/\x0a\x20\x20color:\x20#ffffff;\x0a\x20\x20border:\x20none;\x0a\x20\x20border-radius:\x204px;\x0a\x20\x20font-size:\x2016px;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20transition:\x20background-color\x200.3s\x20ease;\x0a\x20\x20display:\x20flex;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a}\x0a.card_genAI_SocratiQ\x20button:hover\x20{\x0a\x20\x20background-color:\x20#8b0000;\x20/*\x20Darker\x20Maroon\x20Color\x20*/\x0a}\x0a.card_genAI_SocratiQ\x20button:disabled\x20{\x0a\x20\x20background-color:\x20#cccccc;\x0a\x20\x20cursor:\x20not-allowed;\x0a}\x0a.spinner_genAI_SocratiQ\x20{\x0a\x20\x20border:\x204px\x20solid\x20#f3f3f3;\x0a\x20\x20border-top:\x204px\x20solid\x20#b22222;\x0a\x20\x20border-radius:\x2050%;\x0a\x20\x20width:\x2016px;\x0a\x20\x20height:\x2016px;\x0a\x20\x20animation:\x20spin_genAI_SocratiQ\x201s\x20linear\x20infinite;\x0a}\x0a\x0a@keyframes\x20spin_genAI_SocratiQ\x20{\x0a\x20\x200%\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x20\x20100%\x20{\x20transform:\x20rotate(360deg);\x20}\x0a}\x0a\x0a\x0a/*\x20BUTTONS\x20*/\x0a.text-gray-800\x20{\x0a\x20\x20color:\x20#1f2937;\x20/*\x20Tailwind\x27s\x20gray-800\x20color\x20*/\x0a}\x0a\x0a.focus\x5c:outline-none:focus\x20{\x0a\x20\x20outline:\x20none;\x20/*\x20Removes\x20outline\x20on\x20focus\x20*/\x0a}\x0a\x0a.transition-transform\x20{\x0a\x20\x20transition-property:\x20transform;\x20/*\x20Transitions\x20only\x20the\x20transform\x20property\x20*/\x0a}\x0a\x0a.transform\x20{\x0a\x20\x20transform:\x20scale(1);\x20/*\x20Initial\x20transform\x20state\x20*/\x0a}\x0a\x0a.hover\x5c:scale-105:hover\x20{\x0a\x20\x20transform:\x20scale(1.05);\x20/*\x20Scales\x20element\x20by\x201.05\x20on\x20hover\x20*/\x0a}\x0a\x0a.size-6\x20{\x0a\x20\x20width:\x201.5rem;\x20/*\x20Assuming\x20Tailwind\x27s\x20size-6\x20is\x201.5rem\x20*/\x0a\x20\x20height:\x201.5rem;\x20/*\x20Assuming\x20Tailwind\x27s\x20size-6\x20is\x201.5rem\x20*/\x0a}\x0a\x0a.icon-button-SocratiQ\x20{\x0a\x20\x20border-radius:\x2050%;\x20/*\x20Ensures\x20the\x20button\x20is\x20circular\x20*/\x0a\x20\x20border:\x20none;\x0a\x20\x20display:\x20flex;\x20/*\x20Flex\x20to\x20center\x20the\x20icon\x20*/\x0a\x20\x20align-items:\x20center;\x20/*\x20Center\x20vertically\x20*/\x0a\x20\x20justify-content:\x20center;\x20/*\x20Center\x20horizontally\x20*/\x0a\x20\x20width:\x203rem;\x20/*\x20Ensures\x20the\x20button\x20is\x20large\x20enough\x20to\x20be\x20circular\x20*/\x0a\x20\x20height:\x203rem;\x20/*\x20Ensures\x20the\x20button\x20is\x20large\x20enough\x20to\x20be\x20circular\x20*/\x0a\x20\x20background-color:\x20#fff;\x20/*\x20Optional:\x20background\x20color\x20*/\x0a\x20\x20box-shadow:\x200\x202px\x204px\x20rgba(0,\x200,\x200,\x200.1);\x20/*\x20Optional:\x20adds\x20a\x20subtle\x20shadow\x20*/\x0a\x20\x20padding:\x200;\x20/*\x20Remove\x20padding\x20*/\x0a\x20\x20margin:\x200;\x20/*\x20Remove\x20margin\x20*/\x0a}\x0a\x0a','GetDlgItem','_Pragma','hover','Python\x20profiler','#share-btn','#Noun\x20that\x20[#Plural]','mkd','hasHad','VoronoiMesh','Overscript','oneway','≟','cout','readMessage','StateSpaceModel','Č','clear_color','Boolean','LSL\x20(Linden\x20Scripting\x20Language)','ô','array_position','[better]\x20#PresentTense','string_height_ext','GraphRoot','TableViewBoxBackground','HKEY_PERFORMANCE_DATA','MetaInformation','ItemBox','focus-within','columns_dot_self','.and.','cache','AsymptoticIntegrate','sense',')\x5cb((','EllipticFilterModel','WaveletMatrixPlot','configNull','BoundaryStyle','delimiters','pharmaceutical','missingif','#FirstName\x20#Acronym?\x20[#ProperNoun]','ExternalStoragePut','output','border-block-start-style','ave','RuntimeOptions','binomial','actionKeysImages','econstructor','debug_get_callstack','<\x5c/[A-Za-z][A-Za-z0-9\x5c-]*\x5cs*>','phy_linear_damping','len_trim','facebook_launch_offerwall','setSimpleTaskTarget','Thursday','audio_master_gain','|(?:(?:(?:','visibleCompass','DiscreteRatio','lookBefore','GraphReciprocity','ChebyshevT','toQuotations','$DynamicEvaluation','yprevious','unitBackpack','layer_background_alpha','DCOUNTA','SetUsers','ChoiceDialog','SystemInformationData','NominalScale','toml','contentDocument','Unevaluated','view_vspeed','string_char_at','phy_joint_reaction_force_y','models','PillaiTraceTest','StyleDefinitions','Most','EchoEvaluation','getStatValue','in-month','fps','CONFIDENCE.T','vsprintf','ClassifierMeasurements','objectFromNetId','^#Fraction$','PRICE','color_get_green','caption_health','setFSMVariable','sixty','UnitConvert','PowerRange','к','parity','^#Currency','inherited','isMatchIgnored','RandomGeneratorState','AMORDEGRC','gpu_set_texrepeat','Khinchin','⨄','$1ices','InputNotebook','%q\x5c[','ComplementedEntityClass','DEPOT_PATH','QuartileSkewness','SWITCH','in\x20[#ProperNoun]\x20#Place','Italic','eexists','font-kerning','\x22\x20style=\x22color:blue;\x20hover:purple;\x22\x20target=\x22_blank\x22>↗Link\x20|\x0a\x0a','QuantityForm','@hasExclamation','give\x20real\x20life\x20examples\x20of\x20this','pre','fromCodePoint','lnbSetTooltip','SUBTOTAL','to_row_vector','unfold','arguments','addOwnedMine','^[(shut|close|open|start|stop|end|keep)]\x20#Determiner\x20#Noun','clickable_delete','qr_thin','scan','scrollbar-gutter','func.def','BoxFormFormatTypes','Equivalent','^let\x20(us|me)\x20[#Infinitive]','𝔉','endtable','CepstrogramArray','UFRAME_NUM','LOG','lrepeat|10','Mapping','destruct','url|0','SSSTriangle','ambientTemperature','Щ','ODDFYIELD','ppEffectCreate','readStringUntil','complex_row_vector','playerRespawnTime','CloudUnshare','bog','object_inner_pairs','primary','displayUpdate','setWantedRPMRTD','experimental','sandhill','skillFinal','Apache\x20Access\x20Log','delete3DENEntities','$MaxExtraPrecision','parentType','GraphicsComplexBox','steam_set_stat_float','Word','[right]\x20(before|after|in|into|to|toward)','\x5c$[a-zA-Z_$][a-zA-Z0-9_$]*','have-had','TSIG','SystemsModelControllerData','$1y','room_last','@hasComma','NMaxValue','PEN','ds_grid_value_disk_exists','ImageOffset','(#Honorific|#Pronoun|#Possessive)','roadsConnectedTo','run\x20cmd\x20entrypoint\x20volume\x20add\x20copy\x20workdir\x20label\x20healthcheck\x20shell','y|0','WaveletScale','draw_text_ext','$async$or$array','will-be-cleaned','Test','ValueQ','NORM.INV','ds_queue_read','hspeed','opacity','ruleslanguage','will\x20#Adverb?\x20not?\x20#Adverb?\x20[be]\x20#Gerund','^[#PhrasalVerb\x20#Particle]\x20#Determiner\x20#Noun','#Copula\x20#Adverb?\x20[%Adj|Present%]$','WindSpeedData','[0-9](_?[0-9])*','Could\x20not\x20find\x20the\x20language\x20\x27{}\x27,\x20did\x20you\x20forget\x20to\x20load/include\x20a\x20language\x20module?','foreign','GeometricMean','__text_cache__','Orthogonalize','LensFlare','$swrite','gpu_get_tex_mip_enable','10.7.0','WSP','ctrlMousePosition','NetPortGradient','path_add_point','CallbackFilterIterator','UIApplicationMain','KeyIntersection','drop\x20','⟶','rename','GLSL','NotebookEventActions','border-block-end','uint16','WordFrequencyData','cstringarray','everyContainer','semget','implicit','EndPackage','go-to-toronto','bg-white','NumberSeparator','(face|embrace|reveal|stop|start|resume)\x20%Adj|Gerund%','runAsynchronously','buffer_s16','os_macosx','setApertureNew','AudioChannels','woman-like','14.13.0','helpModalContainer','__bridge_transfer','Disk','ignorefunc','[much]\x20#Adjective','comобъект\x20ftpсоединение\x20httpзапрос\x20httpсервисответ\x20httpсоединение\x20wsопределения\x20wsпрокси\x20xbase\x20анализданных\x20аннотацияxs\x20блокировкаданных\x20буфердвоичныхданных\x20включениеxs\x20выражениекомпоновкиданных\x20генераторслучайныхчисел\x20географическаясхема\x20географическиекоординаты\x20графическаясхема\x20группамоделиxs\x20данныерасшифровкикомпоновкиданных\x20двоичныеданные\x20дендрограмма\x20диаграмма\x20диаграммаганта\x20диалогвыборафайла\x20диалогвыборацвета\x20диалогвыборашрифта\x20диалограсписаниярегламентногозадания\x20диалогредактированиястандартногопериода\x20диапазон\x20документdom\x20документhtml\x20документацияxs\x20доставляемоеуведомление\x20записьdom\x20записьfastinfoset\x20записьhtml\x20записьjson\x20записьxml\x20записьzipфайла\x20записьданных\x20записьтекста\x20записьузловdom\x20запрос\x20защищенноесоединениеopenssl\x20значенияполейрасшифровкикомпоновкиданных\x20извлечениетекста\x20импортxs\x20интернетпочта\x20интернетпочтовоесообщение\x20интернетпочтовыйпрофиль\x20интернетпрокси\x20интернетсоединение\x20информациядляприложенияxs\x20использованиеатрибутаxs\x20использованиесобытияжурналарегистрации\x20источникдоступныхнастроеккомпоновкиданных\x20итераторузловdom\x20картинка\x20квалификаторыдаты\x20квалификаторыдвоичныхданных\x20квалификаторыстроки\x20квалификаторычисла\x20компоновщикмакетакомпоновкиданных\x20компоновщикнастроеккомпоновкиданных\x20конструктормакетаоформлениякомпоновкиданных\x20конструкторнастроеккомпоновкиданных\x20конструкторформатнойстроки\x20линия\x20макеткомпоновкиданных\x20макетобластикомпоновкиданных\x20макетоформлениякомпоновкиданных\x20маскаxs\x20менеджеркриптографии\x20наборсхемxml\x20настройкикомпоновкиданных\x20настройкисериализацииjson\x20обработкакартинок\x20обработкарасшифровкикомпоновкиданных\x20обходдереваdom\x20объявлениеатрибутаxs\x20объявлениенотацииxs\x20объявлениеэлементаxs\x20описаниеиспользованиясобытиядоступжурналарегистрации\x20описаниеиспользованиясобытияотказвдоступежурналарегистрации\x20описаниеобработкирасшифровкикомпоновкиданных\x20описаниепередаваемогофайла\x20описаниетипов\x20определениегруппыатрибутовxs\x20определениегруппымоделиxs\x20определениеограниченияидентичностиxs\x20определениепростоготипаxs\x20определениесоставноготипаxs\x20определениетипадокументаdom\x20определенияxpathxs\x20отборкомпоновкиданных\x20пакетотображаемыхдокументов\x20параметрвыбора\x20параметркомпоновкиданных\x20параметрызаписиjson\x20параметрызаписиxml\x20параметрычтенияxml\x20переопределениеxs\x20планировщик\x20полеанализаданных\x20полекомпоновкиданных\x20построительdom\x20построительзапроса\x20построительотчета\x20построительотчетаанализаданных\x20построительсхемxml\x20поток\x20потоквпамяти\x20почта\x20почтовоесообщение\x20преобразованиеxsl\x20преобразованиекканоническомуxml\x20процессорвыводарезультатакомпоновкиданныхвколлекциюзначений\x20процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент\x20процессоркомпоновкиданных\x20разыменовательпространствименdom\x20рамка\x20расписаниерегламентногозадания\x20расширенноеимяxml\x20результатчтенияданных\x20своднаядиаграмма\x20связьпараметравыбора\x20связьпотипу\x20связьпотипукомпоновкиданных\x20сериализаторxdto\x20сертификатклиентаwindows\x20сертификатклиентафайл\x20сертификаткриптографии\x20сертификатыудостоверяющихцентровwindows\x20сертификатыудостоверяющихцентровфайл\x20сжатиеданных\x20системнаяинформация\x20сообщениепользователю\x20сочетаниеклавиш\x20сравнениезначений\x20стандартнаядатаначала\x20стандартныйпериод\x20схемаxml\x20схемакомпоновкиданных\x20табличныйдокумент\x20текстовыйдокумент\x20тестируемоеприложение\x20типданныхxml\x20уникальныйидентификатор\x20фабрикаxdto\x20файл\x20файловыйпоток\x20фасетдлиныxs\x20фасетколичестваразрядовдробнойчастиxs\x20фасетмаксимальноговключающегозначенияxs\x20фасетмаксимальногоисключающегозначенияxs\x20фасетмаксимальнойдлиныxs\x20фасетминимальноговключающегозначенияxs\x20фасетминимальногоисключающегозначенияxs\x20фасетминимальнойдлиныxs\x20фасетобразцаxs\x20фасетобщегоколичестваразрядовxs\x20фасетперечисленияxs\x20фасетпробельныхсимволовxs\x20фильтрузловdom\x20форматированнаястрока\x20форматированныйдокумент\x20фрагментxs\x20хешированиеданных\x20хранилищезначения\x20цвет\x20чтениеfastinfoset\x20чтениеhtml\x20чтениеjson\x20чтениеxml\x20чтениеzipфайла\x20чтениеданных\x20чтениетекста\x20чтениеузловdom\x20шрифт\x20элементрезультатакомпоновкиданных\x20comsafearray\x20деревозначений\x20массив\x20соответствие\x20списокзначений\x20структура\x20таблицазначений\x20фиксированнаяструктура\x20фиксированноесоответствие\x20фиксированныймассив\x20','_\x20__\x20%|0\x20%%|0','ContainsExactly','^\x5c$[a-z0-9]+','setCompassOscillation','BITRSHIFT','text-transform','texture_get_texel_width','true¦a8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia','language_name','constexpr','photographs-of','exports','text-lg','device_mouse_x_to_gui','ctrlFade','faculty','setoid_reflexivity','разделительстраниц\x20разделительстрок\x20символтабуляции\x20ansitooem\x20oemtoansi\x20ввестивидсубконто\x20ввестиперечисление\x20ввестипериод\x20ввестиплансчетов\x20выбранныйплансчетов\x20датагод\x20датамесяц\x20датачисло\x20заголовоксистемы\x20значениевстроку\x20значениеизстроки\x20каталогиб\x20каталогпользователя\x20кодсимв\x20конгода\x20конецпериодаби\x20конецрассчитанногопериодаби\x20конецстандартногоинтервала\x20конквартала\x20конмесяца\x20коннедели\x20лог\x20лог10\x20максимальноеколичествосубконто\x20названиеинтерфейса\x20названиенабораправ\x20назначитьвид\x20назначитьсчет\x20найтиссылки\x20началопериодаби\x20началостандартногоинтервала\x20начгода\x20начквартала\x20начмесяца\x20начнедели\x20номерднягода\x20номерднянедели\x20номернеделигода\x20обработкаожидания\x20основнойжурналрасчетов\x20основнойплансчетов\x20основнойязык\x20очиститьокносообщений\x20периодстр\x20получитьвремята\x20получитьдатута\x20получитьдокументта\x20получитьзначенияотбора\x20получитьпозициюта\x20получитьпустоезначение\x20получитьта\x20префиксавтонумерации\x20пропись\x20пустоезначение\x20разм\x20разобратьпозициюдокумента\x20рассчитатьрегистрына\x20рассчитатьрегистрыпо\x20симв\x20создатьобъект\x20статусвозврата\x20стрколичествострок\x20сформироватьпозициюдокумента\x20счетпокоду\x20текущеевремя\x20типзначения\x20типзначениястр\x20установитьтана\x20установитьтапо\x20фиксшаблон\x20шаблон\x20acos\x20asin\x20atan\x20base64значение\x20base64строка\x20cos\x20exp\x20log\x20log10\x20pow\x20sin\x20sqrt\x20tan\x20xmlзначение\x20xmlстрока\x20xmlтип\x20xmlтипзнч\x20активноеокно\x20безопасныйрежим\x20безопасныйрежимразделенияданных\x20булево\x20ввестидату\x20ввестизначение\x20ввестистроку\x20ввестичисло\x20возможностьчтенияxml\x20вопрос\x20восстановитьзначение\x20врег\x20выгрузитьжурналрегистрации\x20выполнитьобработкуоповещения\x20выполнитьпроверкуправдоступа\x20вычислить\x20год\x20данныеформывзначение\x20дата\x20день\x20деньгода\x20деньнедели\x20добавитьмесяц\x20заблокироватьданныедляредактирования\x20заблокироватьработупользователя\x20завершитьработусистемы\x20загрузитьвнешнююкомпоненту\x20закрытьсправку\x20записатьjson\x20записатьxml\x20записатьдатуjson\x20записьжурналарегистрации\x20заполнитьзначениясвойств\x20запроситьразрешениепользователя\x20запуститьприложение\x20запуститьсистему\x20зафиксироватьтранзакцию\x20значениевданныеформы\x20значениевстрокувнутр\x20значениевфайл\x20значениезаполнено\x20значениеизстрокивнутр\x20значениеизфайла\x20изxmlтипа\x20импортмоделиxdto\x20имякомпьютера\x20имяпользователя\x20инициализироватьпредопределенныеданные\x20информацияобошибке\x20каталогбиблиотекимобильногоустройства\x20каталогвременныхфайлов\x20каталогдокументов\x20каталогпрограммы\x20кодироватьстроку\x20кодлокализацииинформационнойбазы\x20кодсимвола\x20командасистемы\x20конецгода\x20конецдня\x20конецквартала\x20конецмесяца\x20конецминуты\x20конецнедели\x20конецчаса\x20конфигурациябазыданныхизмененадинамически\x20конфигурацияизменена\x20копироватьданныеформы\x20копироватьфайл\x20краткоепредставлениеошибки\x20лев\x20макс\x20местноевремя\x20месяц\x20мин\x20минута\x20монопольныйрежим\x20найти\x20найтинедопустимыесимволыxml\x20найтиокнопонавигационнойссылке\x20найтипомеченныенаудаление\x20найтипоссылкам\x20найтифайлы\x20началогода\x20началодня\x20началоквартала\x20началомесяца\x20началоминуты\x20началонедели\x20началочаса\x20начатьзапросразрешенияпользователя\x20начатьзапускприложения\x20начатькопированиефайла\x20начатьперемещениефайла\x20начатьподключениевнешнейкомпоненты\x20начатьподключениерасширенияработыскриптографией\x20начатьподключениерасширенияработысфайлами\x20начатьпоискфайлов\x20начатьполучениекаталогавременныхфайлов\x20начатьполучениекаталогадокументов\x20начатьполучениерабочегокаталогаданныхпользователя\x20начатьполучениефайлов\x20начатьпомещениефайла\x20начатьпомещениефайлов\x20начатьсозданиедвоичныхданныхизфайла\x20начатьсозданиекаталога\x20начатьтранзакцию\x20начатьудалениефайлов\x20начатьустановкувнешнейкомпоненты\x20начатьустановкурасширенияработыскриптографией\x20начатьустановкурасширенияработысфайлами\x20неделягода\x20необходимостьзавершениясоединения\x20номерсеансаинформационнойбазы\x20номерсоединенияинформационнойбазы\x20нрег\x20нстр\x20обновитьинтерфейс\x20обновитьнумерациюобъектов\x20обновитьповторноиспользуемыезначения\x20обработкапрерыванияпользователя\x20объединитьфайлы\x20окр\x20описаниеошибки\x20оповестить\x20оповеститьобизменении\x20отключитьобработчикзапросанастроекклиенталицензирования\x20отключитьобработчикожидания\x20отключитьобработчикоповещения\x20открытьзначение\x20открытьиндекссправки\x20открытьсодержаниесправки\x20открытьсправку\x20открытьформу\x20открытьформумодально\x20отменитьтранзакцию\x20очиститьжурналрегистрации\x20очиститьнастройкипользователя\x20очиститьсообщения\x20параметрыдоступа\x20перейтипонавигационнойссылке\x20переместитьфайл\x20подключитьвнешнююкомпоненту\x20подключитьобработчикзапросанастроекклиенталицензирования\x20подключитьобработчикожидания\x20подключитьобработчикоповещения\x20подключитьрасширениеработыскриптографией\x20подключитьрасширениеработысфайлами\x20подробноепредставлениеошибки\x20показатьвводдаты\x20показатьвводзначения\x20показатьвводстроки\x20показатьвводчисла\x20показатьвопрос\x20показатьзначение\x20показатьинформациюобошибке\x20показатьнакарте\x20показатьоповещениепользователя\x20показатьпредупреждение\x20полноеимяпользователя\x20получитьcomобъект\x20получитьxmlтип\x20получитьадреспоместоположению\x20получитьблокировкусеансов\x20получитьвремязавершенияспящегосеанса\x20получитьвремязасыпанияпассивногосеанса\x20получитьвремяожиданияблокировкиданных\x20получитьданныевыбора\x20получитьдополнительныйпараметрклиенталицензирования\x20получитьдопустимыекодылокализации\x20получитьдопустимыечасовыепояса\x20получитьзаголовокклиентскогоприложения\x20получитьзаголовоксистемы\x20получитьзначенияотборажурналарегистрации\x20получитьидентификаторконфигурации\x20получитьизвременногохранилища\x20получитьимявременногофайла\x20получитьимяклиенталицензирования\x20получитьинформациюэкрановклиента\x20получитьиспользованиежурналарегистрации\x20получитьиспользованиесобытияжурналарегистрации\x20получитькраткийзаголовокприложения\x20получитьмакетоформления\x20получитьмаскувсефайлы\x20получитьмаскувсефайлыклиента\x20получитьмаскувсефайлысервера\x20получитьместоположениепоадресу\x20получитьминимальнуюдлинупаролейпользователей\x20получитьнавигационнуюссылку\x20получитьнавигационнуюссылкуинформационнойбазы\x20получитьобновлениеконфигурациибазыданных\x20получитьобновлениепредопределенныхданныхинформационнойбазы\x20получитьобщиймакет\x20получитьобщуюформу\x20получитьокна\x20получитьоперативнуюотметкувремени\x20получитьотключениебезопасногорежима\x20получитьпараметрыфункциональныхопцийинтерфейса\x20получитьполноеимяпредопределенногозначения\x20получитьпредставлениянавигационныхссылок\x20получитьпроверкусложностипаролейпользователей\x20получитьразделительпути\x20получитьразделительпутиклиента\x20получитьразделительпутисервера\x20получитьсеансыинформационнойбазы\x20получитьскоростьклиентскогосоединения\x20получитьсоединенияинформационнойбазы\x20получитьсообщенияпользователю\x20получитьсоответствиеобъектаиформы\x20получитьсоставстандартногоинтерфейсаodata\x20получитьструктурухранениябазыданных\x20получитьтекущийсеансинформационнойбазы\x20получитьфайл\x20получитьфайлы\x20получитьформу\x20получитьфункциональнуюопцию\x20получитьфункциональнуюопциюинтерфейса\x20получитьчасовойпоясинформационнойбазы\x20пользователиос\x20поместитьвовременноехранилище\x20поместитьфайл\x20поместитьфайлы\x20прав\x20праводоступа\x20предопределенноезначение\x20представлениекодалокализации\x20представлениепериода\x20представлениеправа\x20представлениеприложения\x20представлениесобытияжурналарегистрации\x20представлениечасовогопояса\x20предупреждение\x20прекратитьработусистемы\x20привилегированныйрежим\x20продолжитьвызов\x20прочитатьjson\x20прочитатьxml\x20прочитатьдатуjson\x20пустаястрока\x20рабочийкаталогданныхпользователя\x20разблокироватьданныедляредактирования\x20разделитьфайл\x20разорватьсоединениесвнешнимисточникомданных\x20раскодироватьстроку\x20рольдоступна\x20секунда\x20сигнал\x20символ\x20скопироватьжурналрегистрации\x20смещениелетнеговремени\x20смещениестандартноговремени\x20соединитьбуферыдвоичныхданных\x20создатькаталог\x20создатьфабрикуxdto\x20сокрл\x20сокрлп\x20сокрп\x20сообщить\x20состояние\x20сохранитьзначение\x20сохранитьнастройкипользователя\x20сред\x20стрдлина\x20стрзаканчиваетсяна\x20стрзаменить\x20стрнайти\x20стрначинаетсяс\x20строка\x20строкасоединенияинформационнойбазы\x20стрполучитьстроку\x20стрразделить\x20стрсоединить\x20стрсравнить\x20стрчисловхождений\x20стрчислострок\x20стршаблон\x20текущаядата\x20текущаядатасеанса\x20текущаяуниверсальнаядата\x20текущаяуниверсальнаядатавмиллисекундах\x20текущийвариантинтерфейсаклиентскогоприложения\x20текущийвариантосновногошрифтаклиентскогоприложения\x20текущийкодлокализации\x20текущийрежимзапуска\x20текущийязык\x20текущийязыксистемы\x20тип\x20типзнч\x20транзакцияактивна\x20трег\x20удалитьданныеинформационнойбазы\x20удалитьизвременногохранилища\x20удалитьобъекты\x20удалитьфайлы\x20универсальноевремя\x20установитьбезопасныйрежим\x20установитьбезопасныйрежимразделенияданных\x20установитьблокировкусеансов\x20установитьвнешнююкомпоненту\x20установитьвремязавершенияспящегосеанса\x20установитьвремязасыпанияпассивногосеанса\x20установитьвремяожиданияблокировкиданных\x20установитьзаголовокклиентскогоприложения\x20установитьзаголовоксистемы\x20установитьиспользованиежурналарегистрации\x20установитьиспользованиесобытияжурналарегистрации\x20установитькраткийзаголовокприложения\x20установитьминимальнуюдлинупаролейпользователей\x20установитьмонопольныйрежим\x20установитьнастройкиклиенталицензирования\x20установитьобновлениепредопределенныхданныхинформационнойбазы\x20установитьотключениебезопасногорежима\x20установитьпараметрыфункциональныхопцийинтерфейса\x20установитьпривилегированныйрежим\x20установитьпроверкусложностипаролейпользователей\x20установитьрасширениеработыскриптографией\x20установитьрасширениеработысфайлами\x20установитьсоединениесвнешнимисточникомданных\x20установитьсоответствиеобъектаиформы\x20установитьсоставстандартногоинтерфейсаodata\x20установитьчасовойпоясинформационнойбазы\x20установитьчасовойпояссеанса\x20формат\x20цел\x20час\x20часовойпояс\x20часовойпояссеанса\x20число\x20числопрописью\x20этоадресвременногохранилища\x20wsссылки\x20библиотекакартинок\x20библиотекамакетовоформлениякомпоновкиданных\x20библиотекастилей\x20бизнеспроцессы\x20внешниеисточникиданных\x20внешниеобработки\x20внешниеотчеты\x20встроенныепокупки\x20главныйинтерфейс\x20главныйстиль\x20документы\x20доставляемыеуведомления\x20журналыдокументов\x20задачи\x20информацияобинтернетсоединении\x20использованиерабочейдаты\x20историяработыпользователя\x20константы\x20критерииотбора\x20метаданные\x20обработки\x20отображениерекламы\x20отправкадоставляемыхуведомлений\x20отчеты\x20панельзадачос\x20параметрзапуска\x20параметрысеанса\x20перечисления\x20планывидоврасчета\x20планывидовхарактеристик\x20планыобмена\x20планысчетов\x20полнотекстовыйпоиск\x20пользователиинформационнойбазы\x20последовательности\x20проверкавстроенныхпокупок\x20рабочаядата\x20расширенияконфигурации\x20регистрыбухгалтерии\x20регистрынакопления\x20регистрырасчета\x20регистрысведений\x20регламентныезадания\x20сериализаторxdto\x20справочники\x20средствагеопозиционирования\x20средствакриптографии\x20средствамультимедиа\x20средстваотображениярекламы\x20средствапочты\x20средствателефонии\x20фабрикаxdto\x20файловыепотоки\x20фоновыезадания\x20хранилищанастроек\x20хранилищевариантовотчетов\x20хранилищенастроекданныхформ\x20хранилищеобщихнастроек\x20хранилищепользовательскихнастроекдинамическихсписков\x20хранилищепользовательскихнастроекотчетов\x20хранилищесистемныхнастроек\x20','createVehicleCrew','ef_star','Xor','getEngineTargetRPMRTD','Print','file','PredictorMeasurementsObject','ugc_result_success','NS_DEPRECATED','PacletFindRemote','never-stop','null','xs:untypedAtomic','⧏̸','ugc_list_UsedOrPlayed','option','ZTEST','putn','KuiperTest','logpmf','InverseJacobiDC','(\x5cb(','strong1','soundVolume','groupRadio','ColorSpace','LOC','Weights','deleteRange','IgnoreSpellCheck','audio_channel_num','BondLabels','DimensionalMeshComponents','gp_face3','overriding\x20function\x20procedure\x20with\x20is\x20renames\x20return','parseLinkTitle','[%Adj|Past%]\x20and\x20#Adjective','network_create_server_raw','setFog','Subsets','contains','c_int','cmake','⧐̸','LOAD_PATH','onPlayerDisconnected','GeometricOptimization','injection','SpatialObservationRegionQ','content-visibility','GoochShading','draw_primitive_begin','ads_set_reward_callback','getFuelCargo','SurdForm','html.handlebars','defparam','#Noun\x20(&|n)\x20#Noun','#load-','Let','must-march','MB_ICONEXCLAMATION','TukeyWindow','CellElementsBoundingBox','$asin','strpbrk','considerAll','^\x5cs*','joinString','isFilePatchingEnabled','display_get_height','VBScript\x20in\x20HTML','FourierParameters','PairedBarChart','sort_indices_asc','IBAction','Exec','⨓','vertex_freeze','csharp','grid-column-start','position_change','chunk','1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung','complex128','network_create_server','CompilerEnvironmentAppendTo','AppearanceRules','layer_background_get_speed','aput','http:','generalize','NHoldFirst','PolynomialExpressionQ',' ','prefix','circa','winphone_tile_small_background_image','#Adverb\x20#Negative','Resize','LQOutputRegulatorGains','scottish-me','VARPTR$','esp','header','median','^come\x20and?\x20#Infinitive','AstroZoomLevel','criteria','Retrieving\x20relevant\x20papers\x20from\x20Arxiv','ToHex','ⅆ','can_open','strspn','COS','assn','Longest','getLighting','ev_user13','HASH_COMMENT_MODE','¹','Parser\x20rule\x20not\x20found:\x20','$sformatf','GKInspectable','ev_user11','endpwent','ScreenRectangle','setLightAmbient','ToNumberField','setLightFlareSize','ArcSinDistribution','Selectable','⇏','FlipView','neg_binomial_2_log','path_set_precision','setInfoPanel','renderInline','ć','$CloudUserID','StandbyDistribution','FontVariations','^[a-zA-Z][a-zA-Z0-9_-]*\x5c(.*\x5c)','groupOwner','ds_stack_size','pr_linelist','Write\x20something...','HeunG','AnnotationKeys','TransformedProcess','PriceGraphDistribution','hcSelectGroup','vas','@implementation','setTaskMarkerOffset','posWorldToScreen','ERROR_PROG','eauto','$VoiceStyles','$AsynchronousTask','$sync$or$plane','FactorInteger','AlternateImage','JacobiCN','ViewVector','Sockets','vectorAdd','TemplateBox','xnor','asc','setEffectiveCommander','services','\x0a:::\x20spoiler\x20quote\x0a*','image','struct\x20enum\x20service\x20exception','setMousePosition','readString','⨴','gpu_set_tex_max_aniso_ext','start','mixed','display_get_width','LongLeftArrow','lateral','template-variable','ExportByteArray','outlet','ў','lbSetPicture','pixelH','[#Copula]\x20(#Adverb|not)+?\x20(#Gerund|#PastTense)','_Nonnull','setTaskState','(do|does|is|was)\x20#Noun+\x20#Adverb?\x20(#Adjective|#Infinitive)$','ParametricRegion','going-to-walk','BoxRotation','lay','grid-area','addWeaponCargoGlobal','container_','ent','TransformationMatrix','SUM','AssessmentResultObject','$assertcontrol','varrayx','Contours','physics_particle_group_polygon','show3DIcons','moveOut','function\x20constructor\x20destructor\x20procedure\x20method','createMarker','caption-side','LinearizingTransformationData','$TraceOff','Material','any-hover','ImplicitRegion','Quit','rantri','GeodesicOpening','ISPMT','\x1b[35m','endRe','filename_change_ext','CreateDirectory','VertexRenderingFunction','destructor','\x5cbforeign\x5cb','SuperPlus','achievement_post_score','Reflexive','О','PermutationSupport','FunctionDomain','ReactionBalance','AxesLabel','Fine','global','port\x20effect\x20module','Dataset','overflow-block','surface_resize','Divergence','repeat','phy_joint_length_2','neg\x20not\x20null\x20string\x20reciprocal\x20floor\x20ceiling\x20signum\x20mod\x20xbar\x20xlog\x20and\x20or\x20each\x20scan\x20over\x20prior\x20mmu\x20lsq\x20inv\x20md5\x20ltime\x20gtime\x20count\x20first\x20var\x20dev\x20med\x20cov\x20cor\x20all\x20any\x20rand\x20sums\x20prds\x20mins\x20maxs\x20fills\x20deltas\x20ratios\x20avgs\x20differ\x20prev\x20next\x20rank\x20reverse\x20iasc\x20idesc\x20asc\x20desc\x20msum\x20mcount\x20mavg\x20mdev\x20xrank\x20mmin\x20mmax\x20xprev\x20rotate\x20distinct\x20group\x20where\x20flip\x20type\x20key\x20til\x20get\x20value\x20attr\x20cut\x20set\x20upsert\x20raze\x20union\x20inter\x20except\x20cross\x20sv\x20vs\x20sublist\x20enlist\x20read0\x20read1\x20hopen\x20hclose\x20hdel\x20hsym\x20hcount\x20peach\x20system\x20ltrim\x20rtrim\x20trim\x20lower\x20upper\x20ssr\x20view\x20tables\x20views\x20cols\x20xcols\x20keys\x20xkey\x20xcol\x20xasc\x20xdesc\x20fkeys\x20meta\x20lj\x20aj\x20aj0\x20ij\x20pj\x20asof\x20uj\x20ww\x20wj\x20wj1\x20fby\x20xgroup\x20ungroup\x20ej\x20save\x20load\x20rsave\x20rload\x20show\x20csv\x20parse\x20eval\x20min\x20max\x20avg\x20wavg\x20wsum\x20sin\x20cos\x20tan\x20sum','BeveledPolyhedron','ev_create','setOxygenRemaining','c_alert','AbortError','tgamma','And','setParticleParams','weightRTD','PacletSiteUpdate','ifmacrodef','\x5cb(?:([0-9][0-9_]*)?\x5c.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\x5c.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\x5cb','MaxBend','AutoCloseWindow','⅓','EvaluationMonitor','%r\x5c{','removeBackpackGlobal','SetCookies','InterpretTemplate','isWeaponDeployed','General','pronouns','break\x20continue\x20discard\x20do\x20else\x20for\x20if\x20return\x20while\x20switch\x20case\x20default\x20attribute\x20binding\x20buffer\x20ccw\x20centroid\x20centroid\x20varying\x20coherent\x20column_major\x20const\x20cw\x20depth_any\x20depth_greater\x20depth_less\x20depth_unchanged\x20early_fragment_tests\x20equal_spacing\x20flat\x20fractional_even_spacing\x20fractional_odd_spacing\x20highp\x20in\x20index\x20inout\x20invariant\x20invocations\x20isolines\x20layout\x20line_strip\x20lines\x20lines_adjacency\x20local_size_x\x20local_size_y\x20local_size_z\x20location\x20lowp\x20max_vertices\x20mediump\x20noperspective\x20offset\x20origin_upper_left\x20out\x20packed\x20patch\x20pixel_center_integer\x20point_mode\x20points\x20precise\x20precision\x20quads\x20r11f_g11f_b10f\x20r16\x20r16_snorm\x20r16f\x20r16i\x20r16ui\x20r32f\x20r32i\x20r32ui\x20r8\x20r8_snorm\x20r8i\x20r8ui\x20readonly\x20restrict\x20rg16\x20rg16_snorm\x20rg16f\x20rg16i\x20rg16ui\x20rg32f\x20rg32i\x20rg32ui\x20rg8\x20rg8_snorm\x20rg8i\x20rg8ui\x20rgb10_a2\x20rgb10_a2ui\x20rgba16\x20rgba16_snorm\x20rgba16f\x20rgba16i\x20rgba16ui\x20rgba32f\x20rgba32i\x20rgba32ui\x20rgba8\x20rgba8_snorm\x20rgba8i\x20rgba8ui\x20row_major\x20sample\x20shared\x20smooth\x20std140\x20std430\x20stream\x20triangle_strip\x20triangles\x20triangles_adjacency\x20uniform\x20varying\x20vertices\x20volatile\x20writeonly','username','Proxy','adviceexecution','lookAtPos','ExpectedValue','MatrixRank','draw_ellipse_colour','sha1_string_unicode','instance_deactivate_all','MB_ABORTRETRYIGNORE','Int\x20Real\x20Char\x20Bool','convert','.overlay-progressive','INPUT$','[:,]\x5cs*','ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ','⩃','begin',':(:)?','uint32','voice-family','lockedInventory','HoeffdingD','modelX','\x5cb0[xX](','collision_ellipse','^(has|have)\x20#PastTense$','FormFunction','Hints','WebExecute','if\x20else\x20for\x20in','NegativeReals','can\x20not\x20find\x20mode\x20to\x20replace','BETA.DIST','VertexLabels','element\x20attribute\x20comment\x20document\x20processing-instruction','\x5cb(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\x5cb','fail','sprite_exists','probhypr','(have|has)','configSourceAddonList','destruction','tagSet','object_get_depth','peri','Phi','Variable','PsychrometricPropertyData','lbText','([a-z]+):/','itemCargo','text-decoration-line','not?\x20#Adverb+?\x20[#Copula]','Properties','shmread','except','TypeVar','^%Noun|Verb%\x20%Plural|Verb%','#Percent','isEqualTypeAny','if\x20then\x20not\x20for\x20in\x20while\x20do\x20return\x20else\x20elseif\x20break\x20continue\x20switch\x20and\x20or\x20unless\x20when\x20class\x20extends\x20super\x20local\x20import\x20export\x20from\x20using','^#Ordinal$','portland-or','stride','centre','inv_sqrt','parameter','CancelButton','Inf','IMREAL','FeatureDistance','LinkOpen','addToRemainsCollector','AmbiguityFunction','Vectors','RandomPrime','the\x20[(can|will|may)]','@__','argument13','ř','Plain','mouseup','JBoss\x20CLI','puppet','getvarn','analogReadResolution','canvas','ListPointPlot3D','Centroid','QuestionInterface','Synonyms','skeleton_animation_get_frame','gpu_set_alphatestref','GreaterFullEqual','woulda','DURATION','LinearGradientImage','sourceCompatibility','\x5cb0[bB](_?[01])+[lL]?(?=','cast','ropeCreate','and\x20while','toggleButton','3-org-acronym','Asynchronous','Thin','DownLeftVector','crystal','shifta','Ψ','Scan','ColorReplace','timeline_running','zformat','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Previous\x20Conversations\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20New\x20Chat\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Delete\x20all\x20Chats\x20\x20\x20\x20\x20','removeItem','#choices','dimag','u_unsigned','[a-zA-Z]\x5cw*','‴','release','packhdr','PairCorrelationG','$IterationLimit','ParallelCombine','fix','removeChild','correct-answer','(a|an)\x20#Adjective?\x20#Noun\x20[#Infinitive]\x20(#Preposition|#Noun)','Participle','#HashTag','⫌','Strict','vectorDiff','SurvivalFunction','ConfidenceTransform','Hyperfactorial','parentheses','HistogramTransformInterpolation','network_destroy','EdgeAdd','c_int_fast16_t','CharacterEncodingsPath','#harvard','strip','synchronizeObjectsRemove','formal','Adj|Gerund','getFSMVariable','„','Some','missingSemicolonAfterCharacterReference','(?:begin|end)','IMLOG2','vertex_format_add_textcoord','old','pull1','contain','shared_lock','PaneBox','NFractionalD','ruble','LaplacianGaussianFilter','releaseAll','^[(dude|man|girl)]\x20#Pronoun','UPPER_F','SoftmaxLayer','drawIcon3D','attr','positive_ordered','be-copula','LocalSymbol','^[keep\x20it]\x20#Adjective','MultinormalDistribution','instance_activate_region','foptname','axes','text-purple-500','investment','camPrepareFovRange','getMass','#line','LongForm','GraphLayers','ResidueSum','SpatialTransformationLayer','tryif','OptionValueBoxOptions','⩖','greedy','vformatwx','c_silver','ViewMatrix','.byte\x20.cseg\x20.db\x20.def\x20.device\x20.dseg\x20.dw\x20.endmacro\x20.equ\x20.eseg\x20.exit\x20.include\x20.list\x20.listmac\x20.macro\x20.nolist\x20.org\x20.set','Quartics','LinkOptions','requiredVersion','DirichletTransform','#Determiner\x20[(shit|damn|hell)]','empty-cells','NormalGrouping','Ú','IRR','OrderBy','SubsetCases','matrixMultiply','__NAMESPACE__','h++','RotationTransform','Percent','TimeValue','Axis3DBoxOptions','path_get_closed','MeanShiftFilter','ACC','SystemsModelLinearity','terms','\x20cond\x20apply\x20if-not\x20if-let\x20if\x20not\x20not=\x20=|0\x20<|0\x20>|0\x20<=|0\x20>=|0\x20==|0\x20+|0\x20/|0\x20*|0\x20-|0\x20rem\x20quot\x20neg?\x20pos?\x20delay?\x20symbol?\x20keyword?\x20true?\x20false?\x20integer?\x20empty?\x20coll?\x20list?\x20set?\x20ifn?\x20fn?\x20associative?\x20sequential?\x20sorted?\x20counted?\x20reversible?\x20number?\x20decimal?\x20class?\x20distinct?\x20isa?\x20float?\x20rational?\x20reduced?\x20ratio?\x20odd?\x20even?\x20char?\x20seq?\x20vector?\x20string?\x20map?\x20nil?\x20contains?\x20zero?\x20instance?\x20not-every?\x20not-any?\x20libspec?\x20->\x20->>\x20..\x20.\x20inc\x20compare\x20do\x20dotimes\x20mapcat\x20take\x20remove\x20take-while\x20drop\x20letfn\x20drop-last\x20take-last\x20drop-while\x20while\x20intern\x20condp\x20case\x20reduced\x20cycle\x20split-at\x20split-with\x20repeat\x20replicate\x20iterate\x20range\x20merge\x20zipmap\x20declare\x20line-seq\x20sort\x20comparator\x20sort-by\x20dorun\x20doall\x20nthnext\x20nthrest\x20partition\x20eval\x20doseq\x20await\x20await-for\x20let\x20agent\x20atom\x20send\x20send-off\x20release-pending-sends\x20add-watch\x20mapv\x20filterv\x20remove-watch\x20agent-error\x20restart-agent\x20set-error-handler\x20error-handler\x20set-error-mode!\x20error-mode\x20shutdown-agents\x20quote\x20var\x20fn\x20loop\x20recur\x20throw\x20try\x20monitor-enter\x20monitor-exit\x20macroexpand\x20macroexpand-1\x20for\x20dosync\x20and\x20or\x20when\x20when-not\x20when-let\x20comp\x20juxt\x20partial\x20sequence\x20memoize\x20constantly\x20complement\x20identity\x20assert\x20peek\x20pop\x20doto\x20proxy\x20first\x20rest\x20cons\x20cast\x20coll\x20last\x20butlast\x20sigs\x20reify\x20second\x20ffirst\x20fnext\x20nfirst\x20nnext\x20meta\x20with-meta\x20ns\x20in-ns\x20create-ns\x20import\x20refer\x20keys\x20select-keys\x20vals\x20key\x20val\x20rseq\x20name\x20namespace\x20promise\x20into\x20transient\x20persistent!\x20conj!\x20assoc!\x20dissoc!\x20pop!\x20disj!\x20use\x20class\x20type\x20num\x20float\x20double\x20short\x20byte\x20boolean\x20bigint\x20biginteger\x20bigdec\x20print-method\x20print-dup\x20throw-if\x20printf\x20format\x20load\x20compile\x20get-in\x20update-in\x20pr\x20pr-on\x20newline\x20flush\x20read\x20slurp\x20read-line\x20subvec\x20with-open\x20memfn\x20time\x20re-find\x20re-groups\x20rand-int\x20rand\x20mod\x20locking\x20assert-valid-fdecl\x20alias\x20resolve\x20ref\x20deref\x20refset\x20swap!\x20reset!\x20set-validator!\x20compare-and-set!\x20alter-meta!\x20reset-meta!\x20commute\x20get-validator\x20alter\x20ref-set\x20ref-history-count\x20ref-min-history\x20ref-max-history\x20ensure\x20sync\x20io!\x20new\x20next\x20conj\x20set!\x20to-array\x20future\x20future-call\x20into-array\x20aset\x20gen-class\x20reduce\x20map\x20filter\x20find\x20empty\x20hash-map\x20hash-set\x20sorted-map\x20sorted-map-by\x20sorted-set\x20sorted-set-by\x20vec\x20vector\x20seq\x20flatten\x20reverse\x20assoc\x20dissoc\x20list\x20disj\x20get\x20union\x20difference\x20intersection\x20extend\x20extend-type\x20extend-protocol\x20int\x20nth\x20delay\x20count\x20concat\x20chunk\x20chunk-buffer\x20chunk-append\x20chunk-first\x20chunk-rest\x20max\x20min\x20dec\x20unchecked-inc-int\x20unchecked-inc\x20unchecked-dec-inc\x20unchecked-dec\x20unchecked-negate\x20unchecked-add-int\x20unchecked-add\x20unchecked-subtract-int\x20unchecked-subtract\x20chunk-next\x20chunk-cons\x20chunked-seq?\x20prn\x20vary-meta\x20lazy-seq\x20spread\x20list*\x20str\x20find-keyword\x20keyword\x20symbol\x20gensym\x20force\x20rationalize','arent','date_date_string','kbv_type_email','thing\x20room\x20person\x20man\x20woman\x20animal\x20container\x20supporter\x20backdrop\x20door\x20scenery\x20open\x20closed\x20locked\x20inside\x20gender\x20is\x20are\x20say\x20understand\x20kind\x20of\x20rule','openYoutubeVideo','message','vared','gallery','deleteStatus','rewriteengine','EnableConsolePrintPacket','respawnVehicle','FindClique','countFriendly','compatibleMagazines','room_next','mip_on','ev_gesture_pinch_start','AbortScheduledTask','TraceOriginal','eighth','#ProperNoun\x20#Noun','ugc_query_RankedByTextSearch','withUnsafeMutablePointer','printf','menu-toggle','MessageDialog','Provides(?:Expl)?(?:Package|Class|File)','flagTexture','NotebookSelection','^!!!(\x20(5|1\x5c.1|Strict|Frameset|Basic|Mobile|RDFa|XML\x5cb.*))?$','hashtable','[(do|does|did|will|have|had|has|got)]\x20(not|#Adverb)+?\x20#Verb','FrontEndObject','oldfpccall','ifnone','align-content','SnippetsVideo',':^@','string_hash_to_newline','dynamicSimulationDistance','Global','SportsTeam','prepositions','enableEndDialog','byte','ParentEdgeStyle','Multiselection','addhandler\x20alias\x20aggregate\x20ansi\x20as\x20async\x20assembly\x20auto\x20binary\x20by\x20byref\x20byval\x20call\x20case\x20catch\x20class\x20compare\x20const\x20continue\x20custom\x20declare\x20default\x20delegate\x20dim\x20distinct\x20do\x20each\x20equals\x20else\x20elseif\x20end\x20enum\x20erase\x20error\x20event\x20exit\x20explicit\x20finally\x20for\x20friend\x20from\x20function\x20get\x20global\x20goto\x20group\x20handles\x20if\x20implements\x20imports\x20in\x20inherits\x20interface\x20into\x20iterator\x20join\x20key\x20let\x20lib\x20loop\x20me\x20mid\x20module\x20mustinherit\x20mustoverride\x20mybase\x20myclass\x20namespace\x20narrowing\x20new\x20next\x20notinheritable\x20notoverridable\x20of\x20off\x20on\x20operator\x20option\x20optional\x20order\x20overloads\x20overridable\x20overrides\x20paramarray\x20partial\x20preserve\x20private\x20property\x20protected\x20public\x20raiseevent\x20readonly\x20redim\x20removehandler\x20resume\x20return\x20select\x20set\x20shadows\x20shared\x20skip\x20static\x20step\x20stop\x20structure\x20strict\x20sub\x20synclock\x20take\x20text\x20then\x20throw\x20to\x20try\x20unicode\x20until\x20using\x20when\x20where\x20while\x20widening\x20with\x20withevents\x20writeonly\x20yield','GridBoxBackground','LOCALAPPDATA','ZernikeR','[#]?[','2-tagYear-close','AstroAngularSeparation','Int64Cmp','EXPON.DIST','text_replace','trace\x20this','BitShiftRight','Polygon3DBox','part_particles_create_color','ados',')?(','RotationBoxOptions','fa_volumeid','imo','sprite_get_tpe','$changed_gclk','𝔈','face','exporting','getAt','Graphics','EnterTextPacket','setRain','intnx','Vertical','endScope','loadMagazine','DeviceWrite','Point','MOD','cave','$SharedVariables','u64','DiggleGrattonPointProcess','json_object','Needs','setWindDir','chr','i128','println','Values','postgres','VectorSizes','Sqrt','eMarks','UpdateDynamicObjectsSynchronous','steam_download_scores','^[does]\x20(he|she|it|#ProperNoun)','phy_rotation','erb','SetAutoClose','setCameraInterest','ы','expose','[\x5c[\x5c]]','HexahedronBox','iterator','ISNONTEXT','ropeAttachedTo','setLightBrightness','#Verb\x20(a|an)\x20[#Value]$','$FrontEndSession','internal','ChartLabels','suspend','toJSON','sprite_get_name','getOxygenRemaining','flex-shrink','sprite_flush_multi','getFriend','shownHUD','Generator','file!','isAutoHoverOn','DisplayWithRef','StartAsynchronousTask','search','endSMS','ContentObject','qcmpres','government','#Adjective\x20#Noun+\x20[#Infinitive]\x20#Copula','about','','#Holiday\x20(day|eve)','Large','gearIDCAmmoCount','LOGINV','speak','TogglerBoxOptions','~?`[^`]*?`','RegionDifference','FileFormat','btest','DivideSides','hcAllGroups','UninstallCaption','allocatable|10','subject','ImageFocusCombine','HannWindow','$BatchInput','BEGIN','layer_tile_get_sprite','HatchFilling','LayeredGraphPlot','assignedGunner','Auxiliary\x20Participle','ev_user1','FollowRedirects','vk_divide','addMissionEventHandler','\x5cd(_|\x5cd)*','FindArgMax','TimeConstrained','ReturnReceiptFunction','vformatdx','appendChild','AppendCheck','display_landscape','const_cast|10','EulerPhi','AudioInstanceQ','CachedValue','Wedge','missionProfileNamespace','toggle','people-who',':-$','silent','her-favourite','regr_r2','NetInsert','overflow','When','STEP','sprite_get_speed','stateNumericHex','InverseRadon','LuccioSamiComponents','kbv_returnkey_yahoo','Real','xs:QName','hasWeapon','object-position','NotebookObject','buldozer_EnableRoadDiag','MangoldtLambda','beta_binomial','isEqual','Parameter','DiscreteUniformDistribution','\x5cb|','bessel_j1','getGroupIconParams','html','InexactError','BlockchainGet','FontForm','AllowedFrequencyRange','InsertionFunction','waitForOrKill','AppendIterator','PERCENTRANK.EXC','SliderBox','text-underline-position','forced-colors','ReadLine','steam_get_stat_int','ColorDistance','Sleep','$ferror','iso-slash','ⅇ','allowing','grep','application/json','AudioChannelMix','fixed32','^#PresentTense\x20#Gerund$','error_occurred','PlotPoints','tpl_email_fuzzy','$falling_gclk','CloudObjects','one_hot_vector','ascii','instance_deactivate_layer','setTurretLimits','Dataport','whose','options','^(could|must|should|shall)\x20have\x20#PastTense$','gamepad_get_description','getUnitFreefallInfo','CauchyMatrix','reg','leaderboardRequestRowsGlobalAroundUser','PrecisionGoal','will\x20have\x20been','true¦abid,barbie,c3e2f1iron\x20maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi','gethostbyaddr','#Copula\x20[(#Noun|#PresentTense)]\x20#LastName','SystemModelMeasurements','draw_set_color_write_enable','⩰','You\x20got\x20','FeatureSetByAssociation','Α','GeoGridUnitDistance','servername','Dashing','fixed\x20inset-0\x20bg-gray-600\x20bg-opacity-50\x20overflow-y-auto\x20h-full\x20w-full\x20flex\x20justify-center\x20items-center\x20z-50','.bundle.js','≄','ValueDimensions','Adjective','StarGraph','SparseArrayQ','execution','highlighted','ChromaticityPlot',')\x5c.','left-2','inv_cloglog','//|\x5c{|\x5c}|endif|gosub|variant|wend|^\x5c$\x20','parentNode','HEXDIG','alog','SaveConnection','physics_particle_set_damping','tuxedos','MandelbrotSetIterationCount','NotReverseElement','BorelTannerDistribution','DISC','Parser3','WordFrequency','[way]\x20#Comparative','Tactic','GeoGraphPlot','qr_thin_R','BioSequenceReverseComplement','priority_queue','addPeriods','show_error','sqf','@@?','ProcessEnvironment','ascending','[sun]\x20the\x20#Ordinal','such-skill','ExpressionTree','\x5c[(\x5c|\x5c|)?\x5c]|\x5c(\x5c)','1000','ev_joystick1_button1','´','-(?!infinity)','https://en.wikipedia.org/wiki/','|possessives|adverbs|nouns|verbs','DefaultFaceGridsStyle','vk_numpad1','MaxRecursion','UpArrow','__CLASS__','missionDifficulty','new\x20throw\x20return\x20else','Lexicographic','DateTime','DiacriticalPositioning','exn|5','text-emphasis-style','helper','clearMagazinePool','Graphics3DBoxOptions','TopHatTransform','org-of-place','before','phy_particle_data_flag_category','HARMEAN','fogParams','layer_background_destroy','simpleTasks','ġ','using','hotels','pixelGridBase','mapGridPosition','vectorDistance','≃','Func','^do\x20not\x20[#Infinitive]','excludeBegin','Uninstall','mouse_?x','draw_line_colour','$PrintLiteral','GraphPropertyDistribution','#checklist','SimilarityRules','ieee_set_underflow_mode','even\x20if','antagonize','SupernovaData','action','$AudioInputDevices','Commonest','FindSubgraphIsomorphism','CompoundPoissonProcess','FDIST','a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]','ø','(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?','tranif0','ColorFunctionBinning','RemoteControl','/\x5c*','rec','ParametricPlot','CellObject','no_http','ctrlSetTextSecondary','AnyStruct','title.function.invoke','sprite_width','[home]\x20to','straits','GETPIVOTDATA','Animator','Dispatch','rotorsRpmRTD','getDebriefingText','⩰̸','var_samp','#Gerund\x20#Adjective?\x20for\x20[#Infinitive]','Unfocus','⨂','first-of-type','Drop','harden','EvalError','SystemOpen','PathGraph','path_action_stop','⋢','unknown\x20level','ImageRotate','Standardize','great','EdgeColor','ImageSizeRaw','boundingCenter','enableOnly','NINE','color_get_value','LUVColor','(#Noun\x20&&\x20#Hyphenated)\x20(#Adjective\x20&&\x20#Hyphenated)','emoji','c_yellow','DSTDEV','neb','#understanding-slider','splitTerms','gpu_set_tex_filter','Hypergeometric0F1Regularized','𝒪','procedure','CatenateLayer','Variant','dak','InputNamePacket','mdivide_right_spd','had-he','inf-and-inf','NEW','sleep','.\x20#Preposition\x20#Infinitive','PolynomialGCD','toLowerCase','HTTP\x20error!\x20status:\x20','TypeSpecifier','controlNull','dlog','detach','StringToStream','printProjection','Root','CopyFunction','VectorDisplacementPlot','argument6','FileSeek','fourier','PlotLabel','gesture_get_pinch_distance','true\x20false\x20null\x20_','GraphAssortativity','IntegerQ','𝓊','SHEET','ImageFilter','(we|us)\x20[all]','flat','at-some-inf','Play','march-to','argument9','winphone_tile_front_image_small','encoded_size','date_get_minute','ctrlPosition','Flix','increment','AskedValue','Dialog','VertexCoordinates','$ChannelBase','dance-music','phy_particle_flag_zombie','foreach','form_help','SmoothHistogram3D','(had|have|has)\x20been\x20(#PastTense|#Participle)','barracks','scroll-margin-inline-start','__last_index__','part_type_exists','a-zA-Z_\x5c-!.?+*=<>&#\x27','out-of-range','[wit]\x20(me|it)','the-actor-said','LocatorCentering','disableUserInput','^[do]\x20(you|we|they)','QRDecomposition','HTTP/([32]|1\x5c.[01])','JMP','(\x5cb0[0-7_]+)|(\x5cb0x[0-9a-fA-F_]+)|(\x5cb[1-9][0-9_]*(\x5c.[0-9_]+)?)|[0_]\x5cb','⋹','SpatialJ','AbsoluteFileName','AntihermitianMatrixQ','mailto','ctrlSetURLOverlayMode','quit','Leaf',':^O','moveObjectToEnd','steam_file_read','half-ordinal','false\x20true\x20PI\x20undef','Reinstall','(?![A-Za-z])(?![@$%])','xs:gMonth','animation-direction','SetCompress','f95','device_ios_iphone6plus','column-rule-width','CanonicalWarpingCorrespondence','RectangularRepeatingElement','#PresentTense\x20[(hard|quick|bright|slow|fast|backwards|forwards)]','#explainMiniBtn','FindGraphCommunities','objc','CoordinateBoundingBox','diag_resetshapes','⨖','Comparative','#Determiner\x20#Demonym\x20[#PresentTense]','Fiber','zsh','Regularization','Pronoun','setxcomp','RemoveOutputStreamMethod','setVariable','dune','layer_background_get_stretch','wand','C/AL','ê','true\x20false\x20NONE\x20SOME\x20LESS\x20EQUAL\x20GREATER\x20nil','ulong','ClipFill','LinearFilter','layer_shader','ToHeldExpression','NUM','HeunDPrime','([!#$%&*+.\x5c/<=>?@\x5c\x5c^~-]|(?!([(),;\x5c[\x5c]`|{}]|[_:\x22\x27]))(\x5cp{S}|\x5cp{P}))','♭','lower','CHOOSE','#Cardinal\x20[second]','ContentSelectable','Histogram3D','TensorSymmetry','FILE_ATTRIBUTE_NORMAL','lnbAddArray','nullif','has_evar','place_snapped','asymmetric','publicVariableClient','and\x20break\x20do\x20else\x20elseif\x20end\x20for\x20goto\x20if\x20in\x20local\x20not\x20or\x20repeat\x20return\x20then\x20until\x20while','WeatherData','cutText','assignTeam','⊺',')*>)?(\x5c[\x5c])?','unset','$ParentProcessID','𝔪','StepRangeLen','lit','window_get_x','window_get_y','uniformMagazines','AndersonDarlingTest','school','object_exists','LeftTriangleEqual','event_action','Adjugate','host-context','menuText','are\x20not','next','isExclamation','Hermitian','irregulars','#Value\x20[k]','ã','configFile','XNPV','ev_global_left_button','getln','irpf90','\x5cn[\x5c-\x5c.]{4,}$','unTag','achievement_get_info','ArcCoth','Pochhammer','atmosphere','audio_group_is_loaded','AlgebraicNumberPolynomial','uint8','Removed','ShowClosedCellArea','⧃','coreference','PartialD','CompoundRenewalProcess','getObjectProxy','parse','references','diag_post_multiply','dsname','UPPER_Z','MoleculeProperty','btauto','Ţ','steam_ugc_unsubscribe_item','wchar_t','HotellingTSquareDistribution','CarlsonRD','physics_joint_distance_create','FunctionCompileExport','bg-red-100\x20border\x20border-red-400\x20text-red-700\x20px-4\x20py-3\x20rounded\x20relative','\x5cb(data|(new)?type)\x5cb','DebugTag','DefaultBaseStyle','toASCII','put','[A-Za-z_%][0-9A-Za-z_%]*','fresnel','FileReadUTF16LE','IMSUB','TildeTilde','isDoc','⩜','whose\x20[#PresentTense]\x20#Copula','tranif1','frewind','mod','^[-\x5c*]{3,}','NonPositive','IMARGUMENT','setObjectTextureGlobal','AbsoluteDashing','rotate-180','Ö','InterruptException','TakeSmallestBy','BlockchainData','bgt','enableMimics','ToRadicals','╝','isPIN','wherever','PHI','SquareSupersetEqual','DynamicReference','\x1b[3m','pendingLevel','WordCharacter','COMMONFILES64','VectorPoints','ImageIdentify','(march|may)\x20the?\x20#Value','ev_draw_pre','multi_student_t','↬','GM_runtime_version','FindMinimum','createVehicle','doTarget','T.DIST','os_powersave_enable','▴','setMarkerPolylineLocal','TableRow','|(?:','res','FISHER','InterruptSettings','RenderingOptions','Uncountable','team','LinebreakSemicolonWeighting','Task','⫇','(\x5cn{2}|\x27)','http','\x5c-(?!--(?:[^-]|$))(?:-*)|','weak1','dmin1','ActionMenuBoxOptions','Unset','createMarkerLocal','cmpfunc_less','STRLEN','MultilaunchWarning','MinFilter','atg','Today','NORM.S.DIST','array_append','sethandler','timeMultiplier','CellBoundingBox','border-image-width','BernoulliB','audio_emitter_get_x','non_intrinsic','categorical','kbv_autocapitalize_words','wildcard','𝔍','layer_background_get_blend','PalettesMenuSettings','ps_shape_diamond','dynamic_cast|10','displayHeight','notnull','Multipoint','DiscretizeGraphics','removeBackpack','No\x20author\x20specified','[%Noun|Verb%]\x20or\x20#Infinitive','tagSafe','sendDigitalPorts','OCT2DEC','TransformedDistribution','(\x5cn)$','strait','ERR:\x20contains\x20`self`\x20is\x20not\x20supported\x20at\x20the\x20top-level\x20of\x20a\x20language.\x20\x20See\x20documentation.','color_get_hue','MinRecursion','ExternalTypeSignature','note','GdbVersion','allShadow','language:','GridCreationSettings','fmod','diag_activeScripts','Domain','Ů','font-variant-numeric','movies','mb-2','plc','regexIndex','ev_global_middle_press','FourierDST','date-value','RamanujanTauZ','GraphHighlightStyle','fourteen',' ','RSET','attributes','@dynamic','is-no-verb','object_get_mask','$ln','diag_lightNewLoad','ok-','gpu_get_tex_mip_bias','','NumberCompose','proc','OperatingSystem','draw_surface','chgrp','a-rep-to','RegionNearestFunction','HeatRadiationValue','request-copies','AsymptoticEquivalent','GeoEntities','commandingMenu','camPreload','audio_set_listener_mask','getCustomAimCoef','zip_unzip','GAMMA.DIST','slashes','TriangularDistribution','#Determiner\x20#Noun+\x20[who]\x20#Verb','bureau','MoleculeMaximumCommonSubstructure','radioChannelSetLabel','C_BLOCK_COMMENT_MODE','^\x5c.\x5cw.*$','suppressFor','VertexColors','dae_tol','SolveDelayed','dynamicCallable','cholesky_factor_corr|10','draw_text_ext_colour','InsertionSort','ParabolicCylinderD','getYChange','attrPush','varname','getPosWorldVisual','Skip','ifndef','isImperative','ViewRange','border-width','$ProcessID','draw_text_transformed','SetGeometry','⫫','disableConversation','$isunknown','Ȁaglq\x09\x15\x18\x1bɭ\x0f\x00\x00\x12p;䀦os;䀧t;䀾t;䀼uot;䀢','PhysicalSystemData','OrdinalScale','!important','lastused','format_number','eight','Combined','(?:(?:(?:(?:','Î','voidptr','os_ps3','Ϝ','TemplateSlotSequence','(got|was|were)','(0|[1-9][\x5cd_]*|\x5cd[\x5cd_]*|[\x5cd_]+?\x5cd)','Instance','#clear-btn','DefaultValues','Function','steam_file_write','object_get_sprite','room_set_camera','Solve','StringRotateLeft',')|(?:','tvCount','ComplexArrayPlot','audio_get_listener_info','case','Interval','draw_highscore','[may]\x20be','≐̸','Surd','audio_destroy_sync_group','Dependencies','Distinct','ias','⪐','⌒','IntPtrCmpU','unitReady','ConformImages','quad_to','draw_sprite_part','val','VertexInComponent','Ķ','⫯','Appearance','staticinitialization','Success','enableAIFeature','ContinuousAction','ChemicalReaction','CachePersistence','Counts','ldexp','__extends','un.license','AVERAGEA','#close-btn','NumericArrayQ','$fstrobe','PlotLabels','ial','LibraryLoad','enableRadio','gesture_get_double_tap_time','VerifyConvergence','commandGetOut','transchoice','draw_texture_flush','SubString','Gudermannian','fifty','always_comb','cloneNode','vk_enter','VertexTransitiveGraphQ','PolynomialForm','ARABIC_CHARSET','mt-2','borderRight','audio_emitter_velocity','getButton','BeniniDistribution','text-emphasis-color','','attrib','\x22\x22\x22(?=[^\x22])','isCompiled','objectivec','FindKClique','⋈','RiccatiSolve','(did|does|do)','AirportData','current_day','vertex_ubyte4','see','backticks','LinkError','__bind','stat','⪦','NotebookDefault','components','randomize','EntityStore','ByteArrayFormat','modelToWorld','flex-direction','c_form_feed','-(?=[\x20]|$)','pr_trianglefan','clearMagazineCargo','Fold','taskChildren','true¦elle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im','fairness','physics_particle_group_get_x','outline-offset','Circle','DigitCount','mak','device_ios_ipad_retina','physics_fixture_bind_ext','zcompile','stop','shape','KroneckerModelDecomposition','xs:dayTimeDuration','achievement_type_achievement_challenge','Activity','removeCuratorEditableObjects','isRemoteExecuted','$dumpall','processing-instruction','♯','MultiLetterStyle','IsEmpty','vk_shift','__opts__','ignore\x20nulls','$DefaultSystemCredentialStore','ov_players','ble','Identity','AstroPosition','BlackmanHarrisWindow','gpu_get_tex_mip_filter','slotted','\x20class=\x22','BesselY','registeredTasks','^[\x20\x09]*\x5c*.*$','lineHeight','TravelDirectionsData','llama3-70b-8192','$-:','window_get_cursor','close','ifnan','LocalCache','hypot','CellAutoOverwrite','Delete','Write','ppEffectAdjust','gesture_rotate_time','ComputeUncertainty','LWSP','els','EdgeShapeFunction','ArithmeticGeometricMean','DAYS','\x5cs*=>','Mode','get_real','device_ios_ipad','skipToken','DiscreteMarkovProcess','basin','define_method','symmetry','TypeError','ListSurfacePlot3D','borough','played','throughout','NumericArrayType','ExportPacket','phy_particle_flag_water','List','acosh','⊍','WeierstrassE2','suppose-i','scroll-padding-block','do-it-better','allActiveTitleEffects','goto/16','revert','Sized','audio_get_listener_count','(is|was|were)\x20[(under|over)\x20#PastTense]','Test\x20Anything\x20Protocol','preloadCamera','CIRCLE','--(?!','LogPlot','$SystemID','Grad','terrace','[a-zA-Z_\x5c-+\x5c*\x5c/<=>&#][a-zA-Z0-9_\x5c-+*\x5c/<=>&#!]*','HTMLSave','NoRewindIterator','lerp','ctrlShow','dfloat','allow3DMode','$error','users','î','CLEAR','InitPluginsDir','ones_array','can','\x5c[/noprocess|','achievement_get_pic','import\x20as\x20exposing','[(who|what|where|why|how|when)]\x20#Noun\x20#Copula\x20#Adverb?\x20(#Verb|#Adjective)','FromJSON','addText','url_open','financial','Void','rol','\x5cs*\x5c)','#NumericValue\x20#Fraction','trillion','UNDERSTANDING','BlomqvistBetaTest','(#Adverb|#Negative|#Prefix)','Tuesday','Erase','CVS','radtodeg','erase','PredictorFunction','part_type_colour2','NEXT','#\x5cs','NotebookTemplate','PlaybackSettings','ButtonStyle','openMap','quartet','FontReencoding','ŷ','gesture_pinch_angle_towards','frechet','\x5cs*([\x5cw_-]+:)?','scriptDone','([A-Za-z_]|::)(\x5cw|::)*','distance_to_object','whenever','⃜','LPRINT','Noun','([eE][+-]?','NetArrayLayer','collation','^#PastTense\x20#Gerund$','winphone_tile_title','Through','ev_end_of_path','touchend','infile','bm_add','^1\x5c.\x5c.(\x5cd+)$','GeoRange','findEmptyPosition','index','CalendarData','window_set_position','dyn','BiweightMidvariance','SingleLetterStyle','addTeamMember','getAnimSpeedCoef','Е','xsd','╒','ChiDistribution','samp','s_always','DistanceFunction','INTERNET_CACHE','–','◼','had-time','animation-timing-function','BackFaceSpecularExponent','$TestFileName','CalloutStyle','Month','not\x20','min-height','hundred\x20million','trim','voice-rate','≁','device_get_tilt_x','font-src','Defined','draw_text_transformed_colour','|[\x27]).)+\x5c\x27|\x5c\x27(?=','ImagePartition','sliderSetPosition','NetSharedArray','ughh','CloudSave','getMagazineCargo','\x22\x5cw[\x5cw\x20:\x5c/.-]*\x22:(?=[\x20\x09]|$)','inPolygon','Defer','all','Val','joinSilent','json_encode','shape-outside','cus','path_get_precision','looked-amazing','transition-timing-function','NotificationFunction','⌢','OpenFunctionInspectorPacket','NetFoldOperator','vinformatx','TimeConstraint','vinformatd','All','institut','\x5c\x5c[abfnrtv]\x5c|\x5c\x5cx[0-9a-fA-F]*\x5c\x5c\x5c|%[-+#\x20*.0-9]*[dioxXucsfeEgGp]','NetModel','tShift','#ProperNoun\x20#Organization','clickable_change','InterfaceSwitched','neighborhood','opposite','InverseJacobiSN','echo','describe','ris','[A-Za-z0-9_$]+','draw_vertex_texture','setPINUsed','controller|0','fb_login_forcing_webview','InverseWeierstrassP','date_datetime_string','cholesky_factor_cov|10','nostackframe','viewDistance','ImageLegends','arc','╘','steam_file_exists','setTrafficGap','outline-style','advance','tuple','loadIdentity','toPresentTense','AutoMultiplicationSymbol','digitalRead','isgraph','assignCurator','Operate','typeahead','⩛','CellDingbat','$1is','camTarget','(they|their|theirs)','qr_R','AllowAdultContent','|','_cache','SectionGetSize','#quiz-form','volcanoes','RemoteConnectionObject','StrCmp','isVehicleSensorEnabled','1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther','VALUE','hasGroup','𝕫','WindingPolygon','dispatch_async','𝕀','even-left','⥿','PointStatisticFunction','start-to-finish','AutomaticImageSize','GraphCenter','layer_background_xscale','AstroGridLinesStyle','TextTranslation','override','path_assign','ⅅ','$bitstoreal','FrameMargins','qmod','sprite_get_xoffset','SUMX2PY2','filterstep','setWeaponReloadingTime','algebra_solver_newton','\x5cs|\x5c{|;','FileNameTake','EntityUnregister','^percent','enableTraffic','(?:DeclareOption|ProcessOptions)','UAVControl','KnightTourGraph','SPC','FailureQ','preprocessFile','ev_gesture_flick','DiagonalMatrixQ','NegativeIntegers','phy_fixed_rotation','CellEvaluationDuplicate','HAML','End','⋖','ResourceSystemBase','pointer','^\x5cs*%%[A-Za-z0-9_$#@~.?]*:','triggerAttachedVehicle','No\x20publication\x20date\x20specified','force','display_get_gui_height','input_type','⊑','way-too-adj','≫̸','LessFullEqual','#helpModalContainer','come','PrivateFrontEndOptions','#Plural\x20[in]\x20#Determiner?\x20#Noun','camera_set_begin_script','&?:(','(get|got|have)\x20#Comparative\x20[#PresentTense]','⋵̸','sprite_get_yoffset','writeLine','removes-wrinkles','camp','uniform_simplex','break-after','FileNames','BenktanderGibratDistribution','set_exponent','is_method','foo-out','thead','is_numeric','arrayCopy','#Value\x20seconds','replace','scriptenginebuildversion','MixedRadixQuantity','getAnimAimPrecision','Shortest','stepr','os_android','---','grpNull','tilemap_get_cell_y_at_pixel','clip','dunno','lastIndex','NotPrecedesTilde','colour_get_saturation','ruby','ℤ','draw_background_ext','mag','DownArrow','enableSimulation','BITOR','mount','aliases','Relation','true¦0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;!\x20paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on','br_table','font-feature-settings','inline-size','м','spoiler','asset_version','Generating\x20possible\x20questions','upt','(will|have)','sprite_set_offset','PaddedForm','objNull','plus','⭈\x20Year:\x20','MoleculeGraph','addItemCargo','button','≉','Schema','RemoteRun','zipname','SequenceHold','EXEFILE','#PastTense\x20[that]','DeviceReadLatest','StringPosition','gusts','ime-mode','\x5cb_?[A-Z][\x5cw]*','\x22|\x5c|','allSimpleObjects','currentTask','SurvivalModelFit','conj','modified_bessel_second_kind','match|0','terminatorEnd','look-what','ClearPermissions','getCurrentCarrier','lookAhead','PanelBoxOptions','cmpg','SubsetMap','well-made','#Emoticon','ctrlSetText','isSentence','Markdown','(?::(?:6(?:[0-4]\x5cd{3}|5(?:[0-4]\x5cd{2}|5(?:[0-2]\x5cd|3[0-5])))|[1-5]?\x5cd{1,4}))?','parameter_string','quiz','setWaypointCompletionRadius','PerpendicularBisector','GraphicsGroupBoxOptions','⫅̸','inv_square','substring_regex','education','Int16','ident','ugc_query_RankedByVote','#PresentTense\x20and\x20#PresentTense','getRelPos','video','ImageCapture','StringList','(?![\x5cw\x5cd])(?![$])','diag_captureSlowFrame','sometimes-adverb','NotRightTriangleBar','SystemsModelDelay','Gerund','ridge','[a-z_]\x5cw*!?','layer_background_exists','BIN2HEX','FindGeoLocation','current_transform_group_for_type','break-before','CanonicalGraph','ų','CombinatorY','Possessive','date_get_minute_of_year','CombinatorB','ListPickerBoxBackground','(are|were)\x20[%Adj|Gerund%]\x20#Plural','end_doc','kbv_autocapitalize_characters','readonly','\x5c|\x5cw*$','dequote','UInt128','KatzCentrality','textFont','#Noun\x20[(who|whom)]','steam_get_achievement','on-stage','unsafe','border-inline-end-style','isActionDone','decodeURI','grid-auto-columns','wordWrap','$ftell','Matlab','#[0-9a-fA-F_]+|\x5c$[01_]+|[0-9_]+(?:\x5c.[0-9_](?:[eE][+-]?\x5cd+)?)?[kMGTPmunpf]?','CompileError','FemaleName','FindGeometricConjectures','formationDirection','__autoreleasing','draw_point_color','MROUND','$swriteh','canFire','ImageLabels','\x5cb(0[oO][0-7]+)','StabilityMarginsStyle','lbSetPictureRightColorDisabled','^[#Infinitive]\x20#Adjective?\x20#Singular\x20#Singular','Assumptions','IPSECKEY','getPersonUsedDLCs','chomp','\x5cb\x5cd+[kKmMgGdshdwy]?\x5cb','keyboard_get_numlock','version','island','Ğ','npm','⦶','ev_joystick2_down','physics_pause_enable','scroll-snap-stop','SinghMaddalaDistribution','FRE','ReliefPlot','IndexLinear','unicode-bidi','^will\x20be\x20#Gerund$','hotel','ŕ','flanders\x27','FOR|0','CircleDot','setRandomLip','TrackWindow','lmultiply','LINE','CounterClockwiseContourIntegral','tvAdd','linearConversion','audio_emitter_set_listener_mask','weaponsTurret','JordanModelDecomposition','AudioDelete','$DefaultRemoteBatchSubmissionEnvironment','reefs','ev_global_gesture_pinch_out','cksum','#Determiner\x20[%Adj|Noun%]\x20#Noun','GAMMA.INV','gp_face2','ExactNumberQ','Names','logout','⊰','1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belled¦4:ebuted,hined,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ing:ung,ang¦ep:pt¦ink:ank,unk¦ig:ug¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought¦1ive:rove¦1el:elt¦1id:bade¦1et:got¦1y:aid¦1it:sat¦3e:lid¦3d:pent','titleText','duration_to_str','RequiredPhysicalQuantities','Times','string_view','@media\x20','NotebookPath','highscore_name','remove3DENConnection','pointer-events','Pwd','hxx','view_wview','RandomTime','analytics_event','ImagePeriodogram','nullptr','voice-volume','PRICEMAT','corr','ctrlForegroundColor','perspective-origin','AcousticImpedanceValue','menuData','meaning-alluring','query_agent_stream_tiny','craftcms','path_reverse','Above','#Conjunction\x20[u]','getContainerMaxLoad','ImageCaptureFunction','ExportForm','file_find_close','finishMissionInit','#FirstName\x20#Acronym\x20#Noun','Ŀ','glob','KeyUnion','$DefaultFrontEnd','shoreline','adj-adj-is','ctrlSetAutoScrollRewind','Chebyshev1FilterModel','skip','FresnelS','datatyp','march-5th','#progress','triggerAttachVehicle','parser3','|.)','1-freeze-lexicon','camPrepareDir','1.2em','physics_particle_count','cannot','⦩','SecondOrderConeOptimization','EASTEUROPE_CHARSET','ScalePadding','#error-notice','succeeds','Plot3D','assignAsCargo','also','border-inline-end','QueueingProcess','minn','bessel_second_kind','Email','ones_row_vector','MeshCellMarker','c_float','redraw','instance_destroy','PTH','‡','HTTPRequestData','FourierDSTMatrix','degrees','П','poppar','useAIOperMapObstructionTest','CloudObjectInformationData','font_add_get_enable_aa','SocketListen','VALUE_LENGTH','mask-border-repeat','FindPeaks','(hard|fast|late|early|high|right|deep|close|direct)','MardiaKurtosisTest','number','analyze','DisplayPacket','GlobIterator','mercury','Generalize','realpath','buffer_seek','ReturnCreatesNewCell','is-well','HEX2OCT','CloudFunction','STEP\x20Part\x2021','iap_product_details','AnglePath3D','plural','datejul','direction','poisson_log','Nor','show','Deploy','arccos','─','CapitalDifferentialD','AllowedDimensions','DayCount','#Noun\x20[that]\x20#Copula','BoxDimensions','tactic','maxima','SetFileDate','М','toDecimal','CurvatureFlowFilter','popover-container','tagRank','border-inline-start-width','RecursiveIterator','BackgroundTasksSettings','ptlined','promt','^[\x20\x5ct]*[a-z_\x5c.\x5c$][a-z0-9_\x5c.\x5c$]+:','in-age','⨐','probbnml','[#PresentTense]\x20(are|were)\x20#Adjective','jobs','this-verbs','lifeState','ifix','true_type','$5.30','rmdir','ds_priority_find_priority','Brown','𝔵','^had\x20been\x20#Gerund$','network_send_udp_raw','girls','FindIndependentEdgeSet','XMLElement','MouseController','LANGUAGE_HANDLER\x20TRIGGER\x20EVENT_TRIGGER\x20FDW_HANDLER\x20INDEX_AM_HANDLER\x20TSM_HANDLER','steam_is_screenshot_requested','⦔','(u8?|U|L)?\x27(\x5c\x5c(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\x5cS)|.)','⥔','FORMULATEXT','western','layer_get_id','\x5cb_[a-z0-9\x5c-]+','lb_sort_descending','\x1b[30m','fogForecast','functions','100vw','hostMission','RANDOMIZE','ValidationSet','#FirstName\x20[(de|di|du|van|von)]\x20#Person','DatabaseDisconnect','citationCount','Constant','footer','generated','FromRomanNumeral','dynamicSimulationEnabled','sll','utilities','Axiom','÷','setMarkerShadow','orIfNull','menuSetAction','FrontEndEventActions','ds_grid_get_sum','SEARCH','scroll-margin-block','finalization','Dart','getNumber','ReplaceHeldPart','HurwitzLerchPhi','visiblePositionASL','layer_tilemap_get_id','true¦0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en','pwd','⪬︀','IndexCreationOptions','ty_string','are','LineIndentMaxFraction','DifferenceOrder','objcMembers','sqlstate','≂','path_shift','Optional','tvSetSelectColor','⋻','transient','GenerateSecuredAuthenticationKey','lbound','eelim','addTags','JPOS','browser_ie','EthernetServer','UnitTriangle','⇵','DrawHighlighted','[(#Modal|did)+]\x20(#Adverb|not)+?\x20#Verb','kbAddDatabase','Parenthesize','doSuppressiveFire','player','⦾','ParallelMap','camConstuctionSetParams','SubsuperscriptBox','#Noun\x20and\x20#Determiner?\x20#Noun','prof','DimensionReducerFunction','/\x5c*\x5c*!','BSplineCurveBox','after','$LaunchDirectory','postfix','python','teamSwitch','$fseek','|[-])|\x5c.{2,}[a-zA-Z0-9%/&]|\x5c.(?!','NUMBER_MODE','VideoMapList','fixable','getCorpse','Escape','jack-layton','CSGRegion','disableSerialization','oxen','⊈','INPUT','(want|wanted|wants)','Token','STARTMENU','__addSublanguage','⏜','⩋','Stub','⋊','BernoulliGraphDistribution','file_text_read_real','GetLinebreakInformationPacket','addWeaponGlobal','amax0','text-align','alias','OCTET','tbsp','≾','(that|which|whichever|who|whoever|whom|whose|whomever)','EllipticThetaPrime','NetBidirectionalOperator','ds_map_find_last','setFace','zephir','LibraryFunctionInformation','addItemToBackpack','-\x5cw\x5cb','Underoverscript','(\x5c.','lbSetTooltip','theater','WeakStationarity','asset_path','infix','fscanf','rel','instance_activate_all','createGuardedPoint','kbTell','includes','FourierDCT','draw_set_circle_precision','ImageWaveformPlot','ArchiveRecord\x20AreaLightSource\x20Atmosphere\x20Attribute\x20AttributeBegin\x20AttributeEnd\x20Basis\x20Begin\x20Blobby\x20Bound\x20Clipping\x20ClippingPlane\x20Color\x20ColorSamples\x20ConcatTransform\x20Cone\x20CoordinateSystem\x20CoordSysTransform\x20CropWindow\x20Curves\x20Cylinder\x20DepthOfField\x20Detail\x20DetailRange\x20Disk\x20Displacement\x20Display\x20End\x20ErrorHandler\x20Exposure\x20Exterior\x20Format\x20FrameAspectRatio\x20FrameBegin\x20FrameEnd\x20GeneralPolygon\x20GeometricApproximation\x20Geometry\x20Hider\x20Hyperboloid\x20Identity\x20Illuminate\x20Imager\x20Interior\x20LightSource\x20MakeCubeFaceEnvironment\x20MakeLatLongEnvironment\x20MakeShadow\x20MakeTexture\x20Matte\x20MotionBegin\x20MotionEnd\x20NuPatch\x20ObjectBegin\x20ObjectEnd\x20ObjectInstance\x20Opacity\x20Option\x20Orientation\x20Paraboloid\x20Patch\x20PatchMesh\x20Perspective\x20PixelFilter\x20PixelSamples\x20PixelVariance\x20Points\x20PointsGeneralPolygons\x20PointsPolygons\x20Polygon\x20Procedural\x20Projection\x20Quantize\x20ReadArchive\x20RelativeDetail\x20ReverseOrientation\x20Rotate\x20Scale\x20ScreenWindow\x20ShadingInterpolation\x20ShadingRate\x20Shutter\x20Sides\x20Skew\x20SolidBegin\x20SolidEnd\x20Sphere\x20SubdivisionMesh\x20Surface\x20TextureCoordinates\x20Torus\x20Transform\x20TransformBegin\x20TransformEnd\x20TransformPoints\x20Translate\x20TrimCurve\x20WorldBegin\x20WorldEnd','SquareMatrixQ','syms','watchOSApplicationExtension','⤟','NetJoin','BinomialDistribution','NeedlemanWunschSimilarity','dread','Person|Adj','like','^#Modal\x20you\x20[#Infinitive]','SingularValueDecomposition','TemplateApply','path_action_reverse','newReader','Golo','savepoint','cdecl','lock_guard','cull_noculling','FindRegionTransform','gp_stickl','ź','printMatrix','BernoulliProcess','setDNS','GradientFittedMesh','interface','sprite_prefetch','gp_axislv','flow','Split','cmpfunc_notequal','ProductLog','ImageType',':-O','syslput','satisfies','assignAsCargoIndex','35-signs','was-still-walking','countryNameRead','pmf','ctrlSetFontH4','gamepad_get_button_threshold','Tube','FontOpacity','date_compare_date','LowerTriangularize','ctrlSetModelScale','mdy','terminate','TimeSeriesModel','BETA.INV','TrackedSymbols','nfs','$fatal','AbstractDict','part_type_speed','mineDetectedBy','⋑','#Multiple','SQRT','clientOwner','setoid_symmetry','SpanFromLeft','FromRawPointer','pulsestyle_ondetect','P2D\x20P3D\x20HALF_PI\x20PI\x20QUARTER_PI\x20TAU\x20TWO_PI\x20null\x20true\x20false','nth_value','isDirectory','ConnectSystemModelComponents','⊞','given','SIN','revgoals','InverseJacobiCD','getTurretOpticsMode','HWNDPARENT','VideoTransparency','Ceylon','#message-container','LocatorPaneBoxOptions','lisp','keyboard_virtual_status','allCutLayers','‐','MathematicaNotation','setUnitFreefallHeight','PasteButton','Merge','INFO','setFaceanimation','BackFaceTexture','ev_mouse_enter','vectorUp','scrollbar-width','Raster3D','nuclei','\x5c.(\x5c.|','ϕ','CellDingbatMargin','instance_copy','url','argument12','∄','kbReact','being-walked','word','AspectRatio','\x5c$(f[asn]|t|vp[rtd]|children)','','committee',')\x5c.)+','SlideView','base64_decode','(same|some|the|that|a)\x20kind\x20of\x20[#PresentTense]','Directive','facebook_request_publish_permissions','Œ','Interpreter','translate_?y','adjustl','@hasHyphen\x20.','⇌','Ŕ','ShellRegion','PageFooterLines','corporation','set|0','(-:','copyFromClipboard','BLOCK_COMMENT','$LinkSupported','deassign','NondimensionalizationTransform','os_xboxone','textonly','isstring','trait','AiryBi','createGraphics','.PHONY','InverseImagePyramid','dacos','if\x20else\x20elseif\x20end\x20error','dateToNumber','Offer\x20real\x20world\x20examples\x20of\x20this\x20text:\x20','skeleton-loader','property','Put','UpperTriangularMatrix','PacletInstallSubmit','\x5c^\x5c{','LinkWrite','set3DENLinesVisible','hasContraction','\x5c.\x5c.\x5c.$','SystemProcesses','𝔣','superb','tee_local','PrecedesTilde','𝕘','addBinocularItem','sensitive','ref','arm','LicenseText','AffineHalfSpace','\x5cb0[oO](([0-7]_*)+)\x5cb','⅘','actionKeys','⩅','н','maxNesting','setcap','(?=\x5c\x5cend\x5c{','okay-by-me','readJoystickX','length','DOMContentLoaded','tsx','ParentCell','⫭','nge','the-poor','[so]\x20#Adjective','✓','buffer_u32','questions','ŚśŜŝŞşŠšƧƨȘșȿЅѕ','SignificanceLevel','curatorEditingAreaType','(she|her|hers)','hill','sfc','vk_f1','CDF',' ','fuzz','^=begin','$Output','\x5cb\x5cd+(\x5c.\x5cd+)?(ms|s|h|m)?','℅','VideoIntervals','let\x20in\x20if\x20then\x20else\x20case\x20of\x20where\x20do\x20module\x20import\x20hiding\x20qualified\x20type\x20data\x20newtype\x20deriving\x20class\x20instance\x20as\x20default\x20infix\x20infixl\x20infixr\x20foreign\x20export\x20ccall\x20stdcall\x20cplusplus\x20jvm\x20dotnet\x20safe\x20unsafe\x20family\x20forall\x20mdo\x20proc\x20rec','RSQ','skew_normal','asset_shader','Proposition','VertexInDegree','NyquistGridLines','$SummaryBoxDataSizeLimit','ScheduledTaskInformation','nearestLocationWithDubbing','[may]\x20#Adverb?\x20#Infinitive','ClassifierFunction','FactorList','PlusMinus','deleteAt','Byte\x20Short\x20Char\x20Int\x20Long\x20Boolean\x20Float\x20Double\x20Void\x20Unit\x20Nothing','gpu_set_blendmode_ext_sepalpha','⪝','Divisors','GetFileName','$ExternalStorageBase','type\x20yield\x20lazy\x20override\x20def\x20with\x20val\x20var\x20sealed\x20abstract\x20private\x20trait\x20object\x20if\x20then\x20forSome\x20for\x20while\x20do\x20throw\x20finally\x20protected\x20extends\x20import\x20final\x20return\x20else\x20break\x20new\x20catch\x20super\x20class\x20case\x20package\x20default\x20try\x20this\x20match\x20continue\x20throws\x20implicit\x20export\x20enum\x20given\x20transparent','SectionIn','bnot','Here','menuShortcutText','Decimal','LibraryFunctionLoad','JJR','network_set_timeout','GraphicsBox','but','Projection',':','countEnemy','SqrtBoxOptions','SequenceLastLayer','result','FunctionInjective','ISODD','SubsetQ','\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20','SoundVolume','FILE_ATTRIBUTE_OFFLINE','MellinConvolve','\x5cs*=\x5cs*class\x5cs*\x5c(','PublisherID','DerivativeFilter','whichever','DensityPlot3D','DisplayAllSteps','view_set_xport','like_regex','NOT','window_get_width','assertionFailure','here','DawsonF','$OutputStreamMethods','wstring_view','NetExtract','equals','endContour','rivers','ignore','sysrput','TensorReduce','pract','displayNull','InverseSeries','hmm_hidden_state_prob','AbstractMatrix','which-boost-it','GetDLLVersionLocal','SegmentationFault','elementFromPoint','cachedVariants','&limit=15&fields=title,year,authors,url,abstract,citationCount','HaradaNortonGroupHN','padding','qacos','starts-thinking','head','Π','groupIconSelectable','#Imperative','lat','getObjectTextures','500px','BubbleSizes','list','addEventListener','WhenEvent','SymmetricDifference','Holiday','insertmacro','whence','ChannelHistoryLength','InverseJacobiND','multiset','SampledSoundFunction','traffic-flow\x20traffic-generator\x20firewall\x20scheduler\x20aaa\x20accounting\x20address-list\x20address\x20align\x20area\x20bandwidth-server\x20bfd\x20bgp\x20bridge\x20client\x20clock\x20community\x20config\x20connection\x20console\x20customer\x20default\x20dhcp-client\x20dhcp-server\x20discovery\x20dns\x20e-mail\x20ethernet\x20filter\x20firmware\x20gps\x20graphing\x20group\x20hardware\x20health\x20hotspot\x20identity\x20igmp-proxy\x20incoming\x20instance\x20interface\x20ip\x20ipsec\x20ipv6\x20irq\x20l2tp-server\x20lcd\x20ldp\x20logging\x20mac-server\x20mac-winbox\x20mangle\x20manual\x20mirror\x20mme\x20mpls\x20nat\x20nd\x20neighbor\x20network\x20note\x20ntp\x20ospf\x20ospf-v3\x20ovpn-server\x20page\x20peer\x20pim\x20ping\x20policy\x20pool\x20port\x20ppp\x20pppoe-client\x20pptp-server\x20prefix\x20profile\x20proposal\x20proxy\x20queue\x20radius\x20resource\x20rip\x20ripng\x20route\x20routing\x20screen\x20script\x20security-profiles\x20server\x20service\x20service-port\x20settings\x20shares\x20smb\x20sms\x20sniffer\x20snmp\x20snooper\x20socks\x20sstp-server\x20system\x20tool\x20tracking\x20type\x20upgrade\x20upnp\x20user-manager\x20users\x20user\x20vlan\x20secret\x20vrrp\x20watchdog\x20web-access\x20wireless\x20pptp\x20pppoe\x20lan\x20wan\x20layer7-protocol\x20lease\x20simple\x20raw','ConicHullRegionBoxOptions','groupID','like-','column-span','php_user_filter','CellTrayWidgets','#success-notice','canAdd','ode_ckrk','FindRoot','FormControl','drawTriangle','border-left-style','phy_debug_render_obb','StruveH','tch','transition-property','ScorerGi','TextValue','CHR$|10','Options','table-layout','field','NaN64','ip\x20eip\x20rip\x20al\x20ah\x20bl\x20bh\x20cl\x20ch\x20dl\x20dh\x20sil\x20dil\x20bpl\x20spl\x20r8b\x20r9b\x20r10b\x20r11b\x20r12b\x20r13b\x20r14b\x20r15b\x20ax\x20bx\x20cx\x20dx\x20si\x20di\x20bp\x20sp\x20r8w\x20r9w\x20r10w\x20r11w\x20r12w\x20r13w\x20r14w\x20r15w\x20eax\x20ebx\x20ecx\x20edx\x20esi\x20edi\x20ebp\x20esp\x20eip\x20r8d\x20r9d\x20r10d\x20r11d\x20r12d\x20r13d\x20r14d\x20r15d\x20rax\x20rbx\x20rcx\x20rdx\x20rsi\x20rdi\x20rbp\x20rsp\x20r8\x20r9\x20r10\x20r11\x20r12\x20r13\x20r14\x20r15\x20cs\x20ds\x20es\x20fs\x20gs\x20ss\x20st\x20st0\x20st1\x20st2\x20st3\x20st4\x20st5\x20st6\x20st7\x20mm0\x20mm1\x20mm2\x20mm3\x20mm4\x20mm5\x20mm6\x20mm7\x20xmm0\x20\x20xmm1\x20\x20xmm2\x20\x20xmm3\x20\x20xmm4\x20\x20xmm5\x20\x20xmm6\x20\x20xmm7\x20\x20xmm8\x20\x20xmm9\x20xmm10\x20\x20xmm11\x20xmm12\x20xmm13\x20xmm14\x20xmm15\x20xmm16\x20xmm17\x20xmm18\x20xmm19\x20xmm20\x20xmm21\x20xmm22\x20xmm23\x20xmm24\x20xmm25\x20xmm26\x20xmm27\x20xmm28\x20xmm29\x20xmm30\x20xmm31\x20ymm0\x20\x20ymm1\x20\x20ymm2\x20\x20ymm3\x20\x20ymm4\x20\x20ymm5\x20\x20ymm6\x20\x20ymm7\x20\x20ymm8\x20\x20ymm9\x20ymm10\x20\x20ymm11\x20ymm12\x20ymm13\x20ymm14\x20ymm15\x20ymm16\x20ymm17\x20ymm18\x20ymm19\x20ymm20\x20ymm21\x20ymm22\x20ymm23\x20ymm24\x20ymm25\x20ymm26\x20ymm27\x20ymm28\x20ymm29\x20ymm30\x20ymm31\x20zmm0\x20\x20zmm1\x20\x20zmm2\x20\x20zmm3\x20\x20zmm4\x20\x20zmm5\x20\x20zmm6\x20\x20zmm7\x20\x20zmm8\x20\x20zmm9\x20zmm10\x20\x20zmm11\x20zmm12\x20zmm13\x20zmm14\x20zmm15\x20zmm16\x20zmm17\x20zmm18\x20zmm19\x20zmm20\x20zmm21\x20zmm22\x20zmm23\x20zmm24\x20zmm25\x20zmm26\x20zmm27\x20zmm28\x20zmm29\x20zmm30\x20zmm31\x20k0\x20k1\x20k2\x20k3\x20k4\x20k5\x20k6\x20k7\x20bnd0\x20bnd1\x20bnd2\x20bnd3\x20cr0\x20cr1\x20cr2\x20cr3\x20cr4\x20cr8\x20dr0\x20dr1\x20dr2\x20dr3\x20dr8\x20tr3\x20tr4\x20tr5\x20tr6\x20tr7\x20r0\x20r1\x20r2\x20r3\x20r4\x20r5\x20r6\x20r7\x20r0b\x20r1b\x20r2b\x20r3b\x20r4b\x20r5b\x20r6b\x20r7b\x20r0w\x20r1w\x20r2w\x20r3w\x20r4w\x20r5w\x20r6w\x20r7w\x20r0d\x20r1d\x20r2d\x20r3d\x20r4d\x20r5d\x20r6d\x20r7d\x20r0h\x20r1h\x20r2h\x20r3h\x20r0l\x20r1l\x20r2l\x20r3l\x20r4l\x20r5l\x20r6l\x20r7l\x20r8l\x20r9l\x20r10l\x20r11l\x20r12l\x20r13l\x20r14l\x20r15l\x20db\x20dw\x20dd\x20dq\x20dt\x20ddq\x20do\x20dy\x20dz\x20resb\x20resw\x20resd\x20resq\x20rest\x20resdq\x20reso\x20resy\x20resz\x20incbin\x20equ\x20times\x20byte\x20word\x20dword\x20qword\x20nosplit\x20rel\x20abs\x20seg\x20wrt\x20strict\x20near\x20far\x20a32\x20ptr','setBehaviour','tion','scala','determiner6','put\x20abs\x20acos\x20aliasReference\x20annuity\x20arrayDecode\x20arrayEncode\x20asin\x20atan\x20atan2\x20average\x20avg\x20avgDev\x20base64Decode\x20base64Encode\x20baseConvert\x20binaryDecode\x20binaryEncode\x20byteOffset\x20byteToNum\x20cachedURL\x20cachedURLs\x20charToNum\x20cipherNames\x20codepointOffset\x20codepointProperty\x20codepointToNum\x20codeunitOffset\x20commandNames\x20compound\x20compress\x20constantNames\x20cos\x20date\x20dateFormat\x20decompress\x20difference\x20directories\x20diskSpace\x20DNSServers\x20exp\x20exp1\x20exp2\x20exp10\x20extents\x20files\x20flushEvents\x20folders\x20format\x20functionNames\x20geometricMean\x20global\x20globals\x20hasMemory\x20harmonicMean\x20hostAddress\x20hostAddressToName\x20hostName\x20hostNameToAddress\x20isNumber\x20ISOToMac\x20itemOffset\x20keys\x20len\x20length\x20libURLErrorData\x20libUrlFormData\x20libURLftpCommand\x20libURLLastHTTPHeaders\x20libURLLastRHHeaders\x20libUrlMultipartFormAddPart\x20libUrlMultipartFormData\x20libURLVersion\x20lineOffset\x20ln\x20ln1\x20localNames\x20log\x20log2\x20log10\x20longFilePath\x20lower\x20macToISO\x20matchChunk\x20matchText\x20matrixMultiply\x20max\x20md5Digest\x20median\x20merge\x20messageAuthenticationCode\x20messageDigest\x20millisec\x20millisecs\x20millisecond\x20milliseconds\x20min\x20monthNames\x20nativeCharToNum\x20normalizeText\x20num\x20number\x20numToByte\x20numToChar\x20numToCodepoint\x20numToNativeChar\x20offset\x20open\x20openfiles\x20openProcesses\x20openProcessIDs\x20openSockets\x20paragraphOffset\x20paramCount\x20param\x20params\x20peerAddress\x20pendingMessages\x20platform\x20popStdDev\x20populationStandardDeviation\x20populationVariance\x20popVariance\x20processID\x20random\x20randomBytes\x20replaceText\x20result\x20revCreateXMLTree\x20revCreateXMLTreeFromFile\x20revCurrentRecord\x20revCurrentRecordIsFirst\x20revCurrentRecordIsLast\x20revDatabaseColumnCount\x20revDatabaseColumnIsNull\x20revDatabaseColumnLengths\x20revDatabaseColumnNames\x20revDatabaseColumnNamed\x20revDatabaseColumnNumbered\x20revDatabaseColumnTypes\x20revDatabaseConnectResult\x20revDatabaseCursors\x20revDatabaseID\x20revDatabaseTableNames\x20revDatabaseType\x20revDataFromQuery\x20revdb_closeCursor\x20revdb_columnbynumber\x20revdb_columncount\x20revdb_columnisnull\x20revdb_columnlengths\x20revdb_columnnames\x20revdb_columntypes\x20revdb_commit\x20revdb_connect\x20revdb_connections\x20revdb_connectionerr\x20revdb_currentrecord\x20revdb_cursorconnection\x20revdb_cursorerr\x20revdb_cursors\x20revdb_dbtype\x20revdb_disconnect\x20revdb_execute\x20revdb_iseof\x20revdb_isbof\x20revdb_movefirst\x20revdb_movelast\x20revdb_movenext\x20revdb_moveprev\x20revdb_query\x20revdb_querylist\x20revdb_recordcount\x20revdb_rollback\x20revdb_tablenames\x20revGetDatabaseDriverPath\x20revNumberOfRecords\x20revOpenDatabase\x20revOpenDatabases\x20revQueryDatabase\x20revQueryDatabaseBlob\x20revQueryResult\x20revQueryIsAtStart\x20revQueryIsAtEnd\x20revUnixFromMacPath\x20revXMLAttribute\x20revXMLAttributes\x20revXMLAttributeValues\x20revXMLChildContents\x20revXMLChildNames\x20revXMLCreateTreeFromFileWithNamespaces\x20revXMLCreateTreeWithNamespaces\x20revXMLDataFromXPathQuery\x20revXMLEvaluateXPath\x20revXMLFirstChild\x20revXMLMatchingNode\x20revXMLNextSibling\x20revXMLNodeContents\x20revXMLNumberOfChildren\x20revXMLParent\x20revXMLPreviousSibling\x20revXMLRootNode\x20revXMLRPC_CreateRequest\x20revXMLRPC_Documents\x20revXMLRPC_Error\x20revXMLRPC_GetHost\x20revXMLRPC_GetMethod\x20revXMLRPC_GetParam\x20revXMLText\x20revXMLRPC_Execute\x20revXMLRPC_GetParamCount\x20revXMLRPC_GetParamNode\x20revXMLRPC_GetParamType\x20revXMLRPC_GetPath\x20revXMLRPC_GetPort\x20revXMLRPC_GetProtocol\x20revXMLRPC_GetRequest\x20revXMLRPC_GetResponse\x20revXMLRPC_GetSocket\x20revXMLTree\x20revXMLTrees\x20revXMLValidateDTD\x20revZipDescribeItem\x20revZipEnumerateItems\x20revZipOpenArchives\x20round\x20sampVariance\x20sec\x20secs\x20seconds\x20sentenceOffset\x20sha1Digest\x20shell\x20shortFilePath\x20sin\x20specialFolderPath\x20sqrt\x20standardDeviation\x20statRound\x20stdDev\x20sum\x20sysError\x20systemVersion\x20tan\x20tempName\x20textDecode\x20textEncode\x20tick\x20ticks\x20time\x20to\x20tokenOffset\x20toLower\x20toUpper\x20transpose\x20truewordOffset\x20trunc\x20uniDecode\x20uniEncode\x20upper\x20URLDecode\x20URLEncode\x20URLStatus\x20uuid\x20value\x20variableNames\x20variance\x20version\x20waitDepth\x20weekdayNames\x20wordOffset\x20xsltApplyStylesheet\x20xsltApplyStylesheetFromFile\x20xsltLoadStylesheet\x20xsltLoadStylesheetFromFile\x20add\x20breakpoint\x20cancel\x20clear\x20local\x20variable\x20file\x20word\x20line\x20folder\x20directory\x20URL\x20close\x20socket\x20process\x20combine\x20constant\x20convert\x20create\x20new\x20alias\x20folder\x20directory\x20decrypt\x20delete\x20variable\x20word\x20line\x20folder\x20directory\x20URL\x20dispatch\x20divide\x20do\x20encrypt\x20filter\x20get\x20include\x20intersect\x20kill\x20libURLDownloadToFile\x20libURLFollowHttpRedirects\x20libURLftpUpload\x20libURLftpUploadFile\x20libURLresetAll\x20libUrlSetAuthCallback\x20libURLSetDriver\x20libURLSetCustomHTTPHeaders\x20libUrlSetExpect100\x20libURLSetFTPListCommand\x20libURLSetFTPMode\x20libURLSetFTPStopTime\x20libURLSetStatusCallback\x20load\x20extension\x20loadedExtensions\x20multiply\x20socket\x20prepare\x20process\x20post\x20seek\x20rel\x20relative\x20read\x20from\x20process\x20rename\x20replace\x20require\x20resetAll\x20resolve\x20revAddXMLNode\x20revAppendXML\x20revCloseCursor\x20revCloseDatabase\x20revCommitDatabase\x20revCopyFile\x20revCopyFolder\x20revCopyXMLNode\x20revDeleteFolder\x20revDeleteXMLNode\x20revDeleteAllXMLTrees\x20revDeleteXMLTree\x20revExecuteSQL\x20revGoURL\x20revInsertXMLNode\x20revMoveFolder\x20revMoveToFirstRecord\x20revMoveToLastRecord\x20revMoveToNextRecord\x20revMoveToPreviousRecord\x20revMoveToRecord\x20revMoveXMLNode\x20revPutIntoXMLNode\x20revRollBackDatabase\x20revSetDatabaseDriverPath\x20revSetXMLAttribute\x20revXMLRPC_AddParam\x20revXMLRPC_DeleteAllDocuments\x20revXMLAddDTD\x20revXMLRPC_Free\x20revXMLRPC_FreeAll\x20revXMLRPC_DeleteDocument\x20revXMLRPC_DeleteParam\x20revXMLRPC_SetHost\x20revXMLRPC_SetMethod\x20revXMLRPC_SetPort\x20revXMLRPC_SetProtocol\x20revXMLRPC_SetSocket\x20revZipAddItemWithData\x20revZipAddItemWithFile\x20revZipAddUncompressedItemWithData\x20revZipAddUncompressedItemWithFile\x20revZipCancel\x20revZipCloseArchive\x20revZipDeleteItem\x20revZipExtractItemToFile\x20revZipExtractItemToVariable\x20revZipSetProgressCallback\x20revZipRenameItem\x20revZipReplaceItemWithData\x20revZipReplaceItemWithFile\x20revZipOpenArchive\x20send\x20set\x20sort\x20split\x20start\x20stop\x20subtract\x20symmetric\x20union\x20unload\x20vectorDotProduct\x20wait\x20write','ListPlot','xs:double','$CloudExpressionBase','GeneralizedLinearModelFit','Precision','weibull','normal_id_glm','ctrlDelete','padding-inline','matcher','#download-btn','drawEllipse','there','ButtonEvaluator','nevershow','DEBUG_TAGS','$1ex','buffer_base64_decode','TreeGraphQ','F.DIST','compute','phy_particle_group_flag_solid','ppEffectEnabled','overflow-inline','updateDropdown','bzip2','sendUDPMessage','RuleDelayed','DEVSQ','mathfunc','precondition','├','network_send_raw','TooltipBox','FindMinValue','IntervalSlider','nrquote','setHit','disableMapIndicators','weak0','lbSelection','Reboot','array\x20date\x20decimal\x20duration\x20integer\x20map\x20pair\x20string\x20tag\x20xml\x20null\x20boolean\x20bytes\x20keyword\x20list\x20locale\x20queue\x20set\x20stack\x20staticarray\x20local\x20var\x20variable\x20global\x20data\x20self\x20inherited\x20currentcapture\x20givenblock','KeepExistingVersion','onmessage','Auxiliary','Fortran','Observable','UnderscriptBox','SpatialEstimatorFunction','HatchShading','font_add_enable_aa','GSMServer','Backtrack','facebook_check_permission','camera_get_view_mat','date_minute_span','SphereBoxOptions','frameCount','UninstPage','lis','configure','local_data_key!','GeometricScene','StridedMatrix','polytechnic','ode_rk45','⥰','Convergents','auxiliary','buffer_copy','…','[^\x5c\x5c]\x27','IndentingNewlineSpacings','adverbs','visibleScoretable','CountRoots','Cdouble','SingularValuePlot','(#Gerund|#Copula|help)','meta.prompt','log1m','LanguageCategory','into','unshift','FileDate','VLCAudioVideo','epochs','FindRepeat','DisableConsolePrintPacket','State','↩','В','EdgeOpacity',')','syllabi','≠','KnapsackSolve','unconnected_drive','TraditionalNotation','mts',')\x5cs*\x5c(','dcos','will','ChampernowneNumber','NBodySimulation','spawn','$1—','both','¯','Orange','show_score','ostringstream','|\x5cb(case|return|throw)\x5cb)\x5cs*','varlabel','gpu_set_texfilter_ext','β','∼⃒','$PrePrint','baseURI','Tcl','do\x20not','[\x20]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)','⌓','[plenty]\x20of','millis','noTone','♀','setMarkerSize','AnnotationValue','while','c++','@interface','ExportAutoReplacements','DefaultFrameTicksStyle','attrn','⏟','setgrent','stroke','lineIntersects','InputGrouping','MorphologicalPerimeter','overlay','JankoGroupJ3','TreeLeaves','⋪','RawData','cursorObject','AttachedCell','LinkClose','hmm','ProgressIndicatorBoxOptions','[so]\x20#Noun','PastTense','COOKIES','popcnt','hbs','everyBackpack','NSumTerms','GeneratedQuantityMagnitudes','MaxPoints','CloudSymbol','·','qerf','PageHeight','ButtonMinHeight','AllTrue','$sinh','beginWrite','↘','font_add_sprite_ext','sprite_get_bbox_left','someAmmo','BlankForm','(?!fn\x5cb|function\x5cb|','BSplineFunction','playhouse','layer_script_begin','CircleTimes','#Superlative','WindowStatusArea','strikethrough','view','BaringhausHenzeTest','MeshCellHighlight','☆','[%Adj|Gerund%]\x20#Determiner','_all_','CELL','[=#]\x5cw+','at-about','ItemBoxOptions','menuURL','adoc','StandardDeviationFilter','getOrDefault','Inherited','camPrepareRelPos','bytearray','LinkInterrupt','barn','Hue','PROFILE','load','MaxValue','$1men','props','each','vertex_format_add_texcoord','setHitPointDamage','BoxStyle','CORREL','DialogLevel','FactorialMomentGeneratingFunction','skip,\x20excludeEnd,\x20returnEnd\x20not\x20compatible\x20with\x20endScope:\x20{}','ParametricNDSolveValue','⪙','^#Verb\x20.\x20#Noun+$','Insert','FromCoefficientRules','NotebookFileName','NotebookImport','rating','Portal','RuleCondition','integrate_ode_bdf','PrintPrecision','NotebookApply','WaveletBestBasis','DefaultDockedCellStyle','AllowLooseGrammar','bridge','dot_product','[so]\x20#Determiner','#Gerund\x20to\x20#Verb','_Static_assert','[:]{1,2}','parseLinkDestination','achievement_pic_loaded','JOHAB_CHARSET','absolute','dll_stdcall','first-line','TLSA','DeletionWarning','Alphabet','safeZoneWAbs','script_execute','gpu_pop_state','UnitVector','SearchIndices','ImagePadding','addCamShake','will-have-vb','mp_grid_destroy','ReferenceError','┤','and\x20not','𝔴','margin-left','InsertResults','LeafCount','FromSphericalCoordinates','MoleculeSubstructureCount','tsort','allControls','ltrim','NumericDecimal','town','removeItemFromVest','SectorOrigin','Please\x20use\x20highlight(code,\x20options)\x20instead.\x0ahttps://github.com/highlightjs/highlight.js/issues/2277','may-be','DirVar','cardinal-month','physics_world_update_iterations','EventHandlerTag','last-of-type','Implicit','[#PastTense\x20(#Hyphenated\x20&&\x20#PhrasalVerb)]\x20(#Noun|#Conjunction)','output_unit','autoload','current_default_transform_group','\x0a\x0a---\x0a---\x0a---\x0a\x0a','TreeElementStyle','ple','ENV','ctrlSetForegroundColor','AircraftData','smallint','MexicanHatWavelet','NestedGreaterGreater','RecursiveFilterIterator','log_gamma','touches','‌','T.INV.2T','mobile','good','FindImageText','TableViewBoxItemStyle','⇕','tvCollapse','ImageDemosaic','[^|]+','font-face','text-combine-upright','ConicHullRegion3DBox','upvar','overflow-x','ContourLines','getDLCAssetsUsageByName','⏢','similarity','scroll-padding-inline-start','DotPlusLayer','saveOverlay','revokeObjectURL','toPositive','ev_global_middle_button','AuthenticationDialog','scanNetworks','missionName','phy_joint_damping_ratio','Intel\x20x86\x20Assembly','the\x20[#Acronym]','COL','current_schema','SpheroidalS2Prime','∤','pipe','LightGreen','^\x5cs*%\x5c{\x5cs*$','GeoDisk','ATN','FileName','ModelPredictiveController','FoldPairList','[#Gerund]\x20#Modal','armoryPoints','MB_TOPMOST','\x5cb0[bB](([01]_*)+)\x5cb','FindMaximumCut','ExternalCall','(-|\x5c+)?\x5cd+([./]\x5cd+)?','VectorAround','whom','true¦aCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct','whoami','path_duplicate','WindowSelected','getRotorBrakeRTD','saveJSONArray','skeleton_skin_get','(prince|lady)\x20#Place','\x1b[2m','writeRed','reads','ReplaceList','^will\x20#Infinitive\x20#Gerund$','vbscript-html','setMarkerBrush','Load','THAI_CHARSET','getArtilleryComputerSettings','and$','NotVerticalBar','withPrintWriter','sportsfield','refersTo','delete_from','LinearProgramming','[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}','exposing','OutputForm','\x5cs*=\x5cs*','make_color_rgb','allGroups','currentWaypoint','⤖','InhomogeneousPoissonPointProcess','Except','≶','whereas',':-3','scale_matrix_exp_multiply','Unsigned','@optional','ToOwned','det-inf','Report','everywhere','expectedDestination','unique_lock','LinkConnect','FindInstance','LicenseID','4-pounds','getAssetDLCInfo','ü','ev_cleanup','ugc_sortorder_VoteScoreDesc','1-frozen-multi-lexicon','\x5cb[A-Z][\x5cw]*(\x5c((\x5c.\x5c.|,|\x5cw+)\x5c))?','one_hot_int_array','amin0','Var','NoncentralChiSquareDistribution','\x5cd+','DenseVector','bullet_list_close','_close','RevolutionAxis','nchar','summarize-btn','jbessel','drawCompass','InverseBetaRegularized','NetReplace','){3}','TransitiveClosureGraph','associate','endhostent','vertex_type_color','LightBrown','showSubtitles','capnproto','.lt.','getItem','processDiaryLink','setCursor','subsidiary','LessEqual','|[\x22]).)+\x5c\x22|\x5c\x27(?:(?!','InlineCounterAssignments','layer_background_get_visible','MouseButtons','crm','setCuratorWaypointCost','endif','integer','turn-down','border-color','Prime','and\x20or\x20not\x20only','isCase','RGBColor','secondaryWeapon','TautologyQ','FlushINI','VectorGlyphData','HumpEqual','lockInventory','(try|use|attempt|build|make)\x20[#Verb\x20#Particle?]','ini','mask-size','striptags','MissingValuePattern','FrameStyle','push_get_first_local_notification','⌏','choose','⥹','Clear','without','corresponding','#Particle','$NetworkLicense','ContinuousMarkovProcess','equipmentDisabled','Alternatives','swear2-verb','IconizedObject','CornerFilter','line!','xs:gYearMonth','label','LeapVariant','⅖','PeakDetect','CheckArguments','custom','are-doing-is','loadFont','⋣','EnumRegKey','bitWrite','WeierstrassEta1','Х','ps_shape_ellipse','DEBUG_MATCH','publicVariable','addBackpackGlobal','kmph','xs:unsignedByte','beach','TraceLevel','Pivoting','innerHTML','QuoteNode','RunProcess','mapAnimDone','BirnbaumImportance','CloudExpressions','ContinuousWaveletTransform','ef_smokeup','hcSetGroup','GraphLayerStyle','ver','TemplateUnevaluated','NotGreaterSlantEqual','true¦0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n\x20w97s86;acked1UoleF;!sa6;ather1PeFll\x20o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce\x20versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1;\x20Hb32pGsFtiAH;ca6ide\x20d4R;er,i85;f52to\x20da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip\x2025oGrF;anspare1encha1i2;geth9leADp\x20notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi\x20generis,pFr5;erFre7N;!\x20dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS;\x20fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot\x20Fry;on;c3Qe1S;k5se;\x20call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6;\x20o2A;e60ipF;pe4shod;ll0n\x20d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7;\x20suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3;\x201Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt\x203IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF;\x205XiF;al,s5V;bSffQkPld\x20OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z;\x20bFbFe\x20on\x20o7g3Uli7;oa80;fashion0school;!ay;\x20gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de;\x20moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle\x20ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft\x20JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce\x20co0Hgno6Mll0Cm04nHpso\x202UrF;a2releF;va1;\x20ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U;\x20ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM;\x2005coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng\x20ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF;\x20keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d\x20Gmini7rF;ti6ve1;up;bl0lDmIr\x20Fst\x20pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6;\x20Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te;\x20Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF;\x20cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck\x20nak0;and\x20new,isk,on22;gGldface,naF;\x20fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT;\x20priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant\x20garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2;\x20JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt','mice','WIDTH','LocalTimeZone','tenn','dump','VectorPlot3D','clear3DENAttribute',':^*','https:','DropoutLayer','will\x20want','GSMScanner','BiorthogonalSplineWavelet','ň','\x5c?>','static','InputPacket','bill-acronym-title','assert_ne!','MeshCellIndex','layer_vspeed','OpenAppend','worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3der:mad,sad¦3er:shy,fun¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale','ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ','hcRemoveAllGroups','(nominating|special|conference|executive|steering|central|congressional)\x20committee','$monitorb','steam_get_user_steam_id','GeoArraySize','should','nrstr','Cells','HeunT','past','DefineInputStreamMethod','rewrite','borrowing','Language\x20definition\x20for\x20\x27{}\x27\x20could\x20not\x20be\x20registered.','ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇіїi̇','object_length','NSManaged','SearchPattern','block-size','whomever','Cyan','Context','syndicat','techn','set_field','ParallelSum','IslandData','institute','leq','@public','csr_matrix_times_vector','ScientificNotationThreshold','path_endaction','firstName','EOMONTH','diff','AbstractDisplay','ps_shape_rectangle','@layer','layer_tilemap_exists','MailSearch','bm_inv_dest_color','MenuPacket','SHIFTJIS_CHARSET','Proper','KEdgeConnectedComponents','ColorsNear','%!S+','embargoes','gpu_get_alphatestfunc','government\x20of\x20the?\x20[#Place+]','gal','\x5cn\x5c+{4,}$','Cardinal','MUNIT','PingTime','MAX','mis','ds_map_read','NotEqualTilde','BinCounts','\x5cb0[oO][0-7](_?[0-7])*n?\x5cb','TemplateSequence','StopAsynchronousTask','<⃒','far','combatBehaviour','ctrlSetFontHeightH2','setCuratorCoef','frozen','DivisorSum','HeatTransferPDEComponent','MathieuGroupM22','№','SequenceAlignment','moonPhase','INTERNAL1V1','part_system_destroy','formulae','⧏','calculatePath','InputToBoxFormPacket','3-place-acronym','selectBestPlaces','$itor','__FILE__','cyn','SeriesData','c_short','OutFile','game_end','SUBSTR','saveVar','KeyCollisionFunction','GaussianMatrix','_open','definition','_webout_','general','GeneratedAssetLocation','QUESTION','RegionDistanceFunction','king-of-noun','noframes','addCuratorAddons','closeButtonHelpModal','vert','NSEC','ButtonBar','SemidefiniteOptimization','true¦0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on','AGLToASL','assume','^:.+?:','limit','⅛','scroll-margin-inline-end','ż','better-go','NotebookLocate','\x5cb(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\x5cs*<(?!<)','HoldForm','tvDelete','as-gerund-as','c_null_funptr','inputn','initHighlightingOnLoad()\x20deprecated.\x20\x20Use\x20highlightAll()\x20now.','isSteamMission','adc\x20add\x20adiw\x20and\x20andi\x20asr\x20bclr\x20bld\x20brbc\x20brbs\x20brcc\x20brcs\x20break\x20breq\x20brge\x20brhc\x20brhs\x20brid\x20brie\x20brlo\x20brlt\x20brmi\x20brne\x20brpl\x20brsh\x20brtc\x20brts\x20brvc\x20brvs\x20bset\x20bst\x20call\x20cbi\x20cbr\x20clc\x20clh\x20cli\x20cln\x20clr\x20cls\x20clt\x20clv\x20clz\x20com\x20cp\x20cpc\x20cpi\x20cpse\x20dec\x20eicall\x20eijmp\x20elpm\x20eor\x20fmul\x20fmuls\x20fmulsu\x20icall\x20ijmp\x20in\x20inc\x20jmp\x20ld\x20ldd\x20ldi\x20lds\x20lpm\x20lsl\x20lsr\x20mov\x20movw\x20mul\x20muls\x20mulsu\x20neg\x20nop\x20or\x20ori\x20out\x20pop\x20push\x20rcall\x20ret\x20reti\x20rjmp\x20rol\x20ror\x20sbc\x20sbr\x20sbrc\x20sbrs\x20sec\x20seh\x20sbi\x20sbci\x20sbic\x20sbis\x20sbiw\x20sei\x20sen\x20ser\x20ses\x20set\x20sev\x20sez\x20sleep\x20spm\x20st\x20std\x20sts\x20sub\x20subi\x20swap\x20tst\x20wdr','progressPosition','window_get_height','createChar','number\x20of\x20[#PresentTense]','(?:(?:e|g|x)?def|let)','gamespeed_fps','updateObjectTree','⊳','$EmbedCodeEnvironments','TubeBox','twelve','youtube.com/embed','TransformedField','(#Person|#Pronoun)','PolarPlot','REPLACE','LocatorPaneBox','versioning','column-gap','nclob','11.9.0','TernaryPlotCorners','chunks','FirstPosition','PhrasalVerb\x20Particle','inline\x20no_inline\x20type_spec\x20source_file\x20fact_table\x20obsolete\x20memo\x20loop_check\x20minimal_model\x20terminates\x20does_not_terminate\x20check_termination\x20promise_equivalent_clauses\x20foreign_proc\x20foreign_decl\x20foreign_code\x20foreign_type\x20foreign_import_module\x20foreign_export_enum\x20foreign_export\x20foreign_enum\x20may_call_mercury\x20will_not_call_mercury\x20thread_safe\x20not_thread_safe\x20maybe_thread_safe\x20promise_pure\x20promise_semipure\x20tabled_for_io\x20local\x20untrailed\x20trailed\x20attach_to_io_state\x20can_pass_as_mercury_type\x20stable\x20will_not_throw_exception\x20may_modify_trail\x20will_not_modify_trail\x20may_duplicate\x20may_not_duplicate\x20affects_liveness\x20does_not_affect_liveness\x20doesnt_affect_liveness\x20no_sharing\x20unknown_sharing\x20sharing','Process','instr','layer_background_get_alpha','$TemporaryPrefix','audio_set_master_gain','weaponReloadingTime','⤠','layer_tile_get_visible','DeleteBorderComponents','vtypex','vehicleReceiveRemoteTargets','getGraphValues','MeanSquaredLossLayer','dataset','asinh','SASTriangle','sprintf','callExtension','EvaluationOrder','412vOYvND','scroll-margin-block-start','MathieuGroupM12','HardcorePointProcess','WebImage','always_latch','tilemap_get_x','bnf','mb_middle','highscore_clear','(ncalls|tottime|cumtime)','emulate','julia-repl','SetPrecision','WienerFilter','ISTEXT','ify','network_resolve','tags','func','swear3-verb','true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s','returnBegin','CloudExpression','createElement','BioSequence','Limit','borderRadius','[eE][-+]?','#Plural\x20','if\x20eq\x20ne\x20lt\x20lte\x20gt\x20gte\x20select\x20default\x20math\x20sep','layerelementtype_particlesystem','FunctionCompileExportString','RadioButtonBox','Relate','matrix_build_projection_ortho','Larger','^/{4,}\x5cn','LogLinearPlot','the','BadMethodCallException','SiegelTheta','Initialize','DifferentialRoot','#Pronoun','MERGE','sendSimpleCommand','Dithering','OpenerBox','configuration','stddev_samp','SquareSubset','matchMedia','PaneSelector','readLightSensor','true','sra','ini_write_string','GESTEP','nowarn','Second','^[=-]*$','text-sm','\x5c\x5c\x27\x5cw','ef_explosion','font-variation-settings','part_type_scale','CoordinateTransform','needQuotes','NetTrain','Obligations','OutputPorts','#PastTense','&body=','confirmSensorTarget','ScriptForm','static_assert','#Value\x20@hasComma\x20#Value','CloudPut','file_bin_open','ignoreMatch','InterquartileRange','vertex_create_buffer_from_buffer','addition','⪰','ChannelBase','STDEV.S','PreviousCell','|#\x5c\x5c.)','SKEW.P','ads_engagement_active','atomic_define','BINOM.DIST','nameSound','removeDrawIcon','gus','FUNCTION_DISPATCH','setWaypointHousePosition','MathieuSPrime','CellFrameLabels','addMagazineAmmoCargo','RandomWord','⅕','vertex_format_add_custom','what','VersionNumber','NegativeMultinomialDistribution','dispatchAndUpdate_settings','autoFill','toQuotation','iap_status_restoring','waypointForceBehaviour','setAperture','ExpressionGraph','lineFollowConfig','Push','LeviCivitaTensor','WriteRegDWORD','SOUND','phy_particle_flag_tensile','CellFrameMargins','depsl','TreeExpression','Ō','keyPressedkeyReleased','DSolve','chief-x-officer','NETWORKDAYS.INTL','#Honorific','URL','augmentation','castle','IndexEdgeTaggedGraph','break-word','$HTTPCookies','json_value','#chat-search','keyword','⪳','ContourGraphics','$LicenseType','real_vector','display-mode','physics_fixture_set_angular_damping','SelectionCell','#City\x20[(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]','Condition','CellGrouping','vertex_create_buffer','asensitive','BoxMargins','string_format','onCompile',':\x5cw+\x5cs*=>','GroupPageBreakWithin','CylindricalDecomposition','thor','IntPtrOp','buffer_tell','VariogramModel','Ratios','Graph3D','BRANCH_LENGTH','room_speed','IntegerString','(\x5c[|#|\x5cd|\x22|:|\x5c{|\x5c)|\x5c(|$)','vk_f4','$MaxPiecewiseCases','menuEnabled','PMAP','abuses','[#PastTense]\x20#Auxiliary+\x20#PastTense','$ImageFormattingWidth','Show','Determiner','#Stop','iap_enumerate_products','testSchemaAt','\x5c$\x5c(','ĝ','\x5c{\x5c{','RowHeights','textLogFormat','IfShellVarContextAll','path_get_point_x','TreeElementStyleFunction','kbv_returnkey_default','UniverseModelData','𝕒','draw_getpixel_ext','BooleanQ','indexc','noCursor','PalettePath','FindEdgeIndependentPaths','true¦0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain\x20bolt,v9w4xzibit,y1;anni,oko\x20on2uji,v1;an,es;en,o;a3ednesday\x20adams,i2o1;lfram,o0Q;ll\x20ferrell,z\x20khalifa;lt\x20disn1Qr1;hol,r0G;a2i1oltai06;n\x20dies0Zrginia\x20wo17;lentino\x20rossi,n\x20goG;a4h3i2ripp,u1yra\x20banks;lZpac\x20shakur;ger\x20woods,mba07;eresa\x20may,or;kashi,t1ylor;um,ya1B;a5carlett\x20johanss0h4i3lobodan\x20milosevic,no2ocr1Lpider1uperm0Fwami;\x20m0Em0E;op\x20dogg,w\x20whi1H;egfried,nbad;akespeaTerlock\x20holm1Sia\x20labeouf;ddam\x20hussa16nt1;a\x20cla11ig9;aAe6i5o3u1za;mi,n\x20dmc,paul,sh\x20limbau1;gh;bin\x20hood,d\x20stew16nald1thko;in0Mo;han0Yngo\x20starr,valdo;ese\x20witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y\x20roma1H;a4e3i2la16o1uff\x20daddy;cahont0Ie;lar,p19;le,rZ;lm17ris\x20hilt0;leg,prah\x20winfr0Sra;a2e1iles\x20cra1Bostradam0J;\x20yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa\x20ju1tt\x20romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta\x20hari,ya\x20angelou;re;ady\x20gaga,e1ibera0Pu;bron\x20jam0Xch\x20wale1e;sa;anye\x20west,e3i1obe\x20bryant;d\x20cudi,efer\x20suther1;la0P;ats,sha;a2effers0fk,k\x20rowling,rr\x20tolki1;en;ck\x20the\x20ripp0Mwaharlal\x20nehru,y\x20z;liTnez,ron\x20m7;a7e5i3u1;lk\x20hog5mphrey1sa01;!\x20bog05;l1tl0H;de;\x20m1dwig,nry\x204;an;ile\x20selassFlle\x20ber4m3rrison1;!\x201;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence\x20nightinga08r1;an1ederic\x20chopN;s,z;ff5m2nya,ustaXzeki1;el;eril\x20lagasse,i1;le\x20zatop1nem;ek;ie;a6e4i2octor\x20w1rake;ho;ck\x20w1ego\x20maradoC;olf;g1mi\x20lovaOnzel\x20washingt0;as;l1nHrth\x20vadR;ai\x20lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian\x20baMy1;na;in;millo,ptain\x20beefhe4r1;dinal\x20wols2son1;!\x20palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll\x20g1ng\x20crosby;atB;ck,nazir\x20bhut2rtil,yon1;ce;to;nksy,rack\x20ob1;ama;l\x206r3shton\x20kutch2vril\x20lavig8yn\x20ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne','buffer_peek','golo','Bearer\x20','surface_save_part','addForce','FrontEndExecute','ProcessStatus','‱','PaneSelectorBox','WEEKNUM','HypergeometricU','return\x20this','get|0','infer','minus','CurlyDoubleQuote','distinct','DynamicModuleBox','studies-a-lot','ServiceSubmit','CreateDocument','˙','applescript','placeWords','LoadError','id|0','⦨','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Assistant\x20\x20Ask\x20me\x20questions\x20about\x20this\x20highlighted\x20text\x20\x20\x20Explain\x20Highlighted\x20Text\x20Get\x20Current\x20Research\x20Generate\x20Quiz\x20\x20\x20\x20Create\x20citation\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Chicago\x20APA\x20Harvard\x20\x20\x20\x20\x20\x20⏎\x20\x20\x20\x20\x20\x20\x20','linkLevel','#keyPath','evalObjectArgument','FindMaxValue','CyclicGroup','ErrorBoxOptions','𝒻','stdbuf','column-width','Derivative','qtan','Grab','stdClass','KnotData','RTD','GaussianUnitaryMatrixDistribution','\x5c(\x5cs*','LabeledSlider','KelvinKei','achievement_our_info','vertex_usage_textcoord','sql','SquareSuperset','Notebook','MomentOfInertia','SurfaceArea','gherkin','Infinitive','nav-left','valued','copula','LightingAngle','IncludePods','#Cardinal\x20and\x20a\x20half','BooleanCountingFunction','glsl','millis_to_zone_name','[\x5c{]','╢','numfmt','ExactBlackmanWindow','𝔟','CoInductive','\x20\x20\x20\x20Loading…\x20\x20\x20\x20Close\x20\x20\x20\x20\x20','lbeta','SchurDecomposition','setMarkerShapeLocal','EllipticLog','ade','left','get3DENCamera','fifth','systask','lbValue','/\x5c\x5c','allEnv3DSoundSources','primitive\x20rsc_template','ļ','rune','unlockAchievement','backpackMagazines','$CompilationTarget','atomic_ref','^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\x5cs+(test)?','tvSetTooltip','co_reduce','enableDirectionStabilization','telldir','#Copula\x20the\x20[%Adj|Noun%]\x20#Noun','tiny','continueWith','FourierMatrix','ShiftRegisterSequence','typeswitch','..ovich','reportRemoteTarget','wind','ListFormat','DayMatchQ','!@#$%^&*()','aug\x2020-21','getShotParents','Label','Constructors','discrete_range','item','xs:ID','WriteRegMultiStr','-include','[about\x20to]\x20#Adverb?\x20#Verb','ev_joystick2_right','[:=]','un-vite','⨣','expandLexicon','Tetrahedron','curatorWaypointCost','cmpfunc_greaterequal','tvValue','noFill','Object','DivideBy','whitespace','SystemModelLinearize','Exit','grid','removeDrawLinks','ExtendedEntityClass','decimal-format','(in|by|before|during|on|until|after|of|within|all)\x20[march]','functional','ruler2','(?:localhost|(?:(?:','PlaceholderLayer','[#PresentTense]\x20(of|by|for)\x20(a|an|the)\x20#Noun\x20#Copula','UniformDistribution','BilateralFilter','draw_circle','shelve_unifiable','isCollisionLightOn','Minute','NumericalOrder','VideoSplit','HTML,\x20XML','DumpGet','scrollDisplayRight','electric','vertex_format_delete','steam_ugc_query_set_ranked_by_trend_days','selectMax','triggerTimeout','gesture_pinch_angle_away','typeName','[A-Z][a-zA-Z0-9_\x27]*','⦍','$Permissions','autolink','+','array_copy','Exception','GetFullPathName','like-hot-cakes','Ū','day','keep-the-touching','canyon','#Determiner\x20#Adverb\x20#Adjective\x20[%Noun|Verb%]','ds_priority_find_max','BackFaceColor','qatan','diag_exportConfig','ugc_match_Videos','Rings','RealDigits','EdgeTransitiveGraphQ','getDir','#else','ViewVertical','MIN','iap_ev_product','super\x20this','frexp','createLocation','V2Get','lookAt','east-sydney','doLast','LessGreater','ï','т','ev_user9','display','rancau','blend','Ў','ColumnsEqual','osascript','inflame','setObjectViewDistance','ev_joystick2_button1','⅗','backdrop','civilian','wis','InterpolationPrecision','AssociationFormat','TraditionalForm','Definition','\x0a#text-selection-menu{\x0a\x20\x20z-index:\x209999;\x0a\x20\x20position:\x20fixed;\x0a}\x0a\x0a\x0a/*\x20If\x20the\x20icons\x20class\x20is\x20for\x20SVGs\x20within\x20the\x20buttons,\x20adjust\x20their\x20size\x20here\x20*/\x0a.icons\x20{\x0a\x20\x20\x20\x20width:\x2024px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a\x20\x20\x20\x20height:\x2024px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a\x20\x20\x20\x20margin:\x20auto;\x0a}\x0a.icon-tiny\x0a{\x0a\x20\x20\x20\x20width:\x2012px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a\x20\x20\x20\x20height:\x2012px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a}\x0a\x0a.icons-left\x20{\x0a\x20\x20width:\x2024px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a\x20\x20height:\x2024px;\x20/*\x20Adjust\x20SVG\x20size\x20as\x20needed\x20*/\x0a}\x0a/*\x20\x20*/\x0a\x0a/*\x20Basic\x20table\x20styles\x20*/\x0atable\x20{\x0a\x20\x20width:\x20100%;\x20/*\x20Full-width\x20*/\x0a\x20\x20border-collapse:\x20collapse;\x20/*\x20Collapse\x20borders\x20*/\x0a\x20\x20margin:\x2020px\x200;\x20/*\x20Add\x20some\x20margin\x20around\x20the\x20table\x20*/\x0a\x20\x20font-size:\x200.9em;\x20/*\x20Adjust\x20font\x20size\x20*/\x0a\x20\x20font-family:\x20Arial,\x20sans-serif;\x20/*\x20Use\x20a\x20nice\x20font-family\x20*/\x0a\x20\x20box-shadow:\x200\x200\x2020px\x20rgba(0,\x200,\x200,\x200.15);\x20/*\x20Slight\x20shadow\x20around\x20table\x20*/\x0a}\x0a\x0a/*\x20Table\x20headers\x20*/\x0ath\x20{\x0a\x20\x20background-color:\x20#009879;\x20/*\x20A\x20nice\x20green\x20background\x20*/\x0a\x20\x20color:\x20#ffffff;\x20/*\x20White\x20text\x20color\x20*/\x0a\x20\x20text-align:\x20left;\x20/*\x20Align\x20text\x20to\x20the\x20left\x20*/\x0a\x20\x20padding:\x2012px\x2015px;\x20/*\x20Add\x20some\x20padding\x20*/\x0a}\x0a\x0a/*\x20Table\x20cells\x20*/\x0atd\x20{\x0a\x20\x20padding:\x2012px\x2015px;\x20/*\x20Add\x20some\x20padding\x20*/\x0a\x20\x20border-bottom:\x201px\x20solid\x20#dddddd;\x20/*\x20A\x20light\x20border\x20for\x20each\x20cell\x20*/\x0a}\x0a\x0a/*\x20Table\x20row\x20hover\x20effect\x20*/\x0atr:nth-of-type(even)\x20{\x0a\x20\x20background-color:\x20#f3f3f3;\x20/*\x20Light\x20grey\x20background\x20for\x20even\x20rows\x20*/\x0a}\x0a\x0atr:hover\x20{\x0a\x20\x20background-color:\x20#f1f1f1;\x20/*\x20Slightly\x20different\x20grey\x20for\x20hover\x20effect\x20*/\x0a}\x0a\x0a/*\x20Responsive\x20tables\x20*/\x0a@media\x20screen\x20and\x20(max-width:\x20600px)\x20{\x0a\x20\x20table\x20{\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20overflow-x:\x20auto;\x20/*\x20Enable\x20horizontal\x20scrolling\x20on\x20small\x20devices\x20*/\x0a\x20\x20}\x0a}\x0a\x0a\x0a/*\x20iframe\x20*/\x0a\x0a/*\x20body\x20{\x0a\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20padding:\x200;\x0a}\x20*/\x0a\x0a/*\x20.iframe-container\x20{\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20background-color:\x20transparent\x20;\x0a\x20\x20\x20\x20max-width:\x20200px;\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20max-height:\x20fit-content;\x0a\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20border:\x202px\x20solid\x20black;\x0a\x20\x20\x20\x20overflow:\x20visible;\x0a\x20\x20\x20\x20max-height:\x20300px;\x20\x0a\x20\x20\x20\x20overflow-y:\x20auto;\x20\x0a\x20\x20\x20\x20box-sizing:\x20border-box;\x0a\x20\x20\x20\x20background-color:\x20#fff;\x0a\x0a}\x20*/\x0a\x0a\x0a\x0a#markdown-preview\x20{\x0a\x20\x20\x20\x20/*\x20min-width:\x2050px;\x20*/\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20background-color:\x20#fff;\x0a\x20\x20\x20\x20overflow:\x20visible;\x20/*\x20Let\x20it\x20expand\x20*/\x20/*\x20hide\x20any\x20overflow\x20initially\x20*/\x0a\x20\x20\x20\x20transition:\x20height\x200.3s\x20ease-out,\x20opacity\x200.3s\x20ease-out;\x20/*\x20Add\x20opacity\x20to\x20the\x20transition\x20*//*\x20animate\x20height\x20changes\x20*/\x0a\x20\x20\x20\x20padding:\x204px;\x0a}\x0a\x20\x20\x0a\x20\x20.iframe-container\x20.markdown-preview\x20{\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20max-height:\x20300px;\x20/*\x20set\x20maximum\x20height\x20*/\x0a\x20\x20\x20\x20overflow-y:\x20auto;\x20/*\x20show\x20scrollbars\x20when\x20needed\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20\x0a\x0a\x0a\x0a\x0a\x0a.button-row{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20justify-content:\x20last\x20baseline;\x0a\x20\x20\x20\x20gap:\x2010px;\x0a\x20\x20\x20\x20flex-direction:\x20row;\x0a\x20\x20\x20\x20background-color:\x20transparent;\x0a}\x0a\x0a#quiz-form\x20{\x0a\x20\x20\x20\x20margin-bottom:\x201rem;\x20/*\x20Tailwind\x20class\x20mb-4\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20#submit-quiz-btn\x20{\x0a\x20\x20\x20\x20margin-top:\x201rem;\x20/*\x20Tailwind\x20class\x20mt-4\x20*/\x0a\x20\x20\x20\x20width:\x20100%;\x20/*\x20Tailwind\x20class\x20w-full\x20*/\x0a\x20\x20\x20\x20background-color:\x20black;\x20/*\x20Tailwind\x20class\x20bg-blue-500\x20*/\x0a\x20\x20\x20\x20color:\x20white;\x20/*\x20Tailwind\x20class\x20text-white\x20*/\x0a\x20\x20\x20\x20padding:\x200.5rem\x201rem;\x20/*\x20Tailwind\x20classes\x20px-4\x20py-2\x20*/\x0a\x20\x20\x20\x20border-radius:\x200.25rem;\x20/*\x20Tailwind\x20class\x20rounded\x20*/\x0a\x20\x20\x20\x20transition:\x20background-color\x200.2s;\x20/*\x20Tailwind\x20hover\x20state\x20*/\x0a\x20\x20\x20\x20margin-bottom:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20#submit-quiz-btn:hover\x20{\x0a\x20\x20\x20\x20background-color:\x20#2779bd;\x20/*\x20Tailwind\x20class\x20hover:bg-blue-600\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20#quiz\x20form{\x0a\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20/*\x20flex-direction:\x20column;\x20*/\x0a\x20\x20\x20\x20box-shadow:\x200\x200\x200px\x200\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20}\x0a\x0a\x20\x20#quiz\x20h4\x20{\x0a\x20\x20\x20\x20font-size:\x2016px;\x20/*\x20Change\x20this\x20value\x20to\x20adjust\x20the\x20font\x20size\x20*/\x0a\x20\x20}\x0a\x0a\x20#quiz\x20ul\x20{\x0a\x20\x20\x20\x20list-style-type:\x20none;\x0a\x20\x20}\x0a\x0a\x20\x20#result\x20{\x0a\x20\x20\x20\x20margin-top:\x201rem;\x20/*\x20Tailwind\x20class\x20mt-4\x20*/\x0a\x20\x20\x20\x20text-align:\x20center;\x20/*\x20Tailwind\x20class\x20text-center\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20details\x20>\x20.spoiler-content,\x0a\x20\x20details\x20>\x20p,\x0a\x20\x20details\x20>\x20em\x20{\x0a\x20\x20\x20\x20color:\x20black;\x0a\x20\x20\x20\x20font-style:\x20normal\x20!important;\x20/*\x20This\x20will\x20override\x20other\x20styles\x20unless\x20they\x20also\x20use\x20!important\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20.correct-answer::after\x20{\x0a\x20\x20\x20\x20content:\x20\x27✅\x27;\x0a\x20\x20\x20\x20color:\x20green;\x0a\x20\x20\x20\x20margin-right:\x208px;\x0a}\x0a.wrong-answer::after\x20{\x0a\x20\x20\x20\x20content:\x20\x27❌\x27;\x0a\x20\x20\x20\x20color:\x20#f87171;\x0a\x20\x20\x20\x20margin-left:\x208px;\x0a}\x0a\x0a\x0a/*\x20Style\x20adjustments\x20*/\x0a\x20.icon-button\x20{\x0a\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20padding:\x2010px\x2020px;\x0a\x20\x20\x20\x20background-color:\x20#000;\x20/*\x20Make\x20buttons\x20black\x20*/\x0a\x20\x20\x20\x20color:\x20#fff;\x20/*\x20Text\x20color\x20white\x20for\x20contrast\x20*/\x0a\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20border-radius:\x205px;\x0a\x20\x20\x20\x20margin:\x2020px;\x0a\x20\x20}\x0a/*\x20/////////////////////////////////////////////////////////////////////\x20*/\x0a\x20\x20\x20\x20/*\x20General\x20styles\x20for\x20the\x20slider\x20*/\x0a\x20\x20input[type=range]\x20{\x0a\x20\x20\x20\x20-webkit-appearance:\x20none;\x20/*\x20Override\x20default\x20CSS\x20styles\x20*/\x0a\x20\x20\x20\x20appearance:\x20none;\x0a\x20\x20\x20\x20width:\x20100%;\x20/*\x20Full-width\x20*/\x0a\x20\x20\x20\x20height:\x205px;\x20/*\x20Specified\x20height\x20*/\x0a\x20\x20\x20\x20background:\x20black;\x20/*\x20Black\x20track\x20*/\x0a\x20\x20\x20\x20outline:\x20none;\x20/*\x20Remove\x20outline\x20*/\x0a\x20\x20\x20\x20opacity:\x200.7;\x20/*\x20Partial\x20transparency\x20*/\x0a\x20\x20\x20\x20transition:\x20opacity\x20.2s;\x20/*\x20Transition\x20for\x20the\x20slider\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a/*\x20Initially\x20hide\x20the\x20popup\x20div\x20*/\x0a\x0a/*\x20Show\x20the\x20popup\x20div\x20when\x20hovering\x20over\x20the\x20button\x20or\x20the\x20popup\x20div\x20itself\x20*/\x0a.hover-btn:hover\x20+\x20.popup-content,\x20.popup-content:hover\x20{\x0a\x20\x20visibility:\x20visible;\x0a\x20\x20opacity:\x201;\x0a\x20\x20transition-delay:\x200s;\x20/*\x20Make\x20popup\x20appear\x20immediately\x20*/\x0a}\x0a\x20\x20\x0a\x20\x20/*\x20Style\x20for\x20Webkit\x20browsers\x20like\x20Chrome,\x20Safari\x20*/\x0a\x20\x20input[type=range]::-webkit-slider-thumb\x20{\x0a\x20\x20\x20\x20-webkit-appearance:\x20none;\x20/*\x20Override\x20default\x20CSS\x20styles\x20*/\x0a\x20\x20\x20\x20appearance:\x20none;\x0a\x20\x20\x20\x20width:\x2025px;\x20/*\x20Width\x20of\x20the\x20thumb\x20*/\x0a\x20\x20\x20\x20height:\x2025px;\x20/*\x20Height\x20of\x20the\x20thumb\x20*/\x0a\x20\x20\x20\x20background:\x20black;\x20/*\x20Black\x20thumb\x20*/\x0a\x20\x20\x20\x20cursor:\x20pointer;\x20/*\x20Cursor\x20on\x20hover\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Style\x20for\x20Mozilla\x20Firefox\x20*/\x0a\x20\x20input[type=range]::-moz-range-thumb\x20{\x0a\x20\x20\x20\x20width:\x2025px;\x20/*\x20Width\x20of\x20the\x20thumb\x20*/\x0a\x20\x20\x20\x20height:\x2025px;\x20/*\x20Height\x20of\x20the\x20thumb\x20*/\x0a\x20\x20\x20\x20background:\x20black;\x20/*\x20Black\x20thumb\x20*/\x0a\x20\x20\x20\x20cursor:\x20pointer;\x20/*\x20Cursor\x20on\x20hover\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Style\x20for\x20the\x20focus\x20state\x20*/\x0a\x20\x20input[type=range]:focus\x20{\x0a\x20\x20\x20\x20outline:\x20none;\x20/*\x20Remove\x20the\x20outline\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Additional\x20style\x20for\x20the\x20focus\x20state\x20on\x20Webkit\x20browsers\x20*/\x0a\x20\x20input[type=range]:focus::-webkit-slider-thumb\x20{\x0a\x20\x20\x20\x20background:\x20#333;\x20/*\x20Darker\x20shade\x20when\x20focused\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Additional\x20style\x20for\x20the\x20focus\x20state\x20on\x20Mozilla\x20Firefox\x20*/\x0a\x20\x20input[type=range]:focus::-moz-range-thumb\x20{\x0a\x20\x20\x20\x20background:\x20#333;\x20/*\x20Darker\x20shade\x20when\x20focused\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Show\x20the\x20popup\x20div\x20on\x20hover\x20*/\x0a\x20\x20.hover-btn:hover\x20+\x20.popup-content,\x20.popup-content:hover\x20{\x0a\x20\x20\x20\x20display:\x20block;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Style\x20for\x20the\x20slider\x20*/\x0a\x20\x20.slider\x20{\x0a\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20margin:\x2020px\x200;\x0a\x20\x20\x20\x20\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Slider\x20labels\x20*/\x0a\x20\x20.slider-labels\x20{\x0a\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Style\x20adjustments\x20for\x20checkboxes\x20*/\x0a\x20\x20.checkbox-container\x20{\x0a\x20\x20\x20\x20margin:\x2010px\x200;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20Making\x20the\x20icons\x20black,\x20assuming\x20SVG\x20icons\x20*/\x0a\x20\x20.icon-button\x20img\x20{\x0a\x20\x20\x20\x20filter:\x20brightness(0)\x20invert(0);\x20/*\x20A\x20general\x20way\x20to\x20make\x20images\x20black\x20*/\x0a\x20\x20}\x0a\x0a\x20\x20.icon-button\x20{\x0a\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20margin:\x20auto;\x0a\x20\x20}\x0a\x0a\x20\x20.button-and-popup-container\x20{\x0a\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20display:\x20inline-block;\x20/*\x20Or\x20any\x20other\x20display\x20type\x20that\x20suits\x20your\x20layout\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20.settings-button:hover\x20+\x20.popup-content,\x0a.popup-content:hover\x20{\x0a\x20\x20visibility:\x20visible;\x20/*\x20Show\x20the\x20popup\x20*/\x0a\x20\x20opacity:\x201;\x0a\x20\x20transition:\x20opacity\x200.5s\x20ease;\x0a\x20\x20transition-delay:\x200s;\x20/*\x20React\x20immediately\x20when\x20hovered\x20*/\x0a}\x0a\x0a\x0a/*\x20Initially\x20hide\x20the\x20modal\x20*/\x0a.modal\x20{\x0a\x20\x20display:\x20none;\x0a\x20\x20position:\x20fixed;\x0a\x20\x20z-index:\x20100;\x0a\x20\x20left:\x2050%;\x0a\x20\x20top:\x2050%;\x0a\x20\x20padding:\x2010px;\x0a\x20\x20width:\x20fit-content;\x0a\x20\x20height:\x20fit-content;\x0a\x20\x20transform:\x20translate(-50%,\x20-50%);\x20/*\x20Center\x20the\x20modal\x20*/\x0a\x20\x20/*\x20overflow:\x20auto;\x20*/\x0a\x20\x20/*\x20background-color:\x20rgba(0,\x200,\x200,\x200.4);\x20*/\x0a}\x0a\x0a/*\x20#popover-container\x20{\x0a\x20\x20position:\x20fixed;\x20\x20\x0a\x20\x20z-index:\x201000;\x20\x20\x0a\x20\x20top:\x2050%;\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20left:\x2050%;\x0a\x20\x20transform:\x20translate(-50%,\x20-50%);\x20\x20\x0a}\x20*/\x0a\x0a\x0a\x0a#popover-container\x20.overflow-auto\x20{\x0a\x20\x20max-height:\x20250px;\x0a\x20\x20overflow:\x20auto;\x0a}\x0a\x0a/*\x20Modal\x20Content\x20*/\x0a.modal-content\x20{\x0a\x20\x20background-color:\x20#fefefe;\x0a\x20\x20margin:\x2015%\x20auto;\x0a\x20\x20padding:\x2020px;\x0a\x20\x20border:\x201px\x20solid\x20#888;\x0a\x20\x20width:\x2080%;\x0a}\x0a\x0a/*\x20The\x20Close\x20Button\x20*/\x0a.close\x20{\x0a\x20\x20color:\x20#aaaaaa;\x0a\x20\x20float:\x20right;\x0a\x20\x20font-size:\x2028px;\x0a\x20\x20font-weight:\x20bold;\x0a}\x0a\x0a.close:hover,\x0a.close:focus\x20{\x0a\x20\x20color:\x20black;\x0a\x20\x20text-decoration:\x20none;\x0a\x20\x20cursor:\x20pointer;\x0a}\x0a\x0a\x0a\x0a@keyframes\x20fadeInUp\x20{\x0a\x20\x20from\x20{\x20opacity:\x200;\x20transform:\x20translateY(20px);\x20}\x0a\x20\x20to\x20{\x20opacity:\x201;\x20transform:\x20translateY(0);\x20}\x0a}\x0a@keyframes\x20fadeOutDown\x20{\x0a\x20\x20from\x20{\x20opacity:\x201;\x20transform:\x20translateY(0);\x20}\x0a\x20\x20to\x20{\x20opacity:\x200;\x20transform:\x20translateY(20px);\x20}\x0a}\x0a.animate-fadeInUp\x20{\x0a\x20\x20animation:\x20fadeInUp\x200.5s\x20ease-out\x20forwards;\x0a}\x0a.animate-fadeOutDown\x20{\x0a\x20\x20animation:\x20fadeOutDown\x200.5s\x20ease-out\x20forwards;\x0a}\x0a\x0a.rotate-180\x20{\x0a\x20\x20transform:\x20rotate(180deg);\x0a}\x0a\x0a\x0a#enter-btn\x20{\x0a\x20\x20top:\x20-0.3rem;\x20/*\x20Moves\x20the\x20button\x20up\x20by\x200.5\x20rem\x20*/\x0a}\x0a\x0a\x0a/*\x20HEADINGS\x20LISTS\x20*/\x0a\x0a/*\x20Overriding\x20Tailwind\x20styles\x20with\x20higher\x20specificity\x20*/\x0a\x20\x20/*\x20For\x20headers\x20*/\x0a\x20\x20h1\x20{\x0a\x20\x20\x20\x20font-size:\x202rem;\x0a\x20\x20\x20\x20font-weight:\x20700;\x0a\x20\x20}\x0a\x0a\x20\x20h2\x20{\x0a\x20\x20\x20\x20font-size:\x201.5rem;\x0a\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20...\x20include\x20your\x20other\x20styles\x20...\x20*/\x0a\x0a\x20\x20/*\x20For\x20unordered\x20lists\x20*/\x0a\x20\x20ul\x20{\x0a\x20\x20\x20\x20list-style-type:\x20disc;\x0a\x20\x20\x20\x20padding-left:\x201.5rem;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20For\x20ordered\x20lists\x20*/\x0a\x20\x20ol\x20{\x0a\x20\x20\x20\x20list-style-type:\x20decimal;\x0a\x20\x20\x20\x20padding-left:\x201.5rem;\x0a\x20\x20}\x0a\x0a\x20\x20/*\x20For\x20list\x20items\x20*/\x0a\x20\x20li\x20{\x0a\x20\x20\x20\x20margin-bottom:\x200.5rem;\x0a\x20\x20}\x0a\x0a\x20\x20ul,\x20ol\x20{\x0a\x20\x20\x20\x20list-style-type:\x20none;\x20/*\x20Removes\x20the\x20default\x20list-style\x20*/\x0a\x20\x20\x20\x20padding:\x200;\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/*\x20Removes\x20the\x20default\x20padding\x20*/\x0a\x20\x20\x20\x20margin:\x200;\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/*\x20Removes\x20the\x20default\x20margin\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x0a\x20\x20/*\x20LIGHT\x20MODE\x20//\x20/\x20//\x20DARK\x20MODE\x20*/\x0a\x20\x20\x0a\x20\x20.dark-mode\x20{\x0a\x20\x20\x20\x20/*\x20--background-color:\x20#1e1e1e;\x20*/\x0a\x20\x20\x20\x20--text-color:\x20black;\x0a\x20\x20\x20\x20/*\x20--border-color:\x20#333;\x20*/\x0a\x20\x20\x20\x20--link-color:\x20#4ea0f6;\x0a\x20\x20\x20\x20/*\x20--secondary-background-color:\x20#2a2a2a;\x20*/\x0a}\x0a\x0a.dark-mode\x20{\x0a\x20\x20\x20\x20/*\x20background-color:\x20var(--background-color);\x20*/\x0a\x20\x20\x20\x20color:\x20var(--text-color);\x0a}\x0a\x0a.dark-mode\x20a\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x0a}\x0a\x0a.dark-mode\x20.secondary-background\x20{\x0a\x20\x20\x20\x20/*\x20background-color:\x20var(--secondary-background-color);\x20*/\x0a}\x0a\x0a.dark-mode\x20.bordered\x20{\x0a\x20\x20\x20\x20/*\x20border:\x201px\x20solid\x20var(--border-color);\x20*/\x0a}\x0a\x0a\x0a.light-mode\x20{\x0a\x20\x20--background-color:\x20#ffffff;\x0a\x20\x20--text-color:\x20#333333;\x0a\x20\x20--border-color:\x20#ddd;\x0a\x20\x20--link-color:\x20#007bff;\x0a\x20\x20--secondary-background-color:\x20#f9f9f9;\x0a}\x0a\x0a.light-mode\x20{\x0a\x20\x20background-color:\x20var(--background-color);\x0a\x20\x20color:\x20var(--text-color);\x0a}\x0a\x0a.light-mode\x20a\x20{\x0a\x20\x20color:\x20var(--link-color);\x0a}\x0a\x0a.light-mode\x20.secondary-background\x20{\x0a\x20\x20background-color:\x20var(--secondary-background-color);\x0a}\x0a\x0a.light-mode\x20.bordered\x20{\x0a\x20\x20border:\x201px\x20solid\x20var(--border-color);\x0a}\x0a\x0a\x0a.icon-mini\x20{\x0a\x20\x20height:\x201rem;\x0a\x20\x20width:\x201rem;\x0a}\x0a\x0a\x0a/*\x20Add\x20the\x20CSS\x20class\x20for\x20the\x20button\x20*/\x0a.followup-button\x20{\x0a\x20\x20cursor:\x20pointer;\x20/*\x20Optional:\x20Changes\x20the\x20mouse\x20cursor\x20on\x20hover\x20*/\x0a}\x0a\x0a/*\x20Define\x20the\x20hover\x20state\x20for\x20the\x20button\x20*/\x0a.followup-button:hover\x20{\x0a\x20\x20color:\x20purple;\x20/*\x20Change\x20text\x20color\x20to\x20purple\x20on\x20hover\x20*/\x0a}','\x1b[3m\x1b[2m','ds_priority_change_priority','TriangleCenter','╕','(that|the)\x20[#Gerund\x20#PresentTense]','charset','setPilotCameraDirection','$fflush','device_mouse_check_button','PermutationOrder','HeatTemperatureCondition','⤚','ButtonFunction','ctrlSetFontHeightSecondary','GeometricTransformation3DBoxOptions','InverseEllipticNomeQ','StraussHardcorePointProcess','Abbreviation','ord','$Messages','struct','keyboard_set_numlock','$InterfaceEnvironment','EulerAngles','sixtieth','FontProperties','Compress','erfc','$SoundDisplayFunction','true\x20false\x20nothing','AutoRefreshed','carrot','VideoStream','div','TimesBy','macCatalystApplicationExtension','scale_?y','EdgeValueRange','csp','shiftOut','get_open_filename_ext','[(march|may)]\x20#Adverb','PAUSE','tornados','findIf','main','move_outside_solid','htmlbars','MultinomialDistribution','addCuratorCameraArea','MinPointSeparation','SequenceReverseLayer','setInterval','PseudoInverse','os_wiiu','sprite_get_width','sha384sum','DVAR','$pow','NRoots','VarianceEquivalenceTest','ZeroTest','alter\x20table','ACCRINT','#Possessive','PERCENTRANK','missionNamespace','WriteRegNone','setVectorDirAndUp','StrokeForm','1:xes¦2:zzes,ches,shes,sses¦3:iases¦2y:llies,plies¦1y:cies,bies,ties,vies,nies,pies,dies,ries,fies¦:s','TreeMapAt','GeoGridLines','timeline_index','Mean','DivideError','−','src_host_strict','u-pronoun-1','achar','ScrollingOptions','removeEventHandler','ius','Heap','Replace','terrainIntersect','MikroTik\x20RouterOS\x20script','DefaultFrameStyle','AudioAnnotationLookup','FeatureImpactPlot','ElementwiseLayer','GrowCutComponents','ď','json','cameraOn','gp_axislh','gesture_pinch_distance','ℏ','ImageAlign','make_shared_for_overwrite','ctrlSetTooltipColorShade','intros','ctrlSetFontP','regexp_contains','persistent','stable-foundations','groupIconsVisible','FontSubstitutions','ev_destroy','HalftoneShading','GeoHemisphere','diag_pre_multiply','#Infinitive\x20[that]\x20','reversedMouseY','suffix','qlog','(eastern|mountain|pacific|central|atlantic)\x20(standard|daylight|summer)?\x20time','scrollIntoView',':-|','LimitsPositioning','╪','IntegerExponent','yield','playMelody','makensis','qatan2','Abs','beginKeywords','matrix_world','achievement_show_achievement','dim','FeedbackSectorStyle','BitSet','subroutine|10','true\x20false\x20null','clearScreen','syswrite','waterfall','ugc_match_WebGuides','DialogIndent','seem-confused','attachInterrupt','any-link','unordered','captive','quintillion','network_send_udp','flex\x20items-center\x20text-blue-400\x20dark:text-blue-400\x20bg-transparent\x20p-1\x20rounded-lg\x20animate-fadeInUp','stance','isGroupDeletedWhenEmpty','NeymanScottPointProcess','Ŧ','idim','WordCount','log_modified_bessel_first_kind','$BaseDirectory','ImagePosition','assembler','YuleDissimilarity','read-only','priv','SucceedsSlantEqual','allowService','SYSTEM_RESET','Display','^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)]\x20#Noun','float32','ctrlSetTooltipColorText','HEX2DEC','csplit','xs:date','choices','eigendecompose_sym','$PermissionsGroupBase','DateRange','pt_shape_sphere','MardiaSkewnessTest','versionString','$CookieStore','impl','tell-him','AddOnHelpPath','#PhrasalVerb\x20#Particle\x20#Preposition\x20[#PresentTense]','×ΧχϗϰХхҲҳӼӽӾӿ','contract','Vala','\x5cb[A-Z][\x5cw\x27]*','exact','GraphHighlight','$coverage_merge','club','cqsin','GraphicsColor','\x5cw[\x5cw\x20:\x5c/.-]*:(?=[\x20\x09]|$)','win8_device_touchscreen_available','nrbquote','delta_time','part_system_automatic_update','margin-inline','CRLF','\x5c$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+','isolation','Sequence','C_NUMBER_RE','getRepairCargo','$assertkill','searchreplace','$CloudObjectURLType','ttscommit','Package','swimInDepth','trigamma','mipsasm','border-image-repeat','surface_getpixel_ext','random_get_seed','date_year_span','SpanMinSize','Ð','DeleteAdjacentDuplicates','protected','SelectionEvaluateCreateCell','PrintingStyleEnvironment','district','ANALOG_MESSAGE','SpatialBoundaryCorrection','ConstantImage','NetUnfold','q[qwxr]?\x5cs*\x5c|','≻','TreeData','ev_mouse_wheel_down','Polyhedron','SetOverwrite','needs','SystemsConnectionsModel','ContainsAny','SuzukiDistribution','qleft','QuartileDeviation','network_send_broadcast','hasattr','⦥','≰','FileNameSplit','ShrinkingDelay','strlen','Video','co_sum','execEditorScript','shortreal','Depth','mizar','iap_activate','Clamp','Acronym','CompilerCallback','(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)','DiscreteVariables','asset_script','WriteRegStr','MKD$','isPositive','array_put','write!',';/?:@&=+$,-_.!~*\x27()#','#Month\x20the\x20#Value','parent','national','MaxPlotPoints','AISFinishHeal','lag','ScriptRules','[\x5cn]','eoshift','raw','isPivot','bm_normal','VIETNAMESE_CHARSET','ExternalEvaluate','(dc|atlanta|minnesota|manchester|newcastle|sheffield)\x20united','$CompilerEnvironment','draw_clear_alpha','ŋ','MoleculeRecognize','MultiedgeStyle','FeatureSetById','gesture_get_tap_count','audio_sound_set_listener_mask','clearBackpackCargo','pragma','Spacings','initial','addMusicEventHandler','ScrollPosition','TREND','customary','get','CLASS_REFERENCE','WeightedAdjacencyMatrix','surface_reset_target','PairedZTest','nds','make_unique','generateSystemPrompt','NetChain','compquote','brainfuck','[$][a-fA-F0-9]+','UNDERSCORE_IDENT_RE','(til|until)','ArrayMesh','AAAA','atomic_uint\x20bool\x20bvec2\x20bvec3\x20bvec4\x20dmat2\x20dmat2x2\x20dmat2x3\x20dmat2x4\x20dmat3\x20dmat3x2\x20dmat3x3\x20dmat3x4\x20dmat4\x20dmat4x2\x20dmat4x3\x20dmat4x4\x20double\x20dvec2\x20dvec3\x20dvec4\x20float\x20iimage1D\x20iimage1DArray\x20iimage2D\x20iimage2DArray\x20iimage2DMS\x20iimage2DMSArray\x20iimage2DRect\x20iimage3D\x20iimageBuffer\x20iimageCube\x20iimageCubeArray\x20image1D\x20image1DArray\x20image2D\x20image2DArray\x20image2DMS\x20image2DMSArray\x20image2DRect\x20image3D\x20imageBuffer\x20imageCube\x20imageCubeArray\x20int\x20isampler1D\x20isampler1DArray\x20isampler2D\x20isampler2DArray\x20isampler2DMS\x20isampler2DMSArray\x20isampler2DRect\x20isampler3D\x20isamplerBuffer\x20isamplerCube\x20isamplerCubeArray\x20ivec2\x20ivec3\x20ivec4\x20mat2\x20mat2x2\x20mat2x3\x20mat2x4\x20mat3\x20mat3x2\x20mat3x3\x20mat3x4\x20mat4\x20mat4x2\x20mat4x3\x20mat4x4\x20sampler1D\x20sampler1DArray\x20sampler1DArrayShadow\x20sampler1DShadow\x20sampler2D\x20sampler2DArray\x20sampler2DArrayShadow\x20sampler2DMS\x20sampler2DMSArray\x20sampler2DRect\x20sampler2DRectShadow\x20sampler2DShadow\x20sampler3D\x20samplerBuffer\x20samplerCube\x20samplerCubeArray\x20samplerCubeArrayShadow\x20samplerCubeShadow\x20image1D\x20uimage1DArray\x20uimage2D\x20uimage2DArray\x20uimage2DMS\x20uimage2DMSArray\x20uimage2DRect\x20uimage3D\x20uimageBuffer\x20uimageCube\x20uimageCubeArray\x20uint\x20usampler1D\x20usampler1DArray\x20usampler2D\x20usampler2DArray\x20usampler2DMS\x20usampler2DMSArray\x20usampler2DRect\x20usampler3D\x20samplerBuffer\x20usamplerCube\x20usamplerCubeArray\x20uvec2\x20uvec3\x20uvec4\x20vec2\x20vec3\x20vec4\x20void','s_close','FindFaces','color-gamut','AlphaChannel','other','SplObjectStorage','DatabinUpload','reintroduce','#citation','int','TINV','|[.]|$)|','pt_shape_cloud','BondList','CreatePacletArchive','mutate','formationPosition','RemoteBatchSubmissionEnvironment','GridLines','phy_particle_flag_colormixing','baremodule','AbsoluteTime','echoti','WordStem','ERF.PRECISE','new_line','hint','qlog10','CodeAssistOptions','binocularMagazine','place-possessive','timeline_max_moment','kbv_returnkey_join','DigitQ','⫳','ImageEffect','ov_settings','argument2','debug_event','InputPorts','getSoundControllerResult','even\x20(while|if|though)','RightTriangleEqual','Hypergeometric2F1Regularized','NetMeasurements','ZeroWidthTimes','(%)?','actionKeysNames','StruveL','Ý','#Person\x20is','PermissionsGroupMemberQ','decltype\x5c(auto\x5c)','BSplineSurface3DBoxOptions','object_set_sprite','MorphologicalBranchPoints','@','isSteamOverlayEnabled','(#PresentTense|#PastTense)\x20[#Copula]$','camera_set_default','layer_element_move','sqlwarning','isPressed','\x5cb(\x5cd+|0[0-9A-Za-z]+)\x5c.?\x5cb','css','Tan','true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y','rotate_?x','AttachCell',')|@','ƑƒϜϝӺӻҒғſ','Tasks','isset','lbAdd','$DateStringFormat','mouseReleased','ClickPane','object-src','NoInline','xs:gDay','TextAlignment','border-inline-style','PanelBox','strcmp','GeoArea','topk','building','showLegend','endassociate','file_text_write_string','loadPixels','SetOptions','menuHover','western-line','(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma)\x20#ProperNoun','shiftIn','RSolveValue','InputAssumptions','io_clear','SymmetricGroup','$dist_erlang','Accuracy','TestReportObject','RandomColor','#[a-zA-Z_]\x5cw*\x5c$?','isTurnedOut','lgamma','DiscreteRiccatiSolve','ComplexF16','lnbSetCurSelRow','isView','ppEffectDestroy','trim_array','getArray','ConnectLibraryCallbackFunction','reshape','EdgeThickness','canAddItemToVest','loop\x20for\x20declare\x20others','ConvolutionLayer','InstallColors','Đ','WolframAlpha','sat','⊂','endWrite','regr_syy','layer_hspeed','\x5c$+','FALSE|0','LeftUpVector','⋆','$1ies','isPiPEnabled','𝔼','A_[a-zA-Z0-9]+','KolmogorovSmirnovTest','alpha','isLaserOn','border-inline-start-style','TrackSpeedWindow','⊯','sherwood-anderson','ksh','das','border-block','make','$ResourceSystemPath','isEmpty','\x0a','date_trunc_str','cdbl','ars','@protocol','script-src','TimeSeriesShift','SingularValues','pixelGridNoUIScale','uiNamespace','way-adj','$fmonitorh','◺','physics_joint_pulley_create','consteval','surface_free','DPRODUCT','readJoystickSwitch','steam_initialised','Point3DBox','placeholder-shown','OrderDistribution','camera','xml','TracePrint','6320430QGaJRm','date_get_day_of_year','line-height','í','pushStyle','in\x20[#Infinitive]','COMMENT','⪔','toPercentage','timeline_clear','ADDRESS','PrimaryPlaceholder','qualified','∾','string_replace_all','required','SplineDegree','BAHTTEXT','MaxFilter','#Gerund\x20#Determiner\x20[#Infinitive]','mouse_wheel_down','polar','lgt','ctrlMapWorldToScreen','@\x5c[','TreeCases','TensorQ','FileType','URLShorten','memcmp','npv','asserterror','people','ds_map_add_map','#list-container','markup','EulerCharacteristic','aspectOf','2-tagYear-far','SmoothPointDensity','Default3DTool','private','#Date\x20(on|this|next|last|during)?\x20[sun]','#Person\x20#Person\x20the?\x20#RomanNumeral','CallInstDLL','SARIMAProcess','setWaypointStatements','LOGNORMDIST','phy_joint_anchor_2_y','∝','saveJoysticks','\x5c\x5c\x5cn','OUT','event_type','reveal','Indexed','([0-9a-fA-F]_*)+','rupees','draw_sprite_tiled','getvarc','\x5cb([A-Za-z0-9_\x5c-]+)\x5cb','ComponentMeasurements','tvSetPictureRightColor','RegionDimension','DateFunction','InsertionPointObject','Permissions','TrapEnterKey','tvSetValue','street','ω','begin_partition','MakeBoxes','IntervalMarkers','unquote','matrix_view','os_get_language','arctan2','display_mouse_set','SubsetReplace','Authenticate','$assertfailon','hippopotami','Complex','physics_particle_delete_region_box','PolynomialReduce','mapfile','StringReplace','Horizontal','showNewEditorObject','ds_type_list','eads','SEC','↚','enginesRpmRTD','tcl','chol2inv','BEEP','HelpBrowserSettings','FiniteGroupData','grid-template-columns','pr_linestrip','alert','MultiplicativeOrder','syscall','game_display_name','regexp','UrlEncode','ppEffectCommitted','document-node','forcenestedloop','Plural','𝕩','AutoAction','⟧','vertex_begin','NHoldAll','CriticalSection','clip-path','getMarkerSize','⋽','keyboard_virtual_show','WriteUninstaller','Adverb\x20#Comparative','true¦0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng','view_get_xport','LinkLaunch','ErrorException','SequencePredictorFunction','Underlined','DirectoryName','DetailPrint','Ň','JacobiP','extends\x20with','STRING$','firstfast','GraphSum','[qs]__?[a-zA-Z](?:_?[a-zA-Z])+','⪹','⥐','noshowcancelled','lastTerms','NotebookRead','buffer_u8','curobs','gml',':-\x5c|-->','DeleteChannel','Step','$TracePostAction','SetDelayed','angelscript','layer_tile_y','MovieData','‾','ugc_match_Collections','supra','▪','ListQ','less','copula-noun-lastname','Resolve','$exp','cqcos','setWaypointType','translate',')\x20{','orphans','*\x0a:::\x0a\x0a','requires_stored_property_inits','$steady_gclk','EllipticNomeQ','DrawEdges','SetErrorLevel','date_inc_second','string_length','smoothstep','CarlsonRM','[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*','ds_grid_get_disk_max','CityData','Irrational','ev_global_gesture_rotate_start','coffee','ResourceSystemPath','TokenWords','⥞','overlay-progressive','ArrayComponents','ftype','char16_t','Array','system','bm_zero','ers','some\x20#Adjective\x20[#PresentTense]','ControllabilityGramian','PEEK','byFreq','lbSetPictureRightColorSelected','Cos','log_inv_logit_diff','printfn','splitAfter','getTerrainHeightASL','fb_login_forcing_safari','circuses','⤓','DoubleEndedIterator','MovingMap','elsewhere','gradle','roadAt','room','pass','nav-up','regexes','i32','draw_surface_tiled','Scheme','position_meeting','WriteLine','canSuspend','FeatureSetByPortalItem','is_evar','DiscreteLimit','PacletDataRebuild','escape','AVEDEV','NIntegrate','f_equal','steam_ugc_query_set_search_text','^(\x5cs*)?(class|instance)\x5cb','setSimulWeatherLayers','╜','T.DIST.2T','getTiParameters','comparative','display_set_timing_method','CloudBase','phy_position_xprevious','$RecursionLimit','Image3DProjection','magazineTurretAmmo','layer_depth','Unit','$async$and$array','WienerProcess','InverseFourierSinTransform','FailureAction','ClearErrors','ones_vector','https','pull0','TIMER','CirclePoints','WeakReference','scripting','(#Place|#Address)+','onShowNewObject','(?=^.+?\x5cn[=-]{2,}$)','IfCompiled','instance_exists','InverseFourierCosTransform','qcos','fcntl','aint','show_debug_overlay','bsCount','SquareFreeQ','year','ADMINTOOLS','health','%Person|Noun%\x20#Acronym?\x20#ProperNoun','Monitor','⫑','StateSpaceTransform','setWaypointTimeout','Therefore','PUT','clearItemCargoGlobal','kbv_type_phone_name','JSON','border-image-outset','Update','show_progress','UnsameQ','⫔','handgunWeapon','ListPlot3D','setFlagOwner','Vee','\x5c*\x5c/','HITSCentrality',')\x5cs','to-dream-of','Intl','diagnoses','⥭','error_last','room_previous','isEqualRef','regr_slope','near','SpanFromBoth','be-walking','lbSortBy','OrderingLayer','(is|was)\x20#Adverb?\x20[no]','leave','pulseIn','view_get_surface_id','menuShortcut','#Adverb+$','Colon','file_text_open_write','getCalculatePlayerVisibilityByFriendly','tilemap_set_mask','win8_license_initialize_sandbox','_beginMatch','^[(hope|guess|thought|think)]\x20#Pronoun\x20#Verb','attrIndex','simulCloudOcclusion','determiner4','INP','NSIS','diag_dumpCalltraceToLog','best','\x5cb0[xX][\x5cda-fA-F]+(?:_[\x5cda-fA-F]+)*\x5cb','SystemModel','keyTyped','𝕦','KirchhoffGraph','FindVertexCut','BALTIC_CHARSET','keep-playing','pop','ThermometerGauge','‘','AudioTimeStretch','PermutationMatrix','MoleculeFreeQ','RogersTanimotoDissimilarity','border-inline-end-color','frame','erlang','math_set_epsilon','MessageList','although','data\x20family\x20type\x20newtype\x20deriving','ctrlCommitted','skeleton_animation_get_duration','__DIR__','х','NetExternalObject','isWeaponRested','a-noun-inf2','DeviceStreams','weak_ptr','BarnesG','$async$nor$array','keyboard_virtual_height','PImage','BGGradient','DayNightTerminator','physics_particle_get_group_flags','StackBegin','Cchar','notice','ini_key_exists','finfo','EvaluationCell','HorizontalGauge','setTriggerActivation','rules','Stringable','\x5c.\x5cs*','setLightUseFlare','datevalue','bros','setCombatBehaviour','BlockchainKeyEncode','Menu','CircularUnitaryMatrixDistribution','killUnicode','LongLeftRightArrow','⫖','NS_REFINED_FOR_SWIFT','FindNext','⨷','FilePrint','MissingStyle','bezierVertex','RankedMax','Organization','forcedMap','local-link',',\x5cs*,','give_up','display_get_dpi_y','cmpl','LoadCompiledComponent','gonna','audio_sound_gain','worker-src','argument14','StridedVecOrMat','⋛︀','LunarEclipse','crater','string_ord_at','aunties','XMLTemplate','BitGet','⟹','ControlsRendering','sqlexception','ev_left_release','skipSpaces','schema-element','fileevent','ack','⟩','$value$plusargs','iOSApplicationExtension','blvd','InsetBoxOptions','HoldAllComplete','#markdown-preview','reraise','⋫','Adj|Present','(\x5c+|-)\x5cd+','win8_share_text','Keyboard','u128','umask','cr_none','GeoRegionValuePlot','CupCap','\x20\x0a\x20','colorMode','colour_get_blue','outta','lookahead','VideoGenerator','GridBoxSpacings','SeriesTermGoal','PARAMS_CONTAINS','addTorque','EdgeTaggedGraph','ClebschGordan','#Person\x20(jr|sr|md)','draw_text_ext_transformed_colour','flatten','𝓇','merge_colour','\x5c[noprocess\x5c]','Cube','teamMember','VideoCapture','Crosses','RegionMoment','fla','draw_skeleton_time','unitTurret','CanonicalizePolygon','#feedback-iframe','class\x20interface\x20trait','timeline_loop','BorderDimensions','getlocale','vname','CombinedEntityClass','@isFrozen+','DynamicImage','ColorDetect','os_win8native','UpdatePacletSites','selectInput','create','(?:m|qr)?','pwsh','x++','winphone_tile_count','download','$DefaultAudioInputDevice','of_challenge_win','sort_asc','MULTINOMIAL','finally','forever','⋀','all\x5cb','Quantile','each-in','repeated','INTERNAL','[#Hyphenated\x20(#Hyphenated\x20&&\x20#Gerund)]\x20(#Noun|#Conjunction)','GroupOrbits','scope','DayPlus','selectedDropdownValue','phy_collision_x','InverseHaversine','discriminate','use_strict','fixed','DenseArray','|---------|-----|\x0a','⧫','$UserName','[a-z]+\x22\x22\x22','VideoDelete','≫','configOf','ImageConvolve','UnequalTo','NegativeRationals','FontSlant','PositiveRationals','$MaxDisplayedChildren','fft','_null_','FindTextualAnswer','border-left-color','⊟','NDEigensystem','CellHorizontalScrolling','tense','setPitch','Classes','^will\x20have\x20been\x20#Gerund$','LeastSquaresFilterKernel','ImageBoundingBoxes','AcousticSoundSoftCondition','going','filter','Cushort','ztcp','multi_student_t_cholesky','char.escape','Њ','dacctab','vectorCos','margin-block-start','font-weight',')(?!','that-prep','Person|Noun','hex','nextWeatherChange','≨','NProbability','#Noun+','$ServiceCreditsAvailable','ctrlSetModel','steam_upload_score_buffer_ext','ResourceFunction','tilemap_get_cell_x_at_pixel','read-write','os_switch','ds_map_add_list','meta[name=\x22publication-date\x22]','HigmanSimsGroupHS','SplStack','%[a-zA-Z0-9#_$@]+%','ds_list_destroy','deleteTeam','/\x5cd+','Null','GET','ArrayPlot','MODE.SNGL','PartLayer','approx','moveInDriver','⫱','setAttribute','supply0','border-left-width','UInt8','nodes','$UserURLBase','lives','Graphics3D','afterWords','\x5cb([1-9][0-9_]*|0)','sideLogic','strstr','pareto','layer_tile_blend','json_exists','FindLibrary','dinfo','EntityInstance','fullCrew','autoescape','instant-access','$PersistencePath','char\x20uchar\x20unichar\x20int\x20uint\x20long\x20ulong\x20short\x20ushort\x20int8\x20int16\x20int32\x20int64\x20uint8\x20uint16\x20uint32\x20uint64\x20float\x20double\x20bool\x20struct\x20enum\x20string\x20void\x20weak\x20unowned\x20owned\x20async\x20signal\x20static\x20abstract\x20interface\x20override\x20virtual\x20delegate\x20if\x20while\x20do\x20for\x20foreach\x20else\x20switch\x20case\x20break\x20default\x20return\x20try\x20catch\x20public\x20private\x20protected\x20internal\x20using\x20new\x20this\x20get\x20set\x20const\x20stdout\x20stdin\x20stderr\x20var','setStamina','RowAlignments','parseSimpleArray','𝒿','NetPrepend','ffi','TransformationClass','$writeh','MODE.MULT','Ŋ','Dated','LibraryDataType','|[?]|$))+|\x5c/)?','used','have\x20been','VertexComponent','процедура|функция','Ñ','xs:short','⊋︀','#Copula\x20[far\x20too]\x20#Adjective','alter','ControlPlacement','cfg!','UndirectedGraphQ','Subscripted','magenta','contiguous','mineActive','FileNameForms','arcade','MethodOptions','log1m_inv_logit','Person','cluster','peninsula','ArcTanh','EllipticF','itemsWithMagazines','clock_millis','now','vlength','RegularPolygon','$ReleaseNumber','FractionalGaussianNoiseProcess','RebuildPacletData','trans','magazinesDetailUniform','JacobiSD','NumberMarks','split','$|;','PhrasalVerb\x20#Particle','CrossingCount','quad_form_diag','⌖','BasicRecurrentLayer','PixelValuePositions','MapApply','BarcodeImage','template-tag','⥯','toFraction','Sunset','MenuSortingValue','hon','webgl_enabled','ose','AccountingForm','(minus|negative)\x20#Value','animation-duration','EngineEnvironment','⊎','generateonly','subject\x20to','Begin','due-to','NetTrainResultsObject','matrix_power','BubbleChart3D','vol','\x5c.[a-zA-Z-][a-zA-Z0-9_-]*','FullRegion','SliceDensityPlot3D','^//','⋺','JankoGroupJ2','JIS','PolynomialExtendedGCD','Seed','full','FourierSequenceTransform','CheckAll','CoulombH1','⇄','⨒','DynamicObject|10','menuSetURL','ImageDifference','selector-attr','nonatomic','SCSS','ImageCases','file_bin_read_byte','crescent','cdabs','dude-i','beginCamera','keyboard_get_map','\x5c$|\x5c[|%','ExternalValue','\x0a\x0a>|=~|===?|<=>|[<>]=?|\x5c*\x5c*|[-/+%^&*~`|]|\x5c[\x5c]=?)','shownGps','confidence','matrix_stack_set','(\x5cbwith\x5cs+)?\x5cb(function|procedure)\x5cs+','SpanSymmetric','xstart','LOWER_Z','clipboard','phy_joint_angle_limits','display_mouse_get_y','𝔑','Catch','ExportString','LiteralType','enumerator','solve','MODE','URLDownload','NORMSDIST','PearsonDistribution','setDynamicSimulationDistanceCoef','gpu_set_tex_mip_bias','__FUNCTION__','![a-z]*','\x5c$[A-Za-z0-9_]+','currentZeroing','walk-in-on','achievement_load_progress','file_attributes','cos','inv_fft2','nim','Import','Minus','deque','seargeant-john','extends_type_of','lookBehind','had-been','closeNode','RegionMeasure','Verbatim','vk_ralt','$1us','$sampled','⨑','basic','TROFF','#FirstName\x20de\x20#Noun','\x20does\x20not\x20exist\x20in\x20config.','—','layer_sprite_change','IntList','enableEnvironment','Standardized','checkmate-is','aviation','radians','vk_end','noBlink','faled-and-oppressive','MAC_CHARSET','annotation','Uri','Pattern','initialization','PascalDistribution','AnomalyDetector','boolean\x20byte\x20char\x20date\x20decimal\x20double\x20integer\x20long\x20object\x20sbyte\x20short\x20single\x20string\x20uinteger\x20ulong\x20ushort','ContextToFileName','ArrayPlot3D','RecursiveTreeIterator','ev_global_gesture_dragging','#Cardinal\x20#Month','as\x20long\x20as','MoleculeEquivalentQ','setName','OverscriptBoxOptions','$past_gclk','VertexCorrelationSimilarity','c_signed_char','[;}]','explicit','superlative','AbstractVector','draw_sprite_stretched_ext','systemTimeUTC','^(do|does|did|is|was|can|could|will|would|may)\x20#Noun','ranexp','right-of','cbyte','progress','$sin','deleteIdentity','come-and-have','MKS$','⇎','moduli','matrix_build_identity','ctrlSetAutoScrollDelay','missing|5','__slice','sprite_collision_mask','ClusteringComponents','getAudioOptionVolumes','NestedScriptRules','Reserved','Cstring','_emit','RoundToZero','$GeoLocation','createHashMap','copyWaypoints','ctFindHeaderRows','#ce','beforeMatch','lbSetPictureColorSelected','Uint8Array','◃','#Organization+\x20#Possessive','≀','ugc_query_CreatedByFriendsRankedByPublicationDate','⋃','Culong','OVERRIDE','TableForm','changecompany','○','maintain-eye-contact','ImageMesh','AtomCoordinates','mathematica','FromContinuedFraction','LEN','last_value','randomSeed','CoefficientArrays','JoinedCurveBoxOptions','mdivide_right_tri_low','handsHit','even\x20better','^#Modal\x20#Infinitive$','MenuAppearance','struct\x20protocol\x20class\x20extension\x20enum\x20actor','queue','Diagonal','#Value\x20[seconds]','UnionedEntityClass','Sgn','NArgMin','$dumpports','RandomSeed','selector-tag','ComplexF64','\x5cbreturn\x5cs+','ranpoi','PRICEDISC','RadialAxisPlot','a-noun-like','phy_col_normal_y','object','\x5cs*:','ћ','lockCameraTo','prototype','focused','serialEvent','Actor|Verb','vk_right','^[#Adjective]\x20(the|your)\x20#Noun','Infinity','SolidData','IndependentEdgeSetQ','MouseAppearance','sprite_replace','innerWidth','abs\x20acf\x20aconcat\x20aeye\x20amax\x20amean\x20AmericanBinomCall\x20AmericanBinomCall_Greeks\x20AmericanBinomCall_ImpVol\x20AmericanBinomPut\x20AmericanBinomPut_Greeks\x20AmericanBinomPut_ImpVol\x20AmericanBSCall\x20AmericanBSCall_Greeks\x20AmericanBSCall_ImpVol\x20AmericanBSPut\x20AmericanBSPut_Greeks\x20AmericanBSPut_ImpVol\x20amin\x20amult\x20annotationGetDefaults\x20annotationSetBkd\x20annotationSetFont\x20annotationSetLineColor\x20annotationSetLineStyle\x20annotationSetLineThickness\x20annualTradingDays\x20arccos\x20arcsin\x20areshape\x20arrayalloc\x20arrayindex\x20arrayinit\x20arraytomat\x20asciiload\x20asclabel\x20astd\x20astds\x20asum\x20atan\x20atan2\x20atranspose\x20axmargin\x20balance\x20band\x20bandchol\x20bandcholsol\x20bandltsol\x20bandrv\x20bandsolpd\x20bar\x20base10\x20begwind\x20besselj\x20bessely\x20beta\x20box\x20boxcox\x20cdfBeta\x20cdfBetaInv\x20cdfBinomial\x20cdfBinomialInv\x20cdfBvn\x20cdfBvn2\x20cdfBvn2e\x20cdfCauchy\x20cdfCauchyInv\x20cdfChic\x20cdfChii\x20cdfChinc\x20cdfChincInv\x20cdfExp\x20cdfExpInv\x20cdfFc\x20cdfFnc\x20cdfFncInv\x20cdfGam\x20cdfGenPareto\x20cdfHyperGeo\x20cdfLaplace\x20cdfLaplaceInv\x20cdfLogistic\x20cdfLogisticInv\x20cdfmControlCreate\x20cdfMvn\x20cdfMvn2e\x20cdfMvnce\x20cdfMvne\x20cdfMvt2e\x20cdfMvtce\x20cdfMvte\x20cdfN\x20cdfN2\x20cdfNc\x20cdfNegBinomial\x20cdfNegBinomialInv\x20cdfNi\x20cdfPoisson\x20cdfPoissonInv\x20cdfRayleigh\x20cdfRayleighInv\x20cdfTc\x20cdfTci\x20cdfTnc\x20cdfTvn\x20cdfWeibull\x20cdfWeibullInv\x20cdir\x20ceil\x20ChangeDir\x20chdir\x20chiBarSquare\x20chol\x20choldn\x20cholsol\x20cholup\x20chrs\x20close\x20code\x20cols\x20colsf\x20combinate\x20combinated\x20complex\x20con\x20cond\x20conj\x20cons\x20ConScore\x20contour\x20conv\x20convertsatostr\x20convertstrtosa\x20corrm\x20corrms\x20corrvc\x20corrx\x20corrxs\x20cos\x20cosh\x20counts\x20countwts\x20crossprd\x20crout\x20croutp\x20csrcol\x20csrlin\x20csvReadM\x20csvReadSA\x20cumprodc\x20cumsumc\x20curve\x20cvtos\x20datacreate\x20datacreatecomplex\x20datalist\x20dataload\x20dataloop\x20dataopen\x20datasave\x20date\x20datestr\x20datestring\x20datestrymd\x20dayinyr\x20dayofweek\x20dbAddDatabase\x20dbClose\x20dbCommit\x20dbCreateQuery\x20dbExecQuery\x20dbGetConnectOptions\x20dbGetDatabaseName\x20dbGetDriverName\x20dbGetDrivers\x20dbGetHostName\x20dbGetLastErrorNum\x20dbGetLastErrorText\x20dbGetNumericalPrecPolicy\x20dbGetPassword\x20dbGetPort\x20dbGetTableHeaders\x20dbGetTables\x20dbGetUserName\x20dbHasFeature\x20dbIsDriverAvailable\x20dbIsOpen\x20dbIsOpenError\x20dbOpen\x20dbQueryBindValue\x20dbQueryClear\x20dbQueryCols\x20dbQueryExecPrepared\x20dbQueryFetchAllM\x20dbQueryFetchAllSA\x20dbQueryFetchOneM\x20dbQueryFetchOneSA\x20dbQueryFinish\x20dbQueryGetBoundValue\x20dbQueryGetBoundValues\x20dbQueryGetField\x20dbQueryGetLastErrorNum\x20dbQueryGetLastErrorText\x20dbQueryGetLastInsertID\x20dbQueryGetLastQuery\x20dbQueryGetPosition\x20dbQueryIsActive\x20dbQueryIsForwardOnly\x20dbQueryIsNull\x20dbQueryIsSelect\x20dbQueryIsValid\x20dbQueryPrepare\x20dbQueryRows\x20dbQuerySeek\x20dbQuerySeekFirst\x20dbQuerySeekLast\x20dbQuerySeekNext\x20dbQuerySeekPrevious\x20dbQuerySetForwardOnly\x20dbRemoveDatabase\x20dbRollback\x20dbSetConnectOptions\x20dbSetDatabaseName\x20dbSetHostName\x20dbSetNumericalPrecPolicy\x20dbSetPort\x20dbSetUserName\x20dbTransaction\x20DeleteFile\x20delif\x20delrows\x20denseToSp\x20denseToSpRE\x20denToZero\x20design\x20det\x20detl\x20dfft\x20dffti\x20diag\x20diagrv\x20digamma\x20doswin\x20DOSWinCloseall\x20DOSWinOpen\x20dotfeq\x20dotfeqmt\x20dotfge\x20dotfgemt\x20dotfgt\x20dotfgtmt\x20dotfle\x20dotflemt\x20dotflt\x20dotfltmt\x20dotfne\x20dotfnemt\x20draw\x20drop\x20dsCreate\x20dstat\x20dstatmt\x20dstatmtControlCreate\x20dtdate\x20dtday\x20dttime\x20dttodtv\x20dttostr\x20dttoutc\x20dtvnormal\x20dtvtodt\x20dtvtoutc\x20dummy\x20dummybr\x20dummydn\x20eig\x20eigh\x20eighv\x20eigv\x20elapsedTradingDays\x20endwind\x20envget\x20eof\x20eqSolve\x20eqSolvemt\x20eqSolvemtControlCreate\x20eqSolvemtOutCreate\x20eqSolveset\x20erf\x20erfc\x20erfccplx\x20erfcplx\x20error\x20etdays\x20ethsec\x20etstr\x20EuropeanBinomCall\x20EuropeanBinomCall_Greeks\x20EuropeanBinomCall_ImpVol\x20EuropeanBinomPut\x20EuropeanBinomPut_Greeks\x20EuropeanBinomPut_ImpVol\x20EuropeanBSCall\x20EuropeanBSCall_Greeks\x20EuropeanBSCall_ImpVol\x20EuropeanBSPut\x20EuropeanBSPut_Greeks\x20EuropeanBSPut_ImpVol\x20exctsmpl\x20exec\x20execbg\x20exp\x20extern\x20eye\x20fcheckerr\x20fclearerr\x20feq\x20feqmt\x20fflush\x20fft\x20ffti\x20fftm\x20fftmi\x20fftn\x20fge\x20fgemt\x20fgets\x20fgetsa\x20fgetsat\x20fgetst\x20fgt\x20fgtmt\x20fileinfo\x20filesa\x20fle\x20flemt\x20floor\x20flt\x20fltmt\x20fmod\x20fne\x20fnemt\x20fonts\x20fopen\x20formatcv\x20formatnv\x20fputs\x20fputst\x20fseek\x20fstrerror\x20ftell\x20ftocv\x20ftos\x20ftostrC\x20gamma\x20gammacplx\x20gammaii\x20gausset\x20gdaAppend\x20gdaCreate\x20gdaDStat\x20gdaDStatMat\x20gdaGetIndex\x20gdaGetName\x20gdaGetNames\x20gdaGetOrders\x20gdaGetType\x20gdaGetTypes\x20gdaGetVarInfo\x20gdaIsCplx\x20gdaLoad\x20gdaPack\x20gdaRead\x20gdaReadByIndex\x20gdaReadSome\x20gdaReadSparse\x20gdaReadStruct\x20gdaReportVarInfo\x20gdaSave\x20gdaUpdate\x20gdaUpdateAndPack\x20gdaVars\x20gdaWrite\x20gdaWrite32\x20gdaWriteSome\x20getarray\x20getdims\x20getf\x20getGAUSShome\x20getmatrix\x20getmatrix4D\x20getname\x20getnamef\x20getNextTradingDay\x20getNextWeekDay\x20getnr\x20getorders\x20getpath\x20getPreviousTradingDay\x20getPreviousWeekDay\x20getRow\x20getscalar3D\x20getscalar4D\x20getTrRow\x20getwind\x20glm\x20gradcplx\x20gradMT\x20gradMTm\x20gradMTT\x20gradMTTm\x20gradp\x20graphprt\x20graphset\x20hasimag\x20header\x20headermt\x20hess\x20hessMT\x20hessMTg\x20hessMTgw\x20hessMTm\x20hessMTmw\x20hessMTT\x20hessMTTg\x20hessMTTgw\x20hessMTTm\x20hessMTw\x20hessp\x20hist\x20histf\x20histp\x20hsec\x20imag\x20indcv\x20indexcat\x20indices\x20indices2\x20indicesf\x20indicesfn\x20indnv\x20indsav\x20integrate1d\x20integrateControlCreate\x20intgrat2\x20intgrat3\x20inthp1\x20inthp2\x20inthp3\x20inthp4\x20inthpControlCreate\x20intquad1\x20intquad2\x20intquad3\x20intrleav\x20intrleavsa\x20intrsect\x20intsimp\x20inv\x20invpd\x20invswp\x20iscplx\x20iscplxf\x20isden\x20isinfnanmiss\x20ismiss\x20key\x20keyav\x20keyw\x20lag\x20lag1\x20lagn\x20lapEighb\x20lapEighi\x20lapEighvb\x20lapEighvi\x20lapgEig\x20lapgEigh\x20lapgEighv\x20lapgEigv\x20lapgSchur\x20lapgSvdcst\x20lapgSvds\x20lapgSvdst\x20lapSvdcusv\x20lapSvds\x20lapSvdusv\x20ldlp\x20ldlsol\x20linSolve\x20listwise\x20ln\x20lncdfbvn\x20lncdfbvn2\x20lncdfmvn\x20lncdfn\x20lncdfn2\x20lncdfnc\x20lnfact\x20lngammacplx\x20lnpdfmvn\x20lnpdfmvt\x20lnpdfn\x20lnpdft\x20loadd\x20loadstruct\x20loadwind\x20loess\x20loessmt\x20loessmtControlCreate\x20log\x20loglog\x20logx\x20logy\x20lower\x20lowmat\x20lowmat1\x20ltrisol\x20lu\x20lusol\x20machEpsilon\x20make\x20makevars\x20makewind\x20margin\x20matalloc\x20matinit\x20mattoarray\x20maxbytes\x20maxc\x20maxindc\x20maxv\x20maxvec\x20mbesselei\x20mbesselei0\x20mbesselei1\x20mbesseli\x20mbesseli0\x20mbesseli1\x20meanc\x20median\x20mergeby\x20mergevar\x20minc\x20minindc\x20minv\x20miss\x20missex\x20missrv\x20moment\x20momentd\x20movingave\x20movingaveExpwgt\x20movingaveWgt\x20nextindex\x20nextn\x20nextnevn\x20nextwind\x20ntos\x20null\x20null1\x20numCombinations\x20ols\x20olsmt\x20olsmtControlCreate\x20olsqr\x20olsqr2\x20olsqrmt\x20ones\x20optn\x20optnevn\x20orth\x20outtyp\x20pacf\x20packedToSp\x20packr\x20parse\x20pause\x20pdfCauchy\x20pdfChi\x20pdfExp\x20pdfGenPareto\x20pdfHyperGeo\x20pdfLaplace\x20pdfLogistic\x20pdfn\x20pdfPoisson\x20pdfRayleigh\x20pdfWeibull\x20pi\x20pinv\x20pinvmt\x20plotAddArrow\x20plotAddBar\x20plotAddBox\x20plotAddHist\x20plotAddHistF\x20plotAddHistP\x20plotAddPolar\x20plotAddScatter\x20plotAddShape\x20plotAddTextbox\x20plotAddTS\x20plotAddXY\x20plotArea\x20plotBar\x20plotBox\x20plotClearLayout\x20plotContour\x20plotCustomLayout\x20plotGetDefaults\x20plotHist\x20plotHistF\x20plotHistP\x20plotLayout\x20plotLogLog\x20plotLogX\x20plotLogY\x20plotOpenWindow\x20plotPolar\x20plotSave\x20plotScatter\x20plotSetAxesPen\x20plotSetBar\x20plotSetBarFill\x20plotSetBarStacked\x20plotSetBkdColor\x20plotSetFill\x20plotSetGrid\x20plotSetLegend\x20plotSetLineColor\x20plotSetLineStyle\x20plotSetLineSymbol\x20plotSetLineThickness\x20plotSetNewWindow\x20plotSetTitle\x20plotSetWhichYAxis\x20plotSetXAxisShow\x20plotSetXLabel\x20plotSetXRange\x20plotSetXTicInterval\x20plotSetXTicLabel\x20plotSetYAxisShow\x20plotSetYLabel\x20plotSetYRange\x20plotSetZAxisShow\x20plotSetZLabel\x20plotSurface\x20plotTS\x20plotXY\x20polar\x20polychar\x20polyeval\x20polygamma\x20polyint\x20polymake\x20polymat\x20polymroot\x20polymult\x20polyroot\x20pqgwin\x20previousindex\x20princomp\x20printfm\x20printfmt\x20prodc\x20psi\x20putarray\x20putf\x20putvals\x20pvCreate\x20pvGetIndex\x20pvGetParNames\x20pvGetParVector\x20pvLength\x20pvList\x20pvPack\x20pvPacki\x20pvPackm\x20pvPackmi\x20pvPacks\x20pvPacksi\x20pvPacksm\x20pvPacksmi\x20pvPutParVector\x20pvTest\x20pvUnpack\x20QNewton\x20QNewtonmt\x20QNewtonmtControlCreate\x20QNewtonmtOutCreate\x20QNewtonSet\x20QProg\x20QProgmt\x20QProgmtInCreate\x20qqr\x20qqre\x20qqrep\x20qr\x20qre\x20qrep\x20qrsol\x20qrtsol\x20qtyr\x20qtyre\x20qtyrep\x20quantile\x20quantiled\x20qyr\x20qyre\x20qyrep\x20qz\x20rank\x20rankindx\x20readr\x20real\x20reclassify\x20reclassifyCuts\x20recode\x20recserar\x20recsercp\x20recserrc\x20rerun\x20rescale\x20reshape\x20rets\x20rev\x20rfft\x20rffti\x20rfftip\x20rfftn\x20rfftnp\x20rfftp\x20rndBernoulli\x20rndBeta\x20rndBinomial\x20rndCauchy\x20rndChiSquare\x20rndCon\x20rndCreateState\x20rndExp\x20rndGamma\x20rndGeo\x20rndGumbel\x20rndHyperGeo\x20rndi\x20rndKMbeta\x20rndKMgam\x20rndKMi\x20rndKMn\x20rndKMnb\x20rndKMp\x20rndKMu\x20rndKMvm\x20rndLaplace\x20rndLCbeta\x20rndLCgam\x20rndLCi\x20rndLCn\x20rndLCnb\x20rndLCp\x20rndLCu\x20rndLCvm\x20rndLogNorm\x20rndMTu\x20rndMVn\x20rndMVt\x20rndn\x20rndnb\x20rndNegBinomial\x20rndp\x20rndPoisson\x20rndRayleigh\x20rndStateSkip\x20rndu\x20rndvm\x20rndWeibull\x20rndWishart\x20rotater\x20round\x20rows\x20rowsf\x20rref\x20sampleData\x20satostrC\x20saved\x20saveStruct\x20savewind\x20scale\x20scale3d\x20scalerr\x20scalinfnanmiss\x20scalmiss\x20schtoc\x20schur\x20searchsourcepath\x20seekr\x20select\x20selif\x20seqa\x20seqm\x20setdif\x20setdifsa\x20setvars\x20setvwrmode\x20setwind\x20shell\x20shiftr\x20sin\x20singleindex\x20sinh\x20sleep\x20solpd\x20sortc\x20sortcc\x20sortd\x20sorthc\x20sorthcc\x20sortind\x20sortindc\x20sortmc\x20sortr\x20sortrc\x20spBiconjGradSol\x20spChol\x20spConjGradSol\x20spCreate\x20spDenseSubmat\x20spDiagRvMat\x20spEigv\x20spEye\x20spLDL\x20spline\x20spLU\x20spNumNZE\x20spOnes\x20spreadSheetReadM\x20spreadSheetReadSA\x20spreadSheetWrite\x20spScale\x20spSubmat\x20spToDense\x20spTrTDense\x20spTScalar\x20spZeros\x20sqpSolve\x20sqpSolveMT\x20sqpSolveMTControlCreate\x20sqpSolveMTlagrangeCreate\x20sqpSolveMToutCreate\x20sqpSolveSet\x20sqrt\x20statements\x20stdc\x20stdsc\x20stocv\x20stof\x20strcombine\x20strindx\x20strlen\x20strput\x20strrindx\x20strsect\x20strsplit\x20strsplitPad\x20strtodt\x20strtof\x20strtofcplx\x20strtriml\x20strtrimr\x20strtrunc\x20strtruncl\x20strtruncpad\x20strtruncr\x20submat\x20subscat\x20substute\x20subvec\x20sumc\x20sumr\x20surface\x20svd\x20svd1\x20svd2\x20svdcusv\x20svds\x20svdusv\x20sysstate\x20tab\x20tan\x20tanh\x20tempname\x20time\x20timedt\x20timestr\x20timeutc\x20title\x20tkf2eps\x20tkf2ps\x20tocart\x20todaydt\x20toeplitz\x20token\x20topolar\x20trapchk\x20trigamma\x20trimr\x20trunc\x20type\x20typecv\x20typef\x20union\x20unionsa\x20uniqindx\x20uniqindxsa\x20unique\x20uniquesa\x20upmat\x20upmat1\x20upper\x20utctodt\x20utctodtv\x20utrisol\x20vals\x20varCovMS\x20varCovXS\x20varget\x20vargetl\x20varmall\x20varmares\x20varput\x20varputl\x20vartypef\x20vcm\x20vcms\x20vcx\x20vcxs\x20vec\x20vech\x20vecr\x20vector\x20vget\x20view\x20viewxyz\x20vlist\x20vnamecv\x20volume\x20vput\x20vread\x20vtypecv\x20wait\x20waitc\x20walkindex\x20where\x20window\x20writer\x20xlabel\x20xlsGetSheetCount\x20xlsGetSheetSize\x20xlsGetSheetTypes\x20xlsMakeRange\x20xlsReadM\x20xlsReadSA\x20xlsWrite\x20xlsWriteM\x20xlsWriteSA\x20xpnd\x20xtics\x20xy\x20xyz\x20ylabel\x20ytics\x20zeros\x20zeta\x20zlabel\x20ztics\x20cdfEmpirical\x20dot\x20h5create\x20h5open\x20h5read\x20h5readAttribute\x20h5write\x20h5writeAttribute\x20ldl\x20plotAddErrorBar\x20plotAddSurface\x20plotCDFEmpirical\x20plotSetColormap\x20plotSetContourLabels\x20plotSetLegendFont\x20plotSetTextInterpreter\x20plotSetXTicCount\x20plotSetYTicCount\x20plotSetZLevels\x20powerm\x20strjoin\x20sylvester\x20strtrim','minWords','fb_login_use_system_account','≿̸','ServiceExecute','tilemap_set_at_pixel','VectorScale','(ocf|systemd|service|lsb):[\x5cw_:-]+','VARPA','layer_background_get_yscale','WRITE','caseSensitive','sngl','𝕏','ListVectorPlot','MaxDuration','ControllerInformation','lastName','zpty','triggerActivated','FaceRecognize','⅝','Panel','dispatch_sync','[be]\x20#Gerund','cint','string_lettersdigits','PointProcessEstimator','Launch','disconnect','≩','Rational','twelfth','\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x5cs*)?\x5c(','doptnum','OuterPolyhedron','form_label','IMCSC','false\x20true\x20null','SetProperty','game_load','␣','DomainException','FlattenAt','RMDIR','fromString','(-?)(\x5cb0[xX][a-fA-F0-9]+|\x5cb0[bB][01]+|(\x5cb\x5cd+(_\x5cd+)?(\x5c.\x5cd*)?|\x5c.\x5cd+)([eE][-+]?\x5cd+)?)','PROGRAMFILES64','Quartiles','TabFilling','buffer_resize','[a-zA-Z][a-zA-Z0-9_$%!#]*','achievement_show_challenge_notifications','ImageColorSpace','','mp_grid_clear_all','PieChart3D','attachedTo','Notation','adjective','getobject','queryMagazinePool','deprecated','os_get_config','date_diff_millis','simulCloudDensity','gerund','SystemModelSimulateSensitivity','ú','since','exfalso','vk_numpad8','100%','architecture\x20augeasversion\x20blockdevices\x20boardmanufacturer\x20boardproductname\x20boardserialnumber\x20cfkey\x20dhcp_servers\x20domain\x20ec2_\x20ec2_userdata\x20facterversion\x20filesystems\x20ldom\x20fqdn\x20gid\x20hardwareisa\x20hardwaremodel\x20hostname\x20id|0\x20interfaces\x20ipaddress\x20ipaddress_\x20ipaddress6\x20ipaddress6_\x20iphostnumber\x20is_virtual\x20kernel\x20kernelmajversion\x20kernelrelease\x20kernelversion\x20kernelrelease\x20kernelversion\x20lsbdistcodename\x20lsbdistdescription\x20lsbdistid\x20lsbdistrelease\x20lsbmajdistrelease\x20lsbminordistrelease\x20lsbrelease\x20macaddress\x20macaddress_\x20macosx_buildversion\x20macosx_productname\x20macosx_productversion\x20macosx_productverson_major\x20macosx_productversion_minor\x20manufacturer\x20memoryfree\x20memorysize\x20netmask\x20metmask_\x20network_\x20operatingsystem\x20operatingsystemmajrelease\x20operatingsystemrelease\x20osfamily\x20partitions\x20path\x20physicalprocessorcount\x20processor\x20processorcount\x20productname\x20ps\x20puppetversion\x20rubysitedir\x20rubyversion\x20selinux\x20selinux_config_mode\x20selinux_config_policy\x20selinux_current_mode\x20selinux_current_mode\x20selinux_enforced\x20selinux_policyversion\x20serialnumber\x20sp_\x20sshdsakey\x20sshecdsakey\x20sshrsakey\x20swapencrypted\x20swapfree\x20swapsize\x20timezone\x20type\x20uniqueid\x20uptime\x20uptime_days\x20uptime_hours\x20uptime_seconds\x20uuid\x20virtual\x20vlans\x20xendomains\x20zfs_version\x20zonenae\x20zones\x20zpool_version','cartoon-ish','triggerAttachObject','view_hview','Count','noLoop','dcmplx','brakesDisabled','s_nexttime','globalvar','_blank','RemoveAudioStream','plateau','DifferenceRoot','getOut','fromdir','))(','DeviceOpenQ','nav-index','SystemCredentialData','background_get_width','dfm','__index__','Cvoid','tagger','QueueingNetworkProcess','(#Adjective|#Preposition|#Determiner|#Value)','contentWindow','ffs','unit','waitsas','Illegal\x20lexeme\x20\x22','EllipticPi','û','$increment','draw_triangle','_Decimal128','disableAutodetect','MaxDate','TEMPLATES','colour_get_green','HKDD','PersistentObjects','asset_get_type','FindTransientRepeat','model','nks','DirichletDistribution','retry','week\x20mm-dd','Row','room_get_camera','unbox','WaitNext','\x5cb0(_*[0-7])*[lL]?\x5cb','Ũ','ctrlSetFontHeightH6','nanf','𝓅','SuperMinus','LightGray','Polyline','os_get_region','MeanClusteringCoefficient','unlinkItem','allCurators','Ő','WatsonUSquareTest','OutputFormData','ReleaseHold','NProduct','propernoun-place','move_towards_point','layer_tile_yscale','RegionEqual','^will\x20have\x20#PastTense$','ColorRules','BezierCurveBox','what\x27s','DirVerify','NoneTrue','::\x5cs*','NumberDigit','\x5cb0[oO][0-7]+(?:_[0-7]+)*\x5cb','declare','remove3DENLayer','Share','NBodySimulationData','blkIndent','$Aborted','WordOrientation','With','GraphDiameter','false\x20null\x20true','atan2','Csch','(-?)(\x5cb0[xX][a-fA-F0-9\x27]+|(\x5cb[\x5cd\x27]+(\x5c.[\x5cd\x27]*)?|\x5c.[\x5cd\x27]+)([eE][-+]?[\x5cd\x27]+)?)','dynamicSimulationDistanceCoef','src_host','c_int8_t','$System','import','BondLabelStyle','iterable','Cashflow','combatMode','StarClusterData','VideoScreenCapture','Inset','shader_is_compiled','CloudSubmit','ds_stack_read','uwire','ℭ','getAllPylonsInfo','#Organization\x20of\x20the?\x20#ProperNoun','lnbSetValue',')\x5cb|\x5c.)?|(','repeatElement','complete','skipSpacesBack','setParticleCircle','Append','window_set_max_height','selection','BottomHatTransform','play','AudioStreams','isInfinitive','TraceOff','DispatchQ','map','backpack','moveToFailed','StadiumShape','ReturnExpressionPacket','Compose','$atan2','mp_grid_get_cell','OCT$','gesture_drag_distance','iap_purchased','steam_ugc_create_query_all_ex','strong','Corollary','CoordinateBoundingBoxArray','EstimatedVariogramModel','audio_get_name','MixedMagnitude','Decrypt','loop','setPylonsPriority','device_mouse_y_to_gui','assignAsTurret','surface_create','CantorMesh','WindowMargins','DateList','helpModal','menuPicture','#FirstName\x20#Acronym?\x20(#Possessive\x20&&\x20#LastName)','EnableWindow','EntityFunction','≍⃒','\x5c([^()]*(\x5c([^()]*(\x5c([^()]*\x5c)[^()]*)*\x5c)[^()]*)*\x5c)\x5cs*\x5c{','office','mp_linear_path_object','ByteArrayFormatQ','dance-coach','freeze','indexw','PointSize','markets','BioSequenceComplement','noAux','num_images','PRESET','[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)]\x20#Adjective','CellOpen','########','cards','str_to_duration','lady-titlecase','Abort','ds_priority_add','NS_ASSUME_NONNULL_END','#Copula\x20#Adverb\x20#Adjective','ipython','STANDARDIZE','NetAppend','PersistenceTime','needService','⊙','ExternalFunction','proceed','sendSysex','date_second_span','AutoSubmitting','MeshPrimitives','tvSetPictureColor','Client','low','ErlangB','[(private|general|major|rear|prime|field|count|miss)]\x20#Honorific?\x20#Person','ReImLabels','AcousticSoundHardValue','softmax','macAddress','(saw|made)','ϒ','bessel_jn','regr_avgx','Win7','groupFromNetId','simulWeatherSync','reserve','oneof','SHEETS','xs:gYear','UpArrowDownArrow','\x5cb(\x5cd+|\x5cd+\x5c.|\x5c.\x5cd+|\x5cd+\x5c.\x5cd+)[Bb][-+]?\x5cd+\x5cb','$UserAddOnsDirectory','padEnd','#Copula\x20[still]\x20(in|#Gerund|#Adjective)','[]\x5c{\x5c}%#\x27\x22','inv_logit','download.txt','desc','⦱','Left|0','ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ','your-guild-colors','wed','addCuratorEditableObjects','\x5cbend\x5cs+','ColumnLines','LoopFreeGraphQ','MB_RETRYCANCEL','(said|says)\x20#ProperNoun$','sprite_duplicate','↷','HeaderBackground','file_bin_size','c_white','SolidRegionQ','SetShellVarContext','GeoVisibleRegion','ode_rk45_tol','CellPrint','UnderscriptBoxOptions','sint64','max0','this','platform::shell','cr_beam','AutoMatch','setTerrainHeight','audio_listener_get_data','$UserAgentMachine','YIELDDISC','AnimationRate','SynchronousInitialization','image_xscale','shr','ant','nth-last-child','♥','UnconstrainedParameters','\x20to\x20expand\x20upon\x20this\x20content\x20','Any','audio_is_paused','(::','Superlative','active','↠','|$)|\x5c!+(?!','¡','get_string','^will\x20want\x20to\x20#Infinitive$','peekc','Equilibrium','(\x5c/\x5c/|','date_get_hour_of_year','gpu_get_blendmode_ext','in|0','_Generic','[=>\x27/<($\x22]','steam_ugc_subscribe_item','ListPicker','NPV','rewindDirectory','CERT','gethostent','module','extern','one-second','corr_matrix|10','camCommitPrepared','from\x20to','⌌','([\x5cda-fA-F][\x5cda-fA-F_]*|_[\x5cda-fA-F][\x5cda-fA-F_]*)','.2byte\x20.4byte\x20.align\x20.ascii\x20.asciz\x20.balign\x20.byte\x20.code\x20.data\x20.else\x20.end\x20.endif\x20.endm\x20.endr\x20.equ\x20.err\x20.exitm\x20.extern\x20.global\x20.hword\x20.if\x20.ifdef\x20.ifndef\x20.include\x20.irp\x20.long\x20.macro\x20.rept\x20.req\x20.section\x20.set\x20.skip\x20.space\x20.text\x20.word\x20.ltorg\x20','CrossMatrix','leaves','Plural|Verb','webцвета\x20windowsцвета\x20windowsшрифты\x20библиотекакартинок\x20рамкистиля\x20символы\x20цветастиля\x20шрифтыстиля\x20автоматическоесохранениеданныхформывнастройках\x20автонумерациявформе\x20автораздвижениесерий\x20анимациядиаграммы\x20вариантвыравниванияэлементовизаголовков\x20вариантуправлениявысотойтаблицы\x20вертикальнаяпрокруткаформы\x20вертикальноеположение\x20вертикальноеположениеэлемента\x20видгруппыформы\x20виддекорацииформы\x20виддополненияэлементаформы\x20видизмененияданных\x20видкнопкиформы\x20видпереключателя\x20видподписейкдиаграмме\x20видполяформы\x20видфлажка\x20влияниеразмеранапузырекдиаграммы\x20горизонтальноеположение\x20горизонтальноеположениеэлемента\x20группировкаколонок\x20группировкаподчиненныхэлементовформы\x20группыиэлементы\x20действиеперетаскивания\x20дополнительныйрежимотображения\x20допустимыедействияперетаскивания\x20интервалмеждуэлементамиформы\x20использованиевывода\x20использованиеполосыпрокрутки\x20используемоезначениеточкибиржевойдиаграммы\x20историявыборапривводе\x20источникзначенийоситочекдиаграммы\x20источникзначенияразмерапузырькадиаграммы\x20категориягруппыкоманд\x20максимумсерий\x20начальноеотображениедерева\x20начальноеотображениесписка\x20обновлениетекстаредактирования\x20ориентациядендрограммы\x20ориентациядиаграммы\x20ориентацияметокдиаграммы\x20ориентацияметоксводнойдиаграммы\x20ориентацияэлементаформы\x20отображениевдиаграмме\x20отображениевлегендедиаграммы\x20отображениегруппыкнопок\x20отображениезаголовкашкалыдиаграммы\x20отображениезначенийсводнойдиаграммы\x20отображениезначенияизмерительнойдиаграммы\x20отображениеинтерваладиаграммыганта\x20отображениекнопки\x20отображениекнопкивыбора\x20отображениеобсужденийформы\x20отображениеобычнойгруппы\x20отображениеотрицательныхзначенийпузырьковойдиаграммы\x20отображениепанелипоиска\x20отображениеподсказки\x20отображениепредупрежденияприредактировании\x20отображениеразметкиполосырегулирования\x20отображениестраницформы\x20отображениетаблицы\x20отображениетекстазначениядиаграммыганта\x20отображениеуправленияобычнойгруппы\x20отображениефигурыкнопки\x20палитрацветовдиаграммы\x20поведениеобычнойгруппы\x20поддержкамасштабадендрограммы\x20поддержкамасштабадиаграммыганта\x20поддержкамасштабасводнойдиаграммы\x20поисквтаблицепривводе\x20положениезаголовкаэлементаформы\x20положениекартинкикнопкиформы\x20положениекартинкиэлементаграфическойсхемы\x20положениекоманднойпанелиформы\x20положениекоманднойпанелиэлементаформы\x20положениеопорнойточкиотрисовки\x20положениеподписейкдиаграмме\x20положениеподписейшкалызначенийизмерительнойдиаграммы\x20положениесостоянияпросмотра\x20положениестрокипоиска\x20положениетекстасоединительнойлинии\x20положениеуправленияпоиском\x20положениешкалывремени\x20порядокотображенияточекгоризонтальнойгистограммы\x20порядоксерийвлегендедиаграммы\x20размеркартинки\x20расположениезаголовкашкалыдиаграммы\x20растягиваниеповертикалидиаграммыганта\x20режимавтоотображениясостояния\x20режимвводастроктаблицы\x20режимвыборанезаполненного\x20режимвыделениядаты\x20режимвыделениястрокитаблицы\x20режимвыделениятаблицы\x20режимизмененияразмера\x20режимизменениясвязанногозначения\x20режимиспользованиядиалогапечати\x20режимиспользованияпараметракоманды\x20режиммасштабированияпросмотра\x20режимосновногоокнаклиентскогоприложения\x20режимоткрытияокнаформы\x20режимотображениявыделения\x20режимотображениягеографическойсхемы\x20режимотображениязначенийсерии\x20режимотрисовкисеткиграфическойсхемы\x20режимполупрозрачностидиаграммы\x20режимпробеловдиаграммы\x20режимразмещениянастранице\x20режимредактированияколонки\x20режимсглаживаниядиаграммы\x20режимсглаживанияиндикатора\x20режимсписказадач\x20сквозноевыравнивание\x20сохранениеданныхформывнастройках\x20способзаполнениятекстазаголовкашкалыдиаграммы\x20способопределенияограничивающегозначениядиаграммы\x20стандартнаягруппакоманд\x20стандартноеоформление\x20статусоповещенияпользователя\x20стильстрелки\x20типаппроксимациилиниитрендадиаграммы\x20типдиаграммы\x20типединицышкалывремени\x20типимпортасерийслоягеографическойсхемы\x20типлиниигеографическойсхемы\x20типлиниидиаграммы\x20типмаркерагеографическойсхемы\x20типмаркерадиаграммы\x20типобластиоформления\x20типорганизацииисточникаданныхгеографическойсхемы\x20типотображениясериислоягеографическойсхемы\x20типотображенияточечногообъектагеографическойсхемы\x20типотображенияшкалыэлементалегендыгеографическойсхемы\x20типпоискаобъектовгеографическойсхемы\x20типпроекциигеографическойсхемы\x20типразмещенияизмерений\x20типразмещенияреквизитовизмерений\x20типрамкиэлементауправления\x20типсводнойдиаграммы\x20типсвязидиаграммыганта\x20типсоединениязначенийпосериямдиаграммы\x20типсоединенияточекдиаграммы\x20типсоединительнойлинии\x20типстороныэлементаграфическойсхемы\x20типформыотчета\x20типшкалырадарнойдиаграммы\x20факторлиниитрендадиаграммы\x20фигуракнопки\x20фигурыграфическойсхемы\x20фиксациявтаблице\x20форматдняшкалывремени\x20форматкартинки\x20ширинаподчиненныхэлементовформы\x20виддвижениябухгалтерии\x20виддвижениянакопления\x20видпериодарегистрарасчета\x20видсчета\x20видточкимаршрутабизнеспроцесса\x20использованиеагрегатарегистранакопления\x20использованиегруппиэлементов\x20использованиережимапроведения\x20использованиесреза\x20периодичностьагрегатарегистранакопления\x20режимавтовремя\x20режимзаписидокумента\x20режимпроведениядокумента\x20авторегистрацияизменений\x20допустимыйномерсообщения\x20отправкаэлементаданных\x20получениеэлементаданных\x20использованиерасшифровкитабличногодокумента\x20ориентациястраницы\x20положениеитоговколоноксводнойтаблицы\x20положениеитоговстроксводнойтаблицы\x20положениетекстаотносительнокартинки\x20расположениезаголовкагруппировкитабличногодокумента\x20способчтениязначенийтабличногодокумента\x20типдвустороннейпечати\x20типзаполненияобластитабличногодокумента\x20типкурсоровтабличногодокумента\x20типлиниирисункатабличногодокумента\x20типлинииячейкитабличногодокумента\x20типнаправленияпереходатабличногодокумента\x20типотображениявыделениятабличногодокумента\x20типотображениялинийсводнойтаблицы\x20типразмещениятекстатабличногодокумента\x20типрисункатабличногодокумента\x20типсмещениятабличногодокумента\x20типузоратабличногодокумента\x20типфайлатабличногодокумента\x20точностьпечати\x20чередованиерасположениястраниц\x20отображениевремениэлементовпланировщика\x20типфайлаформатированногодокумента\x20обходрезультатазапроса\x20типзаписизапроса\x20видзаполнениярасшифровкипостроителяотчета\x20типдобавленияпредставлений\x20типизмеренияпостроителяотчета\x20типразмещенияитогов\x20доступкфайлу\x20режимдиалогавыборафайла\x20режимоткрытияфайла\x20типизмеренияпостроителязапроса\x20видданныханализа\x20методкластеризации\x20типединицыинтервалавременианализаданных\x20типзаполнениятаблицырезультатаанализаданных\x20типиспользованиячисловыхзначенийанализаданных\x20типисточникаданныхпоискаассоциаций\x20типколонкианализаданныхдереворешений\x20типколонкианализаданныхкластеризация\x20типколонкианализаданныхобщаястатистика\x20типколонкианализаданныхпоискассоциаций\x20типколонкианализаданныхпоискпоследовательностей\x20типколонкимоделипрогноза\x20типмерырасстоянияанализаданных\x20типотсеченияправилассоциации\x20типполяанализаданных\x20типстандартизациианализаданных\x20типупорядочиванияправилассоциациианализаданных\x20типупорядочиванияшаблоновпоследовательностейанализаданных\x20типупрощениядереварешений\x20wsнаправлениепараметра\x20вариантxpathxs\x20вариантзаписидатыjson\x20вариантпростоготипаxs\x20видгруппымоделиxs\x20видфасетаxdto\x20действиепостроителяdom\x20завершенностьпростоготипаxs\x20завершенностьсоставноготипаxs\x20завершенностьсхемыxs\x20запрещенныеподстановкиxs\x20исключениягруппподстановкиxs\x20категорияиспользованияатрибутаxs\x20категорияограниченияидентичностиxs\x20категорияограниченияпространствименxs\x20методнаследованияxs\x20модельсодержимогоxs\x20назначениетипаxml\x20недопустимыеподстановкиxs\x20обработкапробельныхсимволовxs\x20обработкасодержимогоxs\x20ограничениезначенияxs\x20параметрыотбораузловdom\x20переносстрокjson\x20позициявдокументеdom\x20пробельныесимволыxml\x20типатрибутаxml\x20типзначенияjson\x20типканоническогоxml\x20типкомпонентыxs\x20типпроверкиxml\x20типрезультатаdomxpath\x20типузлаdom\x20типузлаxml\x20формаxml\x20формапредставленияxs\x20форматдатыjson\x20экранированиесимволовjson\x20видсравнениякомпоновкиданных\x20действиеобработкирасшифровкикомпоновкиданных\x20направлениесортировкикомпоновкиданных\x20расположениевложенныхэлементоврезультатакомпоновкиданных\x20расположениеитоговкомпоновкиданных\x20расположениегруппировкикомпоновкиданных\x20расположениеполейгруппировкикомпоновкиданных\x20расположениеполякомпоновкиданных\x20расположениереквизитовкомпоновкиданных\x20расположениересурсовкомпоновкиданных\x20типбухгалтерскогоостаткакомпоновкиданных\x20типвыводатекстакомпоновкиданных\x20типгруппировкикомпоновкиданных\x20типгруппыэлементовотборакомпоновкиданных\x20типдополненияпериодакомпоновкиданных\x20типзаголовкаполейкомпоновкиданных\x20типмакетагруппировкикомпоновкиданных\x20типмакетаобластикомпоновкиданных\x20типостаткакомпоновкиданных\x20типпериодакомпоновкиданных\x20типразмещениятекстакомпоновкиданных\x20типсвязинаборовданныхкомпоновкиданных\x20типэлементарезультатакомпоновкиданных\x20расположениелегендыдиаграммыкомпоновкиданных\x20типпримененияотборакомпоновкиданных\x20режимотображенияэлементанастройкикомпоновкиданных\x20режимотображениянастроеккомпоновкиданных\x20состояниеэлементанастройкикомпоновкиданных\x20способвосстановлениянастроеккомпоновкиданных\x20режимкомпоновкирезультата\x20использованиепараметракомпоновкиданных\x20автопозицияресурсовкомпоновкиданных\x20вариантиспользованиягруппировкикомпоновкиданных\x20расположениересурсоввдиаграммекомпоновкиданных\x20фиксациякомпоновкиданных\x20использованиеусловногооформлениякомпоновкиданных\x20важностьинтернетпочтовогосообщения\x20обработкатекстаинтернетпочтовогосообщения\x20способкодированияинтернетпочтовоговложения\x20способкодированиянеasciiсимволовинтернетпочтовогосообщения\x20типтекстапочтовогосообщения\x20протоколинтернетпочты\x20статусразборапочтовогосообщения\x20режимтранзакциизаписижурналарегистрации\x20статустранзакциизаписижурналарегистрации\x20уровеньжурналарегистрации\x20расположениехранилищасертификатовкриптографии\x20режимвключениясертификатовкриптографии\x20режимпроверкисертификатакриптографии\x20типхранилищасертификатовкриптографии\x20кодировкаименфайловвzipфайле\x20методсжатияzip\x20методшифрованияzip\x20режимвосстановленияпутейфайловzip\x20режимобработкиподкаталоговzip\x20режимсохраненияпутейzip\x20уровеньсжатияzip\x20звуковоеоповещение\x20направлениепереходакстроке\x20позициявпотоке\x20порядокбайтов\x20режимблокировкиданных\x20режимуправленияблокировкойданных\x20сервисвстроенныхпокупок\x20состояниефоновогозадания\x20типподписчикадоставляемыхуведомлений\x20уровеньиспользованиязащищенногосоединенияftp\x20направлениепорядкасхемызапроса\x20типдополненияпериодамисхемызапроса\x20типконтрольнойточкисхемызапроса\x20типобъединениясхемызапроса\x20типпараметрадоступнойтаблицысхемызапроса\x20типсоединениясхемызапроса\x20httpметод\x20автоиспользованиеобщегореквизита\x20автопрефиксномеразадачи\x20вариантвстроенногоязыка\x20видиерархии\x20видрегистранакопления\x20видтаблицывнешнегоисточникаданных\x20записьдвиженийприпроведении\x20заполнениепоследовательностей\x20индексирование\x20использованиебазыпланавидоврасчета\x20использованиебыстроговыбора\x20использованиеобщегореквизита\x20использованиеподчинения\x20использованиеполнотекстовогопоиска\x20использованиеразделяемыхданныхобщегореквизита\x20использованиереквизита\x20назначениеиспользованияприложения\x20назначениерасширенияконфигурации\x20направлениепередачи\x20обновлениепредопределенныхданных\x20оперативноепроведение\x20основноепредставлениевидарасчета\x20основноепредставлениевидахарактеристики\x20основноепредставлениезадачи\x20основноепредставлениепланаобмена\x20основноепредставлениесправочника\x20основноепредставлениесчета\x20перемещениеграницыприпроведении\x20периодичностьномерабизнеспроцесса\x20периодичностьномерадокумента\x20периодичностьрегистрарасчета\x20периодичностьрегистрасведений\x20повторноеиспользованиевозвращаемыхзначений\x20полнотекстовыйпоискпривводепостроке\x20принадлежностьобъекта\x20проведение\x20разделениеаутентификацииобщегореквизита\x20разделениеданныхобщегореквизита\x20разделениерасширенийконфигурацииобщегореквизита\x20режимавтонумерацииобъектов\x20режимзаписирегистра\x20режимиспользованиямодальности\x20режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент\x20режимповторногоиспользованиясеансов\x20режимполученияданныхвыборапривводепостроке\x20режимсовместимости\x20режимсовместимостиинтерфейса\x20режимуправленияблокировкойданныхпоумолчанию\x20сериикодовпланавидовхарактеристик\x20сериикодовпланасчетов\x20сериикодовсправочника\x20созданиепривводе\x20способвыбора\x20способпоискастрокипривводепостроке\x20способредактирования\x20типданныхтаблицывнешнегоисточникаданных\x20типкодапланавидоврасчета\x20типкодасправочника\x20типмакета\x20типномерабизнеспроцесса\x20типномерадокумента\x20типномеразадачи\x20типформы\x20удалениедвижений\x20важностьпроблемыприменениярасширенияконфигурации\x20вариантинтерфейсаклиентскогоприложения\x20вариантмасштабаформклиентскогоприложения\x20вариантосновногошрифтаклиентскогоприложения\x20вариантстандартногопериода\x20вариантстандартнойдатыначала\x20видграницы\x20видкартинки\x20видотображенияполнотекстовогопоиска\x20видрамки\x20видсравнения\x20видцвета\x20видчисловогозначения\x20видшрифта\x20допустимаядлина\x20допустимыйзнак\x20использованиеbyteordermark\x20использованиеметаданныхполнотекстовогопоиска\x20источникрасширенийконфигурации\x20клавиша\x20кодвозвратадиалога\x20кодировкаxbase\x20кодировкатекста\x20направлениепоиска\x20направлениесортировки\x20обновлениепредопределенныхданных\x20обновлениеприизмененииданных\x20отображениепанелиразделов\x20проверказаполнения\x20режимдиалогавопрос\x20режимзапускаклиентскогоприложения\x20режимокругления\x20режимоткрытияформприложения\x20режимполнотекстовогопоиска\x20скоростьклиентскогосоединения\x20состояниевнешнегоисточникаданных\x20состояниеобновленияконфигурациибазыданных\x20способвыборасертификатаwindows\x20способкодированиястроки\x20статуссообщения\x20типвнешнейкомпоненты\x20типплатформы\x20типповеденияклавишиenter\x20типэлементаинформацииовыполненииобновленияконфигурациибазыданных\x20уровеньизоляциитранзакций\x20хешфункция\x20частидаты','MenuEvaluator','AbsolutePointSize','eep','locale_name','iany','DateTicksFormat','RightTee','#Date\x20#Month','ProcessInformation','SolveAlways','#Verb\x20[','StringRiffle','esplit','(?:','module_path!','AsymptoticGreaterEqual','paragraph','\x5cb([1-9][0-9_]*[0-9]|[0-9])(\x5c.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)','ShowShortBoxForm','EulerGamma','secondaryWeaponMagazine','PlotTheme','RemoteConnect','StringToByteArray','view_xport','form_widget','counter-reset','VectorLessEqual','FieldHintStyle','arcsin','EqualTilde','buses','array_resize','Here\x27s\x20something\x20I\x20wanted\x20to\x20share\x20with\x20you','LiteralSearch','font','getDoc','\x27[A-Za-z](_?[A-Za-z0-9])*','agent','#elseif','human','⫮','i-mean','LocatorRegion','MapAt','pool','NUMBER_RE','oil','getObjectMaterials','#NumericValue\x20#PhoneNumber','game_save',')+(-)[\x5cw\x5cd]+','𝕢','fun','assignedDriver','PlanarGraphQ','(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\x5c[','ads_get_display_width','FeedbackLinearize','set','speed','formatpercent','RegionCongruent','insertAfter','⥋','audio_falloff_none','NotebooksMenu','UniformSumDistribution','$dist_exponential','shader_set','hmd','(LinkifyIt)\x20Invalid\x20schema\x20\x22','HararyGraph','physics_apply_force','Image','fsep','Insphere','ContinuedFractionK','currentThrowable','$EntityStores','ordered_list_close','get_login_async','variants','GaugeFaceStyle','[#Hyphenated\x20(#Hyphenated\x20&&\x20#PastTense)]\x20(#Noun|#Conjunction)','FindHiddenMarkovStates','$Canceled','RomanNumeral','LaTeX','RecursiveCallbackFilterIterator','GeometricDistribution','audio_stop_all','ListVectorDisplacementPlot3D','achievement_leaderboard_info','winphone_tile_back_image_wide','ANSI_CHARSET','musicVolume','mix-blend-mode','seven','normalizeLink','gpu_set_lightingenable','goNext','pt_shape_snow','diag_exportTerrainSVG','volatile','ibits','UnsavedVariables','preloadTitleObj','#Noun\x20[#Determiner]','isHidden','HYPERLINK','$printtimescale','child::','⪢','Texture','template','Periodogram','axapta','OutputGrouping','ListSliceVectorPlot3D','sus','Break','AudioNormalize','⫂','simulationEnabled','RightUpVector','(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)','ctrlSetEventHandler','ung','Cylinder','GridBoxOptions','$NewSymbol','\x1b[32m','only-of-type','Pivot','Throwable','percent','𝔮','complex_schur_decompose_t','createSimpleTask','exceedingly','u-pronoun-2','readBytes','CombinatorS','foreign\x20import\x20export\x20ccall\x20stdcall\x20cplusplus\x20jvm\x20dotnet\x20safe\x20unsafe','mikrotik','shadow','(#=>|=>|\x5c|>>|-?->|!->)','emoji-class','given-up-on-x','FactorTerms','for\x20some\x20[#PresentTense]','pure','SixJSymbol','Int8Array','c_long','been-walking','IntegerPart','noun-of-noun','𝕟','SetDateSave','overlap','IntegerDigits','SplMinHeap','MaxWordGap','DNS\x20Zone','move_alloc','title-van-title','#\x5cs+','around','macCatalyst','def','part_type_colour_mix','(were|was)\x20being\x20[#PresentTense]','⊬','ds_map_replace_map','aspect-ratio','toLocaleDateString','TBILLEQ','ds_grid_add_region','SequenceIndicesLayer','ConjugateTranspose','article','#Gerund\x20(giant|capital|center|zone|application)','ChromaticPolynomial','^(was|were)\x20being\x20#Passive','DOLLARFR','steam_activate_overlay_user','vitro','splitEachLine','RegionSize','DoubleLeftTee','$Echo','ev_alarm','Postfix','ctrlEnable','LocalClusteringCoefficient','⨦','QFactorial','ev_user12','gpu_set_blendmode_ext','GridBoxItemStyle','AudioSplit','path_add','$future_gclk','forceselectorder','RectangleBox','DateDelimiters','ComplexListPlot','only-child','being-born','loadpicture','⪯̸','ї','variable_global_set','logNetwork','StepMonitor','add_diag','thead_close','AutoItalicWords','Ń','getnetbyname','ColorCoverage','putchar','agence','SUMXMY2','HTTP\x20error!\x20Status:\x20','∗','[#Noun+]\x20#Actor','AngelScript','LinkMode','formatted','cr_drag','his','(taught|teaches|learns|learned)\x20[#PresentTense]','TimeDirection','#Value\x20#Value\x20#Value','ImportAutoReplacements','city','mid','StyleBox','observe','vertex_usage_depth','achievement_filter_all_players','fixs','tbl','augment','ODD','import\x20qualified\x20as\x20hiding','min-block-size','shared_future','GeoBoundingBox','insert','PreIncrement','userInputDisabled','high-enough','tvExpandAll','PRINT]','DiscreteAsymptotic','$fwriteo','number_format','з','neg_binomial','nearestLocations','scroll-padding','isIRLaserOn','layer_force_draw_depth','isMultiplayerSolo','late','\x5c$[0-9A-Fa-f]+','VerifySolutions','transform-box','promise','tac','RemoveAlphaChannel','dirty','Ltac','effect_clear','⋟','firstTerms','SquaresR','associatedtype','BoxObject','modelToWorldVisualWorld','#Acronym','ev_collision','AddSubString\x20AdjustLineBreaks\x20AmountInWords\x20Analysis\x20ArrayDimCount\x20ArrayHighBound\x20ArrayLowBound\x20ArrayOf\x20ArrayReDim\x20Assert\x20Assigned\x20BeginOfMonth\x20BeginOfPeriod\x20BuildProfilingOperationAnalysis\x20CallProcedure\x20CanReadFile\x20CArrayElement\x20CDataSetRequisite\x20ChangeDate\x20ChangeReferenceDataset\x20Char\x20CharPos\x20CheckParam\x20CheckParamValue\x20CompareStrings\x20ConstantExists\x20ControlState\x20ConvertDateStr\x20Copy\x20CopyFile\x20CreateArray\x20CreateCachedReference\x20CreateConnection\x20CreateDialog\x20CreateDualListDialog\x20CreateEditor\x20CreateException\x20CreateFile\x20CreateFolderDialog\x20CreateInputDialog\x20CreateLinkFile\x20CreateList\x20CreateLock\x20CreateMemoryDataSet\x20CreateObject\x20CreateOpenDialog\x20CreateProgress\x20CreateQuery\x20CreateReference\x20CreateReport\x20CreateSaveDialog\x20CreateScript\x20CreateSQLPivotFunction\x20CreateStringList\x20CreateTreeListSelectDialog\x20CSelectSQL\x20CSQL\x20CSubString\x20CurrentUserID\x20CurrentUserName\x20CurrentVersion\x20DataSetLocateEx\x20DateDiff\x20DateTimeDiff\x20DateToStr\x20DayOfWeek\x20DeleteFile\x20DirectoryExists\x20DisableCheckAccessRights\x20DisableCheckFullShowingRestriction\x20DisableMassTaskSendingRestrictions\x20DropTable\x20DupeString\x20EditText\x20EnableCheckAccessRights\x20EnableCheckFullShowingRestriction\x20EnableMassTaskSendingRestrictions\x20EndOfMonth\x20EndOfPeriod\x20ExceptionExists\x20ExceptionsOff\x20ExceptionsOn\x20Execute\x20ExecuteProcess\x20Exit\x20ExpandEnvironmentVariables\x20ExtractFileDrive\x20ExtractFileExt\x20ExtractFileName\x20ExtractFilePath\x20ExtractParams\x20FileExists\x20FileSize\x20FindFile\x20FindSubString\x20FirmContext\x20ForceDirectories\x20Format\x20FormatDate\x20FormatNumeric\x20FormatSQLDate\x20FormatString\x20FreeException\x20GetComponent\x20GetComponentLaunchParam\x20GetConstant\x20GetLastException\x20GetReferenceRecord\x20GetRefTypeByRefID\x20GetTableID\x20GetTempFolder\x20IfThen\x20In\x20IndexOf\x20InputDialog\x20InputDialogEx\x20InteractiveMode\x20IsFileLocked\x20IsGraphicFile\x20IsNumeric\x20Length\x20LoadString\x20LoadStringFmt\x20LocalTimeToUTC\x20LowerCase\x20Max\x20MessageBox\x20MessageBoxEx\x20MimeDecodeBinary\x20MimeDecodeString\x20MimeEncodeBinary\x20MimeEncodeString\x20Min\x20MoneyInWords\x20MoveFile\x20NewID\x20Now\x20OpenFile\x20Ord\x20Precision\x20Raise\x20ReadCertificateFromFile\x20ReadFile\x20ReferenceCodeByID\x20ReferenceNumber\x20ReferenceRequisiteMode\x20ReferenceRequisiteValue\x20RegionDateSettings\x20RegionNumberSettings\x20RegionTimeSettings\x20RegRead\x20RegWrite\x20RenameFile\x20Replace\x20Round\x20SelectServerCode\x20SelectSQL\x20ServerDateTime\x20SetConstant\x20SetManagedFolderFieldsState\x20ShowConstantsInputDialog\x20ShowMessage\x20Sleep\x20Split\x20SQL\x20SQL2XLSTAB\x20SQLProfilingSendReport\x20StrToDate\x20SubString\x20SubStringCount\x20SystemSetting\x20Time\x20TimeDiff\x20Today\x20Transliterate\x20Trim\x20UpperCase\x20UserStatus\x20UTCToLocalTime\x20ValidateXML\x20VarIsClear\x20VarIsEmpty\x20VarIsNull\x20WorkTimeDiff\x20WriteFile\x20WriteFileEx\x20WriteObjectHistory\x20Анализ\x20БазаДанных\x20БлокЕсть\x20БлокЕстьРасш\x20БлокИнфо\x20БлокСнять\x20БлокСнятьРасш\x20БлокУстановить\x20Ввод\x20ВводМеню\x20ВедС\x20ВедСпр\x20ВерхняяГраницаМассива\x20ВнешПрогр\x20Восст\x20ВременнаяПапка\x20Время\x20ВыборSQL\x20ВыбратьЗапись\x20ВыделитьСтр\x20Вызвать\x20Выполнить\x20ВыпПрогр\x20ГрафическийФайл\x20ГруппаДополнительно\x20ДатаВремяСерв\x20ДеньНедели\x20ДиалогДаНет\x20ДлинаСтр\x20ДобПодстр\x20ЕПусто\x20ЕслиТо\x20ЕЧисло\x20ЗамПодстр\x20ЗаписьСправочника\x20ЗначПоляСпр\x20ИДТипСпр\x20ИзвлечьДиск\x20ИзвлечьИмяФайла\x20ИзвлечьПуть\x20ИзвлечьРасширение\x20ИзмДат\x20ИзменитьРазмерМассива\x20ИзмеренийМассива\x20ИмяОрг\x20ИмяПоляСпр\x20Индекс\x20ИндикаторЗакрыть\x20ИндикаторОткрыть\x20ИндикаторШаг\x20ИнтерактивныйРежим\x20ИтогТблСпр\x20КодВидВедСпр\x20КодВидСпрПоИД\x20КодПоAnalit\x20КодСимвола\x20КодСпр\x20КолПодстр\x20КолПроп\x20КонМес\x20Конст\x20КонстЕсть\x20КонстЗнач\x20КонТран\x20КопироватьФайл\x20КопияСтр\x20КПериод\x20КСтрТблСпр\x20Макс\x20МаксСтрТблСпр\x20Массив\x20Меню\x20МенюРасш\x20Мин\x20НаборДанныхНайтиРасш\x20НаимВидСпр\x20НаимПоAnalit\x20НаимСпр\x20НастроитьПереводыСтрок\x20НачМес\x20НачТран\x20НижняяГраницаМассива\x20НомерСпр\x20НПериод\x20Окно\x20Окр\x20Окружение\x20ОтлИнфДобавить\x20ОтлИнфУдалить\x20Отчет\x20ОтчетАнал\x20ОтчетИнт\x20ПапкаСуществует\x20Пауза\x20ПВыборSQL\x20ПереименоватьФайл\x20Переменные\x20ПереместитьФайл\x20Подстр\x20ПоискПодстр\x20ПоискСтр\x20ПолучитьИДТаблицы\x20ПользовательДополнительно\x20ПользовательИД\x20ПользовательИмя\x20ПользовательСтатус\x20Прервать\x20ПроверитьПараметр\x20ПроверитьПараметрЗнач\x20ПроверитьУсловие\x20РазбСтр\x20РазнВремя\x20РазнДат\x20РазнДатаВремя\x20РазнРабВремя\x20РегУстВрем\x20РегУстДат\x20РегУстЧсл\x20РедТекст\x20РеестрЗапись\x20РеестрСписокИменПарам\x20РеестрЧтение\x20РеквСпр\x20РеквСпрПр\x20Сегодня\x20Сейчас\x20Сервер\x20СерверПроцессИД\x20СертификатФайлСчитать\x20СжПроб\x20Символ\x20СистемаДиректумКод\x20СистемаИнформация\x20СистемаКод\x20Содержит\x20СоединениеЗакрыть\x20СоединениеОткрыть\x20СоздатьДиалог\x20СоздатьДиалогВыбораИзДвухСписков\x20СоздатьДиалогВыбораПапки\x20СоздатьДиалогОткрытияФайла\x20СоздатьДиалогСохраненияФайла\x20СоздатьЗапрос\x20СоздатьИндикатор\x20СоздатьИсключение\x20СоздатьКэшированныйСправочник\x20СоздатьМассив\x20СоздатьНаборДанных\x20СоздатьОбъект\x20СоздатьОтчет\x20СоздатьПапку\x20СоздатьРедактор\x20СоздатьСоединение\x20СоздатьСписок\x20СоздатьСписокСтрок\x20СоздатьСправочник\x20СоздатьСценарий\x20СоздСпр\x20СостСпр\x20Сохр\x20СохрСпр\x20СписокСистем\x20Спр\x20Справочник\x20СпрБлокЕсть\x20СпрБлокСнять\x20СпрБлокСнятьРасш\x20СпрБлокУстановить\x20СпрИзмНабДан\x20СпрКод\x20СпрНомер\x20СпрОбновить\x20СпрОткрыть\x20СпрОтменить\x20СпрПарам\x20СпрПолеЗнач\x20СпрПолеИмя\x20СпрРекв\x20СпрРеквВведЗн\x20СпрРеквНовые\x20СпрРеквПр\x20СпрРеквПредЗн\x20СпрРеквРежим\x20СпрРеквТипТекст\x20СпрСоздать\x20СпрСост\x20СпрСохранить\x20СпрТблИтог\x20СпрТблСтр\x20СпрТблСтрКол\x20СпрТблСтрМакс\x20СпрТблСтрМин\x20СпрТблСтрПред\x20СпрТблСтрСлед\x20СпрТблСтрСозд\x20СпрТблСтрУд\x20СпрТекПредст\x20СпрУдалить\x20СравнитьСтр\x20СтрВерхРегистр\x20СтрНижнРегистр\x20СтрТблСпр\x20СумПроп\x20Сценарий\x20СценарийПарам\x20ТекВерсия\x20ТекОрг\x20Точн\x20Тран\x20Транслитерация\x20УдалитьТаблицу\x20УдалитьФайл\x20УдСпр\x20УдСтрТблСпр\x20Уст\x20УстановкиКонстант\x20ФайлАтрибутСчитать\x20ФайлАтрибутУстановить\x20ФайлВремя\x20ФайлВремяУстановить\x20ФайлВыбрать\x20ФайлЗанят\x20ФайлЗаписать\x20ФайлИскать\x20ФайлКопировать\x20ФайлМожноЧитать\x20ФайлОткрыть\x20ФайлПереименовать\x20ФайлПерекодировать\x20ФайлПереместить\x20ФайлПросмотреть\x20ФайлРазмер\x20ФайлСоздать\x20ФайлСсылкаСоздать\x20ФайлСуществует\x20ФайлСчитать\x20ФайлУдалить\x20ФмтSQLДат\x20ФмтДат\x20ФмтСтр\x20ФмтЧсл\x20Формат\x20ЦМассивЭлемент\x20ЦНаборДанныхРеквизит\x20ЦПодстр\x20','UpEquilibrium','SubstitutionSystem','^#{1,6}','WebSessionObject','NETWORKDAYS','(e|E|u&|U&)\x27','curatorCameraAreaCeiling','translate-x-full','ShannonWavelet','$coverage_get_max','store','[(be|been)]\x20(#Adverb|not)+?\x20#Gerund','ID\x20is\x20required\x20for\x20updating\x20content.','categorical_logit_glm','ShowWindow','delay_mode_unit','datastore','\x5cb(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\x5c.hb)?|jr(\x5c.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\x5c.[sd]|add\x5c.[sd]|alnv.ps|bc1[ft]l?|c\x5c.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\x5c.[sd]|(ceil|floor|round|trunc)\x5c.[lw]\x5c.[sd]|cfc1|cvt\x5c.d\x5c.[lsw]|cvt\x5c.l\x5c.[dsw]|cvt\x5c.ps\x5c.s|cvt\x5c.s\x5c.[dlw]|cvt\x5c.s\x5c.p[lu]|cvt\x5c.w\x5c.[dls]|div\x5c.[ds]|ldx?c1|luxc1|lwx?c1|madd\x5c.[sd]|mfc1|mov[fntz]?\x5c.[ds]|msub\x5c.[sd]|mth?c1|mul\x5c.[ds]|neg\x5c.[ds]|nmadd\x5c.[ds]|nmsub\x5c.[ds]|p[lu][lu]\x5c.ps|recip\x5c.fmt|r?sqrt\x5c.[ds]|sdx?c1|sub\x5c.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)','bezierPoint','louse','gesture_get_drag_distance','VolcanoData','LeastSquares','host','TickLabelPositioning','true¦0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you\x20gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue\x20nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me\x20off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH;\x2016i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il\x20poliZtional\x20securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q;\x20learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use\x20arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en;\x203ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld\x20w6mmenta5n3ral,ttIuscoB;fusiHt\x203;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal\x20court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs','iap_status_available','convenience','IndentMaxFraction','^facet\x20','hintSilent','$CurrentWebSession','noexcept','physics_fixture_set_density','HammingWindow','ain\x27t','$1es','putc','⊫','view_vborder','grammar-error','Comparable','buldozer_IsEnabledRoadDiag','z-index','AGGREGATE','𝔏','Wire','hyphens','value-bucks','⪸','⊁','AUTO|0','SelectionMove','(#Pronoun|#Person)\x20(had|#Adverb)?\x20[better]\x20#PresentTense','DoubleContourIntegral','FinancialData','ClassPriors','.overlay-settings','FILE_ATTRIBUTE_ARCHIVE','sens','camCommand','transform-style','@[A-z0-9_]+','being-driven','PaddingLayer','speaker','(\x5c([^()]*(\x5c([^()]*(\x5c([^()]*\x5c)[^()]*)*\x5c)[^()]*)*\x5c)|','ctrlStyle','TOOL_OFFSET','Delimiter','ConicHullRegion','hcLeader','ds_queue_dequeue','cache\x20database_names\x20database_schemanames\x20database_tablenames\x20define_tag\x20define_type\x20email_batch\x20encode_set\x20html_comment\x20handle\x20handle_error\x20header\x20if\x20inline\x20iterate\x20ljax_target\x20link\x20link_currentaction\x20link_currentgroup\x20link_currentrecord\x20link_detail\x20link_firstgroup\x20link_firstrecord\x20link_lastgroup\x20link_lastrecord\x20link_nextgroup\x20link_nextrecord\x20link_prevgroup\x20link_prevrecord\x20log\x20loop\x20namespace_using\x20output_none\x20portal\x20private\x20protect\x20records\x20referer\x20referrer\x20repeating\x20resultset\x20rows\x20search_args\x20search_arguments\x20select\x20sort_args\x20sort_arguments\x20thread_atomic\x20value_list\x20while\x20abort\x20case\x20else\x20fail_if\x20fail_ifnot\x20fail\x20if_empty\x20if_false\x20if_null\x20if_true\x20loop_abort\x20loop_continue\x20loop_count\x20params\x20params_up\x20return\x20return_value\x20run_children\x20soap_definetag\x20soap_lastrequest\x20soap_lastresponse\x20tag_name\x20ascending\x20average\x20by\x20define\x20descending\x20do\x20equals\x20frozen\x20group\x20handle_failure\x20import\x20in\x20into\x20join\x20let\x20match\x20max\x20min\x20on\x20order\x20parent\x20protected\x20provide\x20public\x20require\x20returnhome\x20skip\x20split_thread\x20sum\x20take\x20thread\x20to\x20trait\x20type\x20where\x20with\x20yield\x20yieldhome','#Copula\x20(pretty|dead|full|well|sure)\x20(#Adjective|#Noun)','getNth','lbData','CirculantGraph','p-4\x20md:p-6\x20lg:p-8\x20overflow-auto','updateDrawIcon','date_get_timezone','cjs','enter-btn','environment_get_variable','abbr_class','loadAbs','(^|(?![.:/\x5c-_@])(?:[$+<=>^`||]|','sput','DiscretePlot3D','estuary','Map','LogitModelFit','script_exists','IncludeFileExtension','parents','$cast','DeleteSearchIndex','browser_windows_store','ctrlAngle','baseNameOf','setText','»','_|0','Flatten','readwrite','џ','FindGraphIsomorphism','dclose','ttsabort','layer_get_x','vertex_format_add_normal','Differences','Ю','form_theme','physics_particle_group_add_point','BinLists','GetCurInstType','\x5cb(?!','Small','VerticalBar','integrate_1d','WolframAlphaDate','window_center','[{;]','src_xn','Ė','LeftTeeArrow','Given\x20the\x20following\x20BACKGROUND_KNOWLEDGE,\x20and\x20a\x20student\x27s\x20QUESTION,\x20answer\x20the\x20QUESTION.\x20You\x20may\x20use\x20the\x20\x20BACKGROUND_KNOWLEDGE\x20as\x20reference.\x20Otherwise,\x20you\x20can\x20be\x20creative\x20and\x20respond\x20in\x20a\x20way\x20that\x20always\x20ensure\x20you\x20MUST\x20answer\x20the\x20question.\x20For\x20important\x20keywords\x20or\x20phrases\x20in\x20your\x20response\x20that\x20also\x20have\x20wikipedia\x20pages,\x20you\x20must\x20surround\x20them\x20with\x20double\x20slashes.\x20For\x20example\x20\x27\x5cmachine\x20learning\x5c\x27.\x20Each\x20response\x20MUST\x20have\x20at\x20least\x20two\x20keywords\x20or\x20phrases.\x20At\x20the\x20end\x20of\x20your\x20response,\x20place\x20\x27%%%\x27\x203\x20percent\x20signs,\x20and\x20then\x20write\x202\x20to\x203\x20followup\x20questions\x20that\x20the\x20user\x20might\x20ask\x20to\x20expand\x20their\x20knowledge.\x20Return\x20as\x20markdown','iap_storeload_failed','AstroGraphics','path_get_x','⋐','mixin|10','ODDFPRICE','alumni','define','For','EmbeddingLayer','TrackDistanceAt','Links','TreeSize','$right','instance_number','SequenceReplace','TranslationTransform','SmallCircle','ScheduledTask','“”\x22❝❞','GetFeatureSet','getservbyname','gp_axisrh','NoncentralBetaDistribution','HyperbolicDistribution','TEMP','lol','╙','$AudioEncoders','really-mark','vk_f10','$SoundDisplay','▫','th_open','SearchIndexObject','caret-color','border-inline-color','winphone_tile_back_content_wide','FORECAST.LINEAR','SinIntegral','dlgama','≭','geq','jinja','TAB','possessives','matrix_stack_multiply','DefaultFontProperties','rify','AcceptanceThreshold','VoigtDistribution','path_orientation','TubeBezierCurveBoxOptions','Undelimit','house','swamp','ds_grid_height','lnbSetColumnsPos','current_time','resources','FaceGridsStyle','layer_tile_alpha','startScope','NetEvaluationMode','gpu_get_blendmode','Url','or-heightened-emotion','ϖ','ButtonFrame','PolygonCoordinates','prognoses','CloudExport','MixtureDistribution','Previous','Nothing','HelpViewerSettings','display_set_gui_size','s_until_with','isa','nee','police','severity','figcaption','text','ds_grid_add_grid_region','audio_exists','\x5c|#','\x5c[no_square_brackets','CoxIngersollRossProcess','rank','septillion','TransitiveReductionGraph','atomic_noexcept','errors','units','buffer_u64','numeric','FilledCurveBoxOptions','\x5cs*[\x5c$\x5cw_][\x5cw_-]*','nextMenuItemIndex','\x27\x5c\x5c?.','magazinesAmmoFull','failTo','url_open_full','FormatRules','SpellingCorrection','NotImplemented','steam_ugc_query_set_match_any_tag','lchoose','(0[xX](','diag_activeSQFScripts','$PipeSupported','CVD','ToDiscreteTimeModel','contra','cancelSimpleTaskDestination','AudioGenerator','abstracts','case_eq','$InitializationContexts','setVehicleReportOwnPosition','Evaluated','poisson','MapIndexed','RightComposition','valid','vk_return','DimensionalCombinations','date_current_datetime','mixin','fieldset','missionNameSource','3-[fallback]','breakpoint','▽','DAYS360','AxiomaticTheory','⌍','audio_sync_group_get_track_pos','dfn','strrchr','VideoTrim','INTERNAL2V56','FileInformation','and\x20#Value\x20#Fraction','frant','WiFiClient','keys','idnint','change','QnDispersion','dasin','[object\x20Object]','tastes-good','comparguments','revealed','_walk','Select','TabViewBoxOptions','MixedUnit','scoreSide','gpu_set_tex_max_aniso','Unequal','TreeLeafQ','LCHColor','ctrlSetFontH6B','д','BlackmanNuttallWindow','PersistenceLocation','LoadLanguageFile','String','DirichletCharacter','inv_wishart','pageY','bm_dest_color','ResourceSubmit','Declare','VideoStop','```+[\x20]*$','IdentityMatrix','cov_matrix|10','⤃','FindHamiltonianCycle','LearningRate','WaveletImagePlot','helpers','LucasL','ropeDetach','env','form-action','QuantityMagnitude','argument8','CellLabelPositioning','TrimmedMean','Min','vk_escape','private_constant','dims','curatorRegisteredObjects','MemberQ','ScaleRangeStyle','default','month','𝒦','showCompass','work','setycomp','Skewness','Wednesday','NetworkPacketTrace','audio_3d','ctrlSetChecked','AsynchronousTasks','physics_world_create','airportSide','≪̸','ropesAttachedTo','ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ','sysopen','MeshConnectivityGraph','GeoGridLinesStyle','cexist','Alignment','Bold','SubClass','IMCSCH','DESKTOP','clickable_change_ext','$RootDirectory','SystemGet','cornish','\x5cn/{4,}$','FitAll','FrontEndValueCache','Text3DBox','#FirstName\x20[#Determiner\x20#Noun]\x20#LastName','Firmata','(800)\x20PhoneNumber','asin','win8_search_add_suggestions','vk_f3','DirichletCondition','TextureCoordinateFunction','⊹','^[#Infinitive]\x20it\x20(please|now|again|plz)','NumericHex','add','ѓ','GegenbauerC','was','ds_grid_create','1pm-sun','¬','passthrough','POINT','HomePage','Checkbox','ClearSystemCache','tvSetSelected','Databins','TildeFullEqual','enableAudioFeature','twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty','marginBottom','ToContinuousTimeModel','\x5cbproperty\x5cb','assert_eq!','physics_joint_rope_create','HasKey','(\x27|\x5c.\x27)+','CelestialSystem','⊅','adj-presentTense','view_get_yport','/?>','YEARFRAC','EdgeCycleMatrix','ifnull','(#Particle|#PhrasalVerb)','))?\x5cb','[\x5c.#:&\x5c[>]','SLN','display_mouse_get_x','⟨','^dn(?=:)','maxWidth','ChebyshevDistance','eightieth','setOpticsMode','achievement_load_friends','physics_particle_set_category_flags','organizations','locally','string_insert','GrammarApply','add\x20remove\x20enable\x20disable\x20set\x20get\x20print\x20export\x20edit\x20find\x20run\x20debug\x20error\x20info\x20warning','AggregatedEntityClass','OptionsPacket','gesture_get_drag_time','endclass','CompoundExpression','singly','emphasis','(?:re)newenvironment','ctAddHeader','pushPending','⟵','MittagLefflerE','named-character','(have|has|had)\x20been','will\x20be','(impersonating|practicing|considering|assuming)','steam_ugc_query_set_return_long_description','vertex_color','isValid','classNameAliases','TaskExecute','left-her-boots','inside','ev_step_normal','vk_up','\x5cs*(:=|;|\x5c)|=>|$)','onDoubleClick','Coefficient','GroupElements','xs:int','PowerModList','prefecture','CompilerOptions','Geometry','keyboard_key','justify-content','phy_particle_data_flag_colour','𝕋','went','\x5c*(\x5c.[a-z\x5c-]+)+','LinkReadHeld','true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;!\x20to,a;ight,ust;an,o0;uld','radix','$cos','getPlayerChannel','IfErrors','CounterEvaluator','Grid','∻','playMission','NAME','DATEVALUE','vectorMagnitude','\x5c$[0-9][0-9A-Fa-f]*','AxesStyle','TakeLargestBy','surface_set_target_ext','ListPickerBoxOptions','$strobe','gp_padd','caller','[A-Za-z_]\x5cw*(::\x5cw+)*(\x5c?|!)?','layer_sprite_xscale','value-of-month','detail','sun-the-5th','⨿','gpu_get_blendenable','moveInGunner','LinkFunction','TemplateArgBox','Ρ','menuChecked','Backslash','^(is|are|am)\x20#Gerund$','uninstConfirm','i\x20(#Adverb|do)?\x20not?\x20[mean]','RegExp','routeros','mint','RootTree','DimensionReduce','view_get_visible','physics_fixture_set_circle_shape','Struckthrough','UnhandledMatchError','mouse_clear','FontColor','tpl_host_fuzzy_test','[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+','⇘','JavaScript','ResponseForm','FilterIterator','library','IncludeSingularSolutions','vectorDistanceSqr','park','setWindForce','wants','MandelbrotSetMemberQ','shader_current','(is|was|am|are|will|were|be)','text-align:','press','remoteExecCall','modifies','unassignItem','#Copula','win8_secondarytile_pin','gpu_set_colorwriteenable','rehash','honorific','utime','jthread','≧̸','c_olive','co_yield','vk_delete','vinformatwx','NumberFieldDiscriminant','td_close','0[xX]','reference','¨','^[\x20]*\x5c.[a-zA-Z]*','MeshCells','maskr','SystemError','debugPrint','transformed','RESET|0','#Plural\x20on\x20[#Infinitive]','(^|[><|]|\x22|\x5c(|','getBleedingRemaining','gauss','triggerStatements','Directory','lnbData','(//|\x22|#|/\x5c*|\x5cs+/\x5cw+)','LeftRightArrow','encodeURI','style','shownMap','works-for-me','Ś','elemental','!%&*+-/<=>@^|~?','Dashed','lcase','StringQ','clear','EXP','RadonTransform','FieldCompletionFunction','nothing','Existential','univ','ImageCacheValid','RegionPlot','EdgeRules','INTERCEPT','ContinuedFraction','observatory','(?![a-zA-Z@:_])','addWeaponWithAttachmentsCargo','highest','ROUND','a-warhol','PShape','rep','file_text_open_read','PropertyList','EuclideanDistance','random_set_seed','setLocalWindParams','ChromaKey','gas','assurance','distanceSqr','OpenerView','GeometricTest','BINARY_NUMBER_MODE',')[jJ]?(?=','toPresent','whims','border-block-style','GaugeLabels','draw_set_alpha_test_ref_value','jldoctest','is_bool','ÿ','TelegraphProcess','$UserBaseDirectory','quad_form_sym','vk_decimal','camera_get_end_script','errorlevel','will\x20#Adverb?\x20not?\x20#Adverb?\x20[be]\x20#Adjective','getEditorCamera','GeneratedAssetFormat','XIRR','selectWeaponTurret','Coarse','TextSearchReport','macroend','inner','CylindricalDecompositionFunction','std-time','Ê','LegendLabel','date_leap_year','CoreNilpotentDecomposition','TextPosition','⨍','⟪','AstroRange','ListContourPlot','tlds','OEM_CHARSET','HypothesisTestData','MeanNeighborDegree','#Adjective\x20[#Adjective]\x20#Copula','NSEC3PARAM','dtan','⥳','SolarSystemFeatureData','sci','PacletSiteRegister','blockquote','$tan','(#Verb\x20&&\x20!#Auxiliary)\x20#Adverb+?\x20#Copula','|[()[\x5c]{}.,\x22\x27?!\x5c-;]).|\x5c[(?:(?!','LowerCaseQ','tokens','scale','wantarray','byval','$changing_gclk','scroll-snap-align','PrintingStartingPageNumber','⤎','phy_particle_flag_powder','GeneratorDescription','octet_length','buffer_seek_start','Conjectures','TravelDistanceList','c_f_pointer','PartitionsQ','event_data','no-doubt','true¦0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn\x20dIrgBEsHzG;qu7;ilyEqu7siljE;en\x20b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z;\x20JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a\x20cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as','emitNotTerminatedNamedEntity','IntervalUnion','thousand','ħ','binary_semaphore','ListCorrelate','LindleyDistribution','herald','scrollbar-color','HeunC','fog','ο','TrigFactorList','TaskFailedException','c_double','HarmonicNumber','TreeElementSizeFunction','interp','ℂ','≕','wor','beginScope','fabs','commander','BETADIST','tvSetCurSel','ibclr','infixr','arrayIntersect','beforeMatch\x20cannot\x20be\x20used\x20with\x20starts','[cause]\x20#Pronoun\x20#Verb','#PresentTense\x20the\x20[#Gerund]','BubbleScale','GeneratedParameters','Byte','DescriptorStateSpace','atomic_commit','\','Inset3DBoxOptions','strncat','cite','set_local','getLines','date_add_str','steam_download_scores_around_user','zmodload','Dust','indent','⫛','apply','BigUint64Array','CircularOrthogonalMatrixDistribution','FileTemplateApply','ContentsBoundingBox','$InitialDirectory','JankoGroupJ1','AudioRecord','GrayLevel','GreaterTilde','grouping\x20sets','idint','⪺','nth-child','AnyOrder','consulting','symbol','physics_particle_draw_ext','allVariables','#f0f0f0','MaxMemoryUsed','pickWeaponPool','LinkCreate','Љ','foo-off','twenty','country_timezones','\x5c[noprocess\x5c]|','six','Unhandled\x20action\x20type:\x20','mas','GraphDifference','[#PresentTense]\x20(music|class|lesson|night|party|festival|league|ceremony)','waypointLoiterAltitude','\x5cb(0b[01\x27]+)','LOAD','⁠','divmod','@throw','ctrlTooltip','ChannelSubscribers','debriefingText','aside','appendfile','Ą','Equals','diag_recordTurretLimits','os_windows','there-are','node','ils','⋼','⩾̸','blue','dcosh','can_close','time_vector','(\x5cb0o[0-7_]+)|(\x5cb0b[01_]+)|(\x5cb0x[0-9a-fA-F_]+)|(-?\x5cb[0-9][0-9_]*(\x5c.[0-9_]+([eE][-+]?[0-9]+)?)?)','⦌','RollPitchYawMatrix','DenseVecOrMat','WaitAsynchronousTask','prefers-reduced-transparency','filled','port\x20effect\x20module\x20where\x20command\x20subscription\x20exposing','359838kSYsKI','Reset','badRule','NamedTuple','#PresentTense\x20#Plural','clock_str','Polynomials','otherwise','tagged','uptime','to_array_1d','soundex','⌶','animation-play-state','src_email_name','(we|they)','window_set_fullscreen','SierpinskiCurve','excludeEnd','to\x20#Infinitive\x20[#PresentTense]','ListVectorPlot3D','classList','(\x5c(|\x5cs+|$)','shoulda','cursor_sprite','colón','#Infinitive\x20and\x20[%Noun|Verb%]','television','pointwiseMax','[\x5c.,]','HadamardMatrix','\x5cb(\x5cd[\x5cd_]*(\x5c.[0-9_]+)?([eE][+-]?[0-9_]+)?)','TimeZone','datepart','sbyte','isNotEqualTo','^[\x5c-\x5c.]{4,}\x5cn','ev_joystick1_button5','msgrcv','GrammarToken','perl','#responseTextarea','quickSplit','NextDate','profileNameSteam','GenerateDigitalSignature','image_blend','2-titlecase','#Copula\x20#Adjective+\x20(and|or)\x20[#PastTense]$','EEPROM','phy_joint_translation','window_set_cursor','pt_shape_circle','add3DENConnection','Subtract','been-told','PROPER','SecurityCertificate','error-notice','foundation','LUBackSubstitution','allUnitsUAV','esq','PairedSmoothHistogram','ds_list_replace','BackedEnum','(is|are|am)','CauchyPointProcess','VIFileVersion','get3DENLayerEntities','}','^Content','Timestamp','CNT','PauliMatrix','⦒','AnomalyDetectorFunction','today','⥅','StackComplete','(he|she|they|it|we)\x20is','FileWriteWord','GeoBackground','clearWeaponPool','Magenta','disableDebriefingStats','LogSeriesDistribution','^come\x20#Infinitive','json_arrayagg','BusinessDayQ','mstr','TrackCurrentAcceleration','win8_secondarytile_badge_notification','setTimeout','collision_line','waypointLoiterRadius','Positive','ini_open','RulePlot','mutable','xor_eq','𝔶','⟼','Ű','barely-even','skeleton_get_minmax','win8_appbar_add_element','WeightedGraphQ','$TimeZone','GeometricTransformationBoxOptions','.True.','FrameRate','Demonym','str','isFrozen','draw_vertex','unhex','ExpirationDate','physics_fixture_set_polygon_shape','say3D','SechDistribution','weaponsItemsCargo','⥖','rewrite_strat','subjects','constructor','[%Person|Place%]\x20(harbor|harbour|pier|town|city|place|dump|landfill)','vectorDB_','intersection','roboconf','SectorSpacing','BilateralZTransform','org-abbrv','true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN;\x20if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided\x20th9;r0therwiM;!\x20not;\x20mattEr,w0;!\x200;since,th4w7;f4n0;\x200asmuch;as\x20mIcaForder\x20t0;h0o;at;!\x200;only,t0w0;hen;!ev3;ith2ven0;!\x200;if,tB;er;o0uz;s,z;e0ut,y\x20the\x20time;cau1f0;ore;se;lt3nd,s\x200;far1if,m0soon1t2;uch0;\x20as;hou0;gh','/dev/poll','eprintf','#Negative','buffer_delete','Permutations','View','OpenSpecialOptions','layer','ImageForwardTransformation','ptx','room_get_viewport','MathieuS','squadParams','ArcCosh','^(have|must)\x20you','obj-c++','ControllerDuration','file_exists','WhitePoint','Timeout','rayleigh','RootIntervals','$rtoi','renderInlineAsText','include\x20use','HypergeometricDistribution','red','enddeclare','createDiarySubject','ImageForestingComponents','localIP','frame-ancestors','surface_get_width','[sun]\x20#Date','#Honorific\x20#Acronym','HYPGEOM.DIST','ClassifierInformation','layer_add_instance','_Noreturn','GeometricTransformationBox','array_push','RiemannXi','ATTRIBUTE_SELECTOR_MODE','OutputSizeLimit','ShearingMatrix','drawLink',':^$','ev_joystick2_button4','SilentInstall','chan','CSGRegionQ','EventSeries','ServiceConnect','ł','view_set_surface_id','target-within','setActualCollectiveRTD','screen_save','Simplify','win8_settingscharm_get_xaml_property','TabView','stack','đ','UInt64','ps_shape_line','audio_destroy_stream','give','LocalEvaluate','part_system_get_layer','bg-gray-600\x20rounded-lg\x20p-2\x20text-white\x20hover:bg-gray-300','upcast','emails','gully','ordered_list_open','if\x20else\x20elif\x20endif\x20define\x20undef\x20ifdef\x20ifndef','beep','layer_x','SphericalRegion','ive','backpackItems','MonomialList','outerHTML','macromodule','tbody_close','CoordinateChartData','ize','GM_build_date','AugmentedSymmetricPolynomial','LinearGradientFilling','LinearOffsetFunction','pinMode','lsl','cheatsEnabled','createTreeWalker','steam_ugc_request_item_details','(going|to)','apacheconf','LibraryUnload','Darker','willSet','setPlayerVoNVolume','Hold','felt-loved','PatternFilling','GAMMAINV','lbClear','createSite','title.function','reflexpr','mp_linear_step_object','AnimatorBoxOptions','colour_get_value','nettype','do\x20not\x20(forget|omit|neglect)\x20to\x20[#Infinitive]','to-swears','surg','inRangeOfArtillery','ENDSEC','subroutine\x20function\x20program','AudioFade','beginShape','^#QuestionWord','devnull','NotCupCap','scroll','#Month\x20#Date\x20#Date','Piecewise','WeightedAdjacencyGraph','/[a-z]*','setPosASL','LineOpacity','corp','#Money\x20#Currency','UndefKeywordError','setSuppression','ClipRange','doFirst','(-?)(\x5cb0[xX][a-fA-F0-9]+|(\x5cb\x5cd+(\x5c.\x5cd*)?|\x5c.\x5cd+)([eE][-+]?\x5cd+)?)','1:mt¦2:llen¦3:iven,aken¦:ne¦y:in','Self','profile','ProgressIndicatorBox','matched','do\x20while\x20select\x20delete\x20by\x20update\x20from','Cuintmax_t','gpu_get_tex_min_mip','unlink','EvenQ','sendTaskResult','dst','MessageName','\x0a\x20\x20\x20\x20\x0a\x20\x20\x0a\x20\x20','NS_ENDHANDLER','▸','#\x5c((?!parameter).+\x5c)','FisherRatioTest','AngleVector','ClearAll','fuzzyLink','avg','MixedFractionParts','NotRightTriangleEqual','ι','(u8?|U)?R\x22','raceway','substr','BioSequencePlot','nested','draw_sprite_general','after:highlightElement','SectorChart3D','^#!/usr/bin/env','UpTo','AlternatingFactorial','MoleculePattern','Clojure','\x5cb0[dD][0-9](_?[0-9])*r?i?\x5cb','discardableResult','BandpassFilter','getSubtitleOptions','Signed','PasteAutoQuoteCharacters','hasOwnProperty','waypointAttachVehicle','#Singular\x20#Acronym\x20#LastName','before:highlightElement','audio_group_name','teens','text-shadow','al-borlen','‰','string_width_ext','__SOURCE_DIRECTORY__','#!\x5c/usr\x5c/bin\x5c/env\x20runhaskell','endgenerate','win8_livetile_badge_clear','pdf','readpipe','c_associated','enablePersonTurret','comm','FoxHReduce','ifinf','TrackDuration','timeserial','SaveDefinitions','fromComparative','draw_background_part_ext','tpl_link_fuzzy','pit','UnmanageObject','COUPNUM','DataReversed','corps','ImageExposureCombine','PlotRangeClipPlanesStyle','PropagateAborts','input[type=\x22checkbox\x22]','FISHERINV','EndOfBuffer','must\x20&&\x20#Hyphenated\x20.','waypointTimeoutCurrent','PageFooters','Return','getUnitLoadout','(\x5c.\x5c.\x5c.)','Transliterate','(?!struct)(','DirectedGraphQ','MINVERSE','DeviceObject','GaussianOrthogonalMatrixDistribution','TextDisplay','win8_share_image','Ż','SMSTARTUP','border-style','ʼn','the\x20[#Adjective]\x20#Noun','ASin','filename','transaction_safe_dynamic','PageBreakAbove','selected_real_kind','grouping-separator','InverseWishartMatrixDistribution','HUDMovementLevels','⪌','¼','TunnelData','в','vk_anykey','PageBreakWithin','BufferedReader','draw_text_color','charAt','UnateQ','alarm','column-fill','commandStop','CarlsonRF','p21','footnote','ctSetCurSel','setMusicEventHandler','RandomPoint','parsePacket','NumberFormat','nextNode','FileWriteByte','ds_stack_push','createCenter','goto','unicode|punctuation|whitespace|acronyms','diaryRecordNull','Includes','RightTriangle','-module','⋉','))\x5cb','window_set_min_height','setMarkerType','window_get_color','micro','φ','ButtonNotebook','$CloudWolframEngineVersionNumber','layer_sprite_get_blend','recursive_timed_mutex','gets','LeftUpDownVector','\x5c\x5c.','development','FunctionBijective','getTextWidth','os_ps4','OLEData','ImplicitD','__schemas__','privileged','\x5c(quote\x20','ScriptBaselineShifts','SplineClosed','Difference','django','segment','variable_struct_exists','⇊','FINDB','CellularAutomaton','beginDraw','MONTH','⧀','setAmmoOnPylon','Factor','verbs','commit','removeAllContainers','ForwardCloudCredentials','formatText','text-indent','Curry','reinterpret_cast|10','ImageValue','thread','compilerExtensions','RemoteEvaluate','UPPER','setWaypointLoiterType','unitIsUAV','’','removeMagazinesTurret','TagSet','mouse_x','assumption','removeSimpleTask','physics_joint_get_value','running-a-show','^','__covariant','δ','include','ProbabilityDistribution','noun-for-gerund','SetAttributes','txt','sequential','link_no_ip_fuzzy','$high','MB_ICONQUESTION','collection','ImageContents','char32_t','bm_inv_dest_colour','InitializationCell','settled','bly','ToeplitzMatrix','SRV','SolveValues','animationState','CanonicalizePolyhedron','ugc_query_RankedByVotesUp','\x5cb(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)','BSplineSurface3DBox','cbrt','SphericalHankelH1','ImagePyramidApply','GeoContourPlot','rewriterule','ones_int_array','cutFadeOut','right-into','scoped','CenterArray','RandomArrayLayer','kbv_returnkey_google','FrameLabel','obj','field_simplify','ev_gui_begin','SierpinskiMesh','merge_color','dprod','Int32','setAirportSide','must','GraphicsContents','shownCuratorCompass','farm','BodePlot','true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x\x20r55yo\x20yo;a7ha3No3O;f3i4Ot0Ey7;!\x20arou37;arAe8ideo\x20ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s\x207;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z;\x20rex,aIeHhFiDoCr9u8v7;!\x20show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x\x20return;aLcKeIhor4NiHkFoEpin\x20off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per\x20bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;!\x20lo0G;i37u1;ft\x20ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity\x20gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord\x20label;p2Ft0;a1u43;estion\x20mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss\x20relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne\x20call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07;\x209e0K;bor12y7;\x207er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man\x20right,s1Z;me7rmoDsp1Dtb0I;!\x20r7;un;\x20scho0WriW;a7i1K;d7v5;\x20start,pho7;ne;ndful,sh\x20brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d\x20slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee\x20market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump\x20tru0R;agonf4i7;er,ve\x20thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault\x2003err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit\x20ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil\x20wK;aBeqAick5oco9r7;istmas\x20car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en;\x20hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt','SpeciesData','StateResponse','Ε','Country','ds_list_add','TEXT:\x20','getpwuid','((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\x5cb','GeometricStylingRules','Matrices','scriptName','splitOn','AsymptoticLessEqual','phy_joint_reaction_torque','MailAddressValidation','let\x27s','$readmemh','DefaultValue','starts','sprite_set_alpha_from_sprite','Succeeds','𝓃','$ContextAliases','#Money\x20#Unit','AddSize','museum','NumberFieldIntegralBasis','keepSpace','lines','i16','declared-intentions','WikipediaData','EngineeringForm','ExtentMarkers','Visibility','Projections','MAProcess','Taylor\x20your\x20response\x20for:\x20','disableRemoteSensors','asWritable','$CacheBaseDirectory','too\x20much','ToSphericalCoordinates','draw_sprite_tiled_ext','п','help','is_real','un.custom','gamma_q','ScalingMatrix','SurvivalModel','DEFDBL','cursor','JordanDecomposition','#Particle$',')|\x5cd+\x5c.','ATLToASL','ComposeSeries','concept','nMenuItems','audio_pause_sound','\x5cb(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\x5cb','GainMargins','audio_sound_pitch','⊵','CDFDeploy','Keys','╣','s|tr|y','JacobiDN','isPlural','doing-better-for-x','iap_failed','⋾','Thick','zeros_row_vector','print','dll_cdecl','EventHandler','@property','WebSessions','keyboard_lastkey','ctrlMapAnimCommit','include_once','autorite','setUnitCombatMode','xn--','status','background-color','⋂','tvSetColor','setUnitPosWeak','(west|east|north|south)\x20[%Person|Place%]','BarOrigin','switchAction','SortedEntityClass','logout_url','touchstart','$OperatingSystem','openNode','TargetSystem','cr_handpoint','__bridge','chcp','running-for','$DefaultRemoteKernel','gp_axisrv','0\x20width\x20match\x20regex\x20(','ColorSetterBoxOptions','FindKPlex',':^p','FromLetterNumber','#Copula\x20(#Adverb|not)+?\x20[going\x20to]\x20#Adverb+?\x20#PresentTense','PrecedenceForm','showWaypoints','lbSize','Scopes','CachingIterator','true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound\x20st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s','ptrs','fromPresent','\x5cd{4}-\x5cd{2}-\x5cd{2}(\x5cs+)\x5cd{2}:\x5cd{2}:\x5cd{2}.\x5cd+Z','mp_grid_draw','__beforeBegin','TXT','animateBay','^#Verb$','study','SpanAdjustments','urls','Preterm','[such]\x20(a|an|is)?\x20#Noun','%Person|Verb%\x20#Person','ZERO','SetStreamPosition','CUBESET','Overlay','get_open_filename','border-bottom-color','AutoEvaluateEvents','[0-9]+#[0-9A-Z_]+(\x5c.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?','conjg','░','Dimensions','getPosASL','chief-of-police','varargs','(ready|available|difficult|hard|easy|made|attempt|try)\x20to\x20[%Noun|Verb%]','SubtitleTrackSelection','path_start','[a-zA-Z_]\x5cw*','Show\x20answers','royalblue','Canvas','targetKnowledge','Integrate','vehicle','game_save_buffer','MIRR','lng','TemporalData','inv_gamma','getDammage','AffineSpace','PercentForm','object_inner_values','Typed','sprite_set_cache_size_ext','vinformatn','forceWeatherChange','$ResourceSystemBase','AiryAiZero','HANGEUL_CHARSET','ev_global_right_button','createGearDialog','Green','PERMUT','Greater','hostid','SendMessage','GridBox','background_showcolour','getc','functor','Degree','WiFiUDP','hyperref','power_up','rammed','getprotobynumber','typeof','browser_tizen','audio_listener_set_orientation','builtin','$coverage_control','boys','elif','InvalidArgumentException','DynamicLocation','Parametric','Less','vformatn','enableIRLasers','is\x20no\x20[#Verb]','LogisticDistribution','connected','xs:dateTimeStamp','AspectRatioFixed','positive','indexOf','Weekday','createVehicleLocal','file_bin_seek','DelimitedArray','importance','merge','NEGBINOM.DIST','ResourceAcquire','Verbose','cmpfunc_equal','chron','pmouseY','removeAllPrimaryWeaponItems','steam_activate_overlay_store','ControllerPath','DownLeftVectorBar','set3DENLogicType','PopupView','MeijerG','mindfulness-btn','Haxe','waypointAttachObject','vlabel','window_set_caption','|\x5cn|\x5cb(case|if|select|unless|until|when|while)\x5cb)\x5cs*','magazinesDetailBackpack','AbsoluteCorrelation','json_objectagg','JacobiDS','gpu_get_colorwriteenable','to_matrix','boolean_vector','fromRightClickMenu','the-planning-process','matrix_multiply','#PastTense\x20#Preposition\x20[#PresentTense]','and\x20as\x20assert\x20asr\x20begin\x20class\x20constraint\x20do\x20done\x20downto\x20else\x20end\x20exception\x20external\x20for\x20fun\x20function\x20functor\x20if\x20in\x20include\x20inherit!\x20inherit\x20initializer\x20land\x20lazy\x20let\x20lor\x20lsl\x20lsr\x20lxor\x20match\x20method!|10\x20method\x20mod\x20module\x20mutable\x20new\x20object\x20of\x20open!\x20open\x20or\x20private\x20rec\x20sig\x20struct\x20then\x20to\x20try\x20type\x20val!\x20val\x20virtual\x20when\x20while\x20with\x20parser\x20value','VectorScaling','inputController','fsharp','UsingFrontEnd','WeakRef','get3DENConnections','vehicleVarName','CreateTemporary','#Ordinal\x20#Ordinal','PhaseRange','^(ok|alright|shoot|hell|anyways)','WeakSet','DefaultOptions','generalized_inverse','instance_id','naninf','FileConvert','setTargetAge','#help-btn','Covariance','pgsql',':^\x5c','Legacy','#Url','RawFD','signed','RegionDisjoint','vertex_type_ubyte4','getnetent','sget','SplTempFileObject','⩟','SectorChart','toFuture','mask-composite','enableSentences','font_get_last','Missing','first-child','⦖','chief\x20of\x20#Noun+','saveJSONObject','#Ordinal\x20[#Cardinal]','modport','tinyMLDB_chats','AllowSkipFiles','noun-like','Cssize_t','Interpretation','src_ip4','ropes','physics_fixture_create','StringForm','IndependenceTest','StringIndexError','SetFileAttributes','about-to','$Language','#(?!.*','didJIP','CompilerEnvironmentObject','beginRe','ButtonContents','NotebookAutoSave','global.get','flag','DateBounds','HighlightString','ctSetRowTemplate','pt_shape_smoke','|||<[?][\x5cs\x5cS]*?[?]>|]*>|)','unsetopt','PacletSymbol','RegionDilation','numerator','InstType','vim','viruses','“','$unsigned','CUMIPMT','guard','notexists','@compatibility_alias','setCenterOfMass','playAction','){0,61}','physics_fixture_set_restitution','box-shadow','Float32','vk_lcontrol','SetDetailsView','steam_get_user_persona_name','ℸ','⋳','ttsbegin','daccsyd','font_add_sprite','KaiserBesselWindow','sprite_set_cache_size','BigInt64Array','MeshCellCentroid','Ó','lognormal','citations','YAML','eventhandler','MathieuC','(\x5c$\x5cW)|((\x5c$|@@?)(\x5cw+))',''','AstroBackground','await','IMLN','become','SYSTEM','Sign','gpu_get_colourwriteenable','contradiction','failMission','systemOfUnits','𝒰','χ','AudioChannelSeparate','#Value\x20#Noun\x20(st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)','rewind','hills','QUARTILE.INC','FlightData','SolarEclipse','inv_erfc','bor','#Preposition\x20[about]','ValenceFilling','𝒹','layer_sprite_create','#FirstName+','FrontFaceTexture','QuantityDistribution','magazinesAmmoCargo','\x5cb(0|[1-9](_*[0-9])*)[lL]?\x5cb','PermissionsKeys','⪀','ShowCellBracket','achievement_filter_friends_only','network_connect','layer_tilemap_create','toInfinitive','properties','phy_mass','min0','EndOfString','sombreros','did','OwenT','flex\x20justify-between\x20items-center\x20p-4','HypoexponentialDistribution','margin-right','qsign','Last','formatnumber','audio','documentElement','win8_share_file','FindPath','row','ConnectedMeshComponents','titleCut','part_system_exists','<\x5c3','checked','BooleanGraph','⊘','date_month_span','#Noun','©','LLVM\x20IR','NNPS','buffer_exists','GetCurrentAddress','relevance','vk_home','onGroupIconOverLeave','tab-size','border-inline','ev_joystick1_up','inArea','^[\x20\x09]*([*+-]|(\x5cd+\x5c.))(?=\x5cs+)','onGroupIconOverEnter','pt_shape_square','iso_c_binding','FileNameDepth','ControllerState','square','keyboard_key_release','mp_linear_step','ev_keyboard','atomic','StateOutputEstimator','0\x27.\x5c|0[box][0-9a-fA-F]*','teeth','pr_trianglelist','delim','endtype','unassignVehicle','igos','keyboard_check_released','achievement_show','shader_set_uniform_i_array','∸','href','laboratory','╖','tsp','avrasm','$MachineID','GeoStreamPlot',')((-|/)[a-zA-Z0-9]+)*\x5cs','setPilotLight','FindClusters','memorial','$TemporaryDirectory','CHISQ.DIST.RT','BooleanMinterms','dsinh','renderinfo','smalltalk','fdim','false','april','layer_create','5,999','while\x20if\x20switch\x20catch\x20for','Rules\x20manager:\x20invalid\x20rule\x20name\x20','#Place+','ImageAssemble','dtauto','#Possessive\x20[%Adj|Noun%]\x20#Noun','tan','men','focus','[\x5c-;:&=\x5c+\x5c$,\x5c.a-zA-Z0-9_][\x5c-;:&=\x5c+\x5c$,\x5c\x22\x5c.a-zA-Z0-9_]*','tnonct','false\x20true','DSolveChangeVariables','ef_snow','cume_dist','knobRead','Derive','Lemma','transition-delay','clearTimeout','nsis','(a|one)\x20#Cardinal?+\x20#Ordinal','TooltipBoxOptions','fadeMusic','org-country','⊓︀','TreeElementCoordinates','setLightnings','DynamicUpdating','≅','ev_gui_end','CloudImport','Key','Blue','natal','resize','NuclearExplosionData','у','plan','SystemsModelVectorRelativeOrders','NoncentralStudentTDistribution','VideoTrackSelection','multi_gp','ev_middle_release','codenarc',')|(','mouse_lastbutton','RussellRaoDissimilarity','steam_file_share','inversion','WarpingDistance','taskCustomData','CODE','tbody','keyboardRead','-->','Nest','enterprises','AppleScript','(had|has|have)\x20[been\x20/ed$/]','ª','$fdisplayh','ARABIC','col','c_ptr','@page\x20@font-face','decodeMode','Scale','especially','border-green-500','\x5cb[a-zA-Z][a-zA-Z0-9_-]*','\x27\x5cw[\x5cw\x20:\x5c/.-]*\x27:(?=[\x20\x09]|$)','scale_?x','ATan2r','⧝','figure','HKEY_LOCAL_MACHINE','phy_joint_angle','\x5c\x5cbegin(?=[\x20\x09]*(\x5cr?\x5cn[\x20\x09]*)?\x5c{','steam_ugc_set_item_tags','draw_getpixel','#Determiner\x20[#Gerund]\x20#Noun','TickLengths','graphql','DGaussianWavelet','FourierSinCoefficient','DocumentWeightingRules','administration','LoadAndSetImage','ClickToCopy','RowBox','element','RegionEmbeddingDimension','SectionSetFlags','ds_map_secure_save','^even\x20(if|though)','ninety','BackgroundAppearance','TensorTranspose','showWatch','VideoEncoding','lnbSetPictureColor','AASTriangle','true¦0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd','↗','className','AlgebraicUnitQ','WaveletMapIndexed','VectorLess','endprimitive','Sinc','mip_markedonly','mono','showRadio','systemTime','⋰','MenuView','draw_skeleton_collision','hehe','QPochhammer','when-stolen','SubMinus','MonsterGroupM','are-ya','DynamicModuleValues','ъ','ngs','ifmacrondef','tvSetPictureRightColorDisabled','DiagonalMatrix','\x5c$[A-z0-9_]+','bus','Toggler','deleteWaypoint','above','the-adj-verb','IMLOG10','RepeatedString','LeftArrowBar','[a-z]+\x22','MB_OK','setConvoySeparation',':-p','ClipboardNotebook','QUICKLAUNCH','ov_achievements','(#Singular\x20&&\x20@hasHyphen)\x20#PresentTense','<%[%=-]?','gml_pragma','telegraph','ÌÍÎÏ','c_char','transform-origin','margin-bottom','pose','While','sendDigitalPortPair','complex','њ','RegionNearest','motorsStop','WhitespaceCharacter','(?=$|[><|]|','FindPermutation','cap','c_backspace','ReflectionTransform','phy_joint_anchor_1_x','bash','ten','POKE','SplFileObject','CopyToClipboard','reversed','Entry\x20not\x20found\x20with\x20ID:\x20','facebook_status','WordCloud','⊀','gas-exchange','bool','Bash','reverseEach','acronyms','$BlockchainBase','exists2','SmithWatermanSimilarity','accept_on','ds_priority_read','network_config_use_non_blocking_socket','link','9999','(so|such|rather|enough)','https://export.arxiv.org/api/query?search_query=','how','(#PhrasalVerb|#Copula)','co_return','removeUniform','commandRadio','url_open_ext','animation-name','UpTee','NightHemisphere','ChannelBrokerAction','max-block-size','$stop','university','[works]\x20for\x20me','minexponent','BESSELJ','getPiPViewDistance','currentMagazineDetail','network_connect_raw','temp_directory','NestWhileList','rootNode','SuperscriptBoxOptions','panic!','fa_left','unknown','is3DENPreview','gyp','5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise','ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ','#\x5c|','^\x5cs*\x5c[','clean','RegionSymmetricDifference','\x5cb(','DagumDistribution','QuantityVariableDimensions','storage_size','Restart','enableAimPrecision','𝕁','wetland','way-over','pointLight','quotes','^so\x20that','sideUnknown','NotTildeEqual','\x22[cwd]?','FARIMAProcess','GeoGridDirectionDifference','\x20\x20\x20\x20\x20Tailwind\x20CDN\x20Example\x20\x20\x20\x20\x20\x20','optgroup','GroupElementPosition','setFriend','fileexist','layer_script_end','cape','TreeFold','ColorSetterBox','feb-and-march','gravity_direction','setWaypointLoiterRadius','delattr','blur','InverseSpectrogram','dnum','part_type_gravity','DNSKEY','#scroll-target','readAccelerometer','proper-person','gcode','$HistoryLength','Close','DiracDelta','mp_grid_add_rectangle','body','touch','setSkill','SpecificityGoal','DuplicateFreeQ','magazinesTurret','lbSetData','DefaultNewCellStyle','LineIntegralConvolutionScale','Listen','  ','logpdf','tile_get_flip','FindPlanarColoring','out-of','stnamel','dash','htmlFor','steam_get_stat_float','menuSort','$dist_uniform','compbl','≏̸','core','called','ds_stack_write','info','$PublisherID','playScriptedMission','removeCuratorEditingArea','launder','column-rule-color','Tuple','lockWp','p-3','gpu_get_alphatestenable','compound','DiscreteMaxLimit','ev_global_gesture_tap','newline','ds_grid_width','FindShortestTour','toStringTag','member','logname','CoifletWavelet','ChanVeseBinarize','lrange|10','camSetFocus','showMap','EdgeCount','ConvexHullMesh','ReverseUpEquilibrium','strong0','ONanGroupON','NotLessEqual','Reflect','animation-iteration-count','enclave','[object\x20RegExp]','LinkService','DEC2HEX','place_empty','define\x20definecs|10\x20undef\x20ifdef\x20ifndef\x20iflight\x20ifdllcall\x20ifmac\x20ifos2win\x20ifunix\x20else\x20endif\x20lineson\x20linesoff\x20srcfile\x20srcline','following::','CLEAN','border-left','CompanyData','FrontFaceSpecularExponent','aus','AutoStyleWords','cardinality','NotGreater','cdate','qtrim','IMDIV','markerShadow','debugFSM','♪','≥⃒','Pipe','Є','AirTemperatureData','$MaxLicenseProcesses','⨢','layer_destroy_instances','engineOn','NotebookEvaluate','eigenvectors_sym','enableCollisionWith','\x27re','update_recordset','ManifestLongPathAware','zeros_array','logn','network_socket_bluetooth','isAimPrecisionEnabled','UndefRefError','SingularValueList','ctrlTextHeight','noglob','▱','[\x20\x5ct\x5cf]*','ѕ','listagg','conversely','delay','SystemModelParametricSimulate','NuttallWindow','n-acro-noun','LegendreQ','GM_version','
','CopyTag','gamepad_get_device_count','vehicleCargoEnabled','AsymptoticRSolveValue','attrc','border-collapse','AllowKernelInitialization','brothers','QuantityQ','DirectedEdges','setlocal','breaks','MouseAppearanceTag','(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)','draw_get_lighting','DomainCode','BoundsError','CarlsonRC','DEFSTR','EvaluationPrivileges','#warning','FACTDOUBLE','phy_debug_render_shapes','HamiltonianGraphQ','NotCongruent','IOCTL','verifySignature','svg','GroupOrder','real','xs:float','$fread','','nonisolated','TransitionEffect','%q\x5c|','ProperNoun','FINE','Head','gamepad_set_vibration','$ungetc','defaultChars','SocketObject','ads_interstitial_available','view_xview','puts','ParticleData','Extension','𝔓','ParallelKernels','csize','rpmos','@hasComma\x20@hasComma','WindowElements','thieves','buf|0','$write','qlowcase','zes','border-right-style','BatchNormalizationLayer','diag_drawmode','RenewalProcess','ϵ','dopen','FischerGroupFi24Prime','font-variant-east-asian','tvPicture','AddToSearchIndex','expect','ths','Wrong\x20`markdown-it`\x20preset\x20\x22','([\x20]+','ev_gesture_drag_start','position_destroy','ds_queue_enqueue','RenderMan\x20RSL','norm','RingIsClockwise','DateObjectQ','$exit','codePointAt','form',' ','⦜','RecognitionPrior','%define\x20%xdefine\x20%+\x20%undef\x20%defstr\x20%deftok\x20%assign\x20%strcat\x20%strlen\x20%substr\x20%rotate\x20%elif\x20%else\x20%endif\x20%if\x20%ifmacro\x20%ifctx\x20%ifidn\x20%ifidni\x20%ifid\x20%ifnum\x20%ifstr\x20%iftoken\x20%ifempty\x20%ifenv\x20%error\x20%warning\x20%fatal\x20%rep\x20%endrep\x20%include\x20%push\x20%pop\x20%repl\x20%pathsearch\x20%depend\x20%use\x20%arg\x20%stacksize\x20%local\x20%line\x20%comment\x20%endcomment\x20.nolist\x20__FILE__\x20__LINE__\x20__SECT__\x20\x20__BITS__\x20__OUTPUT_FORMAT__\x20__DATE__\x20__TIME__\x20__DATE_NUM__\x20__TIME_NUM__\x20__UTC_DATE__\x20__UTC_TIME__\x20__UTC_DATE_NUM__\x20__UTC_TIME_NUM__\x20\x20__PASS__\x20struc\x20endstruc\x20istruc\x20at\x20iend\x20align\x20alignb\x20sectalign\x20daz\x20nodaz\x20up\x20down\x20zero\x20default\x20option\x20assume\x20public\x20bits\x20use16\x20use32\x20use64\x20default\x20section\x20segment\x20absolute\x20extern\x20global\x20common\x20cpu\x20float\x20__utf16__\x20__utf16le__\x20__utf16be__\x20__utf32__\x20__utf32le__\x20__utf32be__\x20__float8__\x20__float16__\x20__float32__\x20__float64__\x20__float80m__\x20__float80e__\x20__float128l__\x20__float128h__\x20__Infinity__\x20__QNaN__\x20__SNaN__\x20Inf\x20NaN\x20QNaN\x20SNaN\x20float8\x20float16\x20float32\x20float64\x20float80m\x20float80e\x20float128l\x20float128h\x20__FLOAT_DAZ__\x20__FLOAT_ROUND__\x20__FLOAT__','PerformanceGoal','directory_destroy','GeomagneticModelData','INC','viewType','∨','SetSecuredAuthenticationKey','ParentEdgeStyleFunction','attachedObject','msgget','⋘','getObjectType','GeneratedCellStyles','(\x22|#|/\x5c*|\x5cs+/\x5cw+)','draw_roundrect_ext','color','DLV','sml','mostRecentID','Fraction','disown','.\x20.','isDLCAvailable','RecurringDigitsForm','Goal','zero','markerChannel','GeoScaleBar','join','illegal_bins','FileReadWord','PROB','part_type_blend','createWriter','variable_struct_get','CONCATENATE','OUTPUT','FloatList','tilemap_get_height','(?![a-zA-Z:_])','Trace','diskcomp','the-gerund-noun','⫆̸','lpt1','c_dkgray','triggerTimeoutCurrent','the-premier-university','UpSet','^will\x20have\x20#PastTense\x20#Gerund$','isAdjective','\x0a','ConfirmBy','font-synthesis','JacobiDC','PolygonBox','sliderSpeed','StreamPlot3D','(was|were|had|have)','fun\x20receive\x20if\x20try\x20case','canAddItemToUniform','EndDialogPacket','ctrlSetFontSecondary','ds_type_priority','VLOOKUP','dairy','with\x20timezone','sysrc','RiemannSiegelTheta','nav','_Complex','win8_livetile_notification_begin','FindGraphPartition','cinv','winphone_tile_back_title','dependent','CSS_VARIABLE','removeWeapon','⌿','iap_status_loading','MinimalPolynomial','proj','customRadio','\x5cb\x5cd+(\x5c.\x5cd+)?',')|\x5cb(','#selector','isspace','waypointsEnabledUAV','indirect','surface_getpixel','getFatigue','font-variant-position','$HTTPRequest','research-btn','analytics_event_ext','nulls\x20first','__compiled__','hash','isinstance','bin','isarray','CRITBINOM','TrainingProgressFunction','nor','#Gerund\x20#Adjective$','scroll-padding-top','LaunchKernels','deleteGroup','AnimationTimeIndex','\x5c}\x5c}','ColorToneMapping','DegreeGraphDistribution','waypointVisible','do-this-dance','#Value\x20(halves|halfs|quarters)','audio_start_sync_group','AstroStyling','[that]\x20#Determiner\x20#Noun','knowsAbout','ctrlSetAngle','Int8','AVERAGEIFS','assignment','gsi','leader','career-move','does-he','SharedArrayBuffer','BirnbaumSaundersDistribution','PassEventsDown','WeierstrassZeta','a\x20#Ordinal','decayGraphValues','GraphicsGroup3DBoxOptions','StringTake','‍','#PastTense\x20(until|as|through|without)\x20[#PresentTense]','clongdouble','selectRandom','#Participle','ugc_list_VotedDown','expand','setSimpleTaskType','SYSTEM|TEMPORARY','charToSplit','VonMisesDistribution','ropeCut','downtown','buffer_f32','ℋ','PolarAxesOrigin','','ListVectorDisplacementPlot','md5_string_utf8','TrainingProgressMeasurements','uhoh','Text3DBoxOptions','safeZoneH','getElevationOffset','HTTPRedirect','lbSetTextRight','⤶','Modules','CurrentNotebookImage','enableRopeAttach','PacletSite','⨶','isDamageAllowed','campaignConfigFile','Float32Array','latch','getForcedFlagTexture','Equal','synthetic','show_health','distance2D','⊐','PositiveReals','first\x20lady','setDriveOnPath','verbatim','ResourceSubmissionObject','TraceBackward','window','_multi','DateOverlapsQ','ends','NonlocalMeansFilter','\x5cb(\x5cd+|\x5cd+\x5c.|\x5c.\x5cd+|\x5cd+\x5c.\x5cd+)[Ee][-+]?\x5cd+\x5cb','string_digits','Pronouns','ElementList','steam_set_achievement','covariant','suppressWarnings','VideoStreams','ctrlSetTooltipMaxWidth','festive','GraphHub','joinAs','runTime','ISOMonth','mailto:tinyml.aichat@gmail.com?subject=Help\x20with\x20TinyML','isNaN','derivation','⨗','forgetTarget','u\x20r','background-position','cue','steam_ugc_create_query_user','ё','unordered_multimap','^[#Singular]\x20#Person\x20#Verb','ev_gesture_pinch_end','derf','[shit]\x20(#Determiner|#Possessive|them)','Class','ortho','(all|even)','cacls','(seem|feel|seemed|felt)\x20[#PastTense\x20#Particle?]','Antihermitian','Closed','IDABORT','DirectedInfinity','realm','[;{}]','\x5cb(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\x5cb','dexp','$Inspector','duly','FindCycle','tap','no\x20[#Infinitive]','section','=','FindShortestPath','new','algama','pits','__contravariant','illegalRe','Remark','tel','rodeos','and_eq','^__DATA__$','‚','width','Visual\x20Basic\x20.NET','thrift','DATA','(one|1|a|an)','true¦0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge\x20earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior\x20cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er\x20up,ingE;g40le\x20mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme\x20mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al\x20scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6;\x20l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster\x20pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st\x20la2H;\x20marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;!\x20representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt','is-he-stoked','wholly','uescape','xs:string','format_file_from_text','LocalObject','#Noun\x20#Copula\x20not?\x20[that]\x20#Adjective','PrintingCopies','mask-border-outset','Interactive','CloudLoggingData','DefaultGridLinesStyle','ENCODEURL','HintDb','Full','space-y-2','UseEmbeddedLibrary','phy_joint_speed','adjectives','UnitVectorLayer','é','cineplex','dispatch_queue_t','EdgeForm','PAINT','text-xs','ds_grid_set_region','DirichletConvolve','base','part_emitter_clear','extend','softbreak','ulimit','⫲','$q_initialize','Loading\x20chat\x20','ConvexPolygonQ','FindPostmanTour','LaplaceTransform','removeAllCuratorCameraAreas','⊷','⤙','getNew','emptied','KendallTauTest','forceUnicode','#up-chevron','setCollisionLight','Area','Locator','getWPPos','toFixed','BoxMatrix','(a|an)\x20[#Person]$','421-0029','\x5cs+)','difficulty','widows','⧍','vertex_get_number','vest','hgroup','always-there','bat','⋯','ExpIntegralEi','text-emphasis-position','ClassifierMeasurementsObject','TITLE_MODE','http_get_file','ImageKeypoints','fade_at','⨤','object_add','$info','Determiner\x20Adverb\x20Adjective','textContent','TextClipboardType','ToLocal','SequenceMostLayer','FrequencySamplingFilterKernel','endforeach','font_delete','InflationMethod','DiscretizeRegion','ARCHIVE','знач','steam_set_stat_int','ℎ','MinusPlus','draw_text','WindowToolbars','CDFWavelet','fungi','loadSettings','grid-template-rows','OpenRead','analogWrite','complex_vector','beaux','delegate','setpgrp','multi_student_cholesky_t','#Adjective\x20#Adjective\x20[#PresentTense]','shadowEle','[A-Za-z$_][0-9A-Za-z$_]*','getpriority','ClusterClassify','WolframCloudSettings','commandFire','(this|next|last)\x20(march|may)\x20!#Infinitive?','null\x20истина\x20ложь\x20неопределено','GlobalClusteringCoefficient','Blurring','ds_queue_head','now\x20that','partition','LetterCounts','GreaterThan','[;#](?!\x5cs*$)','need','lockedCargo','sideEmpty','Reduce','LineGraph','Overflow','FreeQ','ReconstructionMesh','deletion','ProcessDirectory','ugc_match_UsableInGame','keepPunct','use','exp','(had|have|has)','latex','layer_sprite_index','SUMSQ','hardbreak','TableViewBoxHeaders','Λ','TableDepth','ev_boundary','font-variant','5336600TmTiri','lbDelete','extends\x20implements\x20pertypewithin\x20perthis\x20pertarget\x20percflowbelow\x20percflow\x20issingleton','MoleculeQ','ν','ArgumentCountQ','#FirstName\x20the\x20#Adjective','afterTags','InexactNumberQ','TextData','amax1','classifier','STEYX','𝔨','#','openCuratorInterface','MinLimit','auto_qualify','Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where','SyntaxPacket','MKI$','warn','okla','layerelementtype_undefined','cauchy','⪵','num','FindFile','$feof','SocketWaitNext','shearY','TreeQ','AudioStream','⤩','xs:negativeInteger','ExpressionCell','waypointLoiterType','substring','coq','AudioReverb','array_range','Space','nginx','Ç','Ī','STDEVA','phy_angular_damping','FEDisableConsolePrintPacket','$InputStreamMethods','which-copula','pvt','ATAN2','august','Thrift','⨥','logEntities','guarded','$InstallationDirectory','Inform\x207',':^|','⥈','part_type_color_hsv','RipleyRassonRegion','column-count','WeierstrassInvariantG2','RegionFunction','$InstallationDate','ArrayObject','onGroupIconClick','MarcumQ','InvisibleTimes','vk_numpad3','display_portrait','__find__','ChannelListener','unassignTeam','[a-zA-Z_]\x5cw*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\x5c*\x5c*|[-/+%^&*~`|]|\x5c[\x5c]=?','importScripts','⇚','ds_grid_get_disk_min','[_a-z][\x5cw\x27]*','draw_roundrect_color_ext','TextBox','chdir','prod','speechVolume','Search','markerPolyline','TargetDevice','\x5cb(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\x5c.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)','assignedGroup','concat!','FrenetSerretSystem','CharacterRange','stadium','(?:new|renew|provide)?command','completely-beaten','come-on','Ada','vitae','⋴','enableStamina','TKEY','CINT','∷','object_put','FindCookies','FromJulianDate','FourierCosSeries','^TAP\x20version\x20(\x5cd+)$','socket','font_get_italic','text-decoration-style','F.TEST','EvaluatorNames','\x5cb(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\x5cb','Module','ItemDisplayFunction','inc','𝒶','#Copula\x20[(just|alone)]$','physics_fixture_set_edge_shape','FunctionDeclaration','setSimpleTaskCustomData','ChartElementFunction','faceforward','ellipse','EpilogFunction','$DefaultMailbox','layer_tile_get_y','daccdbsl','langPrefix','Overlaps','isnull','setMarkerColorLocal','coalesce','month-the-value','CoordinateBoundsArray','PermutationList','hms','PrimeQ','division','compl','createHashMapFromArray','\x5c]\x5c[','RemoveScheduledTask','vinarrayx','Z.TEST','_Decimal64','#Person','$DataStructures','origin','tableaux','NeumannValue','auto_mkindex','$bits','$SessionID','(the|those|these|a|an)\x20#Adjective?\x20[#PresentTense\x20#Particle?]','InexactNumbers','ltd','^[#Infinitive]\x20(him|her|it|us|me|there)','municipality','[\x20\x09]*:','⩊','DateListLogPlot','FunctionMonotonicity','LineBreak','keyImage','qsqrt','scm','$1f','InitializationObjects','GraphRadius','[#ProperNoun]\x20#Person','@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\x5cb','Error\x20saving\x20content:\x20','tcl_startOfPreviousWord','Multiplicity','toUnicode','#Value\x20(pound|pounds)','constrain','TIME','draw_self','attribute::','gml_release_mode','overload','~+~\x20','missionStart','VecOrMat','RectangleChart','revealMine','$_COOKIE\x20$_FILES\x20$_GET\x20$_GET_BINARY\x20$_GET_RAW\x20$_POST\x20$_POST_BINARY\x20$_POST_RAW\x20$_SESSION\x20$_SERVER\x20codepoint\x20codepoints\x20segment\x20segments\x20codeunit\x20codeunits\x20sentence\x20sentences\x20trueWord\x20trueWords\x20paragraph\x20after\x20byte\x20bytes\x20english\x20the\x20until\x20http\x20forever\x20descending\x20using\x20line\x20real8\x20with\x20seventh\x20for\x20stdout\x20finally\x20element\x20word\x20words\x20fourth\x20before\x20black\x20ninth\x20sixth\x20characters\x20chars\x20stderr\x20uInt1\x20uInt1s\x20uInt2\x20uInt2s\x20stdin\x20string\x20lines\x20relative\x20rel\x20any\x20fifth\x20items\x20from\x20middle\x20mid\x20at\x20else\x20of\x20catch\x20then\x20third\x20it\x20file\x20milliseconds\x20seconds\x20second\x20secs\x20sec\x20int1\x20int1s\x20int4\x20int4s\x20internet\x20int2\x20int2s\x20normal\x20text\x20item\x20last\x20long\x20detailed\x20effective\x20uInt4\x20uInt4s\x20repeat\x20end\x20repeat\x20URL\x20in\x20try\x20into\x20switch\x20to\x20words\x20https\x20token\x20binfile\x20each\x20tenth\x20as\x20ticks\x20tick\x20system\x20real4\x20by\x20dateItems\x20without\x20char\x20character\x20ascending\x20eighth\x20whole\x20dateTime\x20numeric\x20short\x20first\x20ftp\x20integer\x20abbreviated\x20abbr\x20abbrev\x20private\x20case\x20while\x20if\x20div\x20mod\x20wrap\x20and\x20or\x20bitAnd\x20bitNot\x20bitOr\x20bitXor\x20among\x20not\x20in\x20a\x20an\x20within\x20contains\x20ends\x20with\x20begins\x20the\x20keys\x20of\x20keys','east','KDistribution','GSMModem','$UserAgentLanguages','FrontEndResource','Sharpen','isEqualTypeParams','MeshRefinementFunction','PolynomialRemainder','HypergeometricPFQ','allObjects','communications','neginfif','#Honorific+','Radon','$swriteb','prefixPatterns','novel','date_get_day','probit','$MachineDomain','getter','occurrences_regex','@defs','c_ltgray','schema','audio_emitter_get_vy','indeterminate','rows_dot_self','sort_desc','α','dnint','GraphicsComplex','DeliveryFunction','\x5c][a-z]*','Ņ','Show\x20chain\x20of\x20thought','dmax1','BoxWhiskerChart','last-child','FeatureExtraction','pid','ArrayAccess','.main-body\x20{\x0a\x20\x20border-radius:\x2030px;\x0a\x20\x20/*\x20Adjust\x20height\x20as\x20needed\x20*/\x0a\x20\x20/*\x20height:\x20auto;\x20\x20*/\x0a\x20\x20/*\x20background:\x20#e0e5ec;\x20*/\x0a\x0a\x20\x20/*\x20margin:\x200;\x20*/\x0a\x20\x20margin-left:\x2040px;\x0a\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20height:\x20300px;\x0a\x20\x20width:\x20fit-content;\x0a\x20\x20margin-right:\x2010px;;\x0a}\x0a\x0a.main-body,\x20.main-body\x20*\x20{\x0a\x20\x20outline:\x201px\x20solid\x20red;\x0a}\x0a\x0a\x0a.container\x20{\x0a\x20\x20display:\x20flex;\x0a\x20\x20gap:\x2020px;\x20/*\x20Adjust\x20gap\x20as\x20needed\x20*/\x0a\x20\x20flex-direction:\x20column;\x0a\x20\x20width:\x20300px;\x0a}\x0a\x0a.panel\x20{\x0a\x20\x20background:\x20#e0e5ec;\x0a\x20\x20border-radius:\x2020px;\x0a\x20\x20box-shadow:\x2010px\x2010px\x2030px\x20#bebebe,\x20-10px\x20-10px\x2030px\x20#ffffff;\x0a\x20\x20display:\x20flex;\x0a\x20\x20flex-direction:\x20column;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a\x20\x20padding:\x2010px;\x20/*\x20Reduced\x20padding\x20*/\x0a}\x0a\x0a.dial-panel\x20{\x0a\x20\x20width:\x20150px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x20200px;\x20/*\x20Reduced\x20height\x20*/\x0a}\x0a\x0a.button-panel\x20{\x0a\x20\x20width:\x20150px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x20200px;\x20/*\x20Reduced\x20height\x20*/\x0a}\x0a\x0a.dial\x20{\x0a\x20\x20width:\x2060px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x2060px;\x20/*\x20Reduced\x20height\x20*/\x0a\x20\x20background:\x20#e0e5ec;\x0a\x20\x20border-radius:\x2050%;\x0a\x20\x20box-shadow:\x20inset\x205px\x205px\x2010px\x20#bebebe,\x20inset\x20-5px\x20-5px\x2010px\x20#ffffff;\x0a\x20\x20position:\x20relative;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20margin-bottom:\x2010px;\x20/*\x20Reduced\x20margin\x20*/\x0a}\x0a\x0a.dial::after\x20{\x0a\x20\x20content:\x20\x27\x27;\x0a\x20\x20width:\x2010px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x2010px;\x20/*\x20Reduced\x20height\x20*/\x0a\x20\x20background:\x20#ff4757;\x0a\x20\x20border-radius:\x2050%;\x0a\x20\x20position:\x20absolute;\x0a\x20\x20top:\x205px;\x20/*\x20Adjusted\x20position\x20*/\x0a\x20\x20left:\x2025px;\x20/*\x20Adjusted\x20position\x20*/\x0a\x20\x20box-shadow:\x201px\x201px\x203px\x20rgba(0,0,0,0.2);\x0a}\x0a\x0a.level\x20{\x0a\x20\x20margin-top:\x205px;\x20/*\x20Reduced\x20margin\x20*/\x0a\x20\x20font-size:\x201.2em;\x20/*\x20Reduced\x20font\x20size\x20*/\x0a\x20\x20color:\x20#333;\x0a}\x0a\x0a.buttons\x20{\x0a\x20\x20display:\x20flex;\x0a\x20\x20flex-direction:\x20column;\x0a\x20\x20gap:\x205px;\x20/*\x20Reduced\x20gap\x20*/\x0a}\x0a\x0a.toggle-button\x20{\x0a\x20\x20width:\x2080px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x2030px;\x20/*\x20Reduced\x20height\x20*/\x0a\x20\x20background:\x20#e0e5ec;\x0a\x20\x20border:\x20none;\x0a\x20\x20border-radius:\x2015px;\x0a\x20\x20box-shadow:\x205px\x205px\x2010px\x20#bebebe,\x20-5px\x20-5px\x2010px\x20#ffffff;\x0a\x20\x20font-size:\x200.8em;\x20/*\x20Reduced\x20font\x20size\x20*/\x0a\x20\x20color:\x20#333;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20transition:\x20all\x200.3s\x20ease;\x0a}\x0a\x0a.toggle-button.active\x20{\x0a\x20\x20background:\x20#ff4757;\x0a\x20\x20color:\x20white;\x0a\x20\x20box-shadow:\x20inset\x205px\x205px\x2010px\x20#bebebe,\x20inset\x20-5px\x20-5px\x2010px\x20#ffffff;\x0a}\x0a\x0a.large-button-panel\x20{\x0a\x20\x20width:\x20180px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20display:\x20flex;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a}\x0a\x0a.large-button\x20{\x0a\x20\x20width:\x20160px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x2040px;\x20/*\x20Reduced\x20height\x20*/\x0a\x20\x20background:\x20#e0e5ec;\x0a\x20\x20border:\x20none;\x0a\x20\x20border-radius:\x2010px;\x0a\x20\x20box-shadow:\x2010px\x2010px\x2030px\x20#bebebe,\x20-10px\x20-10px\x2030px\x20#ffffff;\x0a\x20\x20font-size:\x201em;\x20/*\x20Reduced\x20font\x20size\x20*/\x0a\x20\x20color:\x20#333;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20transition:\x20all\x200.3s\x20ease;\x0a}\x0a\x0a.large-button:active\x20{\x0a\x20\x20background:\x20#ff4757;\x0a\x20\x20color:\x20white;\x0a\x20\x20box-shadow:\x20inset\x2010px\x2010px\x2030px\x20#bebebe,\x20inset\x20-10px\x20-10px\x2030px\x20#ffffff;\x0a}\x0a\x0a.switch-panel\x20{\x0a\x20\x20width:\x2060px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20display:\x20flex;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a\x20\x20margin-right:\x2010px;\x20/*\x20Reduced\x20margin\x20*/\x0a}\x0a\x0a.toggle-switch\x20{\x0a\x20\x20width:\x2040px;\x20/*\x20Reduced\x20width\x20*/\x0a\x20\x20height:\x2020px;\x20/*\x20Reduced\x20height\x20*/\x0a\x20\x20position:\x20relative;\x0a\x20\x20margin-bottom:\x204px;\x20/*\x20Reduced\x20margin\x20*/\x0a}\x0a\x0a.switch-input\x20{\x0a\x20\x20display:\x20none;\x0a}\x0a\x0a.switch-label\x20{\x0a\x20\x20position:\x20absolute;\x0a\x20\x20top:\x200;\x0a\x20\x20left:\x200;\x0a\x20\x20right:\x200;\x0a\x20\x20bottom:\x200;\x0a\x20\x20background:\x20#e0e5ec;\x0a\x20\x20border-radius:\x2020px;\x0a\x20\x20box-shadow:\x205px\x205px\x2010px\x20#bebebe,\x20-5px\x20-5px\x2010px\x20#ffffff;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20transition:\x20background\x200.3s\x20ease;\x0a}\x0a\x0a.switch-label::before\x20{\x0a\x20\x20content:\x20\x27\x27;\x0a\x20\x20position:\x20absolute;\x0a\x20\x20top:\x201px;\x0a\x20\x20left:\x201px;\x0a\x20\x20width:\x2018px;\x20/*\x20Adjusted\x20width\x20*/\x0a\x20\x20height:\x2018px;\x20/*\x20Adjusted\x20height\x20*/\x0a\x20\x20background:\x20#ff4757;\x0a\x20\x20border-radius:\x2050%;\x0a\x20\x20box-shadow:\x201px\x201px\x203px\x20rgba(0,\x200,\x200,\x200.2);\x0a\x20\x20transition:\x20transform\x200.3s\x20ease;\x0a}\x0a\x0a.switch-input:checked\x20+\x20.switch-label::before\x20{\x0a\x20\x20transform:\x20translateX(18px);\x20/*\x20Adjusted\x20transform\x20distance\x20*/\x0a}\x0a\x0a.switch-label-text\x20{\x0a\x20\x20font-size:\x200.8em;\x20/*\x20Reduced\x20font\x20size\x20*/\x0a\x20\x20color:\x20#333;\x0a\x20\x20text-align:\x20center;\x0a}\x0a\x0a#fade-in-paragraph\x20span\x20{\x0a\x20\x20opacity:\x200;\x0a\x20\x20animation:\x20fadeIn\x201s\x20forwards;\x0a\x20\x20font-size:\x2016px;\x20/*\x20Adjusted\x20font\x20size\x20*/\x0a}\x0a\x0a@keyframes\x20fadeIn\x20{\x0a\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20}\x0a}\x0a\x0a/*\x20SVG\x20*/\x0a.svg-container\x20{\x0a\x20\x20display:\x20inline-block;\x0a\x20\x20position:\x20relative;\x0a\x20\x20width:\x20100%;\x0a\x20\x20height:\x20100%;\x0a\x20\x20vertical-align:\x20top;\x0a\x20\x20overflow:\x20hidden;\x0a\x20\x20background-color:\x20black;\x0a}\x0a\x0a.svg-content\x20{\x0a\x20\x20margin:\x20auto;\x0a\x20\x20display:\x20inline-block;\x0a\x20\x20position:\x20absolute;\x0a\x20\x20top:\x200;\x0a\x20\x20left:\x200;\x0a\x20\x20background-color:\x20black;\x0a}\x0a\x0ahtml\x20{\x0a\x20\x20box-sizing:\x20border-box;\x0a}\x0a\x0a*,\x0a*:before,\x0a*:after\x20{\x0a\x20\x20box-sizing:\x20inherit;\x0a}\x0a\x0abody\x20{\x0a\x20\x20display:\x20flex;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20align-items:\x20center;\x0a\x20\x20/*\x20height:\x20100vh;\x20*/\x0a\x20\x20margin:\x200;\x0a\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20background-color:\x20#f0f0f0;\x0a}\x0a\x0a.content\x20{\x0a\x20\x20max-width:\x20800px;\x0a\x20\x20padding:\x2020px;\x0a\x20\x20box-shadow:\x200\x200\x2010px\x20rgba(0,\x200,\x200,\x200.1);\x0a\x20\x20background-color:\x20#f9f9f9;\x0a\x20\x20border-radius:\x208px;\x0a\x20\x20text-align:\x20left;\x0a}\x0a\x0ah1,\x0ah2,\x0ap\x20{\x0a\x20\x20margin:\x200\x200\x2015px;\x0a}\x0a\x0a.node\x20{\x0a\x20\x20cursor:\x20pointer;\x0a}\x0a\x0a.node\x20circle\x20{\x0a\x20\x20fill:\x20#999;\x0a\x20\x20stroke:\x20#555;\x0a\x20\x20stroke-width:\x202px;\x0a}\x0a\x0a.node\x20text\x20{\x0a\x20\x20font:\x2012px\x20sans-serif;\x0a\x20\x20pointer-events:\x20none;\x0a\x20\x20text-anchor:\x20middle;\x0a}\x0a\x0a.link\x20{\x0a\x20\x20fill:\x20none;\x0a\x20\x20stroke:\x20#555;\x0a\x20\x20stroke-width:\x201.5px;\x0a}\x0a\x0a/*\x20QUATRO\x20*/\x0ap\x20{\x0a\x20\x20display:\x20block;\x0a\x20\x20margin-block-start:\x201em;\x0a\x20\x20margin-block-end:\x201em;\x0a\x20\x20margin-inline-start:\x200px;\x0a\x20\x20margin-inline-end:\x200px;\x0a\x20\x20unicode-bidi:\x20isolate;\x0a\x20\x20color:\x20#6C757D;\x0a\x20\x20font-size:\x2016px;\x0a\x20\x20font-family:\x20Georgia,\x20\x27Times\x20New\x20Roman\x27,\x20Times,\x20serif;\x0a}\x0a\x0a.svg-container\x20{\x0a\x20\x20display:\x20flex;\x0a\x20\x20align-items:\x20center;\x0a\x20\x20justify-content:\x20center;\x0a\x20\x20padding-bottom:\x200px;\x0a\x20\x20margin:\x20auto;\x0a\x20\x20/*\x20height:\x20100%;\x20*/\x0a\x20\x20/*\x20or\x20any\x20specific\x20height\x20*/\x0a}\x0a\x0a.soft-ui\x20{\x0a\x20\x20background:\x20#f0f0f3;\x0a\x20\x20box-shadow:\x209px\x209px\x2016px\x20rgba(0,\x200,\x200,\x200.15),\x20-9px\x20-9px\x2016px\x20rgba(255,\x20255,\x20255,\x200.7),\x20inset\x20-2px\x20-2px\x204px\x20rgba(255,\x200,\x200,\x200.05);\x0a\x20\x20border-radius:\x2050%;\x20/*\x20Make\x20it\x20circular\x20*/\x0a\x20\x20display:\x20flex;\x20/*\x20Use\x20flexbox\x20to\x20center\x20children\x20*/\x0a\x20\x20justify-content:\x20center;\x20/*\x20Center\x20horizontally\x20*/\x0a\x20\x20align-items:\x20center;\x20/*\x20Center\x20vertically\x20*/\x0a\x20\x20width:\x2030px;\x20/*\x20Set\x20a\x20fixed\x20width\x20*/\x0a\x20\x20height:\x2030px;\x20/*\x20Set\x20a\x20fixed\x20height\x20to\x20make\x20it\x20a\x20circle\x20*/\x0a}\x0a\x0a.size-6\x20{\x0a\x20\x20width:\x2024px;\x20/*\x20Set\x20SVG\x20size\x20*/\x0a\x20\x20height:\x2024px;\x20/*\x20Set\x20SVG\x20size\x20*/\x0a}\x0a.soft-ui:hover\x20{\x0a\x20\x20box-shadow:\x20inset\x209px\x209px\x2016px\x20rgba(0,\x200,\x200,\x200.15),\x20inset\x20-9px\x20-9px\x2016px\x20rgba(255,\x20255,\x20255,\x200.7),\x20inset\x20-2px\x20-2px\x204px\x20rgba(255,\x200,\x200,\x200.1);\x0a}\x0a.floating-button-group\x20{\x0a\x20\x20position:\x20fixed;\x0a\x20\x20bottom:\x2020px;\x0a\x20\x20right:\x2020px;\x0a\x20\x20z-index:\x201000;\x0a\x20\x20display:\x20flex;\x0a\x20\x20flex-direction:\x20column;\x0a\x20\x20gap:\x2010px;\x0a\x20\x20width:\x2030px;\x0a}\x0a\x0a\x0a.ai-graphics-SocratiQ\x20{\x0a\x20\x20width:\x20100%;\x0a\x20\x20display:\x20block;\x0a\x20\x20overflow:\x20visible;\x20/*\x20Ensure\x20the\x20content\x20is\x20not\x20clipped\x20*/\x0a\x20\x20min-height:\x2020px;\x20/*\x20Set\x20a\x20minimum\x20height\x20if\x20necessary\x20*/\x0a\x20\x20margin-bottom:\x2020px;\x20/*\x20Add\x20some\x20margin\x20to\x20ensure\x20space\x20around\x20it\x20*/\x0a}\x0a\x0a.ai-graphics-SocratiQ\x20svg\x20{\x0a\x20\x20width:\x20100%;\x0a\x20\x20height:\x20auto;\x0a\x20\x20display:\x20block;\x20/*\x20Make\x20sure\x20the\x20SVG\x20is\x20block-level\x20*/\x0a}\x0a\x0a\x0a/*\x20THESE\x20ARE\x20QUARTO\x20SPECIFIC\x20*/\x0a\x0a/*\x20Override\x20font\x20color\x20in\x20Sandstone\x20theme\x20*/\x0a.theme-sandstone\x20{\x0a\x20\x20color:\x20#A51C30;\x20/*\x20Set\x20font\x20color\x20to\x20#A51C30\x20*/\x0a}\x0a\x0a/*\x20Define\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0a:root\x20{\x0a\x20\x20--link-color:\x20#A51C30;\x0a}\x0a\x0a/*\x20Use\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0abody\x20{\x0a\x20\x20-webkit-font-smoothing:\x20auto;\x0a}\x0a\x0aa\x20{\x0a\x20\x20color:\x20var(--link-color);\x20/*\x20Use\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0a\x20\x20text-decoration:\x20underline;\x0a\x20\x20-webkit-text-decoration:\x20underline;\x0a\x20\x20-moz-text-decoration:\x20underline;\x0a\x20\x20-ms-text-decoration:\x20underline;\x0a\x20\x20-o-text-decoration:\x20underline;\x0a}\x0a\x0aa:hover\x20{\x0a\x20\x20color:\x20var(--link-color);\x20/*\x20Ensure\x20link\x20color\x20remains\x20the\x20same\x20on\x20hover\x20*/\x0a}\x0a\x0aa:not([href]):not([class]),\x0aa:not([href]):not([class]):hover\x20{\x0a\x20\x20color:\x20inherit;\x0a\x20\x20text-decoration:\x20none;\x0a}\x0a\x0a/*\x20Set\x20color\x20and\x20link\x20styles\x20for\x20active\x20items\x20in\x20the\x20sidebar\x20*/\x0adiv.sidebar-item-container\x20.active,\x0adiv.sidebar-item-container\x20.show\x20>\x20.nav-link,\x0adiv.sidebar-item-container\x20.sidebar-link\x20>\x20code\x20{\x0a\x20\x20color:\x20var(--link-color);\x0a}\x0a\x0a/*\x20Set\x20color\x20for\x20TOC\x20links\x20on\x20hover\x20*/\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a:hover,\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a:hover\x20{\x0a\x20\x20color:\x20var(--link-color)\x20!important;\x0a}\x0a\x0a/*\x20Set\x20border\x20color\x20and\x20text\x20color\x20for\x20active\x20TOC\x20links\x20*/\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active,\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20border-left:\x201px\x20solid\x20var(--link-color);\x0a\x20\x20color:\x20var(--link-color)\x20!important;\x0a}\x0a\x0a/*\x20Set\x20text\x20color\x20for\x20active\x20TOC\x20links\x20on\x20hover\x20*/\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active:hover,\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active:hover\x20{\x0a\x20\x20color:\x20var(--link-color);\x0a\x20\x20/*\x20Add\x20any\x20additional\x20hover\x20styles\x20here\x20*/\x0a}\x0a\x0a.navbar-dark,\x0a.navbar[data-bs-theme=dark]\x20{\x0a\x20\x20--bs-navbar-active-color:\x20var(--link-color);\x0a\x20\x20--bs-navbar-brand-hover-color:\x20var(--link-color);\x0a\x20\x20--bs-navbar-hover-color:\x20var(--link-color);\x0a\x20\x20--bs-navbar-hover-color:\x20var(--link-color);\x0a\x20\x20--bs-navbar-active-color:\x20var(--link-color);\x0a\x20\x20--bs-navbar-brand-hover-color:\x20var(--link-color);\x0a}\x0a\x0a.navbar\x20.quarto-navbar-tools\x20.quarto-navigation-tool:hover\x20{\x0a\x20\x20color:\x20var(--link-color);\x0a}\x0a\x0a/*\x20Define\x20the\x20font\x20size\x20root\x20*/\x0a:root\x20{\x0a\x20\x20font-size:\x2016px;\x0a}\x0a\x0a/*\x20Set\x20font\x20weight\x20for\x20active\x20items\x20*/\x0adiv.sidebar-item-container\x20.active\x20{\x0a\x20\x20font-weight:\x20bold;\x0a}\x0a\x0a/*\x20Set\x20font\x20weight\x20for\x20active\x20TOC\x20links\x20*/\x0a.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active,\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20font-weight:\x20bold;\x0a}\x0a\x0a/*\x20Set\x20color\x20and\x20background\x20for\x20active\x20TOC\x20links\x20*/\x0a.sidebar\x20nav[role=\x22doc-toc\x22]\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20color:\x20#A51C30\x20!important;\x0a\x20\x20background-color:\x20snow;\x0a\x20\x20font-weight:\x20bold;\x0a}\x0a\x0a/*\x20Headings\x20------------------------------------------------------\x20*/\x0a\x0a#title-block-header.quarto-title-block.default\x20.quarto-title\x20h1.title\x20{\x0a\x20\x20margin-bottom:\x200.5rem;\x0a}\x0a\x0ah2\x20{\x0a\x20\x20margin-top:\x202rem;\x0a\x20\x20margin-bottom:\x201rem;\x0a\x20\x20font-size:\x201.4rem;\x0a\x20\x20font-weight:\x20600;\x0a}\x0a\x0ah3\x20{\x0a\x20\x20margin-top:\x201.5em;\x0a\x20\x20font-size:\x201.2rem;\x0a\x20\x20font-weight:\x20500;\x0a}\x0a\x0ah4\x20{\x0a\x20\x20margin-top:\x201.5em;\x0a\x20\x20font-size:\x201.1rem;\x0a}\x0a\x0ah5\x20{\x0a\x20\x20margin-top:\x201.5em;\x0a\x20\x20font-size:\x201rem;\x0a}\x0a\x0a/*\x20Code\x20------------------------------------------------\x20*/\x0a\x0acode\x20a:any-link\x20{\x0a\x20\x20text-decoration:\x20underline;\x0a}\x0a\x0a/*\x20Mixin\x20for\x20callout\x20styling\x20*/\x0a.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#acacac\x20.3rem;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0a/*\x20Styling\x20for\x20answer\x20callout\x20body\x20*/\x0a.callout-body-container.callout-body\x20{\x0a\x20\x20padding:\x200px\x200px\x200px\x2023.04px;\x20/*\x20Top\x20Right\x20Bottom\x20Left\x20*/\x0a}\x0a\x0a/*\x20Exercise\x20callout\x20styling\x20*/\x0adiv.callout-slide.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#8f00ff\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-slide.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22🎫\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Exercise\x20callout\x20styling\x20*/\x0adiv.callout-video.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#8ccd00\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-video.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22📺\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Exercise\x20callout\x20styling\x20*/\x0adiv.callout-lab.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#ff006d\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-lab.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22👩‍💻\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Question\x20callout\x20styling\x20*/\x0adiv.callout-question.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#ff7d00\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-question.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22❓\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Exercise\x20callout\x20styling\x20*/\x0adiv.callout-exercise.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#ff7d00\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-exercise.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22📚\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Answer\x20callout\x20styling\x20*/\x0adiv.callout-answer.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#ffdd00\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-answer.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22✅\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a/*\x20Hint\x20callout\x20styling\x20*/\x0adiv.callout-hint.callout\x20{\x0a\x20\x20margin-top:\x201em;\x0a\x20\x20margin-bottom:\x201em;\x0a\x20\x20border-radius:\x20.25rem;\x0a\x20\x20border-left:\x20solid\x20#01befe\x20.3rem\x20!important;\x0a\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a}\x0a\x0adiv.callout-hint.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20content:\x20\x22🤔\x22;\x0a\x20\x20margin-right:\x2010px;\x0a}\x0a\x0a.callout-toggle::before\x20{\x0a\x20\x20background-image:\x20url(','^(say\x20&&\x20@hasComma)','__LINE__','$fscanf','instanceof','BinormalDistribution','Rest','setUnconscious','use(?:_i)?:[a-zA-Z]*','deer','DaylightQ','layerelementtype_background','regexp_replace','\x22\x22\x22','port','SequencePosition','frustum','[(tastes|smells)]\x20#Adverb?\x20#Adjective','userSettings','FormatTypeAutoConvert','TranslationOptions','POS','application_surface','achievement_show_bank','EdgeWeight','Item','#cs','swears-expression','ropeAttachTo','physics_get_density','RequireAdmin','camera_apply','AbsoluteOptions','$strobeo','title-de-title','PolynomialLCM','gtr','TreeLayout','|unless)\x5cs*','audio_falloff_linear_distance_clamped','0-9/;:]*','voice-balance','VideoPause','LoadPath','RightCosetRepresentative','IteratorIterator','position','$ceil','\x27[A-Za-z_](?!\x27)[\x5cw\x27]*','mar','SUMIF','$finish','is_inf','Pow','LightCyan','game_save_id','AudioData','some-reason','titlecase-acronym-titlecase','Callout','ViewPointSelectorSettings','^#Adverb','FunctionPeriod','audio_group_stop_all','went-on','mktemp','DIGITAL_MESSAGE','mb_right','ExtractArchive','ENABLE','DoubleUpDownArrow','isempty','factor','ev_global_gesture_drag_end','PreferencesPath','list-none','layer_tile_get_xscale','[^\x5c[]+','Ò','(#Noun\x20&&\x20@hasComma)\x20#Noun\x20(and|or)\x20[#PresentTense]','validateLink','Atomics','any-charge','VecElement','ds_map_delete','UnderseaFeatureData','GenericCylindricalDecomposition','QHypergeometricPFQ','DotDashed','titleRsc','\x5c$\x5c{','Noun|Gerund','symCount','^[(stay|be|keep)]\x20#Adjective','inputc','offset','iap_acquire','Delimiters','isVehicleCargo','Round','of_challen','buffer_async_group_begin','AI\x20returned\x20an\x20unexpected\x20response.\x20\x20Building\x20quiz\x20locally.','^(has|have)\x20been\x20#Gerund$','browser_input_capture','ReactionPDETerm','border-top-style','layer_tile_x','antagonise','toComparative','IconRules','Over','𝓀','timezone_name','draw_circle_colour','begin\x20&\x20end\x20are\x20not\x20supported\x20with\x20match','voice-pitch','keywords','#modal1','ForAll','WikidataSearch','(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*','executeglobal','pause-after','subunit','HjorthDistribution','get_timer','college','setPiPEffect','FrontEndDynamicExpression','⤑','currentScript','USBHost','def\x20defonce\x20defprotocol\x20defstruct\x20defmulti\x20defmethod\x20defn-\x20defn\x20defmacro\x20deftype\x20defrecord','bitClear','qscan','SIG','MeshCellLabel','IgnoreStereochemistry','FourierDCTMatrix','PlanetData','SpeechRecognize','PIDTune','TicksStyle',')[fFdD]?\x5cb','steam_ugc_set_item_preview','bbox_left','Frame','auto_reset','steam_is_cloud_enabled_for_app','casez','SlideShowVideo','OuterPolygon','tr_open','PairedTTest','MB_YESNO','/*\x20Override\x20font\x20color\x20in\x20Sandstone\x20theme\x20*/\x0a.theme-sandstone\x20{\x0a\x20\x20\x20\x20color:\x20#A51C30;\x20/*\x20Set\x20font\x20color\x20to\x20#A51C30\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Define\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0a\x20\x20:root\x20{\x0a\x20\x20\x20\x20--link-color:\x20#A51C30;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Use\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0a\x20\x20body\x20{\x0a\x20\x20\x20\x20-webkit-font-smoothing:\x20auto;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20a\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x20/*\x20Use\x20the\x20CSS\x20variable\x20for\x20link\x20color\x20*/\x0a\x20\x20\x20\x20text-decoration:\x20underline;\x0a\x20\x20\x20\x20-webkit-text-decoration:\x20underline;\x0a\x20\x20\x20\x20-moz-text-decoration:\x20underline;\x0a\x20\x20\x20\x20-ms-text-decoration:\x20underline;\x0a\x20\x20\x20\x20-o-text-decoration:\x20underline;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20a:hover\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x20/*\x20Ensure\x20link\x20color\x20remains\x20the\x20same\x20on\x20hover\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20a:not([href]):not([class]),\x0a\x20\x20a:not([href]):not([class]):hover\x20{\x0a\x20\x20\x20\x20color:\x20inherit;\x0a\x20\x20\x20\x20text-decoration:\x20none;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20color\x20and\x20link\x20styles\x20for\x20active\x20items\x20in\x20the\x20sidebar\x20*/\x0a\x20\x20div.sidebar-item-container\x20.active,\x0a\x20\x20div.sidebar-item-container\x20.show\x20>\x20.nav-link,\x0a\x20\x20div.sidebar-item-container\x20.sidebar-link\x20>\x20code\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20color\x20for\x20TOC\x20links\x20on\x20hover\x20*/\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a:hover,\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a:hover\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color)\x20!important;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20border\x20color\x20and\x20text\x20color\x20for\x20active\x20TOC\x20links\x20*/\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active,\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20\x20\x20border-left:\x201px\x20solid\x20var(--link-color);\x0a\x20\x20\x20\x20color:\x20var(--link-color)\x20!important;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20text\x20color\x20for\x20active\x20TOC\x20links\x20on\x20hover\x20*/\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active:hover,\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active:hover\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x0a\x20\x20\x20\x20/*\x20Add\x20any\x20additional\x20hover\x20styles\x20here\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20.navbar-dark,\x0a\x20\x20.navbar[data-bs-theme=dark]\x20{\x0a\x20\x20\x20\x20--bs-navbar-active-color:\x20var(--link-color);\x0a\x20\x20\x20\x20--bs-navbar-brand-hover-color:\x20var(--link-color);\x0a\x20\x20\x20\x20--bs-navbar-hover-color:\x20var(--link-color);\x0a\x20\x20\x20\x20--bs-navbar-hover-color:\x20var(--link-color);\x0a\x20\x20\x20\x20--bs-navbar-active-color:\x20var(--link-color);\x0a\x20\x20\x20\x20--bs-navbar-brand-hover-color:\x20var(--link-color);\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20.navbar\x20.quarto-navbar-tools\x20.quarto-navigation-tool:hover\x20{\x0a\x20\x20\x20\x20color:\x20var(--link-color);\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Define\x20the\x20font\x20size\x20root\x20*/\x0a\x20\x20:root\x20{\x0a\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20font\x20weight\x20for\x20active\x20items\x20*/\x0a\x20\x20div.sidebar-item-container\x20.active\x20{\x0a\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20font\x20weight\x20for\x20active\x20TOC\x20links\x20*/\x0a\x20\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20a.active,\x20.sidebar\x20nav[role=doc-toc]\x20ul\x20>\x20li\x20>\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Set\x20color\x20and\x20background\x20for\x20active\x20TOC\x20links\x20*/\x0a\x20\x20.sidebar\x20nav[role=\x22doc-toc\x22]\x20ul\x20>\x20li\x20>\x20a.active\x20{\x0a\x20\x20\x20\x20color:\x20#A51C30\x20!important;\x0a\x20\x20\x20\x20background-color:\x20snow;\x0a\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Headings\x20------------------------------------------------------\x20*/\x0a\x20\x20\x0a\x20\x20#title-block-header.quarto-title-block.default\x20.quarto-title\x20h1.title\x20{\x0a\x20\x20\x20\x20margin-bottom:\x200.5rem;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20h2\x20{\x0a\x20\x20\x20\x20margin-top:\x202rem;\x0a\x20\x20\x20\x20margin-bottom:\x201rem;\x0a\x20\x20\x20\x20font-size:\x201.4rem;\x0a\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20h3\x20{\x0a\x20\x20\x20\x20margin-top:\x201.5em;\x0a\x20\x20\x20\x20font-size:\x201.2rem;\x0a\x20\x20\x20\x20font-weight:\x20500;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20h4\x20{\x0a\x20\x20\x20\x20margin-top:\x201.5em;\x0a\x20\x20\x20\x20font-size:\x201.1rem;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20h5\x20{\x0a\x20\x20\x20\x20margin-top:\x201.5em;\x0a\x20\x20\x20\x20font-size:\x201rem;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Code\x20------------------------------------------------\x20*/\x0a\x20\x20\x0a\x20\x20code\x20a:any-link\x20{\x0a\x20\x20\x20\x20text-decoration:\x20underline;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Mixin\x20for\x20callout\x20styling\x20*/\x0a\x20\x20.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#acacac\x20.3rem;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Styling\x20for\x20answer\x20callout\x20body\x20*/\x0a\x20\x20.callout-body-container.callout-body\x20{\x0a\x20\x20\x20\x20padding:\x200px\x200px\x200px\x2023.04px;\x20/*\x20Top\x20Right\x20Bottom\x20Left\x20*/\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Exercise\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-slide.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#8f00ff\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-slide.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22🎫\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Exercise\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-video.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#8ccd00\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-video.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22📺\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Exercise\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-lab.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#ff006d\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-lab.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22👩‍💻\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Question\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-question.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#ff7d00\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-question.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22❓\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Exercise\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-exercise.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#ff7d00\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-exercise.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22📚\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Answer\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-answer.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#ffdd00\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-answer.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22✅\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20/*\x20Hint\x20callout\x20styling\x20*/\x0a\x20\x20div.callout-hint.callout\x20{\x0a\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20border-radius:\x20.25rem;\x0a\x20\x20\x20\x20border-left:\x20solid\x20#01befe\x20.3rem\x20!important;\x0a\x20\x20\x20\x20border-right:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-top:\x20solid\x200.5px\x20silver;\x0a\x20\x20\x20\x20border-bottom:\x20solid\x200.5px\x20silver;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20div.callout-hint.callout\x20>\x20.callout-header::before\x20{\x0a\x20\x20\x20\x20font-family:\x20\x22Font\x20Awesome\x205\x20Free\x22;\x0a\x20\x20\x20\x20content:\x20\x22🤔\x22;\x0a\x20\x20\x20\x20margin-right:\x2010px;\x0a\x20\x20}\x0a\x20\x20\x0a\x20\x20.callout-toggle::before\x20{\x0a\x20\x20\x20\x20background-image:\x20url(','VersionedPreferences','RayleighDistribution','AcousticRadiationValue','ȷ','memchr','Haskell','𝔫','FONTS','window_set_rectangle','Del','#Gerund\x20#Actor','Page','GeoIdentify','cvar','lb_sort_ascending','#Prefix','LOGNORM.DIST','max1','⋚︀','(are|#Modal|see|do|for)\x20[ya]','ENDIAN_BOM','isCardinal','$CloudEvaluation','cadetMode','c_bool','3-4pm','$SetParentLink','`\x22[^\x0d\x0a]*?\x22\x27','SystemException','[A-Za-z_][0-9A-Za-z_]*','ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ','Text\x20copied\x20to\x20clipboard!','PearsonCorrelationTest','Printout3D','distributed','ImageMarkers','rob-smith','MinSize','border-radius','instrrev','teamSwitchEnabled','system_prompt','log_determinant','TaskWait','Environment','BuildingData','ProbitModelFit','isAgent','CurrentValue','PulsarData','flex','ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ','contractions','setItem','Moment','#Determiner\x20#Adverb?\x20[close]','ds_map_find_next','5-yan','dispatchEvent','getObjectArgument','logout_path','gamespeed_microseconds','MacintoshSystemPageSetup','LOCK','audio_resume_music','KernelMixtureDistribution','setoid_replace','local.tee','MoleculeAlign','⊛','setMarkerSizeLocal','^(go|stop|wait|hurry)\x20please?$','null_unspecified','Control','⊾','RandomWalkProcess','TBILLPRICE','backpackSpaceFor','listRemoteTargets','int32','messageAvailable','|#Multiple)','NamedEntity','Expr','draw_primitive_end','^[#Infinitive]\x20(your|my|the|a|an|any|each|every|some|more|with|on)','briefingName','RemoveAsynchronousTask','HoytDistribution','й','csng','arch','array_max','frlen','physics_particle_get_radius','LOCATE','getcap','diag_allMissionEventHandlers','gpu_get_alphatestref','ally','did-a-value','$dumpportson','setRectangular','ing','[#Preposition]\x20#Gerund','stateNamedEntity','Ν','true¦a2j0sep;an0une;!uary;p0ugust,v0;ril','BooleanFunction','shorten','sha1sum','doptname','AstroGridLines','screenX','OverscriptBox','^wanted\x20to\x20#Infinitive$','tcltest','Instances','MatchingDissimilarity','#Verb','currentVisionMode','CloudShare','Servo','upstream\x20location','hyphen-verb','motorsWrite','ToColor','Span','gamma','\x5c[|','⊢','after:highlightBlock','WebRow','xorwrite','sizeOf','WordBoundary','addToNumericResult','Nop','posedge','(?:[/?#](?:(?!','std_ulogic_vector','⤷','ImageContainsQ','Gradient','part_type_shape','source','cls','compare','http://','ambientLight','wanted','viri','HashTag','Subset','ListPickerBox','$dumpportsall','fileTree','sas','shellsession','ContourDetect','RemoteInputFiles','INKEY$','\x5c/\x5c+','BetaPrimeDistribution','true¦bett1f0;arth0ew0in0;er','-import','ContinuousTask','isNotEqualRef','Universe','lnbSort','dde','Particle','-doc','BesselYZero','$InterpreterTypes','->\x5c*?','markerDir','ReferenceMarkerStyle','(will\x20&&\x20@isTitleCase)\x20#ProperNoun','ugc_query_AcceptedForGameRankedByAcceptanceDate','│','mend','captiveNum','KnownUnitQ','Hash','selectEditorObject','gp_padu','Out','size','commandFSM','RegexMatch','[even]\x20#Comparative','csh','^\x5cs*[=~]\x5cs*','VideoTranscode','buffer_sha1','openGPS','⇝','newPrintWriter','AppearanceElements','subtract','⨩','ViewPoint','([ui](8|16|32|64|128|size)|f(32|64))?','⥑','allMapMarkers','tile_flip','marks','will\x20(#Adverb|not)+?\x20[have]\x20(#Adverb|not)+?\x20#Verb','module_function','ptf','RowsEqual','$TimedOut','HalfSpace','SubresultantPolynomialRemainders','Intros','GainPhaseMargins','collision_ellipse_list','#Noun\x20[(#PastTense|#Participle)]\x20by\x20(the|a)\x20#Noun','step21','attachObject','abbr_method','pond','𝕨','Iterable','MaxExtraConditions','ExternalObject','AbstractIrrational','layer_sprite_get_alpha','EntropyFilter','skeleton_attachment_get','ButterflyGraph','LocalAdaptiveBinarize','BlankNullSequence','updateMenuItem','JacobiAmplitude','Annulus','LQGRegulator','-_.!~*\x27()','namespace','$cosh','retrieveCallingNumber','AllowGroupClose','LPOS','url_get_domain','\x5c!\x22#$%&\x27()*+,./:;<=>?@[]^_`{|}~-','VectorColorFunction','taskHint','))?([pP][+-]?(','BlockchainAddressData','mul','SunPosition','enableSimulationGlobal','ControlGroupContentsBox','state','goes-to-verb','𝔛','Backus–Naur\x20Form','file_find_next','\x0a\x0a---\x0a---\x0a---\x0a','putWeaponPool','ds_queue_tail','ds_type_stack','cts','investments','attachedObjects','transport','⪎','camera_create_view','abstract','NotSuperset','shininess','MatrixPower','RandomSample','NormalsFunction','3:12:31','WaveletPhi','part_type_size','DocumentGeneratorInformation','int16','onPlayerConnected','Offset|0','Symmetrize','(?!','ShowAutoConvert','alt','draw_set_blend_mode_ext','surfaceTexture','DistributedContexts','conversationDisabled','$SystemCredentialStore','PointCloud','reject','CollinearPoints','exec','seventieth','ℑ','session_user','lassign|10','socketpair','zone','\x20❄️','vk_rcontrol','#FirstName\x20[/^[^aiurck]$/]','(#PresentTense|#PastTense)\x20[(had|has)]','ù','window_get_fullscreen','bit','LibraryFunctionDeclaration','RowMinHeight','OPTION','setLightVolumeShape','window_set_max_width','dint','ListAnimate','interstate','CuboidBoxOptions','ResolveContextAliases','path_delete','\x5cw+','mort','Stream','AtomQ','bullet','word-spacing','ifnanorinf','skeleton_skin_set','DedekindEta','$Post','COLUMNS','removeCuratorAddons','Unknown\x20language:\x20\x22','Ŝ','⩉','compdescribe','seventeen','text/plain','kind','scroll-padding-left','laserTarget','𝔻','time-range','varying','IMSINH','COTH','[(sound|sounds)]\x20#Adjective','scilab','Upsample','co-write','true¦0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic','FLOOR','$NotebookInlineStorageLimit','⇤','Ÿ','part_type_colour_hsv','MarkdownIt.\x20Failed\x20to\x20enable\x20unknown\x20rule(s):\x20','rrspacing','ev_room_start','ev_joystick2_button6','DownValuesFunction','invokeMethods','enableCamShake','[post]\x20\x27','SymmetrizedIndependentComponents','Cookies','Β','layer_background_index','Continue','synchronized','CellFrameColor','unique_ptr','^>\x5cs+','ds_queue_empty','setPosASL2','mdivide_left_tri_low','5th-of-march','ExternalBundle','before:highlightBlock','regexFind','DavisDistribution','#Person\x20would','ColorQuantize','GaugeMarkers','$WolframUUID','win8_livetile_notification_text_add','isEngineOn','leaveVehicle','name-the-great','Slot','mp_grid_add_cell','file_text_close','shader_set_uniform_matrix','endblock','won','var','shmget','Format','NumberForm','ShortestPathFunction','(want|wants|wanted)\x20to\x20#Infinitive','PeriodicInterpolation','KeypointStrength','setDrawIcon','block\x20match\x20pass\x20load\x20anchor|5\x20antispoof|10\x20set\x20table','xs:NMTOKEN','FileNameDialogSettings','physics_particle_get_gravity_scale','path|0','true\x20false\x20null\x20this\x20is\x20new\x20super','binsof','Serializable','RUN','Decapitalize','^#\x5cw','sysget','tvClear','saving','ũ','python-repl','3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y','FromEntity','view_set_camera','commission','c_null_char','simple-present','HarmonicMean','GibbsPointProcess','ClockGauge','<\x5c?','ds_priority_delete_value','noun','linspaced_row_vector','xn--[a-z0-9\x5c-]{1,59}','object_set_visible','Focus','move_contact_solid','⤒','|1.5','#Honorific+\x20#Person','\x5cb(0[bB][01]+)','#Verb\x20#Preposition\x20#Determiner','⋬','nce','(is|are|am|was)\x20going\x20to\x20(#Infinitive|#PresentTense)','setWaypointDescription','(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded)\x20(#Adverb|#Adjective)?\x20[#PastTense]','waypointBehaviour','camPrepareDive','findEditorObject','going\x20to','TooBig','a\x20[(little|bit|wee)\x20bit?]\x20#Adjective','steward','↶','⫩','async_load','cafe',':::\x20loader\x0a:::\x0a','3-plural-guess','Set','logical','SuchThat','ImageAugmentationLayer','⊪','getSensorTargets','|\x5cb(return)\x5cb)\x5cs*','KroneckerSymbol','EditCellTagsSettings','switchCamera','SML\x20(Standard\x20ML)','GetLabelAddress','SoundAndGraphics','SpherePoints','⩻','DynamicBox','$LicenseExpirationDate','Ъ','-record','she\x27s','TruncatedDistribution','as_const','EvaluationCompletionAction','ImageAccumulate','NetPairEmbeddingOperator','DestroyAfterEvaluation','℧','⩳','Reverse','VertexInComponentGraph','minval','DefaultInlineFormatType','APA','GridGraph','hnf','NSolve','AnyTrue','off','ordered_logistic_glm','nativeint','true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions','*^:','setter','long','Ŷ','part_type_color_rgb','y\x27know','ќ','SubStar','QUOTE_STRING_MODE','objectParent','scroll-margin-right','GraphPeriphery','ShearingTransform','Date','StringSink','shearX','getMatcher','AllowScriptLevelChange','DoubleLongLeftRightArrow','lbSetSelectColor','COM','$MaxRootDegree','Rec','an-instant','))[pP][+-]?(','removeCuratorCameraArea','beginContour','⌜','fcopy','FindWindow','UnsetShared','listen','⥦','win8_appbar_remove_element','person-said','#new-chat','#Gerund$','stderr','special-comittee','CatalanNumber','audio_falloff_exponent_distance_clamped','cloud_file_save','vk_insert','Random','#\x5cw+(\x5c.\x5cw+)?#(','ds_map_write','FOR','$CloudRootDirectory','setSize','waypointStatements',':[^\x5cn]*\x5cn?','--+|--+(?!-)','vk_backspace','api','ImagePreviewFunction','$MobilePhone','Active','variable_global_exists','vertex_float4','c_int_least16_t','weaponInertia','lbSetSelected','array\x20bool\x20char\x20exn\x20int\x20list\x20option\x20order\x20real\x20ref\x20string\x20substring\x20vector\x20unit\x20word','BesselJZero','UnderoverscriptBox','ConversionOptions','LinkReadyQ','Fibonacci','$Version','draw_surface_tiled_ext','scroll-snap-type','DoubleBracketingBar','∂̸','ain','lor','vectorModelToWorldVisual','default_nettype','GaugeFrameElementFunction','#Copula\x20#Gerund\x20[#PresentTense]\x20!by?','lightnings','leaderboardDeInit','fjords','AbortProtect','Imperative\x20.\x20Imperative','ċ','NotHumpDownHump','#PhrasalVerb\x20(in\x20&&\x20#Particle)\x20#Determiner','DayName','Icon','will\x20have\x20been\x20#Passive','maj','least','ev_game_start','drawLine','ev_global_gesture_flick','parseXML','(\x5cbEnd\x5cb)','3-singular-guess','setAccTime','sint32','noAutoscroll','appendices','nopass','⨆','MatrixPlot','ones','IntegerLength','range','Magnification','strict','Add','ImageValuePositions','sentence','complex_schur_decompose_u','Character','Types','PESubsysVer','$psprintf','BinaryImageQ','Sin','format','clamp','DomainRegistrationInformation','lua','[(half|quarter)]\x20of?\x20(a|an)','network_socket_tcp','stopped','physics_fixture_set_sensor','tm_countvsyncs','$ScriptCommandLine','Excel\x20formulae','neg','DMIN','sis','ColorSelectorSettings','Ξ','\x5c[/no_square_brackets\x5c]','success','pack','UtilityFunction','printVersion','ì','RefBox','alignas','lbSetPictureRight','ctrlSetScale','Т','device_mouse_check_button_pressed','__emitTokens','[fuck]\x20(#Determiner|#Possessive|them)','⨌','-(?!--)|','atty','UnixTime','#colorLiteral','ev_left_press','blt','MaintainDynamicCaches','tint','^\x5c*(\x5cw+|@)','GenerateDocument','circle\x20square\x20polygon\x20text\x20sphere\x20cube\x20cylinder\x20polyhedron\x20translate\x20rotate\x20scale\x20resize\x20mirror\x20multmatrix\x20color\x20offset\x20hull\x20minkowski\x20union\x20difference\x20intersection\x20abs\x20sign\x20sin\x20cos\x20tan\x20acos\x20asin\x20atan\x20atan2\x20floor\x20round\x20ceil\x20ln\x20log\x20pow\x20sqrt\x20exp\x20rands\x20min\x20max\x20concat\x20lookup\x20str\x20chr\x20search\x20version\x20version_num\x20norm\x20cross\x20parent_module\x20echo\x20import\x20import_dxf\x20dxf_linear_extrude\x20linear_extrude\x20rotate_extrude\x20surface\x20projection\x20render\x20children\x20dxf_cross\x20dxf_dim\x20let\x20assign','FrameTicks','anint','DECIMAL','ConnectedGraphComponents','drop','VAR','printFirmwareVersion','gesture_double_tap_distance','best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe',' ','BayesianMaximizationObject','hpp','attachShadow','↵','STDEVP','PrivateCellOptions','IMSUM','%q\x5c{','EvaluationEnvironment','draw_sprite_part_ext','#Place+\x20#SportsTeam','$Printout3DPreviewer','instance_deactivate_region','FlowPolynomial','NetDrop','rectangle_in_circle','REM','ENDFOR','vertex_delete_buffer','hcSelected','ds_grid_destroy','trace_gen_quad_form','FaceForm','ConstantArray','string_count','(he|she|they|it|we|you)\x20will','OutOfMemoryError','auto_load','c_fuchsia','border-inline-end-width','$PasswordFile','`float\x20`double\x20int\x20`timestamp\x20`timespan\x20`datetime\x20`time\x20`boolean\x20`symbol\x20`char\x20`byte\x20`short\x20`long\x20`real\x20`month\x20`date\x20`minute\x20`second\x20`guid','.2byte\x20.4byte\x20.align\x20.ascii\x20.asciz\x20.balign\x20.byte\x20.code\x20.data\x20.else\x20.end\x20.endif\x20.endm\x20.endr\x20.equ\x20.err\x20.exitm\x20.extern\x20.global\x20.hword\x20.if\x20.ifdef\x20.ifndef\x20.include\x20.irp\x20.long\x20.macro\x20.rept\x20.req\x20.section\x20.set\x20.skip\x20.space\x20.text\x20.word\x20.arm\x20.thumb\x20.code16\x20.code32\x20.force_thumb\x20.thumb_func\x20.ltorg\x20ALIAS\x20ALIGN\x20ARM\x20AREA\x20ASSERT\x20ATTR\x20CN\x20CODE\x20CODE16\x20CODE32\x20COMMON\x20CP\x20DATA\x20DCB\x20DCD\x20DCDU\x20DCDO\x20DCFD\x20DCFDU\x20DCI\x20DCQ\x20DCQU\x20DCW\x20DCWU\x20DN\x20ELIF\x20ELSE\x20END\x20ENDFUNC\x20ENDIF\x20ENDP\x20ENTRY\x20EQU\x20EXPORT\x20EXPORTAS\x20EXTERN\x20FIELD\x20FILL\x20FUNCTION\x20GBLA\x20GBLL\x20GBLS\x20GET\x20GLOBAL\x20IF\x20IMPORT\x20INCBIN\x20INCLUDE\x20INFO\x20KEEP\x20LCLA\x20LCLL\x20LCLS\x20LTORG\x20MACRO\x20MAP\x20MEND\x20MEXIT\x20NOFP\x20OPT\x20PRESERVE8\x20PROC\x20QN\x20READONLY\x20RELOC\x20REQUIRE\x20REQUIRE8\x20RLIST\x20FN\x20ROUT\x20SETA\x20SETL\x20SETS\x20SN\x20SPACE\x20SUBT\x20THUMB\x20THUMBX\x20TTL\x20WHILE\x20WEND\x20','border-bottom-right-radius','logNetworkTerminate','VectorQ','BY\x20CACHE\x20INCREMENT\x20MAXVALUE\x20MINVALUE','DQUOTE','abstract\x20from\x20to','yaml_encode','CEILING.PRECISE','CumulantGeneratingFunction','function\x20constructor|10\x20destructor|10\x20procedure|10\x20method|10','isKeyActive','tvCurSel','setArmoryPoints','vprintf','$dumplimit','ISOWeek','URLQueryEncode','Inpaint','C_NUMBER_MODE','freestanding','VertexSize','diag_log','ScheduledTaskActiveQ','Dilation','(\x5cbend\x5cb)','AudioLabel','Crystal','xs:byte','TensorWedge','OverHat','AxisBox','gpu_get_texrepeat','\x5cb0[bB][01](_*[01])*[lL]?\x5cb',')\x5c.)*','cssText','industries','#Preposition$','~\x5c*?\x5cs+','c_int_fast64_t','attrs','getDirVisual','\x5c]\x0a','doctag','ply','bitset','max-height','cin','(do|does)','InterpretationFunction','asset_sprite','__rules__','$SharedFunctions','[#$=]?0x[0-9a-f]+','iparity','readLines','ContentSize','physics_particle_group_count','invoke','getAmmoCargo','seq','draw_rectangle_color','array_length','fa_sysfile','draw_light_define_point','Reals','listenOnLocalhost','NumberString','ef_flare','input[type=\x22radio\x22]:checked','name','lkj_corr_cholesky','draw_triangle_color','TransferFunctionCancel','`[\x5cs\x5cS]','DMSString','ContentFieldOptions','forEachMemberTeam','(his|its)\x20[%Adj|Noun%]','mp_grid_create','shader_enable_corner_id','StringPadLeft','^rather\x20than','(Procedure|Declare)(C|CDLL|DLL)?','TreePlot','fft2','@hasComma\x20(and|or)\x20.','einjection','gamepad_axis_count','getservent','physics_particle_group_get_y','DiamondMatrix','ev_user7','wrong-answer','FileHandler','skeleton_bone_state_get','gamepad_button_check_released','file_bin_rewrite','detachInterrupt',')\x20#Ordinal','CloudObjectInformation','Summarize\x20the\x20general\x20gist\x20of\x20this\x20text:\x20','environ\x20vocabularies\x20notations\x20constructors\x20definitions\x20registrations\x20theorems\x20schemes\x20requirements\x20begin\x20end\x20definition\x20registration\x20cluster\x20existence\x20pred\x20func\x20defpred\x20deffunc\x20theorem\x20proof\x20let\x20take\x20assume\x20then\x20thus\x20hence\x20ex\x20for\x20st\x20holds\x20consider\x20reconsider\x20such\x20that\x20and\x20in\x20provided\x20of\x20as\x20from\x20be\x20being\x20by\x20means\x20equals\x20implies\x20iff\x20redefine\x20define\x20now\x20not\x20or\x20attr\x20is\x20mode\x20suppose\x20per\x20cases\x20set\x20thesis\x20contradiction\x20scheme\x20reserve\x20struct\x20correctness\x20compatibility\x20coherence\x20symmetry\x20assymetry\x20reflexivity\x20irreflexivity\x20connectedness\x20uniqueness\x20commutativity\x20idempotence\x20involutiveness\x20projectivity','\x5cb(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)','array_min','ReplaceRepeated','highz0','CentralFeature','SolidMechanicsStress','orchestra','tempoWrite','DebugLog','(?!-)','JoinForm','noInterrupts','biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф','Unfocused','TakeWhile','weaponsInfo','⤄','image_yscale','insertBefore','sprite_create_from_surface','loaves','CandlestickChart','BooleanMaxterms','getPilotCameraRotation','fight\x20and\x20win','BOOL','copy-btn','restore','lset|10','Fields','readdir','(?:NeedsTeXFormat|RequirePackage|GetIdInfo)','line','DampingFactor','StackedListPlot','FindMaximum','Opaque','html_block','run','setMass','½','SelectComponents','camera_get_view_speed_x','renderAttrs','SkeletonTransform','get_integer_async','readJoystickY','true¦a08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0;\x20to,wards5;h1iny\x20bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0;\x20of;how,times,w0C;a1e0;alS;ndomRth05;ar\x20excellenEer0oint\x20blank;\x20Lhaps;f3n0utright;ce0ly;!\x200;ag05moX;\x20courGten;ewJo0;\x20longWt\x200;onHwithstand9;aybe,eanwhiNore0;!ovT;!\x20aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing;\x200evK;exampCgood,suH;n\x20mas0vI;se;e0irect2;\x202fini0;te0;ly;juAtrop;ackward,y\x200;far,no0;\x20means,w;\x20GbroFd\x20nauseam,gEl7ny5part,s4t\x202w0;ay,hi0;le;be7l0mo7wor7;arge,ea6;\x20soon,i4;mo0way;re;l\x203mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori','ds_stack_pop','c_orange','VertexNormals','audio_play_in_sync_group','◊','the-acronym','ModularInverse','Uint8ClampedArray','LerchPhi','media','FindPointProcessParameters','GeoStyling','texture','function','radioChannelRemove','#FirstName\x20#Acronym\x20#ProperNoun','poly_length','METHOD_GUARD','SetRegView','GalleryView','playSound','object_get_parent','activateAddons','buffer_generalerror','JarqueBeraALMTest','LeftTriangleBar','Arguments','NPER','window_view_mouse_get_x','(had|has)\x20to\x20[#Noun]\x20(#Determiner|#Possessive)','return_all_fields','anytype','view_current','isListening','#Honorific+?\x20#Person+','≬','INT','createObjectStore','cppdecl','⦲','mask_index','ffl','steam_ugc_create_item','members','exponential','⋶','$1ovie','setLightDayLight','PacletFind','fappend','implementation','AbstractVecOrMat','vformat','TRANSPOSE','CounterStyleMenuListing','marker','iap_consume','-compile','setWaypointFormation','hour','IsSimple','SearchAdjustment','buffer_sizeof','Cint','OPEN','layer_background_get_id','table_open','lightgreen','window_set_size','inputbox','matlab','setHideBehind','PrincipalComponents','⫕','Error','UniformPolyhedron','exit','ControllerManipulate','iscntrl','MeshCellQuality','so-noun','PATCH','MatrixPropertyDistribution','ShowAutoSpellCheck','CMYKColor','RiemannR','network_send_packet','$past','WordSearch','newWriter','iochecks','mousePressed','auto_mkindex_old','faction','POISSON','Axis3DBox','SyntaxError','isUAVConnectable','#Copula\x20#Gerund','MeshQualityGoal','WeberE','setRotorBrakeRTD','FileSystem','KEdgeConnectedGraphQ','image-rendering','wend','#Verb\x20#Reflexive','IPAddress','vtransform','when-he','lnbSetPicture','setTriggerType','(\x5cb[a-z\x27][a-zA-Z0-9_\x27]*:[a-z\x27][a-zA-Z0-9_\x27]*)|(\x5cb[a-z\x27][a-zA-Z0-9_\x27]*)','rgb','FindIsomers','uniq','mouse_y','ψ','RightDownVector','sideRadio','RightDownTeeVector','mask-border-mode','⪮','CrossingPolygon','text-2xl\x20font-bold\x20mt-2','InertEvaluate','fine-artist','borderTop','\x5cB\x27(?![\x27\x5cs])','Retrieving\x20relevant\x20sentences\x20from\x20website','libname','world','background-size','buffer_async_group_option','ccur','enable','aux','SearchAbout','RidgeFilter','FINV','Parallelepiped','equality','SampledEntityClass','Short','swift','⪴','Align\x20And\x20Array\x20As\x20Break\x20CallDebugger\x20Case\x20CompilerCase\x20CompilerDefault\x20CompilerElse\x20CompilerElseIf\x20CompilerEndIf\x20CompilerEndSelect\x20CompilerError\x20CompilerIf\x20CompilerSelect\x20CompilerWarning\x20Continue\x20Data\x20DataSection\x20Debug\x20DebugLevel\x20Declare\x20DeclareC\x20DeclareCDLL\x20DeclareDLL\x20DeclareModule\x20Default\x20Define\x20Dim\x20DisableASM\x20DisableDebugger\x20DisableExplicit\x20Else\x20ElseIf\x20EnableASM\x20EnableDebugger\x20EnableExplicit\x20End\x20EndDataSection\x20EndDeclareModule\x20EndEnumeration\x20EndIf\x20EndImport\x20EndInterface\x20EndMacro\x20EndModule\x20EndProcedure\x20EndSelect\x20EndStructure\x20EndStructureUnion\x20EndWith\x20Enumeration\x20EnumerationBinary\x20Extends\x20FakeReturn\x20For\x20ForEach\x20ForEver\x20Global\x20Gosub\x20Goto\x20If\x20Import\x20ImportC\x20IncludeBinary\x20IncludeFile\x20IncludePath\x20Interface\x20List\x20Macro\x20MacroExpandedCount\x20Map\x20Module\x20NewList\x20NewMap\x20Next\x20Not\x20Or\x20Procedure\x20ProcedureC\x20ProcedureCDLL\x20ProcedureDLL\x20ProcedureReturn\x20Protected\x20Prototype\x20PrototypeC\x20ReDim\x20Read\x20Repeat\x20Restore\x20Return\x20Runtime\x20Select\x20Shared\x20Static\x20Step\x20Structure\x20StructureUnion\x20Swap\x20Threaded\x20To\x20UndefineMacro\x20Until\x20Until\x20\x20UnuseModule\x20UseModule\x20Wend\x20While\x20With\x20XIncludeFile\x20XOr','#ProperNoun\x20(van|al|bin)\x20#ProperNoun','Around','ArrayFlatten','GenomeLookup','𝕃','the-sun','Line3DBoxOptions','ArgMin','≨︀','#Noun\x20[(the|a|an)]\x20#Adjective?\x20#Noun','Run','Hypotheses','[a-zA-Z_]+\x5cs*=>','KaryTree','fromText','AppendTo','SpanFromAbove','UnitEnum','unsafeDowncast','isMissionProfileNamespaceLoaded','\x1b[33m','nth-last-col','Å','getKey','ctrlSetScrollValues','matrix_exp','cut','ImageApplyIndexed','mask-mode','set3DENMissionAttribute','toUpperANSI','AutoOperatorRenderings','$1..','soften','is_undefined','text-sm\x20font-medium\x20mt-2','tpl_host_port_fuzzy_strict','vk_f7','CloudDisconnect','ℒ','goto\x20gosub\x20return\x20break\x20repeat\x20loop\x20continue\x20wait\x20await\x20dim\x20sdim\x20foreach\x20dimtype\x20dup\x20dupptr\x20end\x20stop\x20newmod\x20delmod\x20mref\x20run\x20exgoto\x20on\x20mcall\x20assert\x20logmes\x20newlab\x20resume\x20yield\x20onexit\x20onerror\x20onkey\x20onclick\x20oncmd\x20exist\x20delete\x20mkdir\x20chdir\x20dirlist\x20bload\x20bsave\x20bcopy\x20memfile\x20if\x20else\x20poke\x20wpoke\x20lpoke\x20getstr\x20chdpm\x20memexpand\x20memcpy\x20memset\x20notesel\x20noteadd\x20notedel\x20noteload\x20notesave\x20randomize\x20noteunsel\x20noteget\x20split\x20strrep\x20setease\x20button\x20chgdisp\x20exec\x20dialog\x20mmload\x20mmplay\x20mmstop\x20mci\x20pset\x20pget\x20syscolor\x20mes\x20print\x20title\x20pos\x20circle\x20cls\x20font\x20sysfont\x20objsize\x20picload\x20color\x20palcolor\x20palette\x20redraw\x20width\x20gsel\x20gcopy\x20gzoom\x20gmode\x20bmpsave\x20hsvcolor\x20getkey\x20listbox\x20chkbox\x20combox\x20input\x20mesbox\x20buffer\x20screen\x20bgscr\x20mouse\x20objsel\x20groll\x20line\x20clrobj\x20boxf\x20objprm\x20objmode\x20stick\x20grect\x20grotate\x20gsquare\x20gradf\x20objimage\x20objskip\x20objenable\x20celload\x20celdiv\x20celput\x20newcom\x20querycom\x20delcom\x20cnvstow\x20comres\x20axobj\x20winobj\x20sendmsg\x20comevent\x20comevarg\x20sarrayconv\x20callfunc\x20cnvwtos\x20comevdisp\x20libptr\x20system\x20hspstat\x20hspver\x20stat\x20cnt\x20err\x20strsize\x20looplev\x20sublev\x20iparam\x20wparam\x20lparam\x20refstr\x20refdval\x20int\x20rnd\x20strlen\x20length\x20length2\x20length3\x20length4\x20vartype\x20gettime\x20peek\x20wpeek\x20lpeek\x20varptr\x20varuse\x20noteinfo\x20instr\x20abs\x20limit\x20getease\x20str\x20strmid\x20strf\x20getpath\x20strtrim\x20sin\x20cos\x20tan\x20atan\x20sqrt\x20double\x20absf\x20expf\x20logf\x20limitf\x20powf\x20geteasef\x20mousex\x20mousey\x20mousew\x20hwnd\x20hinstance\x20hdc\x20ginfo\x20objinfo\x20dirinfo\x20sysinfo\x20thismod\x20__hspver__\x20__hsp30__\x20__date__\x20__time__\x20__line__\x20__file__\x20_debug\x20__hspdef__\x20and\x20or\x20xor\x20not\x20screen_normal\x20screen_palette\x20screen_hide\x20screen_fixedsize\x20screen_tool\x20screen_frame\x20gmode_gdi\x20gmode_mem\x20gmode_rgb0\x20gmode_alpha\x20gmode_rgb0alpha\x20gmode_add\x20gmode_sub\x20gmode_pixela\x20ginfo_mx\x20ginfo_my\x20ginfo_act\x20ginfo_sel\x20ginfo_wx1\x20ginfo_wy1\x20ginfo_wx2\x20ginfo_wy2\x20ginfo_vx\x20ginfo_vy\x20ginfo_sizex\x20ginfo_sizey\x20ginfo_winx\x20ginfo_winy\x20ginfo_mesx\x20ginfo_mesy\x20ginfo_r\x20ginfo_g\x20ginfo_b\x20ginfo_paluse\x20ginfo_dispx\x20ginfo_dispy\x20ginfo_cx\x20ginfo_cy\x20ginfo_intid\x20ginfo_newid\x20ginfo_sx\x20ginfo_sy\x20objinfo_mode\x20objinfo_bmscr\x20objinfo_hwnd\x20notemax\x20notesize\x20dir_cur\x20dir_exe\x20dir_win\x20dir_sys\x20dir_cmdline\x20dir_desktop\x20dir_mydoc\x20dir_tv\x20font_normal\x20font_bold\x20font_italic\x20font_underline\x20font_strikeout\x20font_antialias\x20objmode_normal\x20objmode_guifont\x20objmode_usefont\x20gsquare_grad\x20msgothic\x20msmincho\x20do\x20until\x20while\x20wend\x20for\x20next\x20_break\x20_continue\x20switch\x20case\x20default\x20swbreak\x20swend\x20ddim\x20ldim\x20alloc\x20m_pi\x20rad2deg\x20deg2rad\x20ease_linear\x20ease_quad_in\x20ease_quad_out\x20ease_quad_inout\x20ease_cubic_in\x20ease_cubic_out\x20ease_cubic_inout\x20ease_quartic_in\x20ease_quartic_out\x20ease_quartic_inout\x20ease_bounce_in\x20ease_bounce_out\x20ease_bounce_inout\x20ease_shake_in\x20ease_shake_out\x20ease_shake_inout\x20ease_loop','targetCompatibility','block','\x5cb\x5cd+(\x5c.\x5cd+)?(e-?\x5cd+)?','ManifestDPIAware','rem','continuePrimaryKey','ItoProcess','ObservabilityGramian','missionConfigFile','ChannelReceiverFunction','productions','PIDFeedforward','IApplication\x20IAccessRights\x20IAccountRepository\x20IAccountSelectionRestrictions\x20IAction\x20IActionList\x20IAdministrationHistoryDescription\x20IAnchors\x20IApplication\x20IArchiveInfo\x20IAttachment\x20IAttachmentList\x20ICheckListBox\x20ICheckPointedList\x20IColumn\x20IComponent\x20IComponentDescription\x20IComponentToken\x20IComponentTokenFactory\x20IComponentTokenInfo\x20ICompRecordInfo\x20IConnection\x20IContents\x20IControl\x20IControlJob\x20IControlJobInfo\x20IControlList\x20ICrypto\x20ICrypto2\x20ICustomJob\x20ICustomJobInfo\x20ICustomListBox\x20ICustomObjectWizardStep\x20ICustomWork\x20ICustomWorkInfo\x20IDataSet\x20IDataSetAccessInfo\x20IDataSigner\x20IDateCriterion\x20IDateRequisite\x20IDateRequisiteDescription\x20IDateValue\x20IDeaAccessRights\x20IDeaObjectInfo\x20IDevelopmentComponentLock\x20IDialog\x20IDialogFactory\x20IDialogPickRequisiteItems\x20IDialogsFactory\x20IDICSFactory\x20IDocRequisite\x20IDocumentInfo\x20IDualListDialog\x20IECertificate\x20IECertificateInfo\x20IECertificates\x20IEditControl\x20IEditorForm\x20IEdmsExplorer\x20IEdmsObject\x20IEdmsObjectDescription\x20IEdmsObjectFactory\x20IEdmsObjectInfo\x20IEDocument\x20IEDocumentAccessRights\x20IEDocumentDescription\x20IEDocumentEditor\x20IEDocumentFactory\x20IEDocumentInfo\x20IEDocumentStorage\x20IEDocumentVersion\x20IEDocumentVersionListDialog\x20IEDocumentVersionSource\x20IEDocumentWizardStep\x20IEDocVerSignature\x20IEDocVersionState\x20IEnabledMode\x20IEncodeProvider\x20IEncrypter\x20IEvent\x20IEventList\x20IException\x20IExternalEvents\x20IExternalHandler\x20IFactory\x20IField\x20IFileDialog\x20IFolder\x20IFolderDescription\x20IFolderDialog\x20IFolderFactory\x20IFolderInfo\x20IForEach\x20IForm\x20IFormTitle\x20IFormWizardStep\x20IGlobalIDFactory\x20IGlobalIDInfo\x20IGrid\x20IHasher\x20IHistoryDescription\x20IHyperLinkControl\x20IImageButton\x20IImageControl\x20IInnerPanel\x20IInplaceHint\x20IIntegerCriterion\x20IIntegerList\x20IIntegerRequisite\x20IIntegerValue\x20IISBLEditorForm\x20IJob\x20IJobDescription\x20IJobFactory\x20IJobForm\x20IJobInfo\x20ILabelControl\x20ILargeIntegerCriterion\x20ILargeIntegerRequisite\x20ILargeIntegerValue\x20ILicenseInfo\x20ILifeCycleStage\x20IList\x20IListBox\x20ILocalIDInfo\x20ILocalization\x20ILock\x20IMemoryDataSet\x20IMessagingFactory\x20IMetadataRepository\x20INotice\x20INoticeInfo\x20INumericCriterion\x20INumericRequisite\x20INumericValue\x20IObject\x20IObjectDescription\x20IObjectImporter\x20IObjectInfo\x20IObserver\x20IPanelGroup\x20IPickCriterion\x20IPickProperty\x20IPickRequisite\x20IPickRequisiteDescription\x20IPickRequisiteItem\x20IPickRequisiteItems\x20IPickValue\x20IPrivilege\x20IPrivilegeList\x20IProcess\x20IProcessFactory\x20IProcessMessage\x20IProgress\x20IProperty\x20IPropertyChangeEvent\x20IQuery\x20IReference\x20IReferenceCriterion\x20IReferenceEnabledMode\x20IReferenceFactory\x20IReferenceHistoryDescription\x20IReferenceInfo\x20IReferenceRecordCardWizardStep\x20IReferenceRequisiteDescription\x20IReferencesFactory\x20IReferenceValue\x20IRefRequisite\x20IReport\x20IReportFactory\x20IRequisite\x20IRequisiteDescription\x20IRequisiteDescriptionList\x20IRequisiteFactory\x20IRichEdit\x20IRouteStep\x20IRule\x20IRuleList\x20ISchemeBlock\x20IScript\x20IScriptFactory\x20ISearchCriteria\x20ISearchCriterion\x20ISearchDescription\x20ISearchFactory\x20ISearchFolderInfo\x20ISearchForObjectDescription\x20ISearchResultRestrictions\x20ISecuredContext\x20ISelectDialog\x20IServerEvent\x20IServerEventFactory\x20IServiceDialog\x20IServiceFactory\x20ISignature\x20ISignProvider\x20ISignProvider2\x20ISignProvider3\x20ISimpleCriterion\x20IStringCriterion\x20IStringList\x20IStringRequisite\x20IStringRequisiteDescription\x20IStringValue\x20ISystemDialogsFactory\x20ISystemInfo\x20ITabSheet\x20ITask\x20ITaskAbortReasonInfo\x20ITaskCardWizardStep\x20ITaskDescription\x20ITaskFactory\x20ITaskInfo\x20ITaskRoute\x20ITextCriterion\x20ITextRequisite\x20ITextValue\x20ITreeListSelectDialog\x20IUser\x20IUserList\x20IValue\x20IView\x20IWebBrowserControl\x20IWizard\x20IWizardAction\x20IWizardFactory\x20IWizardFormElement\x20IWizardParam\x20IWizardPickParam\x20IWizardReferenceParam\x20IWizardStep\x20IWorkAccessRights\x20IWorkDescription\x20IWorkflowAskableParam\x20IWorkflowAskableParams\x20IWorkflowBlock\x20IWorkflowBlockResult\x20IWorkflowEnabledMode\x20IWorkflowParam\x20IWorkflowPickParam\x20IWorkflowReferenceParam\x20IWorkState\x20IWorkTreeCustomNode\x20IWorkTreeJobNode\x20IWorkTreeTaskNode\x20IXMLEditorForm\x20SBCrypto\x20','StartOfString','Ї','user-invalid','portion','taskNull','\x5c.(','UpdateInterval','lead','$PlotTheme','FrontEndTokenExecute','allowFleeing','scroll-padding-block-end','border-inline-start','NCaputoD','(someone|man|woman|mother|brother|sister|father)','rows','RandomFunction','determinant','_character_','GeoMarker','Arduino','#rem','CountDistinctBy','Cshort','zip','ExcludedLines','mode','ClosenessCentrality','brshift','HypergeometricPFQRegularized','@[\x5cw\x5c-]+\x5c[[\x5cw^;\x5c-]*\x5c](?:\x5c[[\x5cw^;\x5c-]*\x5c])?(?:.*)$','buffer_seek_relative','associates','whole','AudioChannelAssignment','vk_space','or\x20not$','src_Cc','bullet_list_open','IDRETRY','NotebookCreate',':-P','clearWeaponCargo','N|0\x20P|0\x20X|0\x20a|0\x20ab\x20abc\x20abo\x20al\x20am\x20an|0\x20ar\x20arga\x20argd\x20arge\x20argdo\x20argg\x20argl\x20argu\x20as\x20au\x20aug\x20aun\x20b|0\x20bN\x20ba\x20bad\x20bd\x20be\x20bel\x20bf\x20bl\x20bm\x20bn\x20bo\x20bp\x20br\x20brea\x20breaka\x20breakd\x20breakl\x20bro\x20bufdo\x20buffers\x20bun\x20bw\x20c|0\x20cN\x20cNf\x20ca\x20cabc\x20caddb\x20cad\x20caddf\x20cal\x20cat\x20cb\x20cc\x20ccl\x20cd\x20ce\x20cex\x20cf\x20cfir\x20cgetb\x20cgete\x20cg\x20changes\x20chd\x20che\x20checkt\x20cl\x20cla\x20clo\x20cm\x20cmapc\x20cme\x20cn\x20cnew\x20cnf\x20cno\x20cnorea\x20cnoreme\x20co\x20col\x20colo\x20com\x20comc\x20comp\x20con\x20conf\x20cope\x20cp\x20cpf\x20cq\x20cr\x20cs\x20cst\x20cu\x20cuna\x20cunme\x20cw\x20delm\x20deb\x20debugg\x20delc\x20delf\x20dif\x20diffg\x20diffo\x20diffp\x20diffpu\x20diffs\x20diffthis\x20dig\x20di\x20dl\x20dell\x20dj\x20dli\x20do\x20doautoa\x20dp\x20dr\x20ds\x20dsp\x20e|0\x20ea\x20ec\x20echoe\x20echoh\x20echom\x20echon\x20el\x20elsei\x20em\x20en\x20endfo\x20endf\x20endt\x20endw\x20ene\x20ex\x20exe\x20exi\x20exu\x20f|0\x20files\x20filet\x20fin\x20fina\x20fini\x20fir\x20fix\x20fo\x20foldc\x20foldd\x20folddoc\x20foldo\x20for\x20fu\x20go\x20gr\x20grepa\x20gu\x20gv\x20ha\x20helpf\x20helpg\x20helpt\x20hi\x20hid\x20his\x20ia\x20iabc\x20if\x20ij\x20il\x20im\x20imapc\x20ime\x20ino\x20inorea\x20inoreme\x20int\x20is\x20isp\x20iu\x20iuna\x20iunme\x20j|0\x20ju\x20k|0\x20keepa\x20kee\x20keepj\x20lN\x20lNf\x20l|0\x20lad\x20laddb\x20laddf\x20la\x20lan\x20lat\x20lb\x20lc\x20lch\x20lcl\x20lcs\x20le\x20lefta\x20let\x20lex\x20lf\x20lfir\x20lgetb\x20lgete\x20lg\x20lgr\x20lgrepa\x20lh\x20ll\x20lla\x20lli\x20lmak\x20lm\x20lmapc\x20lne\x20lnew\x20lnf\x20ln\x20loadk\x20lo\x20loc\x20lockv\x20lol\x20lope\x20lp\x20lpf\x20lr\x20ls\x20lt\x20lu\x20lua\x20luad\x20luaf\x20lv\x20lvimgrepa\x20lw\x20m|0\x20ma\x20mak\x20map\x20mapc\x20marks\x20mat\x20me\x20menut\x20mes\x20mk\x20mks\x20mksp\x20mkv\x20mkvie\x20mod\x20mz\x20mzf\x20nbc\x20nb\x20nbs\x20new\x20nm\x20nmapc\x20nme\x20nn\x20nnoreme\x20noa\x20no\x20noh\x20norea\x20noreme\x20norm\x20nu\x20nun\x20nunme\x20ol\x20o|0\x20om\x20omapc\x20ome\x20on\x20ono\x20onoreme\x20opt\x20ou\x20ounme\x20ow\x20p|0\x20profd\x20prof\x20pro\x20promptr\x20pc\x20ped\x20pe\x20perld\x20po\x20popu\x20pp\x20pre\x20prev\x20ps\x20pt\x20ptN\x20ptf\x20ptj\x20ptl\x20ptn\x20ptp\x20ptr\x20pts\x20pu\x20pw\x20py3\x20python3\x20py3d\x20py3f\x20py\x20pyd\x20pyf\x20quita\x20qa\x20rec\x20red\x20redi\x20redr\x20redraws\x20reg\x20res\x20ret\x20retu\x20rew\x20ri\x20rightb\x20rub\x20rubyd\x20rubyf\x20rund\x20ru\x20rv\x20sN\x20san\x20sa\x20sal\x20sav\x20sb\x20sbN\x20sba\x20sbf\x20sbl\x20sbm\x20sbn\x20sbp\x20sbr\x20scrip\x20scripte\x20scs\x20se\x20setf\x20setg\x20setl\x20sf\x20sfir\x20sh\x20sim\x20sig\x20sil\x20sl\x20sla\x20sm\x20smap\x20smapc\x20sme\x20sn\x20sni\x20sno\x20snor\x20snoreme\x20sor\x20so\x20spelld\x20spe\x20spelli\x20spellr\x20spellu\x20spellw\x20sp\x20spr\x20sre\x20st\x20sta\x20startg\x20startr\x20star\x20stopi\x20stj\x20sts\x20sun\x20sunm\x20sunme\x20sus\x20sv\x20sw\x20sy\x20synti\x20sync\x20tN\x20tabN\x20tabc\x20tabdo\x20tabe\x20tabf\x20tabfir\x20tabl\x20tabm\x20tabnew\x20tabn\x20tabo\x20tabp\x20tabr\x20tabs\x20tab\x20ta\x20tags\x20tc\x20tcld\x20tclf\x20te\x20tf\x20th\x20tj\x20tl\x20tm\x20tn\x20to\x20tp\x20tr\x20try\x20ts\x20tu\x20u|0\x20undoj\x20undol\x20una\x20unh\x20unl\x20unlo\x20unm\x20unme\x20uns\x20up\x20ve\x20verb\x20vert\x20vim\x20vimgrepa\x20vi\x20viu\x20vie\x20vm\x20vmapc\x20vme\x20vne\x20vn\x20vnoreme\x20vs\x20vu\x20vunme\x20windo\x20w|0\x20wN\x20wa\x20wh\x20wi\x20winc\x20winp\x20wn\x20wp\x20wq\x20wqa\x20ws\x20wu\x20wv\x20x|0\x20xa\x20xmapc\x20xm\x20xme\x20xn\x20xnoreme\x20xu\x20xunme\x20y|0\x20z|0\x20~\x20Next\x20Print\x20append\x20abbreviate\x20abclear\x20aboveleft\x20all\x20amenu\x20anoremenu\x20args\x20argadd\x20argdelete\x20argedit\x20argglobal\x20arglocal\x20argument\x20ascii\x20autocmd\x20augroup\x20aunmenu\x20buffer\x20bNext\x20ball\x20badd\x20bdelete\x20behave\x20belowright\x20bfirst\x20blast\x20bmodified\x20bnext\x20botright\x20bprevious\x20brewind\x20break\x20breakadd\x20breakdel\x20breaklist\x20browse\x20bunload\x20bwipeout\x20change\x20cNext\x20cNfile\x20cabbrev\x20cabclear\x20caddbuffer\x20caddexpr\x20caddfile\x20call\x20catch\x20cbuffer\x20cclose\x20center\x20cexpr\x20cfile\x20cfirst\x20cgetbuffer\x20cgetexpr\x20cgetfile\x20chdir\x20checkpath\x20checktime\x20clist\x20clast\x20close\x20cmap\x20cmapclear\x20cmenu\x20cnext\x20cnewer\x20cnfile\x20cnoremap\x20cnoreabbrev\x20cnoremenu\x20copy\x20colder\x20colorscheme\x20command\x20comclear\x20compiler\x20continue\x20confirm\x20copen\x20cprevious\x20cpfile\x20cquit\x20crewind\x20cscope\x20cstag\x20cunmap\x20cunabbrev\x20cunmenu\x20cwindow\x20delete\x20delmarks\x20debug\x20debuggreedy\x20delcommand\x20delfunction\x20diffupdate\x20diffget\x20diffoff\x20diffpatch\x20diffput\x20diffsplit\x20digraphs\x20display\x20deletel\x20djump\x20dlist\x20doautocmd\x20doautoall\x20deletep\x20drop\x20dsearch\x20dsplit\x20edit\x20earlier\x20echo\x20echoerr\x20echohl\x20echomsg\x20else\x20elseif\x20emenu\x20endif\x20endfor\x20endfunction\x20endtry\x20endwhile\x20enew\x20execute\x20exit\x20exusage\x20file\x20filetype\x20find\x20finally\x20finish\x20first\x20fixdel\x20fold\x20foldclose\x20folddoopen\x20folddoclosed\x20foldopen\x20function\x20global\x20goto\x20grep\x20grepadd\x20gui\x20gvim\x20hardcopy\x20help\x20helpfind\x20helpgrep\x20helptags\x20highlight\x20hide\x20history\x20insert\x20iabbrev\x20iabclear\x20ijump\x20ilist\x20imap\x20imapclear\x20imenu\x20inoremap\x20inoreabbrev\x20inoremenu\x20intro\x20isearch\x20isplit\x20iunmap\x20iunabbrev\x20iunmenu\x20join\x20jumps\x20keepalt\x20keepmarks\x20keepjumps\x20lNext\x20lNfile\x20list\x20laddexpr\x20laddbuffer\x20laddfile\x20last\x20language\x20later\x20lbuffer\x20lcd\x20lchdir\x20lclose\x20lcscope\x20left\x20leftabove\x20lexpr\x20lfile\x20lfirst\x20lgetbuffer\x20lgetexpr\x20lgetfile\x20lgrep\x20lgrepadd\x20lhelpgrep\x20llast\x20llist\x20lmake\x20lmap\x20lmapclear\x20lnext\x20lnewer\x20lnfile\x20lnoremap\x20loadkeymap\x20loadview\x20lockmarks\x20lockvar\x20lolder\x20lopen\x20lprevious\x20lpfile\x20lrewind\x20ltag\x20lunmap\x20luado\x20luafile\x20lvimgrep\x20lvimgrepadd\x20lwindow\x20move\x20mark\x20make\x20mapclear\x20match\x20menu\x20menutranslate\x20messages\x20mkexrc\x20mksession\x20mkspell\x20mkvimrc\x20mkview\x20mode\x20mzscheme\x20mzfile\x20nbclose\x20nbkey\x20nbsart\x20next\x20nmap\x20nmapclear\x20nmenu\x20nnoremap\x20nnoremenu\x20noautocmd\x20noremap\x20nohlsearch\x20noreabbrev\x20noremenu\x20normal\x20number\x20nunmap\x20nunmenu\x20oldfiles\x20open\x20omap\x20omapclear\x20omenu\x20only\x20onoremap\x20onoremenu\x20options\x20ounmap\x20ounmenu\x20ownsyntax\x20print\x20profdel\x20profile\x20promptfind\x20promptrepl\x20pclose\x20pedit\x20perl\x20perldo\x20pop\x20popup\x20ppop\x20preserve\x20previous\x20psearch\x20ptag\x20ptNext\x20ptfirst\x20ptjump\x20ptlast\x20ptnext\x20ptprevious\x20ptrewind\x20ptselect\x20put\x20pwd\x20py3do\x20py3file\x20python\x20pydo\x20pyfile\x20quit\x20quitall\x20qall\x20read\x20recover\x20redo\x20redir\x20redraw\x20redrawstatus\x20registers\x20resize\x20retab\x20return\x20rewind\x20right\x20rightbelow\x20ruby\x20rubydo\x20rubyfile\x20rundo\x20runtime\x20rviminfo\x20substitute\x20sNext\x20sandbox\x20sargument\x20sall\x20saveas\x20sbuffer\x20sbNext\x20sball\x20sbfirst\x20sblast\x20sbmodified\x20sbnext\x20sbprevious\x20sbrewind\x20scriptnames\x20scriptencoding\x20scscope\x20set\x20setfiletype\x20setglobal\x20setlocal\x20sfind\x20sfirst\x20shell\x20simalt\x20sign\x20silent\x20sleep\x20slast\x20smagic\x20smapclear\x20smenu\x20snext\x20sniff\x20snomagic\x20snoremap\x20snoremenu\x20sort\x20source\x20spelldump\x20spellgood\x20spellinfo\x20spellrepall\x20spellundo\x20spellwrong\x20split\x20sprevious\x20srewind\x20stop\x20stag\x20startgreplace\x20startreplace\x20startinsert\x20stopinsert\x20stjump\x20stselect\x20sunhide\x20sunmap\x20sunmenu\x20suspend\x20sview\x20swapname\x20syntax\x20syntime\x20syncbind\x20tNext\x20tabNext\x20tabclose\x20tabedit\x20tabfind\x20tabfirst\x20tablast\x20tabmove\x20tabnext\x20tabonly\x20tabprevious\x20tabrewind\x20tag\x20tcl\x20tcldo\x20tclfile\x20tearoff\x20tfirst\x20throw\x20tjump\x20tlast\x20tmenu\x20tnext\x20topleft\x20tprevious\x20trewind\x20tselect\x20tunmenu\x20undo\x20undojoin\x20undolist\x20unabbreviate\x20unhide\x20unlet\x20unlockvar\x20unmap\x20unmenu\x20unsilent\x20update\x20vglobal\x20version\x20verbose\x20vertical\x20vimgrep\x20vimgrepadd\x20visual\x20viusage\x20view\x20vmap\x20vmapclear\x20vmenu\x20vnew\x20vnoremap\x20vnoremenu\x20vsplit\x20vunmap\x20vunmenu\x20write\x20wNext\x20wall\x20while\x20winsize\x20wincmd\x20winpos\x20wnext\x20wprevious\x20wqall\x20wsverb\x20wundo\x20wviminfo\x20xit\x20xall\x20xmapclear\x20xmap\x20xmenu\x20xnoremap\x20xnoremenu\x20xunmap\x20xunmenu\x20yank','InverseGudermannian','DoubleLeftRightArrow','1:12pm','the-noun-sense','⩮','boundingBoxReal','DateDiff','UpperTriangularMatrixQ','getAllHitPointsDamage','array_prepend','service','pde','NotGreaterGreater','environmentEnabled','getMissionConfigValue','vertex_type_float4','BitArray','start_i','UPPER_A','FoldWhileList','lighttype_point','eof','Minors','GraphicsSpacing','glacier','#Determiner\x20[%Adj|Noun%]\x20#Conjunction','minof','bm_src_colour','%q\x5c(','\x5cb\x5cd+','realtime','make_tuple','isboolean','singular_values','⦰','ds_priority_write','↲','GeometricAssertion','Mid','quick-singular','5.30£','uss','go-to','toFutureTense','⦏','𝒳','\x5c(\x5c*','RootMeanSquare','iap_available','∡','SpatialGraphDistribution','part_type_alpha2','bland-and-overcooked','margin-block-end','Overflow:\x20input\x20needs\x20wider\x20integers\x20to\x20process','description','kill','NyquistPlot','#myModal','NULL','#Money\x20and\x20#Money\x20#Currency?','clauses','dark-green','cr_hourglass','radioChannelAdd','AskConfirm','synIDtrans\x20atan2\x20range\x20matcharg\x20did_filetype\x20asin\x20feedkeys\x20xor\x20argv\x20complete_check\x20add\x20getwinposx\x20getqflist\x20getwinposy\x20screencol\x20clearmatches\x20empty\x20extend\x20getcmdpos\x20mzeval\x20garbagecollect\x20setreg\x20ceil\x20sqrt\x20diff_hlID\x20inputsecret\x20get\x20getfperm\x20getpid\x20filewritable\x20shiftwidth\x20max\x20sinh\x20isdirectory\x20synID\x20system\x20inputrestore\x20winline\x20atan\x20visualmode\x20inputlist\x20tabpagewinnr\x20round\x20getregtype\x20mapcheck\x20hasmapto\x20histdel\x20argidx\x20findfile\x20sha256\x20exists\x20toupper\x20getcmdline\x20taglist\x20string\x20getmatches\x20bufnr\x20strftime\x20winwidth\x20bufexists\x20strtrans\x20tabpagebuflist\x20setcmdpos\x20remote_read\x20printf\x20setloclist\x20getpos\x20getline\x20bufwinnr\x20float2nr\x20len\x20getcmdtype\x20diff_filler\x20luaeval\x20resolve\x20libcallnr\x20foldclosedend\x20reverse\x20filter\x20has_key\x20bufname\x20str2float\x20strlen\x20setline\x20getcharmod\x20setbufvar\x20index\x20searchpos\x20shellescape\x20undofile\x20foldclosed\x20setqflist\x20buflisted\x20strchars\x20str2nr\x20virtcol\x20floor\x20remove\x20undotree\x20remote_expr\x20winheight\x20gettabwinvar\x20reltime\x20cursor\x20tabpagenr\x20finddir\x20localtime\x20acos\x20getloclist\x20search\x20tanh\x20matchend\x20rename\x20gettabvar\x20strdisplaywidth\x20type\x20abs\x20py3eval\x20setwinvar\x20tolower\x20wildmenumode\x20log10\x20spellsuggest\x20bufloaded\x20synconcealed\x20nextnonblank\x20server2client\x20complete\x20settabwinvar\x20executable\x20input\x20wincol\x20setmatches\x20getftype\x20hlID\x20inputsave\x20searchpair\x20or\x20screenrow\x20line\x20settabvar\x20histadd\x20deepcopy\x20strpart\x20remote_peek\x20and\x20eval\x20getftime\x20submatch\x20screenchar\x20winsaveview\x20matchadd\x20mkdir\x20screenattr\x20getfontname\x20libcall\x20reltimestr\x20getfsize\x20winnr\x20invert\x20pow\x20getbufline\x20byte2line\x20soundfold\x20repeat\x20fnameescape\x20tagfiles\x20sin\x20strwidth\x20spellbadword\x20trunc\x20maparg\x20log\x20lispindent\x20hostname\x20setpos\x20globpath\x20remote_foreground\x20getchar\x20synIDattr\x20fnamemodify\x20cscope_connection\x20stridx\x20winbufnr\x20indent\x20min\x20complete_add\x20nr2char\x20searchpairpos\x20inputdialog\x20values\x20matchlist\x20items\x20hlexists\x20strridx\x20browsedir\x20expand\x20fmod\x20pathshorten\x20line2byte\x20argc\x20count\x20getwinvar\x20glob\x20foldtextresult\x20getreg\x20foreground\x20cosh\x20matchdelete\x20has\x20char2nr\x20simplify\x20histget\x20searchdecl\x20iconv\x20winrestcmd\x20pumvisible\x20writefile\x20foldlevel\x20haslocaldir\x20keys\x20cos\x20matchstr\x20foldtext\x20histnr\x20tan\x20tempname\x20getcwd\x20byteidx\x20getbufvar\x20islocked\x20escape\x20eventhandler\x20remote_send\x20serverlist\x20winrestview\x20synstack\x20pyeval\x20prevnonblank\x20readfile\x20cindent\x20filereadable\x20changenr\x20exp','PoissonPointProcess','CompiledLayer','#Acronym\x20#LastName','StationaryWaveletPacketTransform','pointwiseMin','array_distinct','draw_flush','remoteControl','IfRtlLanguage','alias\x20application\x20boolean\x20class\x20constant\x20date\x20file\x20integer\x20list\x20number\x20real\x20record\x20string\x20text\x20activate\x20beep\x20count\x20delay\x20launch\x20log\x20offset\x20read\x20round\x20run\x20say\x20summarize\x20write\x20character\x20characters\x20contents\x20day\x20frontmost\x20id\x20item\x20length\x20month\x20name|0\x20paragraph\x20paragraphs\x20rest\x20reverse\x20running\x20time\x20version\x20weekday\x20word\x20words\x20year','AVERAGE','AbstractChannel','nearestTerrainObjects','shaders_are_supported','#Organization\x20#Country','path_get_kind','SpeechCases','removeItemFromBackpack','[(#Modal|had|has)]\x20(#Adverb|not)+?\x20[been]\x20(#Adverb|not)+?\x20#Verb','setVehicleVarName','eleft','ContrastiveLossLayer',';|\x5c.','PlanarAngle','#file','WavePDEComponent','$MaxPrecision','BringToFront','NamespaceBox','stateNumericStart','rangam','setCurrentTask','
','effect','peek','cacheDoc','kqueue','satir','EntityProperty','Annotation','LanguageData','celldefine','current_user','draw_enable_alphablend','vk_alt','AbstractFloat','BoundaryMeshRegionQ','his-fine','Conditioned','Colorize','huge','percent_rank','HKEY_CURRENT_USER','HEBREW_CHARSET','vk_control','diag_enable','sessionStorage','`[cwd]?','column-rule-style','Form','AllowVersionUpdate','Subsequences','stata','ReadEnvStr','bunked','nearObjects','DirectionalLight','vertex_texcoord','CreateDialog','invalidOp','ds_list_find_value','gpu_set_tex_filter_ext','rapids','SphereBox','|case|contractions|parentheses|quotations|emoji|honorifics|debullet','PrincipalValue','src_ZPCc','InString','ctrlSetFontPB','nounconnected_drive','GraphDensity','text_join','ISERROR','md5_file','^[(well|so|okay|now)]\x20!#Adjective?','²','forceSpeed','casex','ExpIntegralE','completedFSM','GeoVectorXYZ','CopyFiles','os_win32','gamepad_button_check_pressed','diag_frameno','deref','RightUpDownVector','program_directory','achievement_show_profile','toUpper','tokens_meta','PreviousDate','bquote','(supposing|although)',')|r)?i?\x5cb','lapply','ToEntity','ImageLevels','VBG','Timer','forests','fn\x20function','MatchQ','StringDrop','inspect','gesture_get_rotate_angle','timeunit','UndirectedGraph','sha224sum','ev_user10','nearest','add3DENEventHandler','Conjunction\x20Adjective\x20Noun','xhtmlOut','TeXForm','LineIndent','overcastForecast','cmpfunc_lessequal','vertex_format_add_colour','loadFile','true¦director1field\x20marsh2lieutenant1rear0sergeant\x20major,vice0;\x20admir1;\x20gener0;al','NotSquareSubset','toboolean','showUAVFeed','u32','PERCENTILE','surface_depth_disable','jan','[;@]','DualSystemsModel','tcl_wordBreakBefore','datetime','ParameterEstimator','⦐','SatisfiabilityCount','PDF','#Actor','genera','build','kbv_returnkey_emergency','@hasContraction','⊋','physics_particle_group_begin','PaperWidth','TogglerBox','isAbleToBreathe','PetersenGraph','plains','design','unpack','BetweennessCentrality','PowerExpand','%[Qwi]?\x5c{','ProbabilityPr','worldName','eal','ParseError','Blur','VARPTR','withStream','ReadINIStr','Bearing','TaskRemove','writeMessage','setWaypointForceBehaviour','%Person|Date%\x20#Acronym?\x20#ProperNoun','Paneled','setViewDistance','class\x20interface','BigFloat','getAllEnvSoundControllers','WebElementObject','audio_falloff_exponent_distance','$ConditionHold','discrR','num_elements','enginesPowerRTD','explains_wrapper','DeleteMissing','log_diff_exp',')|\x5c.)?|(','as\x20#Pronoun\x20[please]','BipartiteGraphQ','NS_AVAILABLE','xquery','HarmonicMeanFilter','MeanDeviation','trigger','Mizar','isLightOn','ImagingDevice','any\x20[#Infinitive]','regr_sxy','(health|school|commerce)\x20board','msgcat','magazineCargo','phy_joint_upper_angle_limit','ev_user5','QuotientRemainder','endl','primaryWeaponMagazine','FieldMasked','our','Hexahedron','log1p','^C$','vertex_float1','physics_particle_delete_region_poly','backticksScanned','pascal','localtime','selectOutput','(i|we|they)\x20have','openNextFile','FormulaLookup','markerAlpha','removeMagazineTurret','endcelldefine','FunctionContinuous','gfail','thing-doer','GeometricTransformation','#filePath','c_null_ptr','FunctionCompileExportLibrary','pre\x20code.hljs\x20{\x0a\x20\x20display:\x20block;\x0a\x20\x20overflow-x:\x20auto;\x0a\x20\x20padding:\x201em\x0a}\x0acode.hljs\x20{\x0a\x20\x20padding:\x203px\x205px\x0a}\x0a/*!\x0a\x20\x20Theme:\x20GitHub\x0a\x20\x20Description:\x20Light\x20theme\x20as\x20seen\x20on\x20github.com\x0a\x20\x20Author:\x20github.com\x0a\x20\x20Maintainer:\x20@Hirse\x0a\x20\x20Updated:\x202021-05-15\x0a\x0a\x20\x20Outdated\x20base\x20version:\x20https://github.com/primer/github-syntax-light\x0a\x20\x20Current\x20colors\x20taken\x20from\x20GitHub\x27s\x20CSS\x0a*/\x0a.hljs\x20{\x0a\x20\x20color:\x20#24292e;\x0a\x20\x20background:\x20#ffffff\x0a}\x0a.hljs-doctag,\x0a.hljs-keyword,\x0a.hljs-meta\x20.hljs-keyword,\x0a.hljs-template-tag,\x0a.hljs-template-variable,\x0a.hljs-type,\x0a.hljs-variable.language_\x20{\x0a\x20\x20/*\x20prettylights-syntax-keyword\x20*/\x0a\x20\x20color:\x20#d73a49\x0a}\x0a.hljs-title,\x0a.hljs-title.class_,\x0a.hljs-title.class_.inherited__,\x0a.hljs-title.function_\x20{\x0a\x20\x20/*\x20prettylights-syntax-entity\x20*/\x0a\x20\x20color:\x20#6f42c1\x0a}\x0a.hljs-attr,\x0a.hljs-attribute,\x0a.hljs-literal,\x0a.hljs-meta,\x0a.hljs-number,\x0a.hljs-operator,\x0a.hljs-variable,\x0a.hljs-selector-attr,\x0a.hljs-selector-class,\x0a.hljs-selector-id\x20{\x0a\x20\x20/*\x20prettylights-syntax-constant\x20*/\x0a\x20\x20color:\x20#005cc5\x0a}\x0a.hljs-regexp,\x0a.hljs-string,\x0a.hljs-meta\x20.hljs-string\x20{\x0a\x20\x20/*\x20prettylights-syntax-string\x20*/\x0a\x20\x20color:\x20#032f62\x0a}\x0a.hljs-built_in,\x0a.hljs-symbol\x20{\x0a\x20\x20/*\x20prettylights-syntax-variable\x20*/\x0a\x20\x20color:\x20#e36209\x0a}\x0a.hljs-comment,\x0a.hljs-code,\x0a.hljs-formula\x20{\x0a\x20\x20/*\x20prettylights-syntax-comment\x20*/\x0a\x20\x20color:\x20#6a737d\x0a}\x0a.hljs-name,\x0a.hljs-quote,\x0a.hljs-selector-tag,\x0a.hljs-selector-pseudo\x20{\x0a\x20\x20/*\x20prettylights-syntax-entity-tag\x20*/\x0a\x20\x20color:\x20#22863a\x0a}\x0a.hljs-subst\x20{\x0a\x20\x20/*\x20prettylights-syntax-storage-modifier-import\x20*/\x0a\x20\x20color:\x20#24292e\x0a}\x0a.hljs-section\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-heading\x20*/\x0a\x20\x20color:\x20#005cc5;\x0a\x20\x20font-weight:\x20bold\x0a}\x0a.hljs-bullet\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-list\x20*/\x0a\x20\x20color:\x20#735c0f\x0a}\x0a.hljs-emphasis\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-italic\x20*/\x0a\x20\x20color:\x20#24292e;\x0a\x20\x20font-style:\x20italic\x0a}\x0a.hljs-strong\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-bold\x20*/\x0a\x20\x20color:\x20#24292e;\x0a\x20\x20font-weight:\x20bold\x0a}\x0a.hljs-addition\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-inserted\x20*/\x0a\x20\x20color:\x20#22863a;\x0a\x20\x20background-color:\x20#f0fff4\x0a}\x0a.hljs-deletion\x20{\x0a\x20\x20/*\x20prettylights-syntax-markup-deleted\x20*/\x0a\x20\x20color:\x20#b31d28;\x0a\x20\x20background-color:\x20#ffeef0\x0a}\x0a.hljs-char.escape_,\x0a.hljs-link,\x0a.hljs-params,\x0a.hljs-property,\x0a.hljs-punctuation,\x0a.hljs-tag\x20{\x0a\x20\x20/*\x20purposely\x20ignored\x20*/\x0a\x20\x20\x0a}','running','≚','PRP$','TuringMachine','Saturday','assignedCargo','abbreviations','exponent','GaussianSymplecticMatrixDistribution','aget','nouns','tile_get_empty','timeprecision','scroll-margin-top','(?:<','one','ImageRangeCache','‎',';[\x20\x5ct]*#','Touches','GaborFilter','ev_user2','endRaw','move3DENCamera','ERB','^do\x20not?\x20[#Infinitive\x20#Particle?]','UTF8','java','border-2','SelectedCells','TreeChildren','vehicleChat','(=(?!>))?|[-+*/%](?!>)','\x5cb0b([01_]+)','sysfunc','$1ae','uname','vectored','ActiveStyle','readBytesUntil','AnatomySkinStyle','IMSIN','push','endScope\x20must\x20be\x20object','NebulaData','[','FunctionSpace','AudioOverlay','camera_set_view_pos','SamplingPeriod','authors','GeoPositionXYZ','ren','õ','curatorCameraArea','HTML','csr_extract_u','getEnv3DSoundController','CHIINV','beforeTags','http..','university-of-Foo','show_question','MoleculeModify','CepstrumArray','HoldPattern','CounterStyle','mountain','ACOT','layer_get_script_end','ugc_match_IntegratedGuides','AutoScaling','audio_falloff_set_model','CellContext','⊻','namespace-node','NonlinearStateSpaceModel','token','date_hour_span','text/xml','path','modelToWorldVisual','gpu_get_zfunc','NumberMultiplier','FoldList','factory','keydef','ActionDelay','batch','SampleDepth','hurried','$countbits','not','est','Scrollbars','part_type_colour3','⊿','audio_new_system','a-bit-confused','would','ordering','$q_add','isFormationLeader','alarm_get','forceGeneratorRTD','⋹̸','DefaultMenuStyle','moonIntensity','some-sort-of','TreeMap','buffer_s32','regs','Quantity','border-top-width','^of\x20.','frozenLex','vehicleMoveInfo','ExternalIdentifier','PairedHistogram','schema-attribute','Initial','RecalibrationFunction','languageDetectRe','BlackmanWindow','LongEqual','InstTypeGetText','setTrafficDensity','getAttribute','generate','NotebookWrite','VideoExtractFrames','vars','camPrepareFov','NotLeftTriangleBar','ParallelArray','layer_destroy','ceiling','LightBlue','object_index','achievement_login','$dumpvars','$ProcessorCount','clog','ibessel','comparatives','lsr','buffer_wrap','q[qwxr]?\x5cs*<','KeyFreeQ','MultivariateHypergeometricDistribution','audio_emitter_free','ctrlAutoScrollSpeed','prefers-contrast','steam_set_stat_avg_rate','enableAttack','semctl','AssociateTo','audio_stop_sound','cutObj','MenuSuite','n1ql','multiRegexes','BINOMDIST','setFromEditor','⋷','Normalize','%[0-9]+','os_get_info','$Off','classpath','ApplyTo','will-adj','datan','targetsAggregate','[#Cardinal+\x20#Ordinal]\x20of\x20.','deleteMarkerLocal','setStatValue','exists','(so|very|extremely)\x20[#Gerund]','TextWords','FindMaximumFlow','RightDownVectorBar','TANH','^\x5cs*#\x5cw+','concat','AsynchronousTaskObject','RemoteKernelObject','image_alpha','MaxTrainingRounds','BitOr','ous','CellEventActions','caption_lives','Tomorrow','HeatTransferValue','⇥','FromCharacterCode','isAutoTrimOnRTD','BitLength','Returning\x20results','specify','phy_joint_reaction_force_x','HTMLInjectionError','parseInline','(first|second|third|1st|2nd|3rd)\x20#Actor','PrimitiveRoot','river','SphericalHankelH2','$1zes','┐','≜','ReplicateLayer','Median','Flat','@[^@\x5cs]+','covergroup','notif0','achievement_post','AutoNumberFormatting','getEnvSoundController','skeleton_animation_get_ext','lightSpecular','Into','std_normal_log','BinomialPointProcess','answers','⩼','ComplexInfinity','Now','scss','$MessageList','ℨ','UnitStep','AbsoluteCurrentValue','(url|data-uri)\x5c(','Verb','MandelbrotSetDistance','allowDammage','⇀','TextElement','DebugStop','(\x5cs*\x5c(.*?\x5c))?[;{]','Kurtosis','IdDict','timeline_size','encodeURIComponent','PageWidth','PMT','stringify!','Illegal','darcsin','MassImpermeableBoundaryValue','≤⃒','HTAB','line_color','#Infinitive\x20#Pronoun\x20[like]','removeAllUserActionEventHandlers','Assuming','mapping','UpValues','narrows','CUMPRINC','#Noun\x20[that]\x20#Verb\x20#Adjective','missing','LineSpacing','%r\x5c(','platform','MonomialOrder','diag_toggle','NoTrayIcon','%Person|Verb%\x20#Acronym?\x20#ProperNoun','HornerForm','Modal','ListStreamDensityPlot','xs:unsignedShort','BACKSLASH_ESCAPE','EntityTypeName','mouseDragged','transition-duration','font-display','BraKet','emissive','addr','AudioPan','registerTask','⊡','early','pushBackUnique','NotebookInformation','#Value\x20[(buck|bucks|grand)]','TracyWidomDistribution','consuming','shebang','LongestCommonSequencePositions','PacletDirectoryAdd','vk_f6','LeftArrow','velocity','Manipulate','json_array','ps_distr_linear','parseHost','draw_surface_general','Offset','HankelMatrix','soldierMagazines','com1','WordTranslation','module\x20use_module\x20import_module\x20include_module\x20end_module\x20initialise\x20mutable\x20initialize\x20finalize\x20finalise\x20interface\x20implementation\x20pred\x20mode\x20func\x20type\x20inst\x20solver\x20any_pred\x20any_func\x20is\x20semidet\x20det\x20nondet\x20multi\x20erroneous\x20failure\x20cc_nondet\x20cc_multi\x20typeclass\x20instance\x20where\x20pragma\x20promise\x20external\x20trace\x20atomic\x20or_else\x20require_complete_switch\x20require_det\x20require_semidet\x20require_multi\x20require_nondet\x20require_cc_multi\x20require_cc_nondet\x20require_erroneous\x20require_failure','sin','Scope','ctrlIDD','person','to_underlying','isGamePaused','Application','power','c_f_procpointer','$dumpfile','#Value\x20[#PresentTense]\x20of','bindattr','RemoteBatchJobObject','matrix_stack_pop','catch','⁣','base64_encode','Boole','getPosATL','NetFlatten','#LastName+','escapeHtml','(looked|look|looks)\x20#Adverb?\x20[%Adj|Gerund%]','external_define','complex_matrix','yoo','flagAnimationPhase','\x5cs*(?:=|:=)\x5cs*)?(\x5c(.*\x5c)\x5cs*)?\x5cB!?[-~]{1,2}>\x5c*?','will\x20[be]\x20#PastTense','tvOS','DiggleGatesPointProcess','setWPPos','function.dispatch','bessel_y0','ds_priority_empty','EQV','triggerType','ACOS','newOutputStream','merge_bits','__TRAIT__','cr_cross','OCaml','UnitRootTest','part_emitter_create','⩕','RotationMatrix','𝓌','⤽','display_reset','ctrlSetTextSelection','#Noun\x20of\x20#Determiner?\x20#Noun','@import\x20url(https://fonts.googleapis.com/css2?family=Nunito:wght@400;800&display=swap);','OFFSET','$AllowDataUpdates','CapturedException','TimeSeriesForecast','iso\x20val\x20tag\x20trn\x20box\x20ref','DIGIT','if\x20else\x20elif\x20endif\x20define\x20undef\x20warning\x20error\x20line\x20pragma\x20_Pragma\x20ifdef\x20ifndef\x20include','[\x20\x5ct\x5cn\x5cr]','VarianceGammaPointProcess','delay_mode_path','(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)','Cfloat','step','Bool','inv_inc_beta','NetGraph','sprite_merge','wire','DualPlanarGraph','out','radio','CheckboxBoxOptions','AudioIdentify','PrimitiveRootList','php-template','draw_set_font','OverVector','⨯','Extern','slice','facebook_send_invite','#Adjective\x20#Infinitive','Inline','SubtypeCode','StyleMenuListing','FourierDCTFilter','browser_edge','grid-column','ComplexityFunction','which\x20[%Noun|Verb%]\x20#Noun','σ','stdout','path_rescale','RandomPolygon','Are\x20you\x20sure\x20you\x20want\x20to\x20clear\x20all\x20of\x20your\x20chats?\x20This\x20action\x20cannot\x20be\x20undone.','Handlebars','fa_bottom','img','⪏','ListDensityPlot3D','%(ROW)?TYPE','#more-papers-search-button-','IndependentVertexSetQ','£','que','constraint','$dist_t','Õ','AxisObject','resistance','matrix_build','qconjg','KeyValuePattern','capt','𝕕','ReplacePixelValue','quantile','lzma','AnatomyForm','fromGerund','rob-a-smith','font_texture_page_size','(will|be)','FORECAST.ETS.STAT','#Verb\x20.*\x20[but]\x20.*\x20#Verb','directory_exists','Perimeter','BaselinePosition','Before','enddo','CompositeException','animateDoor','AudioPitchShift','src_host_port_strict','ErrorPacket','CSS','℘','^[#Infinitive]\x20(#Adjective|#Adverb)$','addWeaponItem','realloc','audio_play_sound','draw_primitive_begin_texture','gardens','Floor','$MinPrecision','MannWhitneyTest','ev_joystick1_button3','drawLaser','MovieCredits','$GeneratedAssetLocation','setRepairCargo','createMPCampaignDisplay','⥊','ds_priority_delete_max','id-','CountDistinct','window_has_focus','posinfif','&?:(:)?(','path_clear_points','ℵ','TWOPI','punctuation','LeftTeeVector','anything','grid-row-end','pharmacare','textBlock','NumericArray','[#Gerund]\x20#Adverb?\x20not?\x20#Copula','FractionalPart','SpellingDictionariesPath','penna','class','InitializationObject','GaussianFilter','Highlighted','digits','∪︀','airways','endpackage','displayLogos','Quiet','accTime','Image3D','binary_log_loss','⫰','aiActionCompleted','die','0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*','camera_get_view_border_x','gamepad_is_connected','Τ','yml','⌎','PCOPY','NuclearReactorData','\x20is\x20updated','c_size_t','COMBINA','PopupMenu','SystemProcessData',' ','mexican-train','$dumpportslimit','GraphUnion','JacobiSymbol','Error\x20in\x20getting\x20row:\x20','pushln','^[=\x5c*]{4,}\x5cn','os_ios','InverseSurvivalFunction','backface-visibility','GeoWithinQ','MB_RIGHT','#Infinitive\x20(this|that|the)\x20[#Infinitive]','turretLocal','MB_DEFBUTTON3','≩︀','vehicleReportRemoteTargets','conjugate','cuchar','^\x5cs*%{1,2}={0,2}','URLSubmit','faith-based','CONDITION','setWaypointPosition','⏞','AskDisplay','noSmooth','network_create_socket_ext','format!','cmpfunc_never','\x5cb(state|default)\x5cb','shortint','𝔚','declval','MultiLetterItalics','voice-duration','∅','Actor','awake','Checking\x20conversation\x20history','chop','pus','loadShape','WebSearch','terrainIntersectASL','bit_vector','RudvalisGroupRu','particlesQuality','\x0aGiven\x20a\x20piece\x20of\x20text\x20and\x20a\x20partial\x20query\x20as\x20input:\x20<','ExternalStorageBase','GridFrame','\x5cs*(?=[:+?]?=)','setSlingLoad','ctrlSetFontHeight','steam_file_write_file','native','CDBL','allPlayers','Ô','alphabetical','Unsupported\x20config\x20type:\x20','bessel_y1','⇃','ATANH','vertex_float3','sept','selector-id','DiscreteIndicator','IDENTIFIER\x20OPTIONS\x20XML_ELEMENT\x20XML_OP\x20XML_ELEMENT_OF\x20DOMDOCCREATE\x20DOMDOCLOADFILE\x20DOMDOCLOADXML\x20DOMDOCSAVEFILE\x20DOMDOCGETROOT\x20DOMDOCADDPI\x20DOMNODEGETNAME\x20DOMNODEGETTYPE\x20DOMNODEGETVALUE\x20DOMNODEGETCHILDCT\x20DOMNODEGETFIRSTCHILD\x20DOMNODEGETSIBLING\x20DOMNODECREATECHILDELEMENT\x20DOMNODESETATTRIBUTE\x20DOMNODEGETCHILDELEMENTCT\x20DOMNODEGETFIRSTCHILDELEMENT\x20DOMNODEGETSIBLINGELEMENT\x20DOMNODEGETATTRIBUTECT\x20DOMNODEGETATTRIBUTEI\x20DOMNODEGETATTRIBUTEBYNAME\x20DOMNODEGETBYNAME','lle','$CloudSymbolBase','move_random','^(?:','Packet\x20Filter\x20config','$Linked','GREEK_CHARSET','FileNameSetter','$PathnameSeparator','RelationalDatabase','org-possessive','removeAllWeapons','mask-origin','','fortran','HandlerFunctionsKeys','ABORT','NegativelyOrientedPoints','InverseJacobiSC','FileReadByte','DataRange','ProcessStateDomain','minWant','BackTo','SpheroidalEigenvalue','ado','rantbl','left-verb','lindex|10',';|:','numbers','BASE','self::','ß','mask-border-source','tcl_findLibrary','http_get','FillingTransform','ScalingFunctions','addMagazine','#(o|O)[0-7]+(/[0-7]+)?','contractionTwo','config','worldToScreen','URLFetch','(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\x5c[)','box','gpu_get_tex_max_aniso','min-inline-size','PolyaAeppliDistribution','ExpressionPacket','addBackpackCargo','userNameRead','arcos','graftabl','downto','setFuel','#Adjective','make_pair','Ä','clock','EdgeContract','WORKDAY.INTL','⫽','ExponentialFamily','(\x5c$\x5cW)|((\x5c$|@@?)(\x5cw+))(?=[^@$?])(?![A-Za-z])(?![@$?\x27])','RETURNS','xcopy','registerLanguage','lockedDriver','language-','ever\x20since','\x1b[0m','FractionalBrownianMotionProcess','is_vec4','that-are','Center','LanguageIdentify','WikipediaSearch','ReverseEquilibrium','returning','DateObject','#Money','path_get_length','(got|were|was)\x20#Passive','ropeAttachEnabled','tvSetPicture','BiweightLocation','hundred','ctrlSetURL','Sunrise','FindVertexCover','¸','Objective-C','man','getRoadInfo','societe','Feature\x20Background\x20Ability\x20Business\x20Need\x20Scenario\x20Scenarios\x20Scenario\x20Outline\x20Scenario\x20Template\x20Examples\x20Given\x20And\x20Then\x20But\x20When','Joined','EdgeStyle','OPTIONS','findAny','matrix_stack_clear','StringDict','GroupOpenerInsideFrame','LinkConnectedQ','zcomp','textvalue-date','Ļ','ImagePerspectiveTransformation','getText','place_meeting','vectorModelToWorld','is_int32','Torus','GAMS','win8_livetile_queue_enable','FontName','cofix','pizza','SquareIntersection','setVelocityModelSpace','xs:language','comment','text-justify','GroebnerBasis','still-verb','Thinning','voice-stress','DATEDIF','setHitIndex','layer_sprite_get_yscale','hwy','distributionRegion','STRIG','Stdev','instantiate','Millisecond','llvm','AstronomicalData','Log','ContourShading','physics_test_overlap','safeZoneW','Error\x20retrieving\x20entry:\x20','loadStatus','StructuredArray','reflexivity','ImageMarker','ds_map_destroy','addItemCargoGlobal','lnbSize','LeftDownVector','draw_tile','∞','and','^[#Infinitive]\x20#Gerund','allDisplays','SARMAProcess','cks','musta','Continuation','\x5c})','gravity','DominantColors','help-stop','jsx','≽','VideoPadding','URLParse','setUserMFDValue','Tab','NMinValue','prompt','chkdsk','true¦began,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id','ImageCrop','LicenseLangString','access','setTaskResult','BaseDecode','RiskAchievementImportance','ev_other','audio_music_is_playing','chrw','Multiple','⊮','GOTO','clojure','#[\x5cw-]+','empty','Concatenate','AnimationRunTime','MEL','nonrec','DepthFirstScan','enableUAVWaypoints','SystemInstall','DrawFrontFaces','Complement','ParallelSubmit','TimeWarpingCorrespondence','WeibullDistribution','NevilleThetaC','draw_light_get_ambient','calloc','PillaiTrace','errordocument','BigInt','SubsuperscriptBoxOptions','ForwardBackward','steam_ugc_download','Deriv','⨪','commandFollow','setMagazineTurretAmmo','nsatz','trails','⪬','cards4','BooleanConsecutiveFunction','draw_skeleton','telecommunications','steam_get_app_id','isdigit','GreaterGreater','HorizontalForm','intrr','onReceive','IfAbort','IsomorphicSubgraphQ','↓','.False.\x20.True.','phy_particle_data_flag_color','ctSetValue','lnbSetData','eed','RoundNearestTiesUp','\x0a\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20Random\x20Text\x20Animation\x0a\x20\x20\x20\x20\x0a\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Lorem\x20ipsum\x20dolor\x20sit\x20amet,\x20consectetur\x20adipiscing\x20elit.\x20Sed\x20do\x20eiusmod\x20tempor\x20incididunt\x20ut\x20labore\x20et\x20dolore\x20magna\x20aliqua.\x20Ut\x20enim\x20ad\x20minim\x20veniam,\x20quis\x20nostrud\x20exercitation\x20ullamco\x20laboris\x20nisi\x20ut\x20aliquip\x20ex\x20ea\x20commodo\x20consequat.\x20Duis\x20aute\x20irure\x20dolor\x20in\x20reprehenderit\x20in\x20voluptate\x20velit\x20esse\x20cillum\x20dolore\x20eu\x20fugiat\x20nulla\x20pariatur.\x20Excepteur\x20sint\x20occaecat\x20cupidatat\x20non\x20proident,\x20sunt\x20in\x20culpa\x20qui\x20officia\x20deserunt\x20mollit\x20anim\x20id\x20est\x20laborum.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x0a\x0a\x0a','circle','RulesTree','chmod','CONFIG','$PrintForms','time','Tool_Offset','pron','PROG','toUpperCase','Ж','cbSetChecked','some\x20[#Verb]\x20#Plural','shopt','abs','ifnewer','LimitsPositioningTokens','turretUnit','pre-wrap','materialized','\x5cs*@?[\x5cw_][\x5cw_\x5c.:-]*','CircleBox','placeholder','Hypergeometric1F1Regularized','race','march','į','DoubleLongRightArrow','llm_model','setMarkerShadowLocal','cabs','FileBaseName','GaborWavelet','Ket','part_type_colour1','a\x20[must]','selectLeader','RectangleChart3D','who','(^|(?!_)(?:[><|]|','GaussianWindow','path_get_point_y','ParallelEvaluate','CanberraDistance','\x5cs*$','vbscript','CoefficientDomain','↥','SymmetrizedDependentComponents','componentChars','flyInHeightASL','r\x22\x22\x22','currency_symbol','img-src','firstname-firstname','Repeated','SquaredEuclideanDistance','([a-z\x5c-]+\x5c.)+\x5c*','JSONObject','⊗','prefixes','try!','bigint','buffer_get_alignment','Forward','Streams','machines','𝒷','Majority','#[A-Za-z0-9_-]+','camPrepareBank','LogicalExpand','loadGame','buffer_load_partial','EmbeddedService','OverDot','present','overlay-settings','setMimic','RotateRight','BackFaceGlowColor','setObjectTexture','DeviceReadTimeSeries','saveFrame','o\x27er','CUBEVALUE','⇛','set3DENSelected','GraphicsComplexBoxOptions','role','do\x20not\x20#Verb','unbound','ResourceVersion','military','radioChannelInfo','UninstallText','setGusts','cliffs','SupersetEqual','⅚','dirs','\x5cbegin','PolyhedronDecomposition','recursive_mutex','conjunctions','surface_copy_part','LocalObjects','\x22\x20class=\x22button-more-papers-','ChebyshevU','\x5cb(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\x5cb','FrameBoxOptions','setRainbow','RemovalConditions','RootOfUnityQ','DeconvolutionLayer','NumberLinePlot','isEqualTo','ArrayFilter','$TracePattern','EXTERNAL','EventData','point_direction','Setoid','DateScale','^[A-Za-z0-9_.$]+:','DistributeDefinitions','AudioTrackSelection','layer_tile_get_x','Perpendicular','monument','fromSuperlative','actionscript','#Value+','Coq','EmbedCode','$1ives','keyboard_check_pressed','mkdir','NotebookDynamicExpression','will-name','elim','Rescale',':(?![\x5cs:])','isQuestion','MinimumTimeIncrement','GalaxyData','LogMultinormalDistribution','useAudioTimeForMoves','endconfig','AbstractSet','(#Preposition|#Pronoun|way)','Makefile','clearWeaponCargoGlobal','caisse','extension','ctrlIDC','PrintForm','


\x0a\x0a','querySelectorAll','lineMax','toString','(they|their)','ugc_visibility_private','isBetween','mdivide_left_spd','$CloudAccountName','validate','selectedEditorObjects','border-top','𝕧','emitNumericEntity','diag_deltaTime','ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ','LocatorPane','\x0a','(\x5cbReturn\x5cb)','\x5cn_{4,}$','MoleculeValue','treeIndex','SocketReadMessage','(?:-|','brewery','[A-Za-z_\x5cu00A1-\x5cuFFFF][A-Za-z_0-9\x5cu00A1-\x5cuFFFF]*','InterpolatingFunction','infoPanels','[(all|both)]\x20#Determiner\x20#Noun','TooltipDelay','tokenize','better','intro','CanonicalizeRegion','uplevel','Int64Fmt','pos','Retrieving\x20relevant\x20sentences','HistogramPointDensity','FindIntegerNullVector','tile_mirror','the\x20#Cardinal\x20[%Adj|Noun%]','findstr',')\x5c.?|(','etat','rtrim','DefaultControlPlacement','SetOutPath','delete',').\x20','[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*','that\x27s','billion','missileTarget','addWords','GraphicsRow','MONITOR','c_purple','physics_fixture_set_linear_damping','FilledCurveBox','ninetieth','array_create','FindEdgeCover','rindex','Serial','rotateX','DynamicModuleParent','TetrahedronBoxOptions','NumberQ','assignedVehicleRole','computation-expression','cholesky_decompose','$CloudCreditsAvailable','highscore_add','FailureDistribution','StandardDeviation','addPlayerScores','([^\x5c\x5c:=\x20\x5ct\x5cf\x5cn]|\x5c\x5c.)+','WiFiServer','set3DENIconsVisible','then','ConnectionSettings','MathieuGroupM24','setGroupIcon','Sinr','really-like','EthernetUDP','GAUSS','MathieuCharacteristicB','createShape','\x5cbend\x5csif\x5cb','IconData','9km','children','#NumericValue\x20#NumericValue','AudioEncoding','minus-value','modelToWorldWorld','c_gray','EdgeDashing','lds','~~~+[\x20]*$','GeometricMeanFilter','LeftTriangle','color_get_saturation','Pop','NormalizationLayer','CAA','file_text_write_real','PEDllCharacteristics','classPrefix','_automatic_','ASIN','endsWithParent','memcpy','doFire','c_funptr','createOutput','grouping','AsymptoticProduct','dot_product_3d_normalised','[a-zA-Z_][\x5cda-zA-Z_]+\x5c.[\x5cda-zA-Z_]{1,3}','`[A-Z][\x5cw\x27]*','RecurrenceTable','#Value\x20[(foot|feet)]','DGET','eng','had','^#PresentTense$','LEFT$','endspecify','ReentrantLock','getConnectedUAVUnit','border-image-source','getArtilleryETA','NotTildeTilde','HalfPlane','setcomp','DeBruijnGraph','%EF%BF%BD','#Comparative','CurlyQuote','⥥','event_user','text_special','PrimeOmega','ctrlMapMouseOver','CellEditDuplicate','setTriggerArea','PaneBoxOptions','part_type_color_mix','StepRange','onBriefingNotes','package','latter','enableGunLights','Direction','MultiaxisArrangement','StieltjesGamma','tilemap_get_at_pixel','BoundaryDiscretizeGraphics','marketing','CSNG','dtanh','unchecked','ј','IncludeQuantities','SpheroidalS1','tilemap_y','None','UInt32','visit','NumericalSort','⊃⃒','Û','tryUnbox','would-be','#Noun+\x20(coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)','$1$1$1','filename_drive','mp_grid_path','NNP','rnd','DownArrowUpArrow','cathedral','EditButtonSettings','request','imaginary','HEAD','HighlightGraph','gymnasium','BracketingBar','anti','pathname','push_local_notification','clearItemPool','1:aed,fed,xed,hed¦2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,cceded¦3ad:sled¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1un:ran¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1ake:woke¦go:went','smooth','𝔧','UniformGraphDistribution','growRight','c_int32_t','XML','Ramp','matrix','∓','facebook_dialog','^(#Country|#Region)','_n_','network_config_disable_reliable_udp','Ћ','bMarks','TestReport','barrier','cause-cuz','asset_tiles','IsSelfIntersecting','Protected','ManifestMaxVersionTested','Conjugate','DiscreteInputOutputModel','TotalWidth','StringContainsQ','bezierDetail','#NumberRange','bool\x20cdouble\x20cent\x20cfloat\x20char\x20creal\x20dchar\x20delegate\x20double\x20dstring\x20float\x20function\x20idouble\x20ifloat\x20ireal\x20long\x20real\x20short\x20string\x20ubyte\x20ucent\x20uint\x20ulong\x20ushort\x20wchar\x20wstring','','setTriggerInterval','period','argument3','^ok','#Value\x20[%Plural|Verb%]','part_system_create','VarianceEstimatorFunction','instance_id_get','complex_schur_decompose','adorable-little-store','log1p_exp','ItemStyle','ľ','alternate','secondaryWeaponItems','atomic_cancel','nodefault','overlaps','bill-de-noun','overflow-wrap','#TextValue','background_showcolor','SystemsModelStateFeedbackConnect','achievement_show_leaderboards','getVehicleCargo','buffer_u16','FacialFeatures','TRUNC','GraphQ','leaderboardsRequestUploadScoreKeepBest','must-win','setprotoent','#Determiner\x20[(western|eastern|northern|southern|central)]\x20#Noun','DefaultDuration','[a-zA-Z_]\x5cw*::','linsert|10','^(={1,6})[\x20\x09].+?([\x20\x09]\x5c1)?$','(\x5cs*,\x5cs*','GaugeStyle','LibraryFunction','≪','\x20\x20\x20\x20Submit\x20\x20\x20','usableFromInline','norm1','list-style-image','musee','StringJoin','GroupElementToWord','WeierstrassEta3','MissingException','strokeJoin','↪','RangeSpecification','parray','Transpose','ScriptLevel','scroll-target','↕','safeZoneXAbs','c_float_complex','DoubleUpArrow','(\x20>\x20>=\x20`\x20abs\x20acos\x20angle\x20append\x20apply\x20asin\x20assoc\x20assq\x20assv\x20atan\x20boolean?\x20caar\x20cadr\x20call-with-input-file\x20call-with-output-file\x20call-with-values\x20car\x20cdddar\x20cddddr\x20cdr\x20ceiling\x20char->integer\x20char-alphabetic?\x20char-ci<=?\x20char-ci=?\x20char-ci>?\x20char-downcase\x20char-lower-case?\x20char-numeric?\x20char-ready?\x20char-upcase\x20char-upper-case?\x20char-whitespace?\x20char<=?\x20char=?\x20char>?\x20char?\x20close-input-port\x20close-output-port\x20complex?\x20cons\x20cos\x20current-input-port\x20current-output-port\x20denominator\x20display\x20eof-object?\x20eq?\x20equal?\x20eqv?\x20eval\x20even?\x20exact->inexact\x20exact?\x20exp\x20expt\x20floor\x20force\x20gcd\x20imag-part\x20inexact->exact\x20inexact?\x20input-port?\x20integer->char\x20integer?\x20interaction-environment\x20lcm\x20length\x20list\x20list->string\x20list->vector\x20list-ref\x20list-tail\x20list?\x20load\x20log\x20magnitude\x20make-polar\x20make-rectangular\x20make-string\x20make-vector\x20max\x20member\x20memq\x20memv\x20min\x20modulo\x20negative?\x20newline\x20not\x20null-environment\x20null?\x20number->string\x20number?\x20numerator\x20odd?\x20open-input-file\x20open-output-file\x20output-port?\x20pair?\x20peek-char\x20port?\x20positive?\x20procedure?\x20quasiquote\x20quote\x20quotient\x20rational?\x20rationalize\x20read\x20read-char\x20real-part\x20real?\x20remainder\x20reverse\x20round\x20scheme-report-environment\x20set!\x20set-car!\x20set-cdr!\x20sin\x20sqrt\x20string\x20string->list\x20string->number\x20string->symbol\x20string-append\x20string-ci<=?\x20string-ci=?\x20string-ci>?\x20string-copy\x20string-fill!\x20string-length\x20string-ref\x20string-set!\x20string<=?\x20string=?\x20string>?\x20string?\x20substring\x20symbol->string\x20symbol?\x20tan\x20transcript-off\x20transcript-on\x20truncate\x20values\x20vector\x20vector->list\x20vector-fill!\x20vector-length\x20vector-ref\x20vector-set!\x20with-input-from-file\x20with-output-to-file\x20write\x20write-char\x20zero?','fb_login_default','reps','SPI','border','WeekDay','$Cookies','Ì','sync_reject_on','CartesianIndex','vk_pagedown','(#City|#Region|#ProperNoun)$','ev_gesture_dragging','tpl_host_no_ip_fuzzy','BarabasiAlbertGraphDistribution','camSetDir','Method','MenuStyle','0x[0-9a-f]+','RightArrowBar','FileExtension','ev_joystick2_button3','does\x20(#Adverb|not)?\x20[#Adjective]','⥒','(say|says|said)\x20[sorry]','nearEntities','(_?[ui](8|16|32|64|128))?','[<=$]','♠','tile_index_mask','⪠','band','⦮','(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+\x20#Noun?\x20#Actor','setUserActionText','#Adverb\x20[half]','virtual_key_delete','(VC|VS|#)','$rose_gclk','interface\x20extends','offsets','shownSubtitles','Use\x20this\x20question:\x20','SliceDistribution','$SystemMemory','pauseVideo','StrCmpS','part_emitter_stream','isize','ConvertDirection','scroll-padding-inline-end','SpectralLineData','PhrasalVerb','ReplacePart','buffer_load','TreeExtract','UNLOCK','ColonForm','Hypergeometric0F1','ACCRINTM','NumberPadding','MINIFS','collision_line_list','Trim','SolidAngle','ifNo','ev_mouse_leave','FALSE','SystemModels','border-block-start-width','ward','let','addMagazineTurret','DiscreteWaveletPacketTransform','infoPanelComponents','electricity','recv','every','vk_f12','dot_product_3d_normalized','escarpment','PolynomialMod','𝔅','DegreeCentrality','SYMBOL_CHARSET','trace','cmpres','grid-column-end','^did\x20#Infinitive$','CalendarType','EVEN','ef_firework','Delphi','instance_deactivate_object','frameset','EulerMatrix','grid-template-areas','CenterDot','render','RangeError','ugc_match_AllGuides','LogisticSigmoid','Matrix','⫧','⇔','SelfLoopStyle','allTurrets','𝓆','Sound','mkdown','InverseRadonTransform','face-shocking','vinarray','G-code\x20(ISO\x206983)','(he|she|we|you|they|i)','STDEVPA','isGameFocused','instance_activate_object','weapons','AxesOrigin','libraryCredits','ctrlSetFocus','NewPrimitiveStyle','either','updateSlider','RudinShapiro','bacilli','ev_joystick1_button4','⌞','device_mouse_raw_y','^(that|this|those)','PadeApproximant','\x5c$/','#Value\x20and\x20#Value\x20#Fraction','background-blend-mode','#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?','interrupt','Guid','caption','RecognitionThreshold','ev_global_left_release','$assertvacuousoff','Thread','LightMagenta','-?\x5cw+\x5cs*=>','PSET','tie','RowReduce','displayRemoveAllEventHandlers','expr','url_encode','writing-mode','GradientOrientationFilter','groovy','allowFileOperations','UNDERSCORE_TITLE_MODE','⪅','PLUGINSDIR','Tilde','audio_get_listener_mask','Iterator','asset|0','MoonPhase','databases','GroupTogetherGrouping','ropeUnwind','TransferFunctionZeros','GroupOpenerColor','$VersionNumber','readln','aspectj','font-semibold','draw_get_alpha','≂̸','iap_ev_storeload','lpt2','ctrlAutoScrollDelay','Clong','$UserAgentString','is_int64','slot','nav-down','Week','IMP','add3DENLayer','PolynomialQuotient','visiblePosition','⌣','𝒥','CreateFont','physics_particle_group_get_centre_x','Star','ev_joystick1_button7','enableSatNormalOnDetail','⪍','do\x20[so]','for-some-reason','Б','phy_bullet','⏝','GeoGridRangePadding','http_post_string','MessageObject','⩆','(this|that|#Comparative|#Superlative)','1-800-','EdgeJoinForm','c_loc','capture','ds_priority_delete_min','Ď','\x22\x20class=\x22bg-blue-500\x20hover:bg-blue-700\x20text-white\x20font-bold\x20py-2\x20px-4\x20rounded-r-md\x22>Search\x0a','Property','638380ilpaOX','pickles-and-drinks','RemoveProperty','Reap','document','steam_clear_achievement','false\x20nil\x20true','addHandgunItem','param','draw_text_ext_transformed_color','isSprintAllowed','browser_firefox','$sync$nand$plane','EigenvectorCentrality','steam_get_user_account_id','how-he','uniformItems','DualLinearProgramming','HistoricalPeriodData','until','canyons','NaN','phy_particle_flag_spring','win8_livetile_tile_notification','VARP','IsWindow','background-origin','synchronizeObjectsAdd','system_time','network_type_data','gpu_get_tex_mip_bias_ext','SubscriptBox','XMLport','taskDescription','ds_stack_create','person-honorific','endservent','resumingScanAtSamePosition','ProteinData','TemplateIf','forceAtPositionRTD','↟','updatePixels','ds_grid_multiply_disk','NoncentralFRatioDistribution','Discriminant','popped','$ScriptInputString','BrightnessEqualize','i64','isbl','addplugindir','\x20~+~','ps1','move','capitalize','LogLikelihood','vformatx','.eq.','CharacteristicPolynomial','clearInterval','ARIMAProcess','F.INV.RT','setWaypointVisible','MachineID','Hypergeometric1F1','\x5cb-?\x5cd+','GraphTree','Increment','gams','Contact\x20Us','CellMargins','DoublyInfinite','LongRightArrow','InverseBilateralZTransform','^[_a-z][\x5cw\x27]*','dot_self','ef_ring','gulf','#Noun\x20[like]\x20#Noun','𝔢','TagBoxOptions','lra','3-titlecase-acronym','CubeRoot','preceding-sibling::','GROWTH','millis_to_str','cr_size_all','noHighlightRe','HeavisideTheta','variable_struct_remove','lightFalloff','common','purebasic','END-ISO-10303-21;','__ENCODING__','flix','depsyd','TraceInternal','ToString','chroot','win8_appbar_enable','draw_healthbar','Ι','(had|has|have)\x20[been\x20/en$/]','XMLObject','cis','pounds','layer_tile_get_alpha','char','Signature','kbd','draw_set_color','pretest','van\x20der\x20noun','padding-bottom','1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver','╠','the-1992-classic','⇋','PRP','Cwstring','penn','FiniteGroupCount','wishart','setCamShakeParams','RandomGeoPosition','unicode','ч','waypointAttachedObject','StreamMarkers','ExcludedContexts','ugc_query_CreatedByFollowedUsersRankedByPublicationDate','reduced','ThreeJSymbol','weekday','Ticks','TemporaryVariable','kbv_type_numbers','ate','ImageFileScan','Dotted','VideoPlay','Function\x20PageEx\x20Section\x20SectionGroup\x20FunctionEnd\x20SectionEnd','StartingStepSize','DefaultAttachedCellStyle','1ies:ly¦2es:us,go,do¦3es:cho,eto','buffer_get_size','sprite_save_strip','[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+]\x20#ProperNoun','DOSTextFormat','NumberFieldNormRepresentatives','EstimatedPointNormals',')\x5cs+','matrix_build_projection_perspective','varlen','AsymptoticEqual','Ŗ','(not|nothing|never)\x20[like]','flex-grow','readlink','str_to_utc','vectorCrossProduct','MATCH_NOTHING_RE','BlockchainTransaction','AnimationDisplayTime','NotTildeFullEqual','AND','read','isArray','⊵⃒','𝒬','trimEnd','ushort','steam_ugc_set_item_content','ParzenWindow','removeItemFromUniform','⨭','non_overridable','AssumeDeterministic','ishft','desert','text-3xl\x20font-bold\x20mt-2','make_colour_rgb','↖','\x1b[31m','value-abbr','consumed','inform7','matrix_transform_vertex','VerifyInterpretation','Ч','brewing-giant','Ħ','[march]\x20(up|down|back|toward)','𝓈','woop','[#Value+]\x20#Currency','incapacitatedState','Release','^[#Infinitive]\x20it\x20#Comparative','highz1','≋̸','VideoJoin','VideoQ','layer_sprite_speed','unitAimPosition','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a','⤤','setDetailMapBlendPars','checkPIN','mip_off','SystemsModelDelayApproximate','will\x20have','esac','setUnitRank','keyName','argument15','scroll-padding-inline','false_type','EdgeBetweennessCentrality','achievement_reset','try','was-being','nearly-half','Black','ChartStyle','format_args_as_text','getMissionConfig','LineColor','asciidoc','rotateY','≖','shl','Range','Clojure\x20REPL','mask-border','connect','Existing','prefers-reduced-motion','exponent-separator','(-|\x5c+)?\x5cd+(\x5c.\x5cd+|\x5c/\x5cd+)?((d|e|f|l|s|D|E|F|L|S)(\x5c+|-)?\x5cd+)?','DeleteElements','tell','ZoomFactor','AppendLayer','LinearModelFit','selectionVectorDirAndUp','border-block-end-width','NS_DURING','removeFromRemainsCollector','GeoResolution','[(]|$','setUnitAbility','nth-col','attribute','GlobalRef','currentMuzzle','xs:nonPositiveInteger','future','get_string_async','image_speed','asst','SpellingCorrectionList','ZeroSymmetric','ImageSizeMultipliers','WindingCount','bulkTagger','friction','auth','audio_sync_group_debug','DeclarePackage','TemplateBoxOptions','display_landscape_flipped','DrawBackFaces','⧐','draw_set_alpha_test','CentralMomentGeneratingFunction','HEX$','local.get','nesting','line_to','eachFile','path_get_time','ToBoxes','getTurretLimits','(a|an)','lib','\x5c*\x5c)','gazette','array','iap_restore_all','push_cancel_local_notification','abs\x20arccos\x20arcsin\x20arctan\x20arctan2\x20Beta\x20betaReg\x20binomial\x20ceil\x20centropy\x20cos\x20cosh\x20cvPower\x20div\x20div0\x20eDist\x20entropy\x20errorf\x20execSeed\x20exp\x20fact\x20floor\x20frac\x20gamma\x20gammaReg\x20log\x20logBeta\x20logGamma\x20log10\x20log2\x20mapVal\x20max\x20min\x20mod\x20ncpCM\x20ncpF\x20ncpVUpow\x20ncpVUsin\x20normal\x20pi\x20poly\x20power\x20randBinomial\x20randLinear\x20randTriangle\x20round\x20rPower\x20sigmoid\x20sign\x20signPower\x20sin\x20sinh\x20slexp\x20sllog10\x20slrec\x20sqexp\x20sqlog10\x20sqr\x20sqrec\x20sqrt\x20tan\x20tanh\x20trunc\x20uniform\x20uniformInt\x20vcPower\x20bool_and\x20bool_eqv\x20bool_imp\x20bool_not\x20bool_or\x20bool_xor\x20ifThen\x20rel_eq\x20rel_ge\x20rel_gt\x20rel_le\x20rel_lt\x20rel_ne\x20gday\x20gdow\x20ghour\x20gleap\x20gmillisec\x20gminute\x20gmonth\x20gsecond\x20gyear\x20jdate\x20jnow\x20jstart\x20jtime\x20errorLevel\x20execError\x20gamsRelease\x20gamsVersion\x20handleCollect\x20handleDelete\x20handleStatus\x20handleSubmit\x20heapFree\x20heapLimit\x20heapSize\x20jobHandle\x20jobKill\x20jobStatus\x20jobTerminate\x20licenseLevel\x20licenseStatus\x20maxExecError\x20sleep\x20timeClose\x20timeComp\x20timeElapsed\x20timeExec\x20timeStart','set3DENMissionAttributes','he-adj-the','CommunityGraphPlot','f90','#Adjective\x20#Plural\x20and\x20[%Plural|Verb%]','updateCheckbox','deleteEditorObject','title.class.inherited','$MachineDomains','modal1','diag_matrix','sphere','randcase','endgrent','%r\x5c[','single','NDSolveValue','CSRLIN','@hasContraction+','NewLine','@class','Mercury','IFS','⩵','Capitalize','IndependentUnitDimension','endlocal','languageName','$atan','nginxconf','CounterAssignments','undoubtedly','anyNumberOfTimes','JacobiCS','RepeatedNull','PrecedesEqual','a\x20bit\x20much','ImageRotated','beginSMS','DominatorTreeGraph','initializer','room_first','isKnownUniquelyReferenced','POST','win8_settingscharm_remove_entry','ю','foo-point','Caption','budget','file_bin_position','basic\x20understanding','InputField','getattr','HiddenItems','ATanr','cal','HISTORY','T.TEST','InheritScope','swear1-verb','incr','fblocked','unfreeze','twig','addUniform','⇆','inky_to_html','\x5c[|(#::?','NegativeBinomialDistribution','lockedCameraTo','IJ','llb','FunctionMeromorphic','\x5c$_[A-Z]+','honorifics','extract','usafa','ButtonStyleMenuListing','sprite_add','addMenuItem','get3DENAttribute','OptionValueBox','SearchQueryString','setCaptive','.\x20#LastName','PhongShading','$FontFamilies','built_in','forEach','\x20\x20\x20\x20\x20SocratiQ\x20\x20\x20\x20\x20\x20\x20\x20\x20SocratiQ\x20with\x20tinyML\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20What\x20is\x20SocratiQ?\x20

\x20\x20\x20\x20SocratiQ\x20is\x20an\x20AI\x20Generative\x20Learning\x20Assistant,\x20designed\x20to\x20make\x20learning\x20more\x20efficient,\x20engaging\x20and\x20accessible.\x20We\x20welcome\x20your\x20Feedback.\x20Learn\x20more\x20about\x20SocratiQ.\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x201\x202\x203\x20\x20\x20\x20\x20
\x20
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Mindfulness\x20break\x20\x20\x20\x20\x20\x20\x20\x20Examples\x20\x20\x20\x20\x20\x20\x20\x20Explain\x20\x20\x20\x20\x20\x20\x20\x20Find\x20related\x20research\x20\x20\x20\x20\x20\x20\x20\x20Summarize\x20this\x20page\x20\x20\x20\x20\x20\x20\x20\x20Quiz\x20me\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

Information\x20provided\x20here\x20may\x20not\x20always\x20be\x20accurate.\x20Provide\x20feedback\x20

\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Connected\x20\x20\x20Disconnected\x20\x20\x20\x20\x20\x20Settings\x20\x20\x20\x20\x20\x20\x20\x20Understanding\x20Level\x20\x20\x20🚲\x20🚗\x20🚁\x20🛸\x20\x20\x20\x20Choose\x20an\x20LLM:\x20\x20Gemma-7b-it\x20Llama3-70b-8192\x20Llama3-8b-8192\x20Mixtral-8x7b-32768\x20\x20\x20\x20\x20\x20Show\x20answers\x20\x20\x20\x20\x20\x20Enable\x20Highlight\x20Menu\x20\x20\x20\x20\x20\x20Show\x20chain\x20of\x20thought\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20An\x20error\x20occurred.\x20Please\x20try\x20again.\x20

\x20\x20\x20\x20\x20An\x20error\x20occurred.\x20Please\x20try\x20again.\x20\x20\x20\x20\x201\x20\x20\x20','$VideoDecoders','$TopDirectory','$countones','≎̸','FresnelG','displayParent','textureWrap','RegionBounds','e6c326dca20dcdeceea6.js','borderBottom','checkboxes','addincludedir','five','SystemCredentialStoreObject','\x5c-+|','Python','Paths','mrs','tile_set_mirror','bitand','splitWhitespace','manifest-src','ically','ImageHistogram','SplObserver','lreplace|10','WriteRegExpandStr','thirtieth','SectionSetInstTypes','lassoscript','politburo','removeAllMissionEventHandlers','LocatorAutoCreate','wait_order','items','_prev_delimiters','Esplora','BuckyballGraph','setWaypointLoiterAltitude','Adverb','allDiarySubjects','ieee_get_underflow_mode','path_position','╧','kbv_type_default','serverNamespace','triggerDynamicSimulation','#Determiner\x20#Noun\x20[(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)]\x20!(#Preposition|to|#Adverb)?','LinkObject','hcShowBar','[A-Z][a-zA-Z0-9_]*','gpu_get_tex_repeat_ext','ect','NArgMax','taskkill','getsockopt','actionKeysEx','setPlateNumber','PacletDirectoryUnload','program','⋇','Vectorizing\x20query','MortalityData','ExternalStorageGet','#down-chevron','were-he','PaddingSize','SystemsModelParallelConnect','∈','⥡','when','Cap','image-orientation','𝒵','BinaryReadList','Adj|Past','a\x20pound','⌽','RootSum','darctan2','DominatorVertexList','RandomPolyhedron','EntityValue','AtomList','ResamplingAlgorithmData','country','uses','CoxModel','RenkoChart','camera_get_view_y','event','vehicleRadio','randomise','ь','⋁','border-right','ControlActive','which','scroll-padding-bottom','FractionBoxOptions','gesture_flick_speed','forEachMember','do-eat','ERR_NUM','DiscreteHadamardTransform','Lua','script','room_set_background_colour','amod','MeteorShowerData','StringLength','Div','SpanCharacterRounding','unitAddons','string_repeat','module\x20function','Symbol','Lisp','"','QuadraticOptimization','llength|10','tile_get_rotate','FilesystemIterator','⌐','i\x20#Verb\x20[me]\x20#Noun','lnbPictureRight','absolute_url','StreamPlot','shops-direct','text-align-all','#Currency','ctrlScale','fullPointer','([M])([0-9]+\x5c.?[0-9]?)','done','lightDetachObject','pycon','u16','setBrakesRTD','irandom','Strategies','fa_readonly','Underflow','EntityCopies','BlockchainContractValue','DensityHistogram','Stepper','modParams','ova','win8_livetile_notification_tag','REPORT_DIGITAL','DialogProlog','ATTR','⁄','view_set_visible','SYSDIR','lbSetPictureRightColor','font-family','closeAllNodes','^\x5c*','AnimationDirection','setVelocityTransformation','nodeType','file_text_eoln','14979faFUwE','fclose','phy_joint_length_1','win8_settingscharm_set_xaml_property','⩂','proto','xs:IDREF','ordinal-of','rib','Ē','automatic','to_int','SocketListener','FrontEndStackSize','RotateLeft','CopyFile','steam_ugc_set_item_description','Float16','analyses','initHighlighting()\x20deprecated.\x20\x20Use\x20highlightAll()\x20now.','JacobiNS','isObjectRTD','phong','↽','setup\x20draw','±','openCursor','ds_exists','airport','CommonDefaultFormatTypes','mouse_check_button','compassRead','steam_get_persona_name','SetSilent','browser_unknown','∴','being','moo','true¦ago,on4som4t1week0yesterd5;\x20end,ends;mr1o0;d2morrow;!w;ed0;ay','turn','verify','minted','&','inputAction','statistics','ambient','win8_search_enable','GraphicsData','ExactSizeIterator','date_time_of','StringBreak','*\x0a:::\x0a\x0a\x0a\x0a','(right|rights)\x20of\x20.','alias\x20batch\x20cd\x20clear\x20command\x20connect\x20connection-factory\x20connection-info\x20data-source\x20deploy\x20deployment-info\x20deployment-overlay\x20echo\x20echo-dmr\x20help\x20history\x20if\x20jdbc-driver-info\x20jms-queue|20\x20jms-topic|20\x20ls\x20patch\x20pwd\x20quit\x20read-attribute\x20read-operation\x20reload\x20rollout-plan\x20run-batch\x20set\x20shutdown\x20try\x20unalias\x20undeploy\x20unset\x20version\x20xa-data-source','ev_keypress','===\x5cs','BioSequenceTranscribe','1-lexicon-alias','CellStyle','compact','ObservabilityMatrix','quick','CheckboxBar','(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)','ds_queue_clear','𝔹','steam_reset_all_stats','fortieth','trail','ASATriangle','macOS','group','require_once','eachin','removeMagazines','#Copula\x20just\x20[%Adj|Past%\x20#Particle?]','mouseClicked','typedef','numberToDate','SnubPolyhedron','Ordering','ShowSyntaxStyles','\x5cb(0b[01]+)','rus','▾','setMarkerPosLocal','Smali','moveInCargo','CENTURY\x20DAY\x20DECADE\x20DOW\x20DOY\x20EPOCH\x20HOUR\x20ISODOW\x20ISOYEAR\x20MICROSECONDS\x20MILLENNIUM\x20MILLISECONDS\x20MINUTE\x20MONTH\x20QUARTER\x20SECOND\x20TIMEZONE\x20TIMEZONE_HOUR\x20TIMEZONE_MINUTE\x20WEEK\x20YEAR','setDefaultCamera','Clean','Histogram','getTerrainGrid','NotLessFullEqual','Booleans','SliceConcatExt','categorical_logit','ecase','ReImStyle','⩴','Ł','continue','FeatureValueDependencyPlot','requeue','character','file_text_open_append','getRangeAt','locals','endprogram','curatorAddons','\x5c$\x5c{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*','UninstallSubCaption','\x5cb(\x5cd+(\x5c.\x5cd*)?|\x5c.\x5cd+)(u|U|l|L|ul|UL|f|F)','places','cyan','undefineall','≸','src_path','ifmissingornull','Abs\x20ACos\x20AdlibRegister\x20AdlibUnRegister\x20Asc\x20AscW\x20ASin\x20Assign\x20ATan\x20AutoItSetOption\x20AutoItWinGetTitle\x20AutoItWinSetTitle\x20Beep\x20Binary\x20BinaryLen\x20BinaryMid\x20BinaryToString\x20BitAND\x20BitNOT\x20BitOR\x20BitRotate\x20BitShift\x20BitXOR\x20BlockInput\x20Break\x20Call\x20CDTray\x20Ceiling\x20Chr\x20ChrW\x20ClipGet\x20ClipPut\x20ConsoleRead\x20ConsoleWrite\x20ConsoleWriteError\x20ControlClick\x20ControlCommand\x20ControlDisable\x20ControlEnable\x20ControlFocus\x20ControlGetFocus\x20ControlGetHandle\x20ControlGetPos\x20ControlGetText\x20ControlHide\x20ControlListView\x20ControlMove\x20ControlSend\x20ControlSetText\x20ControlShow\x20ControlTreeView\x20Cos\x20Dec\x20DirCopy\x20DirCreate\x20DirGetSize\x20DirMove\x20DirRemove\x20DllCall\x20DllCallAddress\x20DllCallbackFree\x20DllCallbackGetPtr\x20DllCallbackRegister\x20DllClose\x20DllOpen\x20DllStructCreate\x20DllStructGetData\x20DllStructGetPtr\x20DllStructGetSize\x20DllStructSetData\x20DriveGetDrive\x20DriveGetFileSystem\x20DriveGetLabel\x20DriveGetSerial\x20DriveGetType\x20DriveMapAdd\x20DriveMapDel\x20DriveMapGet\x20DriveSetLabel\x20DriveSpaceFree\x20DriveSpaceTotal\x20DriveStatus\x20EnvGet\x20EnvSet\x20EnvUpdate\x20Eval\x20Execute\x20Exp\x20FileChangeDir\x20FileClose\x20FileCopy\x20FileCreateNTFSLink\x20FileCreateShortcut\x20FileDelete\x20FileExists\x20FileFindFirstFile\x20FileFindNextFile\x20FileFlush\x20FileGetAttrib\x20FileGetEncoding\x20FileGetLongName\x20FileGetPos\x20FileGetShortcut\x20FileGetShortName\x20FileGetSize\x20FileGetTime\x20FileGetVersion\x20FileInstall\x20FileMove\x20FileOpen\x20FileOpenDialog\x20FileRead\x20FileReadLine\x20FileReadToArray\x20FileRecycle\x20FileRecycleEmpty\x20FileSaveDialog\x20FileSelectFolder\x20FileSetAttrib\x20FileSetEnd\x20FileSetPos\x20FileSetTime\x20FileWrite\x20FileWriteLine\x20Floor\x20FtpSetProxy\x20FuncName\x20GUICreate\x20GUICtrlCreateAvi\x20GUICtrlCreateButton\x20GUICtrlCreateCheckbox\x20GUICtrlCreateCombo\x20GUICtrlCreateContextMenu\x20GUICtrlCreateDate\x20GUICtrlCreateDummy\x20GUICtrlCreateEdit\x20GUICtrlCreateGraphic\x20GUICtrlCreateGroup\x20GUICtrlCreateIcon\x20GUICtrlCreateInput\x20GUICtrlCreateLabel\x20GUICtrlCreateList\x20GUICtrlCreateListView\x20GUICtrlCreateListViewItem\x20GUICtrlCreateMenu\x20GUICtrlCreateMenuItem\x20GUICtrlCreateMonthCal\x20GUICtrlCreateObj\x20GUICtrlCreatePic\x20GUICtrlCreateProgress\x20GUICtrlCreateRadio\x20GUICtrlCreateSlider\x20GUICtrlCreateTab\x20GUICtrlCreateTabItem\x20GUICtrlCreateTreeView\x20GUICtrlCreateTreeViewItem\x20GUICtrlCreateUpdown\x20GUICtrlDelete\x20GUICtrlGetHandle\x20GUICtrlGetState\x20GUICtrlRead\x20GUICtrlRecvMsg\x20GUICtrlRegisterListViewSort\x20GUICtrlSendMsg\x20GUICtrlSendToDummy\x20GUICtrlSetBkColor\x20GUICtrlSetColor\x20GUICtrlSetCursor\x20GUICtrlSetData\x20GUICtrlSetDefBkColor\x20GUICtrlSetDefColor\x20GUICtrlSetFont\x20GUICtrlSetGraphic\x20GUICtrlSetImage\x20GUICtrlSetLimit\x20GUICtrlSetOnEvent\x20GUICtrlSetPos\x20GUICtrlSetResizing\x20GUICtrlSetState\x20GUICtrlSetStyle\x20GUICtrlSetTip\x20GUIDelete\x20GUIGetCursorInfo\x20GUIGetMsg\x20GUIGetStyle\x20GUIRegisterMsg\x20GUISetAccelerators\x20GUISetBkColor\x20GUISetCoord\x20GUISetCursor\x20GUISetFont\x20GUISetHelp\x20GUISetIcon\x20GUISetOnEvent\x20GUISetState\x20GUISetStyle\x20GUIStartGroup\x20GUISwitch\x20Hex\x20HotKeySet\x20HttpSetProxy\x20HttpSetUserAgent\x20HWnd\x20InetClose\x20InetGet\x20InetGetInfo\x20InetGetSize\x20InetRead\x20IniDelete\x20IniRead\x20IniReadSection\x20IniReadSectionNames\x20IniRenameSection\x20IniWrite\x20IniWriteSection\x20InputBox\x20Int\x20IsAdmin\x20IsArray\x20IsBinary\x20IsBool\x20IsDeclared\x20IsDllStruct\x20IsFloat\x20IsFunc\x20IsHWnd\x20IsInt\x20IsKeyword\x20IsNumber\x20IsObj\x20IsPtr\x20IsString\x20Log\x20MemGetStats\x20Mod\x20MouseClick\x20MouseClickDrag\x20MouseDown\x20MouseGetCursor\x20MouseGetPos\x20MouseMove\x20MouseUp\x20MouseWheel\x20MsgBox\x20Number\x20ObjCreate\x20ObjCreateInterface\x20ObjEvent\x20ObjGet\x20ObjName\x20OnAutoItExitRegister\x20OnAutoItExitUnRegister\x20Ping\x20PixelChecksum\x20PixelGetColor\x20PixelSearch\x20ProcessClose\x20ProcessExists\x20ProcessGetStats\x20ProcessList\x20ProcessSetPriority\x20ProcessWait\x20ProcessWaitClose\x20ProgressOff\x20ProgressOn\x20ProgressSet\x20Ptr\x20Random\x20RegDelete\x20RegEnumKey\x20RegEnumVal\x20RegRead\x20RegWrite\x20Round\x20Run\x20RunAs\x20RunAsWait\x20RunWait\x20Send\x20SendKeepActive\x20SetError\x20SetExtended\x20ShellExecute\x20ShellExecuteWait\x20Shutdown\x20Sin\x20Sleep\x20SoundPlay\x20SoundSetWaveVolume\x20SplashImageOn\x20SplashOff\x20SplashTextOn\x20Sqrt\x20SRandom\x20StatusbarGetText\x20StderrRead\x20StdinWrite\x20StdioClose\x20StdoutRead\x20String\x20StringAddCR\x20StringCompare\x20StringFormat\x20StringFromASCIIArray\x20StringInStr\x20StringIsAlNum\x20StringIsAlpha\x20StringIsASCII\x20StringIsDigit\x20StringIsFloat\x20StringIsInt\x20StringIsLower\x20StringIsSpace\x20StringIsUpper\x20StringIsXDigit\x20StringLeft\x20StringLen\x20StringLower\x20StringMid\x20StringRegExp\x20StringRegExpReplace\x20StringReplace\x20StringReverse\x20StringRight\x20StringSplit\x20StringStripCR\x20StringStripWS\x20StringToASCIIArray\x20StringToBinary\x20StringTrimLeft\x20StringTrimRight\x20StringUpper\x20Tan\x20TCPAccept\x20TCPCloseSocket\x20TCPConnect\x20TCPListen\x20TCPNameToIP\x20TCPRecv\x20TCPSend\x20TCPShutdown,\x20UDPShutdown\x20TCPStartup,\x20UDPStartup\x20TimerDiff\x20TimerInit\x20ToolTip\x20TrayCreateItem\x20TrayCreateMenu\x20TrayGetMsg\x20TrayItemDelete\x20TrayItemGetHandle\x20TrayItemGetState\x20TrayItemGetText\x20TrayItemSetOnEvent\x20TrayItemSetState\x20TrayItemSetText\x20TraySetClick\x20TraySetIcon\x20TraySetOnEvent\x20TraySetPauseIcon\x20TraySetState\x20TraySetToolTip\x20TrayTip\x20UBound\x20UDPBind\x20UDPCloseSocket\x20UDPOpen\x20UDPRecv\x20UDPSend\x20VarGetType\x20WinActivate\x20WinActive\x20WinClose\x20WinExists\x20WinFlash\x20WinGetCaretPos\x20WinGetClassList\x20WinGetClientSize\x20WinGetHandle\x20WinGetPos\x20WinGetProcess\x20WinGetState\x20WinGetText\x20WinGetTitle\x20WinKill\x20WinList\x20WinMenuSelectItem\x20WinMinimizeAll\x20WinMinimizeAllUndo\x20WinMove\x20WinSetOnTop\x20WinSetState\x20WinSetTitle\x20WinSetTrans\x20WinWait\x20WinWaitActive\x20WinWaitClose\x20WinWaitNotActive','nineteen','buffer_bool','PopupMenuBox','NSolveValues','TernaryListPlot','$stable','ScaleDivisions','waypointCombatMode','Backsubstitution','date_add_millis','BSplineSurface','gamepad_button_check','understanding','link_fuzzy','binmode','isFinite','view_hspeed','matrix_exp_multiply','setType','EncryptedObject','ı','NormalizedSquaredEuclideanDistance','rescue','menuSetCheck','basic_slide','SimpleGraph','#Value\x20#Currency\x20[and]\x20#Value\x20(cents|ore|centavos|sens)','CellContents','PageHeaders','content','а','⋘̸','Off','TransparentColor','CLS','th_close','.*?','move_outside_all','auditorium','room_set_persistent','Precedence','Longitude','game_restart','TextContents','date_trunc_millis','ropeSegments','Sinh','FindMoleculeSubstructure','StartWebSession','ERDEV','display_aa','strcat','Magnify','TimeSeriesRescale','spelling-error','InnerPolygon','Slides','fromPast','ExpressionUUID','still-out','DDB','apt','^C[\x20]','it\x27s','trap','louis-IV','mutex','pay-attention','DOLLARDE','audio_emitter_gain','focusedCtrl','⦯','withVaList','triggerText','lb_disp_numeric','UInt','ConnectSystemModelController','KelvinKer','break','memory','\x5cb\x5cd+(\x5c.\x5cd+)?([edED]\x5cd+)?[#!]?','BarSpacing','?','Partition','json_query','physics_particle_group_delete','ImageCompose','task','ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт','𝔳','Selection','int_step','OpenSCAD','fma','AnimationRunning','cameraEffectEnableHUD','waypoints','through','reasonml','docker','qw\x5cs+q','SystemInformation','~~~(?:\x5cs*,\x5cs*','getClientStateNumber','▵','PointProcessParameterQ','fmt','date_get_year','c_aqua','TrackSpeedAt','calculatePlayerVisibilityByFriendly','ugc_query_NotYetRated','inverted-colors','nameof','message-container','sprite_assign','Bottom','isKindOf','.com','removeDiarySubject','TubeBoxOptions','call-and-reserve','TimeObjectQ','variable_struct_names_count','logit','delay_length','RulerUnits','ready-to-noun','GeoModel','ev_joystick2_up','UnderoverscriptBoxOptions','DISABLE','ROW','physics_fixture_set_collision_group','RightTeeArrow','TitleGrouping','visited','Copula','spritespeed_framespersecond','addWeaponPool','^(\x5c*+|-+|\x5c.+|[^\x5cn]+?::)\x5cs+','shiftr','#Date\x20.?\x20[(march|may)]','ImageSizeAction','GoodmanKruskalGammaTest','ugc_match_Screenshots','due\x20to\x20[#Verb]','physics_apply_torque','GeoZoomLevel','NonPositiveReals','$SuppressInputFormHeads','ń','CosineWindow','.or.','-behavior','containerId','env!','HeadCompose','vk_numpad0','AltitudeMethod','HKEY_CURRENT_CONFIG','swears-noun','NotLeftTriangleEqual','TrackCurrentTime','FoxH','FeatureSetByRelationshipName','amount','formationLeader','ABS','ý','selector-pseudo','[a-zA-Z_]\x5cw*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\x5c*\x5c*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\x5c*\x5c*|\x5c[\x5c][=?]?','noun-past','​','SequenceForm','phy_speed_y','ButtonBoxOptions','∠⃒','Calling\x20LLM\x20model','vk_multiply','ChannelSend','depth\x20first','value|0','emoticons','NumberSigns','⥓','random','ugc_list_VotedUp','ī','show_lives','primitive','DigitalSignature','asset_object','⇂','ParametricPlot3D','setCamUseTi','NotGreaterEqual','0-9/;:$#]*','\x5cb0[0-7]+n?\x5cb','ListPlay','SpotLight','weak','drilling','steam_reset_all_stats_achievements','values','draw_rectangle','countType','buffer_async_group_end','(~{3,})[^~](.|\x5cn)*?\x5c1~*[\x20]*','value-to-value','TreeGraph','SphericalHarmonicY','asset_room','instance_position','simpl','enough','format_currency','descendant-or-self::','AirSoundAttenuation','highlight-menu-starts','subLanguage','LearningRateMultipliers','̑','money','CarlemanLinearize','dispatchHighlightMenuEvent','Restricted','path_flip','playersNumber','layer_tile_get_yscale','ĵ','AsymptoticExpectation','ds_grid_add','configProperties','layer_sprite_destroy','markerBrush','cflowbelow','$ImportFormats','radioChannelSetCallSign','cosh','[(start|starts|stop|stops|begin|begins)]\x20#Gerund','clearGroupIcons','fprintf','stopsignal','Setting','PacletSites','SearchPath','wasm','showCommandingMenu','shape-image-threshold','nonlocal|10','$1oes','ƒ','c_funloc','displayRemoveEventHandler','BlockchainTransactionSign','xs:dateTime',')\x5cs*=>','phoneNumbers','auto','phy_joint_motor_torque','⁡','1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest','MedianDeviation','LinRange','10px','text_range','\x5c]\x5c(','CylinderBox','SystemsModelExtract','IBDesignable','audio_debug','4309949fWgSqv','true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self','?query=','getAsynchronously','KeyExistsQ','AsymptoticGreater','collision_rectangle_list','PolyhedronAngle','canSlingLoad','#Modal\x20[march]','padding-inline-start','$AllowInternet','phys','opendir','#|&','Right|0','WinsorizedMean','playSound3D','WEBSERVICE','AdjacencyMatrix','%%%','mb_any','tly','setEditorMode','getUserMFDText','onTeamSwitch','flex-basis','AudioSpectralTransformation','RemoteAuthorizationCaching','fraction','overflow-y','teamMemberNull','Canonical','Union','1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant','golang','TRUE|0','DirText','effect_create_above','FILE_ATTRIBUTE_TEMPORARY','CreateDataSystemModel','10-seconds','ShortUpArrow','UpSetDelayed','mask-type','VideoCombine','lexicon','precedes','Erosion','DelaunayMesh','won-wide-support','ctrlShown','There','GeoHemisphereBoundary','Medium','and-5-cents','AudioLocalMeasurements','SSHFP','FindChannels','Brainfuck','SetterBox','vk_lalt','getCursorObjectParams','Java','labs','GeoListPlot','destinationDir','achievement_filter_favorites_only','DigitBlockMinimum','ArcCsch','⪈','say','path_rotate','filecontents','room_set_width','GaugeFrameStyle','firstname-noun','∟','Ceiling','#WeekDay\x20#Month\x20#Ordinal','get_save_filename','pointer-events-none','$MachineEpsilon','dateserial','CreateUUID','class\x20module\x20struct','MathematicalFunctionData','Culonglong','winphone_tile_front_image_wide','QuantityArray','AstroReferenceFrame','GraphStyle','we\x20all','wait','LogGammaDistribution','$warning','ChoiceButtons','����','ParallelTable','saveStrings','rest','multimap','ProcessFailedException','triggerArea','HeatInsulationValue','GeoDistanceList','loadBytes','modelY','mouse_check_button_released','(is|was|had|would|should|could|do|does|have|has|can)\x20not','scale_?z?','InhomogeneousPoissonProcess','draw_set_alpha','split_Rabs','onMapSingleClick','c_intmax_t','LeaderSize','!=\x20%\x20%=\x20&\x20&=\x20*\x20**\x20**=\x20*=\x20*map\x20+\x20+=\x20,\x20--build-class--\x20--import--\x20-=\x20.\x20/\x20//\x20//=\x20/=\x20<\x20<<\x20<<=\x20<=\x20=\x20>\x20>=\x20>>\x20>>=\x20@\x20@=\x20^\x20^=\x20abs\x20accumulate\x20all\x20and\x20any\x20ap-compose\x20ap-dotimes\x20ap-each\x20ap-each-while\x20ap-filter\x20ap-first\x20ap-if\x20ap-last\x20ap-map\x20ap-map-when\x20ap-pipe\x20ap-reduce\x20ap-reject\x20apply\x20as->\x20ascii\x20assert\x20assoc\x20bin\x20break\x20butlast\x20callable\x20calling-module-name\x20car\x20case\x20cdr\x20chain\x20chr\x20coll?\x20combinations\x20compile\x20compress\x20cond\x20cons\x20cons?\x20continue\x20count\x20curry\x20cut\x20cycle\x20dec\x20def\x20default-method\x20defclass\x20defmacro\x20defmacro-alias\x20defmacro/g!\x20defmain\x20defmethod\x20defmulti\x20defn\x20defn-alias\x20defnc\x20defnr\x20defreader\x20defseq\x20del\x20delattr\x20delete-route\x20dict-comp\x20dir\x20disassemble\x20dispatch-reader-macro\x20distinct\x20divmod\x20do\x20doto\x20drop\x20drop-last\x20drop-while\x20empty?\x20end-sequence\x20eval\x20eval-and-compile\x20eval-when-compile\x20even?\x20every?\x20except\x20exec\x20filter\x20first\x20flatten\x20float?\x20fn\x20fnc\x20fnr\x20for\x20for*\x20format\x20fraction\x20genexpr\x20gensym\x20get\x20getattr\x20global\x20globals\x20group-by\x20hasattr\x20hash\x20hex\x20id\x20identity\x20if\x20if*\x20if-not\x20if-python2\x20import\x20in\x20inc\x20input\x20instance?\x20integer\x20integer-char?\x20integer?\x20interleave\x20interpose\x20is\x20is-coll\x20is-cons\x20is-empty\x20is-even\x20is-every\x20is-float\x20is-instance\x20is-integer\x20is-integer-char\x20is-iterable\x20is-iterator\x20is-keyword\x20is-neg\x20is-none\x20is-not\x20is-numeric\x20is-odd\x20is-pos\x20is-string\x20is-symbol\x20is-zero\x20isinstance\x20islice\x20issubclass\x20iter\x20iterable?\x20iterate\x20iterator?\x20keyword\x20keyword?\x20lambda\x20last\x20len\x20let\x20lif\x20lif-not\x20list*\x20list-comp\x20locals\x20loop\x20macro-error\x20macroexpand\x20macroexpand-1\x20macroexpand-all\x20map\x20max\x20merge-with\x20method-decorator\x20min\x20multi-decorator\x20multicombinations\x20name\x20neg?\x20next\x20none?\x20nonlocal\x20not\x20not-in\x20not?\x20nth\x20numeric?\x20oct\x20odd?\x20open\x20or\x20ord\x20partition\x20permutations\x20pos?\x20post-route\x20postwalk\x20pow\x20prewalk\x20print\x20product\x20profile/calls\x20profile/cpu\x20put-route\x20quasiquote\x20quote\x20raise\x20range\x20read\x20read-str\x20recursive-replace\x20reduce\x20remove\x20repeat\x20repeatedly\x20repr\x20require\x20rest\x20round\x20route\x20route-with-methods\x20rwm\x20second\x20seq\x20set-comp\x20setattr\x20setv\x20some\x20sorted\x20string\x20string?\x20sum\x20switch\x20symbol?\x20take\x20take-nth\x20take-while\x20tee\x20try\x20unless\x20unquote\x20unquote-splicing\x20vars\x20walk\x20when\x20while\x20with\x20with*\x20with-decorator\x20with-gensyms\x20xi\x20xor\x20yield\x20yield-from\x20zero?\x20zip\x20zip-longest\x20|\x20|=\x20~','SearchRewrite','beforeWords','[object\x20String]','steam_is_user_logged_on','currentNamespace','enum','Noun-&-Noun','vertex_create_buffer_from_buffer_ext','#Value+\x20#Adverb?\x20#Adjective','point_in_circle','𝕆','Nix','TimelinePlot','physics_particle_set_flags','clip-rule','NextCell','PowerSpectralDensity','incdir','AnyPointer','$1ing','ERDEV$','Æ','GeneratorOutputType','border-block-end-style','⤂','GroupStabilizerChain','page-break-inside','lang','date_part_millis','DiscreteWaveletTransform','Tanr','𝔜','PerfectNumberQ','|@\x5c{','ItemSize',')\x08)','secondBest','DSUM','string_byte_length','keyboard_string','WebAudioSearch','scroll-margin','NonConstants','boundingBox','importAllGroups','InversePermutation','steam_file_size','unordered_multiset','dispatchAndUpdate','(#\x5cd+)+','iall','(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand','^not\x20ok','client','unitPos','TimeUsed','developing-a','border-image-slice','rect','removeAllMusicEventHandlers','std_normal','screenY','DimensionReduction','∩','COUNTIF','keepEndPunct','variable','⊓','ComplexF32','GSM_SMS','getOrDefaultCall','DEigensystem','irr','$MachinePrecision','form_rest','getMusicPlayedTime','URLExpand','DefaultNotebook','uptown','error','PermutedDimsArray','nth-last-of-type','(?!.*/\x08(','IgnoreDiacritics','BitShiftLeft','UnexpectedValueException','LexicographicSort','$sync$nor$array','isCopilotEnabled','buildNet','CaptureRunning','InsertLinebreaks','sprite_height','Error\x20retrieving\x20vectorized\x20data\x20or\x20operation\x20timed\x20out.\x20Switching\x20to\x20current\x20page.','Inversion_clear','erlang-repl','DynamicGeoGraphics','positive_infinity','opened','toNumber','#Conjunction','[later]\x20#PresentTense','loadOverlay','SpheroidalPSPrime','hospital','typeset','@[a-z]\x5cw*(?::\x22[^\x22]*\x22)?','date_get_week','ASCII','mouse_buttons','[0-9a-fA-F](_*[0-9a-fA-F])*','███████','date_week_span','had-been-adj','didSet','^\x5cs*\x5c[(?=[\x5cw])','physics_set_restitution','sqrt','ExponentialGeneratingFunction','default-src','teamName','‏','exp_mod_normal','HitMissTransform','debugLog','ConstantPlusLayer','erer','ifmissing','DateListStepPlot','view_yport','Evaluate','currentMagazineTurret','xs:ENTITY','email_fuzzy','#Abbreviation','that','transition','ini_section_exists','shiftKey','Probability','ctrlSetFade','ds_map_secure_load_buffer','TIMEVALUE','AssociationQ','ctrlMapSetPosition','≼','scrollHeight','chown','never','lightcoral','MissingQ','light','$q_remove','TextPacket','CreateArchive','MovingAverage','padding-right','DATE','unimplemented!','menuEnable','\x5c$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\x5c$','physics_particle_get_max_count','animatePylon','AskState','canAddItemToBackpack','isnt','so-adv','gpu_set_tex_min_mip_ext','endinterface','NotSquareSupersetEqual','MorphologicalTransform','ButtonData','Plot','MaxStepFraction','setShadowDistance','cityNameWrite','ds_priority_create','xs:unisignedLong','unsafeBitCast','(the|this|a|an)\x20[#Infinitive]\x20#Adverb?\x20#Verb','pastTense','lookup','notA','SecuredAuthenticationKey','MaxStepSize','DaubechiesWavelet','toLower','rethrow','flagOwner','copy','ior','backpackContainer','ExclusionsStyle','ExternalFunctionName','RemoteFile','wingsForcesRTD','ReverseGraph','⩦','DragAndDrop','RoundUp','FractionalD','noise','\x22[^\x0d\x0a\x22]*\x22','MixedGraphQ','Locate','𝔭','$async$nor$plane','dmod','◹','iota','SortBy','fuzzy','RSolve','constinit','C_NULL','decode_json','FirstCase','derived','#Noun\x20#Actor','loader','abstract\x20alias\x20align\x20asm\x20assert\x20auto\x20body\x20break\x20byte\x20case\x20cast\x20catch\x20class\x20const\x20continue\x20debug\x20default\x20delete\x20deprecated\x20do\x20else\x20enum\x20export\x20extern\x20final\x20finally\x20for\x20foreach\x20foreach_reverse|10\x20goto\x20if\x20immutable\x20import\x20in\x20inout\x20int\x20interface\x20invariant\x20is\x20lazy\x20macro\x20mixin\x20module\x20new\x20nothrow\x20out\x20override\x20package\x20pragma\x20private\x20protected\x20public\x20pure\x20ref\x20return\x20scope\x20shared\x20static\x20struct\x20super\x20switch\x20synchronized\x20template\x20this\x20throw\x20try\x20typedef\x20typeid\x20typeof\x20union\x20unittest\x20version\x20void\x20volatile\x20while\x20with\x20__FILE__\x20__LINE__\x20__gshared|10\x20__thread\x20__traits\x20__DATE__\x20__EOF__\x20__TIME__\x20__TIMESTAMP__\x20__VENDOR__\x20__VERSION__','ads_enable','split_Rmult','popMatrix','𝒾','ŝ','AutoGeneratedPackage','lbCurSel','StringReplaceList','room_instance_clear','TODAY','Pluralize','NULL\x20NA\x20TRUE\x20FALSE\x20Inf\x20NaN\x20NA_integer_|10\x20NA_real_|10\x20NA_character_|10\x20NA_complex_|10','_world','ParallelAxisPlot','Server','school-board','ExponentialMovingAverage','chem','any','DataStructureQ','DataCompression','expm1','gp_start','selectMin','create3DENComposition','CuboidBox','asset_unknown','removeMagazine','inlinable','$MessagePrePrint','%Adj|Noun%\x20%Noun|Verb%','keyb','(a|an|the)\x20[#Verb]\x20of','argument11','Region','presentTense','endprotoent','animation-fill-mode','file_text_read_string','enableDebriefingStats','zlib','HoldRest','LeftRightVector','text-align-last','Slider2DBox',')(\x5c.(','FindDivisions','fb_login_fallback_to_webview','vectorMagnitudeSqr','$GeoLocationCity','get3DENMissionAttribute','(CALL|RUN|POINT_LOGIC|LBL)\x5cb','JoinAcross','InformationDataGrid','can\x27t','|\x5cb(split|return|print|reverse|grep)\x5cb)\x5cs*','CounterBox','\x5c(This','application_surface_is_enabled','scriptengine','atan','ColorCombine','even-better','vlengthx','audio_emitter_get_gain','assert!','ImageTrim','GetKnownFolderPath','Prefix','FixedOrder','$Input','MultiPartToSinglePart','src_P','ValueBoxOptions','ds_map_secure_save_buffer','addMenu','part_particles_create','removeVest','TransferFunctionFactor','$random','object_unwrap','IMAGINARY','PROGRAMFILES32','strncpy','first-letter','⋱','RESTORE','ev_left_button','FRatioDistribution',':-\x5c','tf_linear','plugin','SystemModelPlot','ctrlSetPositionW','valley','src_domain','levee','brb','FindIndependentVertexSet','sprite_save','SquareSubsetEqual','GML','aspect','Theorem','chronological','ChangeUI','⊊','tr_close','SolidFixedCondition','DisplayFunction','getPilotCameraTarget','Unicode','INSTR','loadImage','ugc_query_RankedByTrend','cacti','VertexConnectivity','↣','Cone','#Singular\x20for\x20[%Noun|Gerund%]','NonAssociative','layer_sprite_get_sprite','erf','$TraceOn','ock','ToggleFalse','⪡','council','PerfectNumber','setWaypointSpeed','setopt','GSMPIN','#Modal\x20(#Adverb|not)+?\x20[be]\x20(#Adverb|not)+?\x20#Verb','typename','NotebookConvertSettings',':-*','ev_gesture_drag_end','groupSelectedUnits','ERROR','eleven','display_set_ui_visibility','date_inc_day','SessionTime','CloudPublish','throws','ntile','∇','DisplayString','vwait','TubeBSplineCurveBox','false|true|PI|undef','decimal-separator','HeatOutflowValue','⩝','EscapeRadius','400px','ğ','PropertyValue','ev_global_gesture_double_tap','isObjectHidden','toHTML','Compiled','ctrlHTMLLoaded','dammed-up','Distance','layer_tile_exists','hasReference','FontWeight','border-block-color','lightAttachObject','(want|wants|wanted)','FunctionCompileExportByteArray','ş','findCover','$Assumptions','unordered_set','mailto:?subject=','MandelbrotSetPlot','%[Qwi]?\x5c[','≋','magnitude-and-value','iget','ShowSpecialCharacters','%r\x5c|','isStreamFriendlyUIEnabled','blinkVersion','ctrlSetDisabledColor','Input\x20data\x20should\x20be\x20a\x20String','TimeWarpingDistance','4-mark','TransformationFunctions','LightPurple','polish-male','condition_variable_any','gpu_get_state','variable_global_get','visibility','$ProcessorType','taskDestination','Ζ','call','\x5c|\x5cs*','⨵','row_vector','VertexCosineSimilarity','ExecShellWait','packed','Friday','setTriggerText','\x5cs*\x5c()','(i|we|they)','lazy_t|5','RasterSize','⫽⃥','setMarkerPos','WiFi','≴','enableFatigue','zipnamel','context','returnEnd','neighbours','McLaughlinGroupMcL','RND','min-width','MB_OKCANCEL','vectorLinearConversion','impure','∽̱','Number','AbsArgPlot','Erfc','ace','saint-foo','VertexCoverQ','cshort','Literal','get3DENLinesVisible','setDirection','$AudioOutputDevices','cmake.in','#Determiner\x20[#PhrasalVerb\x20#Particle]','.False.','layer_get_y','hired','currentWeaponTurret','OFF','TouchPosition','inverse','date_day_span','#Possessive\x20[#PastTense]\x20#Noun','nodeValue','GeoGridUnitArea','GetContext','ℬ','$ImageResolution','^[go]\x20to\x20.','$async$and$plane','[(fine|okay|cool|ok)]\x20by\x20me','stopwatch','2-trains','module\x20where','LegendAppearance','#AtMention','HKCU','VertexReplace','SWAP','Tidy_On','LabelStyle','getAimingCoef','𝓏','buldozer_LoadNewRoads','Ĺ','brig','align-self','#Determiner\x20#Year\x20[#Verb]','Raster','Nand','as\x20[#Infinitive]\x20as','daily','#closeButtonHelpModal','image-resolution','^\x5cs*(-|=|!=)(?!#)','Cuboid','╥','\x5cb0(_?[0-7])+r?i?\x5cb','some-kind','ConvexPolyhedronQ','¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ','⨀','wanna','addHeadgear','cooly','FILES','TestResultObject','DiscreteLQRegulatorGains','′','putAt','DefaultTicksStyle','varbinary','SOA','abs\x20and\x20acos\x20asin\x20atan\x20ceil\x20cd\x20chdir\x20clearglobal\x20cosh\x20cos\x20cumprod\x20deff\x20disp\x20error\x20exec\x20execstr\x20exists\x20exp\x20eye\x20gettext\x20floor\x20fprintf\x20fread\x20fsolve\x20imag\x20isdef\x20isempty\x20isinfisnan\x20isvector\x20lasterror\x20length\x20load\x20linspace\x20list\x20listfiles\x20log10\x20log2\x20log\x20max\x20min\x20msprintf\x20mclose\x20mopen\x20ones\x20or\x20pathconvert\x20poly\x20printf\x20prod\x20pwd\x20rand\x20real\x20round\x20sinh\x20sin\x20size\x20gsort\x20sprintf\x20sqrt\x20strcat\x20strcmps\x20tring\x20sum\x20system\x20tanh\x20tan\x20type\x20typename\x20warning\x20zeros\x20matrix','(#TextValue\x20&&\x20#Date)\x20#TextValue','SmoothDensityHistogram','CayleyGraph','protocol','bge','should-smoke','⅔','trunc','$realtobits','round','ReferenceMarkers','','page-break-after','TopologicalSort','IgnorePunctuation','ctrlType','Error\x20counting\x20rows:\x20','NotGreaterFullEqual','READ','SearchResultObject','getMissionPath','È','ColorSeparate','^#Infinitive\x20#Gerund$','FromDigits','analogWriteResolution','ctrlSetPositionY','AutoStyleOptions','counting_semaphore','vectorWorldToModel','Recursive','⪿','even\x20left','TRACE','BartlettHannWindow','ComplexExpand','os_type','Ĝ','cant','symmetric','will\x20not','DigitBlock','RegionErosion','group\x20clone\x20ms\x20master\x20location\x20colocation\x20order\x20fencing_topology\x20rsc_ticket\x20acl_target\x20acl_group\x20user\x20role\x20tag\x20xml','BuildCompiledComponent','previous','Cmd','MinDetect','Distributed','GeodesicPolyhedron','vertebrae','some-type-of','⨁','NestTree','cue-region','EclipseType','DictionaryLookup','TaskObject','Correlation','msgctl','ev_joystick2_button5','device_get_tilt_z','Extended\x20Backus-Naur\x20Form','⌈','[#$=]?0b[01]+','true¦0:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld\x20trade\x20organizati33;leaRped0O;lls\x20fargo,st1;fie2Hinghou2R;l1rner\x20br3U;gree3Jl\x20street\x20journ2Im1E;an\x20halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a\x20tod3Aps;es3Mi1;lev3Fted\x20natio3C;er,s;\x20mobi32aco\x20beRd\x20bOe9gi\x20frida3Lh3im\x20horto3Amz,o1witt3D;shi49y1;ota,s\x20r\x2005;e\x201in\x20lizzy;b3carpen3Jdaily\x20ma3Dguess\x20w2holli0s1w2;mashing\x20pumpki35uprem0;ho;ea1lack\x20eyed\x20pe3Xyr0Q;ch\x20bo3Dtl0;l2n3Qs1xas\x20instrumen1U;co,la\x20m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice\x20gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x\x20pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man\x20empi1Xyal\x201;b1dutch\x20she4;ank;a3d\x201max,vl20;bu1c2Ahot\x20chili\x20peppe2Ylobst2N;ll;ders\x20dige1Ll\x20madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier\x201udenti1D;leagTo2K;nk\x20floyd,zza\x20hut;\x20morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16;\x202ason27da2P;ld\x20navy,pec,range\x20juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre\x20dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1;\x201sweek;kids\x20on\x20the\x20block,york0D;a,c;nd22s2t1;ional\x20aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody\x20blu0t1;ley\x20cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes\x20benz,talli1;ca;id,re;ds;cs\x20milk,tt19z24;a3e1g,ittle\x20caesa1P;\x20ore09novo,x1;is,mark,us;\x201bour\x20party;pres0Dz\x20boy;atv,fc,kk,lm,m1od1O;art;iffy\x20lu0Roy\x20divisi0Jpmorgan1sa;!\x20cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett\x20pack1Vi3o1sbc,yundai;me\x20dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral\x206hq,ithub,l5mb,o2reen\x20d0Ou1;cci,ns\x20n\x20ros0;ldman\x20sachs,o1;dye1g0H;ar;axo\x20smith\x20kli04encoW;electr0Nm1;oto0Z;a5bi,c\x20barcelo4da,edex,i2leetwood\x20m03o1rito\x20l0G;rd,xcY;at,fa,nancial1restoZ;\x20tim0;na;cebook,nnie\x20mae;b0Asa,u3xxon1;\x20m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin\x20donu2po0Zran\x20dur1;an;ts;j,w\x20jon0;a,f\x20lepp12ll,peche\x20mode,r\x20spieg02stiny\x27s\x20chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence\x20clearwater\x20reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a\x20c1o\x20chanQ;ola;re;a,sco1tigroup;!\x20systems;ev2i1;ck\x20fil\x20a,na\x20daily;r1y;on;d2pital\x20o1rls\x20jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston\x201;glo1pizza;be;ng;o2ue\x20c1;roV;ckbuster\x20video,omingda1;le;\x20g1g1;oodriL;cht2e\x20ge0rkshire\x20hathaw1;ay;el;cardi,idu,nana\x20republ3s1xt5y5;f,kin\x20robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser\x20busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland\x20o1sociated\x20E;il;b3g2m1;co;os;ys;\x20compu1be0;te1;rs;ch;c,d,erican3t1;!r1;ak;\x20ex1;pre1;ss;\x205catel2ta1;ir;!\x20lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;!\x20blizz1;ard;demy\x20of\x20scienc0;es;ba','array_insert','isLocalized','count','ctrlSetFontH2','from\x20#Noun\x20to\x20[%Noun|Verb%]','getWeaponCargo','DefaultBoxStyle','pointTo','readMicrophone','endforall','LinearSolve','⪶','get3DENMouseOver','ror','not_a_number','Record','retain','current_weekday','set_global','\x5c*\x5cs','true¦b3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown','⊠','room_add','#Verb\x20(up|down|in|on|for)$','$SystemWordLength','failwithf','heading','BIN2DEC','n\x27t','FrechetDistribution','TabSpacings','layer_background_vtiled','sup','report','em_close','\x27ll','list-style-position','HermiteH','icl','not\x20are','supply1','super','TreeOutline','include_str!','setBitOrder','WeierstrassHalfPeriodW2','triggerAmmo','ArrayReduce','news','VerifyTestAssumptions','INDIRECT','sscanf','firstonly1','DistributionFitTest','ds_list_mark_as_map','object_values','setAutonomous','phy_debug_render_joints','≤','tpl_link_no_ip_fuzzy','#Cardinal\x20#Cardinal','fopen','SUMX2MY2','SpatialPointSelect','⊃','ActivePrediction','⊕','coves','VCHAR','const\x20disable\x20else\x20elseif\x20enable\x20end\x20externalsource\x20if\x20region\x20then','unativeint','COUPDAYSNC','qr_thin_Q','KeySort','(0|[1-9][\x5cd_]*)','#FemaleName','DerivedKey','SurvivalDistribution','InflationAdjust','headgear','StringFreeQ','LandauDistribution','StringCases','gpu_get_tex_filter','❳','FIX','lowcase','⋓','CramerVonMisesTest','window_set_min_width','ChineseRemainder','Twig','#PresentTense\x20#Adverb','tvSetText','TrimmedVariance','RipleyK','growLeft','mb_left','⥙','Molecule','click','physics_get_restitution','the\x20[said]\x20#Noun','UpperLeftArrow','#TextValue\x20#NumericValue','captain-who','SymmetrizedReplacePart','-vsn','Call','current_date','PhoneNumber','settle','attr_writer','[were]\x20#Noun+\x20to\x20#Infinitive','ExpGammaDistribution','clickable_add','silentlog','outline-width','SetAlphaChannel','skeleton_get_bounds','floor','FindMeshDefects','infinitive','$ControlActiveSetting','CreateSearchIndex','em_open','groupStart','ConvexRegionQ','that-adj','SystemModelExamples','⥨','dynamic','include-once','camSetRelPos','diag_enabled','std_ulogic','textWidth','setNameSound','intent','vertex_end','SubtypeName','half-the','gesture_get_flick_speed','RegisterExternalEvaluator','DisjointQ','LocatorBoxOptions','analogReference','Structure','1-phrasal-particle','line-break','suffixPatterns','skeleton_get_num_bounds','true¦dick0gre0ones,records;ens','scalared','class\x20interface\x20namespace','SHELL','SinhIntegral','ImageResolution','sync_accept_on','swears-adjective','Copy','PoissonPDEComponent','camDestroy','part_emitter_burst','nexttime','TableView','HOUR','a\x20[bit]','diag_mergeConfigFile','ConstrainedMax','instance_position_list',')*[\x20]*\x5c|','VisibleCell','lbSetCurSel','ChartElementDataFunction','Connect','SelectionPlaceholder','open-the','string_copy','.gt.','ColorData','CellEpilog','VIEW','even\x20though','[#QuestionWord]\x20#Participle','workers','Cyclotomic','missileTargetPos','specialize','$coverage_save','antennae','get_global','accept','GeoDisplacement','pri','SpaceTexts','Dot','VideoTimeStretch','objStatus','published','vk_numpad7','=⃥','ParticleAcceleratorData','└','safecall','RoundNearest','border-bottom-style','link_open','AssessmentFunction','#Determiner\x20[#Adjective]\x20(#Copula|#Determiner)','RootReduce','compress','physics_particle_group_get_mass','𝔎','Complexes','physics_joint_set_value','getSpeed','eachByte','QuadraticIrrationalQ','TOML,\x20also\x20INI','VertexShape','dispatch_once_t','VideoRecord','token_avaya','GetInstDirError','Unfold','commandMove','⪭︀','DivisorSigma','new-chat','shader_set_uniform_f_array','Ŵ','matrix_build_lookat','ds_list_set','sprite_get_bbox_top','⪽','MatrixFunction','setLightConePars','repeatableread','EulerE','over','un.components','ShowCodeAssist','src_pseudo_letter','@end','public\x20protected\x20internal\x20private\x20constructor','mask-border-slice','authorization','PRINT','^[0-9]+\x20','Ě','rewritecond','debug','^__END__','translate-x-0','tus','Default2DTool','that-leads-to','columns','CDFInformation','\x20out\x20of\x20','playMusic','iap_status_uninitialised',':-(','baked-onions','vertex_format_add_position_3d','GeneratedCell','ActionScript','г','EndOfFile','PLAY','chillin\x27','function\x20fn','concurrent',')[jJ](?=','⋕','#Determiner\x20[#Adjective]\x20#Copula','pas','FormLayoutFunction','ListLineIntegralConvolutionPlot','list-style-type','Spacer','(in|by|before|during|on|until|after|of|within|all)\x20[sat]','FindFit','buffer_load_async','⥤','DownTee','ifdef','ImageEditMode','get3DENSelected','rookies','þ','forward','ReadByteArray','instances','NevilleThetaS','EventEvaluator','vinformat','ds_type_queue','AtMention','num-ordinal-of','LOOKUP','identity_matrix','Hypothesis','sha1_file','RegionPlot3D','tied','iap_status','DrazinInverse','Diamond','wordCount','far16','∐','ArithmeticError','draw_roundrect_color','Erlang\x20REPL','guild','temp','JacobiND','DefaultColor','fifteen','Pick','Export','LeftVector','AdministrativeDivisionData','IntoIterator','Once','MeyerWavelet','$NumberMarks',':^3','BarcodeRecognize','|\x5c.?','caption_score','mouse_button','Gray','AcousticNormalVelocityValue','MorphologicalBinarize','DefaultFieldHintStyle','epoll','SystemDialogInput','addMagazines','matrixTranspose','inout','frame_row','legend','(-?)\x5cb([\x5cd\x27]+(\x5c.[\x5cd\x27]*)?|\x5c.[\x5cd\x27]+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)','𝔱','setpriority','[^\x5c\x5c]`','fem','GreaterSlantEqual','formLeader','even-worse','process','tight','facet','GoldenRatio','CUBESETCOUNT','walk','xlsx','part_emitter_exists','Blacklist','$CreationDate','RecursiveCachingIterator','TaggingRules','unaligned','device_mouse_raw_x','𝔙','mps','⋭','#o[0-7]+(/[0-7]+)?','as\x20(though|if)','buffer_get_surface','cchar','mopen','ShowSelection','steam_get_quota_free','SpellingDictionaries','ds_map_copy','ctrlTextWidth','first_value','Я','IntervalMarkersStyle','SystemModelSimulate','MB_DEFBUTTON2','prepare','Η','TsallisQGaussianDistribution','RegularlySampledQ','params\x20meta\x20operations\x20op\x20rule\x20attributes\x20utilization\x20read\x20write\x20deny\x20defined\x20not_defined\x20in_range\x20date\x20spec\x20in\x20ref\x20reference\x20attribute\x20type\x20xpath\x20version\x20and\x20or\x20lt\x20gt\x20tag\x20lte\x20gte\x20eq\x20ne\x20\x5c\x20number\x20string','endclocking','setGroupIconsSelectable','isClass','federal','get_integer','Rasterize','$Initialization','TBILLYIELD','#Value\x20of\x20a\x20[second]','textureMode','matrix_set','GraphicsGrid','C_intptr_t','ev_user0','CONCAT','preventDefault','all-verb','readSlider','(^using\x5cs+[A-Za-z0-9_\x5c.]+;$|\x5cbfunction\x5cs*[^\x5c(])','switchPIN','readline','cpp','border-image','will-change','IntersectingQ','RemoteRunProcess','bytes!','$DistributedContexts','abstype\x20and\x20andalso\x20as\x20case\x20datatype\x20do\x20else\x20end\x20eqtype\x20exception\x20fn\x20fun\x20functor\x20handle\x20if\x20in\x20include\x20infix\x20infixr\x20let\x20local\x20nonfix\x20of\x20op\x20open\x20orelse\x20raise\x20rec\x20sharing\x20sig\x20signature\x20struct\x20structure\x20then\x20type\x20val\x20with\x20withtype\x20where\x20while','keyup','DBCS','free','Delayed','fastOr','$TargetSystems','the-individual-goals','harmonica','$GeoLocationCountry','topics','commit-to','К','parseCommand','⥬','__bridge_retain','ctrlSetFontH1B','OpenTemporary','Dividers','mapAnimClear','(?=[.\x5cs\x5cn[:,(])','$MaxLicenseSubprocesses','markAsFinishedOnSteam','string_lower','Language','IteratorAggregate','reset','unless','paste','removeWeaponCargo',' ','setMarkerText','DatabaseReference','textSize','strchr','%Person|Verb%\x20#Acronym\x20#ProperNoun','parseLinkLabel','⌟','(&[hH][0-9a-fA-F]{1,4})','getPilotCameraPosition','NegativeSemidefiniteMatrixQ','lazy-ly','leaderboard_type_number','steam_available_languages','QuantityVariableCanonicalUnit','vertex_type_colour','facebook_login','win8_secondarytile_delete','NetStateObject','ug/L','ev_joystick1_right','buffer_string','$monitorh','HeaderSize','RMDir','display_portrait_flipped','𝕂','the\x20#Singular\x20[#Infinitive]\x20#Noun','subMap','pitch','compromises-are-possible','params','DynamicWrapperBox','collect','src_Any','COUPDAYBS','Program','construct','saveTable','stp','prolog','beginRaw','lazy','bessel_yn','#Noun+\x20(public|private)\x20school','phy_debug_render_collision_pairs','InfiniteLine','\x0a\x20\x20','$PreInitialization','steam_current_game_language','cqsqrt','ConvertToPostScript','⊭','VectorPlot','getsockname','soft','DefaultAxesStyle','ReplaceAll','#Verb\x20(him|her|it|us|himself|herself|itself|everything|something)\x20[(up|down)]','font_exists','displayChild','linspaced_int_array','\x22\x20class=\x22','DiskBox','mutating','↼','BREAK','AnomalyDetection','SequenceFold','postMessage','≐','return\x20throw\x20case','ContinuousWaveletData','MersennePrimeExponent','true¦a0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd\x20up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery\x20w06oi0L;gh,h0;!\x200h,m;huh,oh;here\x20nPsk,ut\x20tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;!\x200h;hTmy\x20go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;!\x200;c1moCsmok0;es;ow;!p\x20hip\x20hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat\x20scott,r;l1od0sh;\x20grief,bye;ly;!\x20whiz;ell;e0h,t\x20cetera,ureka,ww,xcuse\x20me;k,p;\x27oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m;\x201h0ka,las,men,rgh,ye;!a,em,h,oy;la','GeometricTransformation3DBox','must-2','view_yview','╨','AstroDistance','layer_tile_destroy','LinearFractionalOptimization','DateString','StandardOceanData','⇽','ArcGIS\x20Arcade','UnitaryMatrixQ','isSingular','PartOfSpeech','null_resettable','∲','\x20\x20\x20\x20\x20Full-Width\x20Skeleton\x20Loader\x20-\x20Dark\x20Theme\x20\x20\x20\x20\x20
\x20
\x20
\x20
\x20
\x20
\x20\x20\x20\x20\x20','markdown','getMarkerType','well','ctrlParentControlsGroup','delay_mode_distributed','PolygonDecomposition','genvar','leadz','exitValue','%','Glaisher','ctCurSel','culonglong','CounterIncrements','≺','ring_simplify','c_teal','Unprotect','(#Copula|better)','ops','icon','_Nullable','depth','grant','basilica','RoundDown','(?:(?:(?:','string','texture_transform','Path','PausedTime','Ş','TagSetDelayed','bar','EqualRows','BaseForm','ctrlSetPosition','scheme','LessEqualThan','zle','backpackCargo','DirichletEta','PaletteNotebook','raise','highland','vk_subtract','CharacteristicFunction','ConsoleMessage','steam_stats_ready','BoundedRegionQ','cxx','isAwake','lia','HumanGrowthData','\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20','%Plural|Verb%\x20%Plural|Verb%','DockedCells','json_table','URLDownloadSubmit','trailing','LaplacianFilter','(does|will|#Modal)\x20that\x20[work]','Simplex','dot_product_normalised','[even]\x20#Verb','shut-the','history','HypercubeGraph','getCargoIndex','exportJIPMessages','ctrlAddEventHandler','BSplineCurve3DBox','Inset3DBox','virtual_key_show','ev_global_gesture_rotating','#Value\x20#Value','CellElementSpacings','VertexDelete','AudioMeasurements','#Ordinal','JoinedCurveBox','balance_pairs','toNegative','\x20For\x20important\x20keywords\x20or\x20phrases\x20with\x20wikipedia\x20pages,\x20you\x20can\x20surround\x20them\x20with\x20double\x20slashes.\x20For\x20example\x20\x27\x5cmachine\x20learning\x5c\x27.\x20At\x20the\x20end\x20of\x20your\x20response,\x20place\x20\x27%%%\x27\x203\x20percent\x20signs,\x20and\x20then\x20write\x202\x20to\x203\x20followup\x20questions\x20that\x20the\x20user\x20might\x20ask\x20to\x20expand\x20their\x20knowledge.','kbv_type_phone','negedge','exactly_once','⨰','LabelingFunction','[object\x20Array]','\x20-inferred\x20by\x20#','^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\x5cs+','Monday','ConfirmAssert','10th-of-a-second','QuietEcho','bm_subtract','phy_col_normal_x','nov','L[^(;:\x0a]*;','ProcessConnection','DeletePermissionsKey','(#Modal|i|they|we|do)\x20not?\x20[like]','MathieuCharacteristicA','HKPD','BarChart3D','varfmt','FresnelF','SPACE$','any-pointer','ConformationMethod','animation-delay','seekdir','IncludeWindowTimes','short','PlaneCurveData','Presposition','CompiledFunction','CircularRealMatrixDistribution','ParentBox','BondCount','κ','FormProtectionMethod','emailButtonHelpModal','is_matrix','fold','ListStepPlot','SplineWeights','xas','PackPaclet','$DefaultLocalKernel','CompiledComponent','diag_resetFSM','ropeEndPosition','$ScheduledTask','renderToken','BenktanderWeibullDistribution','rotateZ','WaringYuleDistribution','saveProfileNamespace','object_get_solid','\x5cbsignal\x5cb','HeunB','delphi','addScore','Get','DistanceTransform','addEditorObject','achievement_event','#Modal','scroll-padding-right','timezone_minute','cr_size_nesw','PrintAction','RegDLL','entertainment','transaction','PrimeZetaP','CHISQ.INV','rotate','$pattern','\x0a\x20\x20\x20\x20','unfunction','Entity','DefaultStyle','mosquitoes','SpatialPointData','ServiceObject','part_emitter_destroy_all','#Possessive\x20#Noun\x20[%Plural|Verb%]$','ConnectedComponents','DiscreteMinLimit','createFont','^[#Infinitive]\x20(is|was)','audio_sound_get_listener_mask','export','having','strncmp','collision_circle_list','audio_falloff_inverse_distance','reduce_sum','People','depdbsl','GraphicsComplex3DBoxOptions','ads_interstitial_display','р','$assertpasson','vestItems','eastern','≏','FullAxes','gpu_set_tex_mip_enable_ext','VertexWeight','Φ','RegionFit','`','*\x0a:::\x0a\x0a\x0a\x0a\x0a\x20\x20','flagSide','setTrafficSpeed','bm_one','[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*','ListSliceDensityPlot3D','MDETERM','only','subtitle','so\x20that','hangCall','event_number','Paste','truncate','isNil','ExpandAll','Master\x20Started\x20Slave\x20Stopped\x20start\x20promote\x20demote\x20stop\x20monitor\x20true\x20false','string_width','<\x5c?(lasso(script)?|=)','CHDIR','filename_ext','findEmptyPositionReady','layer_get_vspeed','⥾','frozenset','ays','$ParentLink','IgnoreCase','setnetent','image_angle','setCruiseControl','ExpandEnvStrings','#comments-end','doGetOut','∺','extends','decide','value-point-value','abort','deleteResources','(#Comparative|#Superlative)','$rewind','lsm','bm_src_color','⪞','urs','Adverbs','VertexQ','current_role','LineBreakWithin','LocalSubmit','fadeEnvironment','IntegerName','GeneratorHistoryLength','unnest','Temporary','[^\x5c\x5c][^\x27]','^[^\x5cn\x22;]+:(?!=)','InverseFourier','steam_get_stat_avg_rate','gp_padl','frame-src','lbSetColorRight','3-4','MarchenkoPasturDistribution','OutputResponse','fa_directory','audio_resume_sound','GSMBand','LegendMarkers','view_wport','MID$','wit-me'];a0_0x461a=function(){return _0x2eb3a2;};return a0_0x461a();} \ No newline at end of file +/*! For license information please see bundle.js.LICENSE.txt */ +(()=>{var e={6991:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(1601),i=n.n(r),a=n(6314),o=n.n(a)()(i());o.push([e.id,"pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em\n}\ncode.hljs {\n padding: 3px 5px\n}\n/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/\n.hljs {\n color: #24292e;\n background: #ffffff\n}\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #d73a49\n}\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #6f42c1\n}\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #005cc5\n}\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #032f62\n}\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #e36209\n}\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #6a737d\n}\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #22863a\n}\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #24292e\n}\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #005cc5;\n font-weight: bold\n}\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #735c0f\n}\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #24292e;\n font-style: italic\n}\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #24292e;\n font-weight: bold\n}\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #22863a;\n background-color: #f0fff4\n}\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #b31d28;\n background-color: #ffeef0\n}\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n \n}",""]);const s=o},813:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(1601),i=n.n(r),a=n(6314),o=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(6734),n.b),d=o()(i());d.push([e.id,"@import url(https://fonts.googleapis.com/css2?family=Nunito:wght@400;800&display=swap);"]);var u=l()(c);d.push([e.id,`.main-body {\n border-radius: 30px;\n /* Adjust height as needed */\n /* height: auto; */\n /* background: #e0e5ec; */\n\n /* margin: 0; */\n margin-left: 40px;\n font-family: Arial, sans-serif;\n height: 300px;\n width: fit-content;\n margin-right: 10px;;\n}\n\n.main-body, .main-body * {\n outline: 1px solid red;\n}\n\n\n.container {\n display: flex;\n gap: 20px; /* Adjust gap as needed */\n flex-direction: column;\n width: 300px;\n}\n\n.panel {\n background: #e0e5ec;\n border-radius: 20px;\n box-shadow: 10px 10px 30px #bebebe, -10px -10px 30px #ffffff;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 10px; /* Reduced padding */\n}\n\n.dial-panel {\n width: 150px; /* Reduced width */\n height: 200px; /* Reduced height */\n}\n\n.button-panel {\n width: 150px; /* Reduced width */\n height: 200px; /* Reduced height */\n}\n\n.dial {\n width: 60px; /* Reduced width */\n height: 60px; /* Reduced height */\n background: #e0e5ec;\n border-radius: 50%;\n box-shadow: inset 5px 5px 10px #bebebe, inset -5px -5px 10px #ffffff;\n position: relative;\n cursor: pointer;\n margin-bottom: 10px; /* Reduced margin */\n}\n\n.dial::after {\n content: '';\n width: 10px; /* Reduced width */\n height: 10px; /* Reduced height */\n background: #ff4757;\n border-radius: 50%;\n position: absolute;\n top: 5px; /* Adjusted position */\n left: 25px; /* Adjusted position */\n box-shadow: 1px 1px 3px rgba(0,0,0,0.2);\n}\n\n.level {\n margin-top: 5px; /* Reduced margin */\n font-size: 1.2em; /* Reduced font size */\n color: #333;\n}\n\n.buttons {\n display: flex;\n flex-direction: column;\n gap: 5px; /* Reduced gap */\n}\n\n.toggle-button {\n width: 80px; /* Reduced width */\n height: 30px; /* Reduced height */\n background: #e0e5ec;\n border: none;\n border-radius: 15px;\n box-shadow: 5px 5px 10px #bebebe, -5px -5px 10px #ffffff;\n font-size: 0.8em; /* Reduced font size */\n color: #333;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.toggle-button.active {\n background: #ff4757;\n color: white;\n box-shadow: inset 5px 5px 10px #bebebe, inset -5px -5px 10px #ffffff;\n}\n\n.large-button-panel {\n width: 180px; /* Reduced width */\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.large-button {\n width: 160px; /* Reduced width */\n height: 40px; /* Reduced height */\n background: #e0e5ec;\n border: none;\n border-radius: 10px;\n box-shadow: 10px 10px 30px #bebebe, -10px -10px 30px #ffffff;\n font-size: 1em; /* Reduced font size */\n color: #333;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.large-button:active {\n background: #ff4757;\n color: white;\n box-shadow: inset 10px 10px 30px #bebebe, inset -10px -10px 30px #ffffff;\n}\n\n.switch-panel {\n width: 60px; /* Reduced width */\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px; /* Reduced margin */\n}\n\n.toggle-switch {\n width: 40px; /* Reduced width */\n height: 20px; /* Reduced height */\n position: relative;\n margin-bottom: 4px; /* Reduced margin */\n}\n\n.switch-input {\n display: none;\n}\n\n.switch-label {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #e0e5ec;\n border-radius: 20px;\n box-shadow: 5px 5px 10px #bebebe, -5px -5px 10px #ffffff;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n\n.switch-label::before {\n content: '';\n position: absolute;\n top: 1px;\n left: 1px;\n width: 18px; /* Adjusted width */\n height: 18px; /* Adjusted height */\n background: #ff4757;\n border-radius: 50%;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform 0.3s ease;\n}\n\n.switch-input:checked + .switch-label::before {\n transform: translateX(18px); /* Adjusted transform distance */\n}\n\n.switch-label-text {\n font-size: 0.8em; /* Reduced font size */\n color: #333;\n text-align: center;\n}\n\n#fade-in-paragraph span {\n opacity: 0;\n animation: fadeIn 1s forwards;\n font-size: 16px; /* Adjusted font size */\n}\n\n@keyframes fadeIn {\n to {\n opacity: 1;\n }\n}\n\n/* SVG */\n.svg-container {\n display: inline-block;\n position: relative;\n width: 100%;\n height: 100%;\n vertical-align: top;\n overflow: hidden;\n background-color: black;\n}\n\n.svg-content {\n margin: auto;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n background-color: black;\n}\n\nhtml {\n box-sizing: border-box;\n}\n\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\n\nbody {\n display: flex;\n justify-content: center;\n align-items: center;\n /* height: 100vh; */\n margin: 0;\n font-family: Arial, sans-serif;\n background-color: #f0f0f0;\n}\n\n.content {\n max-width: 800px;\n padding: 20px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n background-color: #f9f9f9;\n border-radius: 8px;\n text-align: left;\n}\n\nh1,\nh2,\np {\n margin: 0 0 15px;\n}\n\n.node {\n cursor: pointer;\n}\n\n.node circle {\n fill: #999;\n stroke: #555;\n stroke-width: 2px;\n}\n\n.node text {\n font: 12px sans-serif;\n pointer-events: none;\n text-anchor: middle;\n}\n\n.link {\n fill: none;\n stroke: #555;\n stroke-width: 1.5px;\n}\n\n/* QUATRO */\np {\n display: block;\n margin-block-start: 1em;\n margin-block-end: 1em;\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n unicode-bidi: isolate;\n color: #6C757D;\n font-size: 16px;\n font-family: Georgia, 'Times New Roman', Times, serif;\n}\n\n.svg-container {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-bottom: 0px;\n margin: auto;\n /* height: 100%; */\n /* or any specific height */\n}\n\n.soft-ui {\n background: #f0f0f3;\n box-shadow: 9px 9px 16px rgba(0, 0, 0, 0.15), -9px -9px 16px rgba(255, 255, 255, 0.7), inset -2px -2px 4px rgba(255, 0, 0, 0.05);\n border-radius: 50%; /* Make it circular */\n display: flex; /* Use flexbox to center children */\n justify-content: center; /* Center horizontally */\n align-items: center; /* Center vertically */\n width: 30px; /* Set a fixed width */\n height: 30px; /* Set a fixed height to make it a circle */\n}\n\n.size-6 {\n width: 24px; /* Set SVG size */\n height: 24px; /* Set SVG size */\n}\n.soft-ui:hover {\n box-shadow: inset 9px 9px 16px rgba(0, 0, 0, 0.15), inset -9px -9px 16px rgba(255, 255, 255, 0.7), inset -2px -2px 4px rgba(255, 0, 0, 0.1);\n}\n.floating-button-group {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 30px;\n}\n\n\n.ai-graphics-SocratiQ {\n width: 100%;\n display: block;\n overflow: visible; /* Ensure the content is not clipped */\n min-height: 20px; /* Set a minimum height if necessary */\n margin-bottom: 20px; /* Add some margin to ensure space around it */\n}\n\n.ai-graphics-SocratiQ svg {\n width: 100%;\n height: auto;\n display: block; /* Make sure the SVG is block-level */\n}\n\n\n/* THESE ARE QUARTO SPECIFIC */\n\n/* Override font color in Sandstone theme */\n.theme-sandstone {\n color: #A51C30; /* Set font color to #A51C30 */\n}\n\n/* Define the CSS variable for link color */\n:root {\n --link-color: #A51C30;\n}\n\n/* Use the CSS variable for link color */\nbody {\n -webkit-font-smoothing: auto;\n}\n\na {\n color: var(--link-color); /* Use the CSS variable for link color */\n text-decoration: underline;\n -webkit-text-decoration: underline;\n -moz-text-decoration: underline;\n -ms-text-decoration: underline;\n -o-text-decoration: underline;\n}\n\na:hover {\n color: var(--link-color); /* Ensure link color remains the same on hover */\n}\n\na:not([href]):not([class]),\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\n/* Set color and link styles for active items in the sidebar */\ndiv.sidebar-item-container .active,\ndiv.sidebar-item-container .show > .nav-link,\ndiv.sidebar-item-container .sidebar-link > code {\n color: var(--link-color);\n}\n\n/* Set color for TOC links on hover */\n.sidebar nav[role=doc-toc] ul > li > a:hover,\n.sidebar nav[role=doc-toc] ul > li > ul > li > a:hover {\n color: var(--link-color) !important;\n}\n\n/* Set border color and text color for active TOC links */\n.sidebar nav[role=doc-toc] ul > li > a.active,\n.sidebar nav[role=doc-toc] ul > li > ul > li > a.active {\n border-left: 1px solid var(--link-color);\n color: var(--link-color) !important;\n}\n\n/* Set text color for active TOC links on hover */\n.sidebar nav[role=doc-toc] ul > li > a.active:hover,\n.sidebar nav[role=doc-toc] ul > li > ul > li > a.active:hover {\n color: var(--link-color);\n /* Add any additional hover styles here */\n}\n\n.navbar-dark,\n.navbar[data-bs-theme=dark] {\n --bs-navbar-active-color: var(--link-color);\n --bs-navbar-brand-hover-color: var(--link-color);\n --bs-navbar-hover-color: var(--link-color);\n --bs-navbar-hover-color: var(--link-color);\n --bs-navbar-active-color: var(--link-color);\n --bs-navbar-brand-hover-color: var(--link-color);\n}\n\n.navbar .quarto-navbar-tools .quarto-navigation-tool:hover {\n color: var(--link-color);\n}\n\n/* Define the font size root */\n:root {\n font-size: 16px;\n}\n\n/* Set font weight for active items */\ndiv.sidebar-item-container .active {\n font-weight: bold;\n}\n\n/* Set font weight for active TOC links */\n.sidebar nav[role=doc-toc] ul > li > a.active, .sidebar nav[role=doc-toc] ul > li > ul > li > a.active {\n font-weight: bold;\n}\n\n/* Set color and background for active TOC links */\n.sidebar nav[role="doc-toc"] ul > li > a.active {\n color: #A51C30 !important;\n background-color: snow;\n font-weight: bold;\n}\n\n/* Headings ------------------------------------------------------ */\n\n#title-block-header.quarto-title-block.default .quarto-title h1.title {\n margin-bottom: 0.5rem;\n}\n\nh2 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-size: 1.4rem;\n font-weight: 600;\n}\n\nh3 {\n margin-top: 1.5em;\n font-size: 1.2rem;\n font-weight: 500;\n}\n\nh4 {\n margin-top: 1.5em;\n font-size: 1.1rem;\n}\n\nh5 {\n margin-top: 1.5em;\n font-size: 1rem;\n}\n\n/* Code ------------------------------------------------ */\n\ncode a:any-link {\n text-decoration: underline;\n}\n\n/* Mixin for callout styling */\n.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #acacac .3rem;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\n/* Styling for answer callout body */\n.callout-body-container.callout-body {\n padding: 0px 0px 0px 23.04px; /* Top Right Bottom Left */\n}\n\n/* Exercise callout styling */\ndiv.callout-slide.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #8f00ff .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-slide.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "🎫";\n margin-right: 10px;\n}\n\n/* Exercise callout styling */\ndiv.callout-video.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #8ccd00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-video.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "📺";\n margin-right: 10px;\n}\n\n/* Exercise callout styling */\ndiv.callout-lab.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff006d .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-lab.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "👩‍💻";\n margin-right: 10px;\n}\n\n/* Question callout styling */\ndiv.callout-question.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff7d00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-question.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "❓";\n margin-right: 10px;\n}\n\n/* Exercise callout styling */\ndiv.callout-exercise.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff7d00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-exercise.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "📚";\n margin-right: 10px;\n}\n\n/* Answer callout styling */\ndiv.callout-answer.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ffdd00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-answer.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "✅";\n margin-right: 10px;\n}\n\n/* Hint callout styling */\ndiv.callout-hint.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #01befe .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n}\n\ndiv.callout-hint.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "🤔";\n margin-right: 10px;\n}\n\n.callout-toggle::before {\n background-image: url(${u});\n}\n\n/* Examples of how to use the above styles\n\n::: {.callout-slide collapse="false"}\n## Slides\n\nNow would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n:::\n\n::: {.callout-exercise collapse="false"}\n# Exercises\n\nNow would be a great time for you to try out a small computer vision model out of the box.\n:::\n\n::: {.callout-lab collapse="false"}\n## Labs\n\nNow would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n:::\n\n::: {.callout-question collapse="false"}\n## Questions\n\nNow would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n:::\n\n::: {.callout-answer collapse="false"}\n## Answer\n\nNow would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n:::\n\n::: {.callout-hint collapse="false"}\n## Hint\n\nNow would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n:::\n\n*/\n\n\n\n\n/* MODAL */\n /* Modal styles */\n .modal {\n display: block; /* Automatically opens when the page loads */\n position: fixed;\n z-index: 1000;\n right: 20px; /* Position on the right side */\n top: 30%;\n transform: translateY(-50%);\n width: 200px;\n background-color: #f0f0f0;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n border-radius: 10px;\n padding: 5px;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 1px;\n border-bottom: 1px solid #ccc;\n cursor: move; /* Indicate draggable area */\n }\n\n .modal-content {\n padding-top: 10px;\n }\n\n .close-icon {\n cursor: pointer;\n font-size: 1.2rem;\n }\n\n @keyframes fadeIn {\n to {\n opacity: 1;\n }\n }\n\n\n .prompts-for-ai{\n font-size: 1.2rem;\n font-family: Arial, sans-serif;\n }\n\n\n\n/* CONTROL PANEL V2*//* CONTROL PANEL V2 */\n.body_genAI_SocratiQ {\n font-family: 'Courier New', Courier, monospace;\n /* background-color: #f9f9f9; */\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0;\n}\n.card_genAI_SocratiQ {\n background-color: #f5f5f5;\n color: #333333;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n padding: 20px;\n max-width: 90%;\n width: 500px;\n box-sizing: border-box;\n margin-bottom: 50px;\n}\n.card_genAI_SocratiQ h2 {\n font-size: 24px;\n margin-bottom: 16px;\n color: #b22222; /* Reddish Maroon Color */\n}\n.card_genAI_SocratiQ .description_genAI_SocratiQ {\n font-size: 14px;\n color: #666666;\n margin-bottom: 24px;\n}\n.card_genAI_SocratiQ .input-group_genAI_SocratiQ {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.card_genAI_SocratiQ input[type="text"] {\n padding: 10px;\n border: 1px solid #cccccc;\n border-radius: 4px;\n font-size: 14px;\n color: #333333;\n background-color: #ffffff;\n width: 100%;\n box-sizing: border-box;\n}\n.card_genAI_SocratiQ button {\n padding: 10px;\n background-color: #b22222; /* Reddish Maroon Color */\n color: #ffffff;\n border: none;\n border-radius: 4px;\n font-size: 16px;\n cursor: pointer;\n transition: background-color 0.3s ease;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.card_genAI_SocratiQ button:hover {\n background-color: #8b0000; /* Darker Maroon Color */\n}\n.card_genAI_SocratiQ button:disabled {\n background-color: #cccccc;\n cursor: not-allowed;\n}\n.spinner_genAI_SocratiQ {\n border: 4px solid #f3f3f3;\n border-top: 4px solid #b22222;\n border-radius: 50%;\n width: 16px;\n height: 16px;\n animation: spin_genAI_SocratiQ 1s linear infinite;\n}\n\n@keyframes spin_genAI_SocratiQ {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n/* BUTTONS */\n.text-gray-800 {\n color: #1f2937; /* Tailwind's gray-800 color */\n}\n\n.focus\\:outline-none:focus {\n outline: none; /* Removes outline on focus */\n}\n\n.transition-transform {\n transition-property: transform; /* Transitions only the transform property */\n}\n\n.transform {\n transform: scale(1); /* Initial transform state */\n}\n\n.hover\\:scale-105:hover {\n transform: scale(1.05); /* Scales element by 1.05 on hover */\n}\n\n.size-6 {\n width: 1.5rem; /* Assuming Tailwind's size-6 is 1.5rem */\n height: 1.5rem; /* Assuming Tailwind's size-6 is 1.5rem */\n}\n\n.icon-button-SocratiQ {\n border-radius: 50%; /* Ensures the button is circular */\n border: none;\n display: flex; /* Flex to center the icon */\n align-items: center; /* Center vertically */\n justify-content: center; /* Center horizontally */\n width: 3rem; /* Ensures the button is large enough to be circular */\n height: 3rem; /* Ensures the button is large enough to be circular */\n background-color: #fff; /* Optional: background color */\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: adds a subtle shadow */\n padding: 0; /* Remove padding */\n margin: 0; /* Remove margin */\n}\n\n`,""]);const p=d},3765:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(1601),i=n.n(r),a=n(6314),o=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(6734),n.b),d=o()(i());d.push([e.id,"@import url(https://fonts.googleapis.com/css2?family=Nunito:wght@400;800&display=swap);"]);var u=l()(c);d.push([e.id,`/* Override font color in Sandstone theme */\n.theme-sandstone {\n color: #A51C30; /* Set font color to #A51C30 */\n }\n \n /* Define the CSS variable for link color */\n :root {\n --link-color: #A51C30;\n }\n \n /* Use the CSS variable for link color */\n body {\n -webkit-font-smoothing: auto;\n }\n \n a {\n color: var(--link-color); /* Use the CSS variable for link color */\n text-decoration: underline;\n -webkit-text-decoration: underline;\n -moz-text-decoration: underline;\n -ms-text-decoration: underline;\n -o-text-decoration: underline;\n }\n \n a:hover {\n color: var(--link-color); /* Ensure link color remains the same on hover */\n }\n \n a:not([href]):not([class]),\n a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n }\n \n /* Set color and link styles for active items in the sidebar */\n div.sidebar-item-container .active,\n div.sidebar-item-container .show > .nav-link,\n div.sidebar-item-container .sidebar-link > code {\n color: var(--link-color);\n }\n \n /* Set color for TOC links on hover */\n .sidebar nav[role=doc-toc] ul > li > a:hover,\n .sidebar nav[role=doc-toc] ul > li > ul > li > a:hover {\n color: var(--link-color) !important;\n }\n \n /* Set border color and text color for active TOC links */\n .sidebar nav[role=doc-toc] ul > li > a.active,\n .sidebar nav[role=doc-toc] ul > li > ul > li > a.active {\n border-left: 1px solid var(--link-color);\n color: var(--link-color) !important;\n }\n \n /* Set text color for active TOC links on hover */\n .sidebar nav[role=doc-toc] ul > li > a.active:hover,\n .sidebar nav[role=doc-toc] ul > li > ul > li > a.active:hover {\n color: var(--link-color);\n /* Add any additional hover styles here */\n }\n \n .navbar-dark,\n .navbar[data-bs-theme=dark] {\n --bs-navbar-active-color: var(--link-color);\n --bs-navbar-brand-hover-color: var(--link-color);\n --bs-navbar-hover-color: var(--link-color);\n --bs-navbar-hover-color: var(--link-color);\n --bs-navbar-active-color: var(--link-color);\n --bs-navbar-brand-hover-color: var(--link-color);\n }\n \n .navbar .quarto-navbar-tools .quarto-navigation-tool:hover {\n color: var(--link-color);\n }\n \n /* Define the font size root */\n :root {\n font-size: 16px;\n }\n \n /* Set font weight for active items */\n div.sidebar-item-container .active {\n font-weight: bold;\n }\n \n /* Set font weight for active TOC links */\n .sidebar nav[role=doc-toc] ul > li > a.active, .sidebar nav[role=doc-toc] ul > li > ul > li > a.active {\n font-weight: bold;\n }\n \n /* Set color and background for active TOC links */\n .sidebar nav[role="doc-toc"] ul > li > a.active {\n color: #A51C30 !important;\n background-color: snow;\n font-weight: bold;\n }\n \n /* Headings ------------------------------------------------------ */\n \n #title-block-header.quarto-title-block.default .quarto-title h1.title {\n margin-bottom: 0.5rem;\n }\n \n h2 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-size: 1.4rem;\n font-weight: 600;\n }\n \n h3 {\n margin-top: 1.5em;\n font-size: 1.2rem;\n font-weight: 500;\n }\n \n h4 {\n margin-top: 1.5em;\n font-size: 1.1rem;\n }\n \n h5 {\n margin-top: 1.5em;\n font-size: 1rem;\n }\n \n /* Code ------------------------------------------------ */\n \n code a:any-link {\n text-decoration: underline;\n }\n \n /* Mixin for callout styling */\n .callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #acacac .3rem;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n /* Styling for answer callout body */\n .callout-body-container.callout-body {\n padding: 0px 0px 0px 23.04px; /* Top Right Bottom Left */\n }\n \n /* Exercise callout styling */\n div.callout-slide.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #8f00ff .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-slide.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "🎫";\n margin-right: 10px;\n }\n \n /* Exercise callout styling */\n div.callout-video.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #8ccd00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-video.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "📺";\n margin-right: 10px;\n }\n \n /* Exercise callout styling */\n div.callout-lab.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff006d .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-lab.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "👩‍💻";\n margin-right: 10px;\n }\n \n /* Question callout styling */\n div.callout-question.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff7d00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-question.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "❓";\n margin-right: 10px;\n }\n \n /* Exercise callout styling */\n div.callout-exercise.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ff7d00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-exercise.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "📚";\n margin-right: 10px;\n }\n \n /* Answer callout styling */\n div.callout-answer.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #ffdd00 .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-answer.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "✅";\n margin-right: 10px;\n }\n \n /* Hint callout styling */\n div.callout-hint.callout {\n margin-top: 1em;\n margin-bottom: 1em;\n border-radius: .25rem;\n border-left: solid #01befe .3rem !important;\n border-right: solid 0.5px silver;\n border-top: solid 0.5px silver;\n border-bottom: solid 0.5px silver;\n }\n \n div.callout-hint.callout > .callout-header::before {\n font-family: "Font Awesome 5 Free";\n content: "🤔";\n margin-right: 10px;\n }\n \n .callout-toggle::before {\n background-image: url(${u});\n }\n \n /* Examples of how to use the above styles\n \n ::: {.callout-slide collapse="false"}\n ## Slides\n \n Now would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n :::\n \n ::: {.callout-exercise collapse="false"}\n # Exercises\n \n Now would be a great time for you to try out a small computer vision model out of the box.\n :::\n \n ::: {.callout-lab collapse="false"}\n ## Labs\n \n Now would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n :::\n \n ::: {.callout-question collapse="false"}\n ## Questions\n \n Now would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n :::\n \n ::: {.callout-answer collapse="false"}\n ## Answer\n \n Now would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n :::\n \n ::: {.callout-hint collapse="false"}\n ## Hint\n \n Now would be a great time for you to try out a small [Image Classification](../image_classification/image_classification.qmd) computer vision model out of the box.\n :::\n \n */\n `,""]);const p=d},2681:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(1601),i=n.n(r),a=n(6314),o=n.n(a)()(i());o.push([e.id,"\n#text-selection-menu{\n z-index: 9999;\n position: fixed;\n}\n\n\n/* If the icons class is for SVGs within the buttons, adjust their size here */\n.icons {\n width: 24px; /* Adjust SVG size as needed */\n height: 24px; /* Adjust SVG size as needed */\n margin: auto;\n}\n.icon-tiny\n{\n width: 12px; /* Adjust SVG size as needed */\n height: 12px; /* Adjust SVG size as needed */\n}\n\n.icons-left {\n width: 24px; /* Adjust SVG size as needed */\n height: 24px; /* Adjust SVG size as needed */\n}\n/* */\n\n/* Basic table styles */\ntable {\n width: 100%; /* Full-width */\n border-collapse: collapse; /* Collapse borders */\n margin: 20px 0; /* Add some margin around the table */\n font-size: 0.9em; /* Adjust font size */\n font-family: Arial, sans-serif; /* Use a nice font-family */\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); /* Slight shadow around table */\n}\n\n/* Table headers */\nth {\n background-color: #009879; /* A nice green background */\n color: #ffffff; /* White text color */\n text-align: left; /* Align text to the left */\n padding: 12px 15px; /* Add some padding */\n}\n\n/* Table cells */\ntd {\n padding: 12px 15px; /* Add some padding */\n border-bottom: 1px solid #dddddd; /* A light border for each cell */\n}\n\n/* Table row hover effect */\ntr:nth-of-type(even) {\n background-color: #f3f3f3; /* Light grey background for even rows */\n}\n\ntr:hover {\n background-color: #f1f1f1; /* Slightly different grey for hover effect */\n}\n\n/* Responsive tables */\n@media screen and (max-width: 600px) {\n table {\n width: 100%;\n display: block;\n overflow-x: auto; /* Enable horizontal scrolling on small devices */\n }\n}\n\n\n/* iframe */\n\n/* body {\n margin: 0;\n padding: 0;\n} */\n\n/* .iframe-container {\n position: relative;\n background-color: transparent ;\n max-width: 200px;\n border: none;\n max-height: fit-content;\n overflow: hidden;\n border: 2px solid black;\n overflow: visible;\n max-height: 300px; \n overflow-y: auto; \n box-sizing: border-box;\n background-color: #fff;\n\n} */\n\n\n\n#markdown-preview {\n /* min-width: 50px; */\n width: 100%;\n background-color: #fff;\n overflow: visible; /* Let it expand */ /* hide any overflow initially */\n transition: height 0.3s ease-out, opacity 0.3s ease-out; /* Add opacity to the transition *//* animate height changes */\n padding: 4px;\n}\n \n .iframe-container .markdown-preview {\n border: none;\n max-height: 300px; /* set maximum height */\n overflow-y: auto; /* show scrollbars when needed */\n }\n\n \n\n\n\n\n\n.button-row{\n display: flex;\n justify-content: last baseline;\n gap: 10px;\n flex-direction: row;\n background-color: transparent;\n}\n\n#quiz-form {\n margin-bottom: 1rem; /* Tailwind class mb-4 */\n }\n \n #submit-quiz-btn {\n margin-top: 1rem; /* Tailwind class mt-4 */\n width: 100%; /* Tailwind class w-full */\n background-color: black; /* Tailwind class bg-blue-500 */\n color: white; /* Tailwind class text-white */\n padding: 0.5rem 1rem; /* Tailwind classes px-4 py-2 */\n border-radius: 0.25rem; /* Tailwind class rounded */\n transition: background-color 0.2s; /* Tailwind hover state */\n margin-bottom: 10px;\n }\n \n #submit-quiz-btn:hover {\n background-color: #2779bd; /* Tailwind class hover:bg-blue-600 */\n }\n \n .submit-quiz-btn {\n margin-top: 1rem; /* Tailwind class mt-4 */\n width: 100%; /* Tailwind class w-full */\n background-color: black; /* Tailwind class bg-blue-500 */\n color: white; /* Tailwind class text-white */\n padding: 0.5rem 1rem; /* Tailwind classes px-4 py-2 */\n border-radius: 0.25rem; /* Tailwind class rounded */\n transition: background-color 0.2s; /* Tailwind hover state */\n margin-bottom: 10px;\n }\n \n .submit-quiz-btn:hover {\n background-color: #2779bd; /* Tailwind class hover:bg-blue-600 */\n }\n \n\n #quiz form{\n display: block;\n /* flex-direction: column; */\n box-shadow: 0 0 0px 0 rgba(0, 0, 0, 0.1);\n }\n\n #quiz h4 {\n font-size: 16px; /* Change this value to adjust the font size */\n }\n\n #quiz ul {\n list-style-type: none;\n }\n\n #result {\n margin-top: 1rem; /* Tailwind class mt-4 */\n text-align: center; /* Tailwind class text-center */\n }\n \n details > .spoiler-content,\n details > p,\n details > em {\n color: black;\n font-style: normal !important; /* This will override other styles unless they also use !important */\n }\n/* \n .correct-answer::after {\n content: '✅';\n color: green;\n margin-right: 8px;\n} */\n.wrong-answer::after {\n content: '❌';\n color: #f87171;\n margin-left: 8px;\n}\n\n\n/* Style adjustments */\n .icon-button {\n cursor: pointer;\n padding: 10px 20px;\n background-color: #000; /* Make buttons black */\n color: #fff; /* Text color white for contrast */\n border: none;\n border-radius: 5px;\n margin: 20px;\n }\n/* ///////////////////////////////////////////////////////////////////// */\n /* General styles for the slider */\n input[type=range] {\n -webkit-appearance: none; /* Override default CSS styles */\n appearance: none;\n width: 100%; /* Full-width */\n height: 5px; /* Specified height */\n background: black; /* Black track */\n outline: none; /* Remove outline */\n opacity: 0.7; /* Partial transparency */\n transition: opacity .2s; /* Transition for the slider */\n }\n \n/* Initially hide the popup div */\n\n/* Show the popup div when hovering over the button or the popup div itself */\n.hover-btn:hover + .popup-content, .popup-content:hover {\n visibility: visible;\n opacity: 1;\n transition-delay: 0s; /* Make popup appear immediately */\n}\n \n /* Style for Webkit browsers like Chrome, Safari */\n input[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none; /* Override default CSS styles */\n appearance: none;\n width: 25px; /* Width of the thumb */\n height: 25px; /* Height of the thumb */\n background: black; /* Black thumb */\n cursor: pointer; /* Cursor on hover */\n }\n\n /* Style for Mozilla Firefox */\n input[type=range]::-moz-range-thumb {\n width: 25px; /* Width of the thumb */\n height: 25px; /* Height of the thumb */\n background: black; /* Black thumb */\n cursor: pointer; /* Cursor on hover */\n }\n\n /* Style for the focus state */\n input[type=range]:focus {\n outline: none; /* Remove the outline */\n }\n \n /* Additional style for the focus state on Webkit browsers */\n input[type=range]:focus::-webkit-slider-thumb {\n background: #333; /* Darker shade when focused */\n }\n\n /* Additional style for the focus state on Mozilla Firefox */\n input[type=range]:focus::-moz-range-thumb {\n background: #333; /* Darker shade when focused */\n }\n\n /* Show the popup div on hover */\n .hover-btn:hover + .popup-content, .popup-content:hover {\n display: block;\n }\n\n /* Style for the slider */\n .slider {\n width: 100%;\n margin: 20px 0;\n \n }\n\n /* Slider labels */\n .slider-labels {\n display: flex;\n justify-content: space-between;\n }\n\n /* Style adjustments for checkboxes */\n .checkbox-container {\n margin: 10px 0;\n }\n\n /* Making the icons black, assuming SVG icons */\n .icon-button img {\n filter: brightness(0) invert(0); /* A general way to make images black */\n }\n\n .icon-button {\n color: white;\n margin: auto;\n }\n\n .button-and-popup-container {\n position: relative;\n display: inline-block; /* Or any other display type that suits your layout */\n }\n \n .settings-button:hover + .popup-content,\n.popup-content:hover {\n visibility: visible; /* Show the popup */\n opacity: 1;\n transition: opacity 0.5s ease;\n transition-delay: 0s; /* React immediately when hovered */\n}\n\n\n/* Initially hide the modal */\n.modal {\n display: none;\n position: fixed;\n z-index: 100;\n left: 50%;\n top: 50%;\n padding: 10px;\n width: 400px;\n height: fit-content;\n transform: translate(-50%, -50%); /* Center the modal */\n /* overflow: auto; */\n /* background-color: rgba(0, 0, 0, 0.4); */\n}\n\n/* #popover-container {\n position: fixed; \n z-index: 1000; \n top: 50%; \n left: 50%;\n transform: translate(-50%, -50%); \n} */\n\n\n\n#popover-container .overflow-auto {\n max-height: 250px;\n overflow: auto;\n}\n\n/* Modal Content */\n.modal-content {\n background-color: #fefefe;\n margin: 15% auto;\n padding: 20px;\n border: 1px solid #888;\n width: 80%;\n}\n\n/* The Close Button */\n.close {\n color: #aaaaaa;\n float: right;\n font-size: 28px;\n font-weight: bold;\n}\n\n.close:hover,\n.close:focus {\n color: black;\n text-decoration: none;\n cursor: pointer;\n}\n\n\n\n@keyframes fadeInUp {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes fadeOutDown {\n from { opacity: 1; transform: translateY(0); }\n to { opacity: 0; transform: translateY(20px); }\n}\n.animate-fadeInUp {\n animation: fadeInUp 0.5s ease-out forwards;\n}\n.animate-fadeOutDown {\n animation: fadeOutDown 0.5s ease-out forwards;\n}\n\n.rotate-180 {\n transform: rotate(180deg);\n}\n\n/* \n#enter-btn {\n top: -0.3rem; \n} */\n\n\n/* HEADINGS LISTS */\n\n/* Overriding Tailwind styles with higher specificity */\n /* For headers */\n h1 {\n font-size: 2rem;\n font-weight: 700;\n }\n\n h2 {\n font-size: 1.5rem;\n font-weight: 600;\n }\n\n /* ... include your other styles ... */\n\n /* For unordered lists */\n ul {\n list-style-type: disc;\n padding-left: 1.5rem;\n }\n\n /* For ordered lists */\n ol {\n list-style-type: decimal;\n padding-left: 1.5rem;\n }\n\n /* For list items */\n li {\n margin-bottom: 0.5rem;\n }\n\n ul, ol {\n list-style-type: none; /* Removes the default list-style */\n padding: 0; /* Removes the default padding */\n margin: 0; /* Removes the default margin */\n }\n \n\n /* LIGHT MODE // / // DARK MODE */\n \n .dark-mode {\n /* --background-color: #1e1e1e; */\n --text-color: black;\n /* --border-color: #333; */\n --link-color: #4ea0f6;\n /* --secondary-background-color: #2a2a2a; */\n}\n\n.dark-mode {\n /* background-color: var(--background-color); */\n color: var(--text-color);\n}\n\n.dark-mode a {\n color: var(--link-color);\n}\n\n.dark-mode .secondary-background {\n /* background-color: var(--secondary-background-color); */\n}\n\n.dark-mode .bordered {\n /* border: 1px solid var(--border-color); */\n}\n\n\n.light-mode {\n --background-color: #ffffff;\n --text-color: #333333;\n --border-color: #ddd;\n --link-color: #007bff;\n --secondary-background-color: #f9f9f9;\n}\n\n.light-mode {\n background-color: var(--background-color);\n color: var(--text-color);\n}\n\n.light-mode a {\n color: var(--link-color);\n}\n\n.light-mode .secondary-background {\n background-color: var(--secondary-background-color);\n}\n\n.light-mode .bordered {\n border: 1px solid var(--border-color);\n}\n\n\n.icon-mini {\n height: 1rem;\n width: 1rem;\n}\n\n\n/* Add the CSS class for the button */\n.followup-button {\n cursor: pointer; /* Optional: Changes the mouse cursor on hover */\n}\n\n/* Define the hover state for the button */\n.followup-button:hover {\n color: purple; /* Change text color to purple on hover */\n}\n\n\n#menu-toggle:checked~label {\n background-color: #2563eb;\n /* Darker shade for active state */\n}\n\n#menu-toggle:checked ~ label#toggleButton {\ndisplay: none !important;\n}\n/* Permanently hide the input and send button */\n\n\n#toggleButton{\n display: none;\n}\n\n#input-container {\n position: relative;\n}\n\n#copy-container {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n margin-bottom: 8px;\n padding: 8px;\n border-radius: 4px;\n}\n\n.input-wrapper {\n position: relative;\n width: 100%;\n}\n\n#user-input {\n width: 100%;\n padding-right: 2.5rem; /* Space for the send button */\n}\n\n#enter-btn {\n position: absolute;\n /* top: 50%; */\n top: 46%;\n transform: translateY(-50%); /* Center vertically */\n display: flex;\n align-items: center;\n}\n\n\n#copy-container.hidden {\n display: none !important; /* Hide copy-container when no items are present */\n}\n\n\n@keyframes inner-pulse {\n 0% {\n box-shadow: inset 0 0 10px rgba(0, 123, 255, 0.7), inset 0 0 20px rgba(0, 123, 255, 0.5);\n }\n 50% {\n box-shadow: inset 0 0 15px rgba(0, 123, 255, 1), inset 0 0 30px rgba(0, 123, 255, 0.8);\n }\n 100% {\n box-shadow: inset 0 0 10px rgba(0, 123, 255, 0.7), inset 0 0 20px rgba(0, 123, 255, 0.5);\n }\n}\n\n.pulse-effect {\n animation: inner-pulse 1.5s ease-in-out infinite;\n border-radius: 6px;\n}\n\n\n#context-button {\n margin-left: 8px;\n /* context button */\n position: relative;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 8px; \n margin-bottom: 8px;\n /* background-color: white; */\n padding: 4px;\n /* border: 1px solid #ddd; */\n /* box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); */\n}\n\n#context-button:hover {\n background-color: #f5f5f5; /* Change background color on hover */\n border-color: #ccc; /* Change border color on hover */\n}\n\n.big-quiz-btn-disabled {\n background-color: #666 !important;\n color: #ccc !important;\n cursor: not-allowed !important;\n}\n\n.big-quiz-btn-disabled:hover {\n background-color: #666 !important;\n color: #ccc !important;\n}",""]);const s=o},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),t.push(d))}},t}},4417:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},1601:e=>{"use strict";e.exports=function(e){return e[1]}},4385:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),t.hash&&(e+=t.hash),t.maybeNeedQuotes&&/[\t\n\f\r "'=<>`]/.test(e)?'"'.concat(e,'"'):e):e}},4547:(e,t,n)=>{var r=n(6991);r&&r.__esModule&&(r=r.default),e.exports="string"==typeof r?r:r.toString()},1113:(e,t,n)=>{var r=n(813);r&&r.__esModule&&(r=r.default),e.exports="string"==typeof r?r:r.toString()},4729:(e,t,n)=>{var r=n(3765);r&&r.__esModule&&(r=r.default),e.exports="string"==typeof r?r:r.toString()},8125:(e,t,n)=>{var r=n(2681);r&&r.__esModule&&(r=r.default),e.exports="string"==typeof r?r:r.toString()},6734:e=>{"use strict";e.exports='data:image/svg+xml,'},4926:(e,t,n)=>{"use strict";e.exports=n.p+"39f3aba9830f3db84276.js"},8163:(e,t,n)=>{"use strict";e.exports=n.p+"9d6abdeee37c1f44fa3b.js"},8416:e=>{function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{const r=e[n],i=typeof r;"object"!==i&&"function"!==i||Object.isFrozen(r)||t(r)})),e}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const a=e=>!!e.scope;class o{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=r(e)}openNode(e){if(!a(e))return;const t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){a(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const s=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class l{constructor(){this.rootNode=s(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=s({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function d(e){return e?"string"==typeof e?e:e.source:null}function u(e){return g("(?=",e,")")}function p(e){return g("(?:",e,")*")}function m(e){return g("(?:",e,")?")}function g(...e){return e.map((e=>d(e))).join("")}function _(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"}function h(e){return new RegExp(e.toString()+"|").exec("").length-1}const f=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function b(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let r=d(e),i="";for(;r.length>0;){const e=f.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&n++)}return i})).map((e=>`(${e})`)).join(t)}const E="[a-zA-Z]\\w*",S="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",v="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",T="\\b(0b[01]+)",C={begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[C]},A={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[C]},x=function(e,t,n={}){const r=i({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=_("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:g(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},O=x("//","$"),w=x("/\\*","\\*/"),R=x("#","$"),I={scope:"number",begin:y,relevance:0},D={scope:"number",begin:v,relevance:0},k={scope:"number",begin:T,relevance:0},M={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[C,{begin:/\[/,end:/\]/,relevance:0,contains:[C]}]},P={scope:"title",begin:E,relevance:0},L={scope:"title",begin:S,relevance:0},F={begin:"\\.\\s*"+S,relevance:0};var B=Object.freeze({__proto__:null,APOS_STRING_MODE:N,BACKSLASH_ESCAPE:C,BINARY_NUMBER_MODE:k,BINARY_NUMBER_RE:T,COMMENT:x,C_BLOCK_COMMENT_MODE:w,C_LINE_COMMENT_MODE:O,C_NUMBER_MODE:D,C_NUMBER_RE:v,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:R,IDENT_RE:E,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:F,NUMBER_MODE:I,NUMBER_RE:y,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:A,REGEXP_MODE:M,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=g(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},TITLE_MODE:P,UNDERSCORE_IDENT_RE:S,UNDERSCORE_TITLE_MODE:L});function U(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function G(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function z(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=U,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function H(e,t){Array.isArray(e.illegal)&&(e.illegal=_(...e.illegal))}function V(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function q(e,t){void 0===e.relevance&&(e.relevance=1)}const Y=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=g(n.beforeMatch,u(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},j=["of","and","for","in","not","or","if","then","parent","list","value"],$="keyword";function W(e,t,n=$){const r=Object.create(null);return"string"==typeof e?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach((function(n){Object.assign(r,W(e[n],t,n))})),r;function i(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((function(t){const n=t.split("|");r[n[0]]=[e,K(n[0],n[1])]}))}}function K(e,t){return t?Number(t):function(e){return j.includes(e.toLowerCase())}(e)?0:1}const Q={},Z=e=>{console.error(e)},X=(e,...t)=>{console.log(`WARN: ${e}`,...t)},J=(e,t)=>{Q[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Q[`${e}/${t}`]=!0)},ee=new Error;function te(e,t,{key:n}){let r=0;const i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=h(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function ne(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Z("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ee;if("object"!=typeof e.beginScope||null===e.beginScope)throw Z("beginScope must be object"),ee;te(e,e.begin,{key:"beginScope"}),e.begin=b(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Z("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ee;if("object"!=typeof e.endScope||null===e.endScope)throw Z("endScope must be object"),ee;te(e,e.end,{key:"endScope"}),e.end=b(e.end,{joinWith:""})}}(e)}function re(e){function t(t,n){return new RegExp(d(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=h(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(b(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=i(e.classNameAliases||{}),function n(a,o){const s=a;if(a.isCompiled)return s;[G,V,ne,Y].forEach((e=>e(a,o))),e.compilerExtensions.forEach((e=>e(a,o))),a.__beforeBegin=null,[z,H,q].forEach((e=>e(a,o))),a.isCompiled=!0;let l=null;return"object"==typeof a.keywords&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),l=a.keywords.$pattern,delete a.keywords.$pattern),l=l||/\w+/,a.keywords&&(a.keywords=W(a.keywords,e.case_insensitive)),s.keywordPatternRe=t(l,!0),o&&(a.begin||(a.begin=/\B|\b/),s.beginRe=t(s.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(s.endRe=t(s.end)),s.terminatorEnd=d(s.end)||"",a.endsWithParent&&o.terminatorEnd&&(s.terminatorEnd+=(a.end?"|":"")+o.terminatorEnd)),a.illegal&&(s.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return i(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:ie(e)?i(e,{starts:e.starts?i(e.starts):null}):Object.isFrozen(e)?i(e):e}("self"===e?a:e)}))),a.contains.forEach((function(e){n(e,s)})),a.starts&&n(a.starts,o),s.matcher=function(e){const t=new r;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(s),s}(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}class ae extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const oe=r,se=i,le=Symbol("nomatch"),ce=function(e){const r=Object.create(null),i=Object.create(null),a=[];let o=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:c};function h(e){return d.noHighlightRe.test(e)}function f(e,t,n){let r="",i="";"object"==typeof t?(r=e,n=t.ignoreIllegals,i=t.language):(J("10.7.0","highlight(lang, code, ...args) has been deprecated."),J("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,r=t),void 0===n&&(n=!0);const a={code:r,language:i};A("before:highlight",a);const o=a.result?a.result:b(a.language,a.code,n);return o.code=a.code,A("after:highlight",o),o}function b(e,t,i,a){const l=Object.create(null);function c(){if(!A.keywords)return void O.addText(w);let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(w),n="";for(;t;){n+=w.substring(e,t.index);const i=v.case_insensitive?t[0].toLowerCase():t[0],a=(r=i,A.keywords[r]);if(a){const[e,r]=a;if(O.addText(n),n="",l[i]=(l[i]||0)+1,l[i]<=7&&(R+=r),e.startsWith("_"))n+=t[0];else{const n=v.classNameAliases[e]||e;p(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(w)}var r;n+=w.substring(e),O.addText(n)}function u(){null!=A.subLanguage?function(){if(""===w)return;let e=null;if("string"==typeof A.subLanguage){if(!r[A.subLanguage])return void O.addText(w);e=b(A.subLanguage,w,!0,x[A.subLanguage]),x[A.subLanguage]=e._top}else e=E(w,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(R+=e.relevance),O.__addSublanguage(e._emitter,e.language)}():c(),w=""}function p(e,t){""!==e&&(O.startScope(t),O.addText(e),O.endScope())}function m(e,t){let n=1;const r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}const r=v.classNameAliases[e[n]]||e[n],i=t[n];r?p(i,r):(w=i,c(),w=""),n++}}function g(e,t){return e.scope&&"string"==typeof e.scope&&O.openNode(v.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(p(w,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),w=""):e.beginScope._multi&&(m(e.beginScope,t),w="")),A=Object.create(e,{parent:{value:A}}),A}function _(e,t,r){let i=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(e.endRe,r);if(i){if(e["on:end"]){const r=new n(e);e["on:end"](t,r),r.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,t,r)}function h(e){return 0===A.matcher.regexIndex?(w+=e[0],1):(k=!0,0)}function f(e){const n=e[0],r=t.substring(e.index),i=_(A,e,r);if(!i)return le;const a=A;A.endScope&&A.endScope._wrap?(u(),p(n,A.endScope._wrap)):A.endScope&&A.endScope._multi?(u(),m(A.endScope,e)):a.skip?w+=n:(a.returnEnd||a.excludeEnd||(w+=n),u(),a.excludeEnd&&(w=n));do{A.scope&&O.closeNode(),A.skip||A.subLanguage||(R+=A.relevance),A=A.parent}while(A!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:n.length}let S={};function y(r,a){const s=a&&a[0];if(w+=r,null==s)return u(),0;if("begin"===S.type&&"end"===a.type&&S.index===a.index&&""===s){if(w+=t.slice(a.index,a.index+1),!o){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=S.rule,t}return 1}if(S=a,"begin"===a.type)return function(e){const t=e[0],r=e.rule,i=new n(r),a=[r.__beforeBegin,r["on:begin"]];for(const n of a)if(n&&(n(e,i),i.isMatchIgnored))return h(t);return r.skip?w+=t:(r.excludeBegin&&(w+=t),u(),r.returnBegin||r.excludeBegin||(w=t)),g(r,e),r.returnBegin?0:t.length}(a);if("illegal"===a.type&&!i){const e=new Error('Illegal lexeme "'+s+'" for mode "'+(A.scope||"")+'"');throw e.mode=A,e}if("end"===a.type){const e=f(a);if(e!==le)return e}if("illegal"===a.type&&""===s)return 1;if(D>1e5&&D>3*a.index)throw new Error("potential infinite loop, way more iterations than matches");return w+=s,s.length}const v=T(e);if(!v)throw Z(s.replace("{}",e)),new Error('Unknown language: "'+e+'"');const C=re(v);let N="",A=a||C;const x={},O=new d.__emitter(d);!function(){const e=[];for(let t=A;t!==v;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>O.openNode(e)))}();let w="",R=0,I=0,D=0,k=!1;try{if(v.__emitTokens)v.__emitTokens(t,O);else{for(A.matcher.considerAll();;){D++,k?k=!1:A.matcher.considerAll(),A.matcher.lastIndex=I;const e=A.matcher.exec(t);if(!e)break;const n=y(t.substring(I,e.index),e);I=e.index+n}y(t.substring(I))}return O.finalize(),N=O.toHTML(),{language:e,value:N,relevance:R,illegal:!1,_emitter:O,_top:A}}catch(n){if(n.message&&n.message.includes("Illegal"))return{language:e,value:oe(t),illegal:!0,relevance:0,_illegalBy:{message:n.message,index:I,context:t.slice(I-100,I+100),mode:n.mode,resultSoFar:N},_emitter:O};if(o)return{language:e,value:oe(t),illegal:!1,relevance:0,errorRaised:n,_emitter:O,_top:A};throw n}}function E(e,t){t=t||d.languages||Object.keys(r);const n=function(e){const t={value:oe(e),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)};return t._emitter.addText(e),t}(e),i=t.filter(T).filter(N).map((t=>b(t,e,!1)));i.unshift(n);const a=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(T(e.language).supersetOf===t.language)return 1;if(T(t.language).supersetOf===e.language)return-1}return 0})),[o,s]=a,c=o;return c.secondBest=s,c}function S(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=d.languageDetectRe.exec(t);if(n){const t=T(n[1]);return t||(X(s.replace("{}",n[1])),X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||T(e)))}(e);if(h(n))return;if(A("before:highlightElement",{el:e,language:n}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),d.throwUnescapedHTML))throw new ae("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const r=t.textContent,a=n?f(r,{language:n,ignoreIllegals:!0}):E(r);e.innerHTML=a.value,e.dataset.highlighted="yes",function(e,t,n){const r=t&&i[t]||n;e.classList.add("hljs"),e.classList.add(`language-${r}`)}(e,n,a.language),e.result={language:a.language,re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),A("after:highlightElement",{el:e,result:a,text:r})}let y=!1;function v(){"loading"!==document.readyState?document.querySelectorAll(d.cssSelector).forEach(S):y=!0}function T(e){return e=(e||"").toLowerCase(),r[e]||r[i[e]]}function C(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e.toLowerCase()]=t}))}function N(e){const t=T(e);return t&&!t.disableAutodetect}function A(e,t){const n=e;a.forEach((function(e){e[n]&&e[n](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){y&&v()}),!1),Object.assign(e,{highlight:f,highlightAuto:E,highlightAll:v,highlightElement:S,highlightBlock:function(e){return J("10.7.0","highlightBlock will be removed entirely in v12.0"),J("10.7.0","Please use highlightElement now."),S(e)},configure:function(e){d=se(d,e)},initHighlighting:()=>{v(),J("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),J("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(t,n){let i=null;try{i=n(e)}catch(e){if(Z("Language definition for '{}' could not be registered.".replace("{}",t)),!o)throw e;Z(e),i=l}i.name||(i.name=t),r[t]=i,i.rawDefinition=n.bind(null,e),i.aliases&&C(i.aliases,{languageName:t})},unregisterLanguage:function(e){delete r[e];for(const t of Object.keys(i))i[t]===e&&delete i[t]},listLanguages:function(){return Object.keys(r)},getLanguage:T,registerAliases:C,autoDetection:N,inherit:se,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),a.push(e)},removePlugin:function(e){const t=a.indexOf(e);-1!==t&&a.splice(t,1)}}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString="11.9.0",e.regex={concat:g,lookahead:u,either:_,optional:m,anyNumberOfTimes:p};for(const e in B)"object"==typeof B[e]&&t(B[e]);return Object.assign(e,B),e},de=ce({});de.newInstance=()=>ce({}),e.exports=de,de.HighlightJS=de,de.default=de},3223:(e,t,n)=>{var r=n(8416);r.registerLanguage("1c",n(5975)),r.registerLanguage("abnf",n(5360)),r.registerLanguage("accesslog",n(5031)),r.registerLanguage("actionscript",n(9090)),r.registerLanguage("ada",n(3307)),r.registerLanguage("angelscript",n(969)),r.registerLanguage("apache",n(7869)),r.registerLanguage("applescript",n(624)),r.registerLanguage("arcade",n(1799)),r.registerLanguage("arduino",n(4943)),r.registerLanguage("armasm",n(7826)),r.registerLanguage("xml",n(114)),r.registerLanguage("asciidoc",n(4196)),r.registerLanguage("aspectj",n(9993)),r.registerLanguage("autohotkey",n(4438)),r.registerLanguage("autoit",n(2021)),r.registerLanguage("avrasm",n(629)),r.registerLanguage("awk",n(2702)),r.registerLanguage("axapta",n(3940)),r.registerLanguage("bash",n(8641)),r.registerLanguage("basic",n(6545)),r.registerLanguage("bnf",n(6797)),r.registerLanguage("brainfuck",n(1980)),r.registerLanguage("c",n(722)),r.registerLanguage("cal",n(6571)),r.registerLanguage("capnproto",n(9639)),r.registerLanguage("ceylon",n(507)),r.registerLanguage("clean",n(1050)),r.registerLanguage("clojure",n(7579)),r.registerLanguage("clojure-repl",n(9601)),r.registerLanguage("cmake",n(2008)),r.registerLanguage("coffeescript",n(8364)),r.registerLanguage("coq",n(9722)),r.registerLanguage("cos",n(9296)),r.registerLanguage("cpp",n(6570)),r.registerLanguage("crmsh",n(1756)),r.registerLanguage("crystal",n(8661)),r.registerLanguage("csharp",n(7120)),r.registerLanguage("csp",n(6813)),r.registerLanguage("css",n(8612)),r.registerLanguage("d",n(6683)),r.registerLanguage("markdown",n(602)),r.registerLanguage("dart",n(2274)),r.registerLanguage("delphi",n(8443)),r.registerLanguage("diff",n(8596)),r.registerLanguage("django",n(3496)),r.registerLanguage("dns",n(1500)),r.registerLanguage("dockerfile",n(9197)),r.registerLanguage("dos",n(8857)),r.registerLanguage("dsconfig",n(8284)),r.registerLanguage("dts",n(2570)),r.registerLanguage("dust",n(9723)),r.registerLanguage("ebnf",n(8340)),r.registerLanguage("elixir",n(9632)),r.registerLanguage("elm",n(8155)),r.registerLanguage("ruby",n(5015)),r.registerLanguage("erb",n(4356)),r.registerLanguage("erlang-repl",n(7572)),r.registerLanguage("erlang",n(8188)),r.registerLanguage("excel",n(7288)),r.registerLanguage("fix",n(8008)),r.registerLanguage("flix",n(9744)),r.registerLanguage("fortran",n(1189)),r.registerLanguage("fsharp",n(9301)),r.registerLanguage("gams",n(7495)),r.registerLanguage("gauss",n(3770)),r.registerLanguage("gcode",n(8491)),r.registerLanguage("gherkin",n(3297)),r.registerLanguage("glsl",n(3779)),r.registerLanguage("gml",n(1195)),r.registerLanguage("go",n(9777)),r.registerLanguage("golo",n(7240)),r.registerLanguage("gradle",n(1432)),r.registerLanguage("graphql",n(7474)),r.registerLanguage("groovy",n(253)),r.registerLanguage("haml",n(4517)),r.registerLanguage("handlebars",n(3187)),r.registerLanguage("haskell",n(379)),r.registerLanguage("haxe",n(4139)),r.registerLanguage("hsp",n(4008)),r.registerLanguage("http",n(3383)),r.registerLanguage("hy",n(4688)),r.registerLanguage("inform7",n(6969)),r.registerLanguage("ini",n(1533)),r.registerLanguage("irpf90",n(4499)),r.registerLanguage("isbl",n(5665)),r.registerLanguage("java",n(4895)),r.registerLanguage("javascript",n(6035)),r.registerLanguage("jboss-cli",n(5623)),r.registerLanguage("json",n(621)),r.registerLanguage("julia",n(8874)),r.registerLanguage("julia-repl",n(8514)),r.registerLanguage("kotlin",n(2838)),r.registerLanguage("lasso",n(6089)),r.registerLanguage("latex",n(3483)),r.registerLanguage("ldif",n(7172)),r.registerLanguage("leaf",n(6703)),r.registerLanguage("less",n(8330)),r.registerLanguage("lisp",n(2491)),r.registerLanguage("livecodeserver",n(6859)),r.registerLanguage("livescript",n(5914)),r.registerLanguage("llvm",n(6398)),r.registerLanguage("lsl",n(2480)),r.registerLanguage("lua",n(3873)),r.registerLanguage("makefile",n(7667)),r.registerLanguage("mathematica",n(6455)),r.registerLanguage("matlab",n(8722)),r.registerLanguage("maxima",n(8216)),r.registerLanguage("mel",n(9953)),r.registerLanguage("mercury",n(5582)),r.registerLanguage("mipsasm",n(8269)),r.registerLanguage("mizar",n(944)),r.registerLanguage("perl",n(946)),r.registerLanguage("mojolicious",n(6078)),r.registerLanguage("monkey",n(7850)),r.registerLanguage("moonscript",n(9241)),r.registerLanguage("n1ql",n(9827)),r.registerLanguage("nestedtext",n(4683)),r.registerLanguage("nginx",n(7259)),r.registerLanguage("nim",n(1747)),r.registerLanguage("nix",n(320)),r.registerLanguage("node-repl",n(6673)),r.registerLanguage("nsis",n(140)),r.registerLanguage("objectivec",n(943)),r.registerLanguage("ocaml",n(1791)),r.registerLanguage("openscad",n(6672)),r.registerLanguage("oxygene",n(3028)),r.registerLanguage("parser3",n(9163)),r.registerLanguage("pf",n(8837)),r.registerLanguage("pgsql",n(6876)),r.registerLanguage("php",n(3111)),r.registerLanguage("php-template",n(1726)),r.registerLanguage("plaintext",n(9040)),r.registerLanguage("pony",n(6903)),r.registerLanguage("powershell",n(3982)),r.registerLanguage("processing",n(9200)),r.registerLanguage("profile",n(5206)),r.registerLanguage("prolog",n(6168)),r.registerLanguage("properties",n(7646)),r.registerLanguage("protobuf",n(7300)),r.registerLanguage("puppet",n(8545)),r.registerLanguage("purebasic",n(7995)),r.registerLanguage("python",n(1117)),r.registerLanguage("python-repl",n(283)),r.registerLanguage("q",n(9384)),r.registerLanguage("qml",n(9797)),r.registerLanguage("r",n(8129)),r.registerLanguage("reasonml",n(6446)),r.registerLanguage("rib",n(6238)),r.registerLanguage("roboconf",n(2925)),r.registerLanguage("routeros",n(5980)),r.registerLanguage("rsl",n(6650)),r.registerLanguage("ruleslanguage",n(5690)),r.registerLanguage("rust",n(5409)),r.registerLanguage("sas",n(7754)),r.registerLanguage("scala",n(3449)),r.registerLanguage("scheme",n(6244)),r.registerLanguage("scilab",n(395)),r.registerLanguage("scss",n(1611)),r.registerLanguage("shell",n(8813)),r.registerLanguage("smali",n(4119)),r.registerLanguage("smalltalk",n(78)),r.registerLanguage("sml",n(6959)),r.registerLanguage("sqf",n(6325)),r.registerLanguage("sql",n(315)),r.registerLanguage("stan",n(7891)),r.registerLanguage("stata",n(2546)),r.registerLanguage("step21",n(8128)),r.registerLanguage("stylus",n(5733)),r.registerLanguage("subunit",n(6475)),r.registerLanguage("swift",n(1496)),r.registerLanguage("taggerscript",n(150)),r.registerLanguage("yaml",n(5588)),r.registerLanguage("tap",n(8942)),r.registerLanguage("tcl",n(1272)),r.registerLanguage("thrift",n(9888)),r.registerLanguage("tp",n(987)),r.registerLanguage("twig",n(222)),r.registerLanguage("typescript",n(8640)),r.registerLanguage("vala",n(9461)),r.registerLanguage("vbnet",n(8928)),r.registerLanguage("vbscript",n(1200)),r.registerLanguage("vbscript-html",n(164)),r.registerLanguage("verilog",n(8249)),r.registerLanguage("vhdl",n(8721)),r.registerLanguage("vim",n(8907)),r.registerLanguage("wasm",n(9351)),r.registerLanguage("wren",n(5069)),r.registerLanguage("x86asm",n(7514)),r.registerLanguage("xl",n(8675)),r.registerLanguage("xquery",n(3051)),r.registerLanguage("zephir",n(8745)),r.HighlightJS=r,r.default=r,e.exports=r},5975:e=>{e.exports=function(e){const t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",r="null истина ложь неопределено",i=e.inherit(e.NUMBER_MODE),a={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},o={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},s=e.inherit(e.C_LINE_COMMENT_MODE);return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:r},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[s]},{className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:r},contains:[i,a,o]},s]},e.inherit(e.TITLE_MODE,{begin:t})]},s,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},i,a,o]}}},5360:e=>{e.exports=function(e){const t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},5031:e=>{e.exports=function(e){const t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}},9090:e=>{e.exports=function(e){const t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,r=t.concat(n,t.concat("(\\.",n,")*")),i={className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}},3307:e=>{e.exports=function(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,r="\\b("+t+"#\\w+(\\.\\w+)?#("+n+")?|"+t+"(\\."+t+")?("+n+")?)",i="[A-Za-z](_?[A-Za-z0-9.])*",a="[]\\{\\}%#'\"",o=e.COMMENT("--","$"),s={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:a,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:i,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[o,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:r,relevance:0},{className:"symbol",begin:"'"+i},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:a},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[o,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:a},s,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:a}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:a},s]}}},969:e=>{e.exports=function(e){const t={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},r={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[r],n.contains=[r],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}},7869:e=>{e.exports=function(e){const t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},624:e=>{e.exports=function(e){const t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),r={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},i=e.COMMENT(/--/,/$/),a=[i,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",i]}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,r]},...a],illegal:/\/\/|->|=>|\[\[/}}},1799:e=>{e.exports=function(e){const t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},r={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},a={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,r,e.REGEXP_MODE];const o=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},r,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:o}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}},4943:e=>{e.exports=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},u=t.optional(i)+e.IDENT_RE+"\\s*\\(",p={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},m={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},g=[m,c,o,n,e.C_BLOCK_COMMENT_MODE,l,s],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:p,contains:g.concat([{begin:/\(/,end:/\)/,keywords:p,contains:g.concat(["self"]),relevance:0}]),relevance:0},h={className:"function",begin:"("+a+"[\\*&\\s]+)+"+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:p,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:p,relevance:0},{begin:u,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,s,l,o,{begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,s,l,o]}]},o,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:p,illegal:"",keywords:p,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:p},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}},7826:e=>{e.exports=function(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}},4196:e=>{e.exports=function(e){const t=e.regex,n=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:t.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],r=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:t.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...n,...r,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}},9993:e=>{e.exports=function(e){const t=e.regex,n=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],r=["get","set","args","call"];return{name:"AspectJ",keywords:n,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:n.concat(r),excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:n,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:n.concat(r),relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:n,excludeEnd:!0,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}},4438:e=>{e.exports=function(e){const t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}},2021:e=>{e.exports=function(e){const t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},r={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},i={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",literal:"True False And Null Not Or Default"},contains:[t,n,r,i,{className:"meta",begin:"#",end:"$",keywords:{keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"]},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{keyword:"include"},end:"$",contains:[r,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},r,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{className:"params",begin:"\\(",end:"\\)",contains:[n,r,i]}]}]}}},629:e=>{e.exports=function(e){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+e.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}},2702:e=>{e.exports=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},3940:e=>{e.exports=function(e){const t=e.UNDERSCORE_IDENT_RE,n={keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},r={variants:[{match:[/(class|interface)\s+/,t,/\s+(extends|implements)\s+/,t]},{match:[/class\s+/,t]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:n};return{name:"X++",aliases:["x++"],keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},r]}}},8641:e=>{e.exports=function(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(o);const s={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},l=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[l,e.SHEBANG(),c,s,e.HASH_COMMENT_MODE,a,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},n]}}},6545:e=>{e.exports=function(e){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}},6797:e=>{e.exports=function(e){return{name:"Backus–Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}}},1980:e=>{e.exports=function(e){const t={className:"literal",begin:/[+-]+/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT(/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{contains:[{match:/[ ]+[^\[\]\.,\+\-<> \r\n]/,relevance:0}],returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?=\+\+|--)/,contains:[t]},t]}}},722:e=>{e.exports=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},u=t.optional(i)+e.IDENT_RE+"\\s*\\(",p={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[c,o,n,e.C_BLOCK_COMMENT_MODE,l,s],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:p,contains:m.concat([{begin:/\(/,end:/\)/,keywords:p,contains:m.concat(["self"]),relevance:0}]),relevance:0},_={begin:"("+a+"[\\*&\\s]+)+"+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:p,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:p,relevance:0},{begin:u,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,s,l,o,{begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,s,l,o]}]},o,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:p,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,strings:s,keywords:p}}}},6571:e=>{e.exports=function(e){const t=e.regex,n=["div","mod","in","and","or","not","xor","asserterror","begin","case","do","downto","else","end","exit","for","local","if","of","repeat","then","to","until","while","with","var"],r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},a={className:"string",begin:/(#\d+)+/},o={match:[/procedure/,/\s+/,/[a-zA-Z_][\w@]*/,/\s*/],scope:{1:"keyword",3:"title.function"},contains:[{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[i,a,e.NUMBER_MODE]},...r]},s={match:[/OBJECT/,/\s+/,t.either("Table","Form","Report","Dataport","Codeunit","XMLport","MenuSuite","Page","Query"),/\s+/,/\d+/,/\s+(?=[^\s])/,/.*/,/$/],relevance:3,scope:{1:"keyword",3:"type",5:"number",7:"title"}};return{name:"C/AL",case_insensitive:!0,keywords:{keyword:n,literal:"false true"},illegal:/\/\*/,contains:[{match:/[\w]+(?=\=)/,scope:"attribute",relevance:0},i,a,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{className:"string",begin:'"',end:'"'},e.NUMBER_MODE,s,o]}}},9639:e=>{e.exports=function(e){const t={variants:[{match:[/(struct|enum|interface)/,/\s+/,e.IDENT_RE]},{match:[/extends/,/\s*\(/,e.IDENT_RE,/\s*\)/]}],scope:{1:"keyword",3:"title.class"}};return{name:"Cap’n Proto",aliases:["capnp"],keywords:{keyword:["struct","enum","interface","union","group","import","using","const","annotation","extends","in","of","on","as","with","from","fixed"],type:["Void","Bool","Int8","Int16","Int32","Int64","UInt8","UInt16","UInt32","UInt64","Float32","Float64","Text","Data","AnyPointer","AnyStruct","Capability","List"],literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},t]}}},507:e=>{e.exports=function(e){const t=["assembly","module","package","import","alias","class","interface","object","given","value","assign","void","function","new","of","extends","satisfies","abstracts","in","out","return","break","continue","throw","assert","dynamic","if","else","switch","case","for","while","try","catch","finally","then","let","this","outer","super","is","exists","nonempty"],n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},r=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=r,{name:"Ceylon",keywords:{keyword:t.concat(["shared","abstract","formal","default","actual","variable","late","native","deprecated","final","sealed","annotation","suppressWarnings","small"]),meta:["doc","by","license","see","throws","tagged"]},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(r)}}},1050:e=>{e.exports=function(e){return{name:"Clean",aliases:["icl","dcl"],keywords:{keyword:["if","let","in","with","where","case","of","class","instance","otherwise","implementation","definition","system","module","from","import","qualified","as","special","code","inline","foreign","export","ccall","stdcall","generic","derive","infix","infixl","infixr"],built_in:"Int Real Char Bool",literal:"True False"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]}}},9601:e=>{e.exports=function(e){return{name:"Clojure REPL",contains:[{className:"meta.prompt",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}},7579:e=>{e.exports=function(e){const t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",r="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",i={$pattern:n,built_in:r+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},a={begin:n,relevance:0},o={scope:"number",relevance:0,variants:[{match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{match:/[-+]?([1-9][0-9]*|0)N?/}]},s={scope:"character",variants:[{match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/,relevance:0}]},l={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),d={scope:"punctuation",match:/,/,relevance:0},u=e.COMMENT(";","$",{relevance:0}),p={className:"literal",begin:/\b(true|false|nil)\b/},m={begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},g={className:"symbol",begin:"[:]{1,2}"+n},_={begin:"\\(",end:"\\)"},h={endsWithParent:!0,relevance:0},f={keywords:i,className:"name",begin:n,relevance:0,starts:h},b=[d,_,s,l,c,u,g,m,o,p,a],E={beginKeywords:r,keywords:{$pattern:n,keyword:r},end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n,relevance:0,excludeEnd:!0,endsParent:!0}].concat(b)};return _.contains=[E,f,h],h.contains=b,m.contains=b,{name:"Clojure",aliases:["clj","edn"],illegal:/\S/,contains:[d,_,s,l,c,u,g,m,o,p]}}},2008:e=>{e.exports=function(e){return{name:"CMake",aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined"},contains:[{className:"variable",begin:/\$\{/,end:/\}/},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},8364:e=>{const t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],r=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);e.exports=function(e){const i={keyword:t.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((a=["var","const","let","function","static"],e=>!a.includes(e))),literal:n.concat(["yes","no","on","off"]),built_in:r.concat(["npm","print"])};var a;const o="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/\}/,keywords:i},l=[e.BINARY_NUMBER_MODE,e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,e.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+o},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=l;const c=e.inherit(e.TITLE_MODE,{begin:o}),d="(\\(.*\\)\\s*)?\\B[-=]>",u={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(l)}]},p={variants:[{match:[/class\s+/,o,/\s+extends\s+/,o]},{match:[/class\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:i};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:i,illegal:/\/\*/,contains:[...l,e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+o+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,contains:[c,u]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:d,end:"[-=]>",returnBegin:!0,contains:[u]}]},p,{begin:o+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}]}}},9722:e=>{e.exports=function(e){return{name:"Coq",keywords:{keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"],built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}}},9296:e=>{e.exports=function(e){return{name:"Caché Object Script",case_insensitive:!0,aliases:["cls"],keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in",begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in",begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword",begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*\s*>/,subLanguage:"xml"}]}}},6570:e=>{e.exports=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},u=t.optional(i)+e.IDENT_RE+"\\s*\\(",p={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},m={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},g=[m,c,o,n,e.C_BLOCK_COMMENT_MODE,l,s],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:p,contains:g.concat([{begin:/\(/,end:/\)/,keywords:p,contains:g.concat(["self"]),relevance:0}]),relevance:0},h={className:"function",begin:"("+a+"[\\*&\\s]+)+"+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:p,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:p,relevance:0},{begin:u,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,s,l,o,{begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,s,l,o]}]},o,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:p,illegal:"",keywords:p,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:p},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}},1756:e=>{e.exports=function(e){const t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml";return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string",literal:"Master Started Slave Stopped start promote demote stop monitor true false"},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:"primitive rsc_template",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal",begin:"[-]?(infinity|inf)",relevance:0},{className:"attr",begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}},8661:e=>{e.exports=function(e){const t="(_?[ui](8|16|32|64|128))?",n="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",r="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",i={$pattern:"[a-zA-Z_]\\w*[!?=]?",keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},a={className:"subst",begin:/#\{/,end:/\}/,keywords:i},o={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:i};function s(e,t){const n=[{begin:e,end:t}];return n[0].contains=n,n}const l={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:s("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:s("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:s(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:s("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},c={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:s("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:s("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:s(/\{/,/\}/)},{begin:"%q<",end:">",contains:s("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},d={begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},u=[o,l,c,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"%r\\(",end:"\\)",contains:s("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:s("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:s(/\{/,/\}/)},{begin:"%r<",end:">",contains:s("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},d,{className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:r}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:r})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:r})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})],relevance:2},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[l,{begin:n}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+t}],relevance:0}];return a.contains=u,o.contains=u.slice(1),{name:"Crystal",aliases:["cr"],keywords:i,contains:u}}},7120:e=>{e.exports=function(e){const t={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},n=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),r={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},a=e.inherit(i,{illegal:/\n/}),o={className:"subst",begin:/\{/,end:/\}/,keywords:t},s=e.inherit(o,{illegal:/\n/}),l={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,s]},c={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]},d=e.inherit(c,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]});o.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE],s.contains=[d,l,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const u={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p={begin:"<",end:">",contains:[{beginKeywords:"in out"},n]},m=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",g={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},u,r,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},n,p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+m+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,p],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[u,r,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},g]}}},6813:e=>{e.exports=function(e){return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"]},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}},8612:e=>{const t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],a=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();e.exports=function(e){const o=e.regex,s=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[s.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+r.join("|")+")"},{begin:":(:)?("+i.join("|")+")"}]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+a.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[s.BLOCK_COMMENT,s.HEXCOLOR,s.IMPORTANT,s.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},s.FUNCTION_DISPATCH]},{begin:o.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:n.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,s.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+t.join("|")+")\\b"}]}}},6683:e=>{e.exports=function(e){const t={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},n="(0|[1-9][\\d_]*)",r="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",i="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",a="([eE][+-]?"+r+")",o="("+n+"|0[bB][01_]+|0[xX]"+i+")",s="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",l={className:"number",begin:"\\b"+o+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},c={className:"number",begin:"\\b(((0[xX]("+i+"\\."+i+"|\\.?"+i+")[pP][+-]?"+r+")|("+r+"(\\.\\d*|"+a+")|\\d+\\."+r+"|\\."+n+a+"?))([fF]|L|i|[fF]i|Li)?|"+o+"(i|[fF]i|Li))",relevance:0},d={className:"string",begin:"'("+s+"|.)",end:"'",illegal:"."},u={className:"string",begin:'"',contains:[{begin:s,relevance:0}],end:'"[cwd]?'},p=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},u,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},c,l,d,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}},2274:e=>{e.exports=function(e){const t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},n={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},r={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]}]};n.contains=[e.C_NUMBER_MODE,r];const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],a=i.map((e=>`${e}?`));return{name:"Dart",keywords:{keyword:["abstract","as","assert","async","await","base","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","interface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","sealed","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","when","while","with","yield"],built_in:i.concat(a).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/},contains:[r,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}},8443:e=>{e.exports=function(e){const t=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},a={className:"string",begin:/(#\d+)+/},o={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},s={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[i,a,r].concat(n)},r].concat(n)};return{name:"Delphi",aliases:["dpr","dfm","pas","pascal"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[i,a,e.NUMBER_MODE,{className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{begin:"&[0-7]+"},{begin:"%[01]+"}]},o,s,r].concat(n)}}},8596:e=>{e.exports=function(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}},3496:e=>{e.exports=function(e){const t={begin:/\|[A-Za-z]+:?/,keywords:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django",aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:{name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[t]}]}}},1500:e=>{e.exports=function(e){return{name:"DNS Zone",aliases:["bind","zone"],keywords:["IN","A","AAAA","AFSDB","APL","CAA","CDNSKEY","CDS","CERT","CNAME","DHCID","DLV","DNAME","DNSKEY","DS","HIP","IPSECKEY","KEY","KX","LOC","MX","NAPTR","NS","NSEC","NSEC3","NSEC3PARAM","PTR","RRSIG","RP","SIG","SOA","SRV","SSHFP","TA","TKEY","TLSA","TSIG","TXT"],contains:[e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"},e.inherit(e.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]}}},9197:e=>{e.exports=function(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{e.exports=function(e){const t=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10});return{name:"Batch file (DOS)",aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:["if","else","goto","for","in","do","call","exit","not","exist","errorlevel","defined","equ","neq","lss","leq","gtr","geq"],built_in:["prn","nul","lpt3","lpt2","lpt1","con","com4","com3","com2","com1","aux","shift","cd","dir","echo","setlocal","endlocal","set","pause","copy","append","assoc","at","attrib","break","cacls","cd","chcp","chdir","chkdsk","chkntfs","cls","cmd","color","comp","compact","convert","date","dir","diskcomp","diskcopy","doskey","erase","fs","find","findstr","format","ftype","graftabl","help","keyb","label","md","mkdir","mode","more","move","path","pause","print","popd","pushd","promt","rd","recover","rem","rename","replace","restore","rmdir","shift","sort","start","subst","time","title","tree","type","ver","verify","vol","ping","net","ipconfig","taskkill","xcopy","ren","del"]},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{className:"number",begin:"\\b\\d+",relevance:0},t]}}},8284:e=>{e.exports=function(e){return{keywords:"dsconfig",contains:[{className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/,excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in",begin:/--(\w+)/,end:/\s/,excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{className:"string",begin:/'/,end:/'/},{className:"string",begin:/[\w\-?]+:\w+/,end:/\W/,relevance:0},{className:"string",begin:/\w+(\-\w+)*/,end:/(?=\W)/,relevance:0},e.HASH_COMMENT_MODE]}}},2570:e=>{e.exports=function(e){const t={className:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},n={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"},contains:[e.inherit(t,{className:"string"}),{className:"string",begin:"<",end:">",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i={className:"variable",begin:/&[a-z\d_]*\b/};return{name:"Device Tree",contains:[{className:"title.class",begin:/^\/(?=\s*\{)/,relevance:10},i,{className:"keyword",begin:"/[a-z][a-z\\d-]*/"},{className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},{className:"title.class",begin:/[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,relevance:.2},{relevance:0,match:[/[a-z][a-z-,]+/,/\s*/,/=/],scope:{1:"attr",3:"operator"}},{match:/[a-z][a-z-,]+(?=;)/,relevance:0,scope:"attr"},{className:"params",relevance:0,begin:"<",end:">",contains:[n,i]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,r,{scope:"punctuation",relevance:0,match:/\};|[;{}]/},{begin:e.IDENT_RE+"::",keywords:""}]}}},9723:e=>{e.exports=function(e){return{name:"Dust",aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/,end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}]}}},8340:e=>{e.exports=function(e){const t=e.COMMENT(/\(\*/,/\*\)/);return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[t,{className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/,end:/[.;]/,contains:[t,{className:"meta",begin:/\?.*\?/},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]}]}}},9632:e=>{e.exports=function(e){const t=e.regex,n="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",r={$pattern:n,keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],literal:["false","nil","true"]},i={className:"subst",begin:/#\{/,end:/\}/,keywords:r},a={match:/\\[\s\S]/,scope:"char.escape",relevance:0},o="[/|([{<\"']",s=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}],l=e=>({scope:"char.escape",begin:t.concat(/\\/,e),relevance:0}),c={className:"string",begin:"~[a-z](?="+o+")",contains:s.map((t=>e.inherit(t,{contains:[l(t.end),a,i]})))},d={className:"string",begin:"~[A-Z](?="+o+")",contains:s.map((t=>e.inherit(t,{contains:[l(t.end)]})))},u={className:"regex",variants:[{begin:"~r(?="+o+")",contains:s.map((n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[l(n.end),a,i]})))},{begin:"~R(?="+o+")",contains:s.map((n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[l(n.end)]})))}]},p={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},m={className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},g=e.inherit(m,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),_=[p,u,d,c,e.HASH_COMMENT_MODE,g,m,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[p,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":(?!:)",relevance:0},{className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}];return i.contains=_,{name:"Elixir",aliases:["ex","exs"],keywords:r,contains:_}}},8155:e=>{e.exports=function(e){const t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]};return{name:"Elm",keywords:["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"],contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[n,r,{begin:/\{/,end:/\}/,contains:r.contains},t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},{className:"string",begin:"'\\\\?.",end:"'",illegal:"."},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}],illegal:/;/}}},4356:e=>{e.exports=function(e){return{name:"ERB",subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}},7572:e=>{e.exports=function(e){const t=e.regex;return{name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta.prompt",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:t.concat(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}},8188:e=>{e.exports=function(e){const t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",r={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),a={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},o={begin:"fun\\s+"+t+"/\\d+"},s={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:/\{/,end:/\}/,relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},p={beginKeywords:"fun receive if try case",end:"end",keywords:r};p.contains=[i,o,e.inherit(e.APOS_STRING_MODE,{className:""}),p,s,e.QUOTE_STRING_MODE,a,l,c,d,u];const m=[i,o,p,s,e.QUOTE_STRING_MODE,a,l,c,d,u];s.contains[1].contains=m,l.contains=m,u.contains[1].contains=m;const g={className:"params",begin:"\\(",end:"\\)",contains:m};return{name:"Erlang",aliases:["erl"],keywords:r,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[g,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:r,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map((e=>`${e}|1.5`)).join(" ")},contains:[g]},a,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}},7288:e=>{e.exports=function(e){return{name:"Excel formulae",aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/,built_in:["ABS","ACCRINT","ACCRINTM","ACOS","ACOSH","ACOT","ACOTH","AGGREGATE","ADDRESS","AMORDEGRC","AMORLINC","AND","ARABIC","AREAS","ASC","ASIN","ASINH","ATAN","ATAN2","ATANH","AVEDEV","AVERAGE","AVERAGEA","AVERAGEIF","AVERAGEIFS","BAHTTEXT","BASE","BESSELI","BESSELJ","BESSELK","BESSELY","BETADIST","BETA.DIST","BETAINV","BETA.INV","BIN2DEC","BIN2HEX","BIN2OCT","BINOMDIST","BINOM.DIST","BINOM.DIST.RANGE","BINOM.INV","BITAND","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","CALL","CEILING","CEILING.MATH","CEILING.PRECISE","CELL","CHAR","CHIDIST","CHIINV","CHITEST","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","CHISQ.TEST","CHOOSE","CLEAN","CODE","COLUMN","COLUMNS","COMBIN","COMBINA","COMPLEX","CONCAT","CONCATENATE","CONFIDENCE","CONFIDENCE.NORM","CONFIDENCE.T","CONVERT","CORREL","COS","COSH","COT","COTH","COUNT","COUNTA","COUNTBLANK","COUNTIF","COUNTIFS","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","COVAR","COVARIANCE.P","COVARIANCE.S","CRITBINOM","CSC","CSCH","CUBEKPIMEMBER","CUBEMEMBER","CUBEMEMBERPROPERTY","CUBERANKEDMEMBER","CUBESET","CUBESETCOUNT","CUBEVALUE","CUMIPMT","CUMPRINC","DATE","DATEDIF","DATEVALUE","DAVERAGE","DAY","DAYS","DAYS360","DB","DBCS","DCOUNT","DCOUNTA","DDB","DEC2BIN","DEC2HEX","DEC2OCT","DECIMAL","DEGREES","DELTA","DEVSQ","DGET","DISC","DMAX","DMIN","DOLLAR","DOLLARDE","DOLLARFR","DPRODUCT","DSTDEV","DSTDEVP","DSUM","DURATION","DVAR","DVARP","EDATE","EFFECT","ENCODEURL","EOMONTH","ERF","ERF.PRECISE","ERFC","ERFC.PRECISE","ERROR.TYPE","EUROCONVERT","EVEN","EXACT","EXP","EXPON.DIST","EXPONDIST","FACT","FACTDOUBLE","FALSE|0","F.DIST","FDIST","F.DIST.RT","FILTERXML","FIND","FINDB","F.INV","F.INV.RT","FINV","FISHER","FISHERINV","FIXED","FLOOR","FLOOR.MATH","FLOOR.PRECISE","FORECAST","FORECAST.ETS","FORECAST.ETS.CONFINT","FORECAST.ETS.SEASONALITY","FORECAST.ETS.STAT","FORECAST.LINEAR","FORMULATEXT","FREQUENCY","F.TEST","FTEST","FV","FVSCHEDULE","GAMMA","GAMMA.DIST","GAMMADIST","GAMMA.INV","GAMMAINV","GAMMALN","GAMMALN.PRECISE","GAUSS","GCD","GEOMEAN","GESTEP","GETPIVOTDATA","GROWTH","HARMEAN","HEX2BIN","HEX2DEC","HEX2OCT","HLOOKUP","HOUR","HYPERLINK","HYPGEOM.DIST","HYPGEOMDIST","IF","IFERROR","IFNA","IFS","IMABS","IMAGINARY","IMARGUMENT","IMCONJUGATE","IMCOS","IMCOSH","IMCOT","IMCSC","IMCSCH","IMDIV","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMREAL","IMSEC","IMSECH","IMSIN","IMSINH","IMSQRT","IMSUB","IMSUM","IMTAN","INDEX","INDIRECT","INFO","INT","INTERCEPT","INTRATE","IPMT","IRR","ISBLANK","ISERR","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","ISO.CEILING","ISOWEEKNUM","ISPMT","JIS","KURT","LARGE","LCM","LEFT","LEFTB","LEN","LENB","LINEST","LN","LOG","LOG10","LOGEST","LOGINV","LOGNORM.DIST","LOGNORMDIST","LOGNORM.INV","LOOKUP","LOWER","MATCH","MAX","MAXA","MAXIFS","MDETERM","MDURATION","MEDIAN","MID","MIDBs","MIN","MINIFS","MINA","MINUTE","MINVERSE","MIRR","MMULT","MOD","MODE","MODE.MULT","MODE.SNGL","MONTH","MROUND","MULTINOMIAL","MUNIT","N","NA","NEGBINOM.DIST","NEGBINOMDIST","NETWORKDAYS","NETWORKDAYS.INTL","NOMINAL","NORM.DIST","NORMDIST","NORMINV","NORM.INV","NORM.S.DIST","NORMSDIST","NORM.S.INV","NORMSINV","NOT","NOW","NPER","NPV","NUMBERVALUE","OCT2BIN","OCT2DEC","OCT2HEX","ODD","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","OFFSET","OR","PDURATION","PEARSON","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILE","PERCENTRANK.EXC","PERCENTRANK.INC","PERCENTRANK","PERMUT","PERMUTATIONA","PHI","PHONETIC","PI","PMT","POISSON.DIST","POISSON","POWER","PPMT","PRICE","PRICEDISC","PRICEMAT","PROB","PRODUCT","PROPER","PV","QUARTILE","QUARTILE.EXC","QUARTILE.INC","QUOTIENT","RADIANS","RAND","RANDBETWEEN","RANK.AVG","RANK.EQ","RANK","RATE","RECEIVED","REGISTER.ID","REPLACE","REPLACEB","REPT","RIGHT","RIGHTB","ROMAN","ROUND","ROUNDDOWN","ROUNDUP","ROW","ROWS","RRI","RSQ","RTD","SEARCH","SEARCHB","SEC","SECH","SECOND","SERIESSUM","SHEET","SHEETS","SIGN","SIN","SINH","SKEW","SKEW.P","SLN","SLOPE","SMALL","SQL.REQUEST","SQRT","SQRTPI","STANDARDIZE","STDEV","STDEV.P","STDEV.S","STDEVA","STDEVP","STDEVPA","STEYX","SUBSTITUTE","SUBTOTAL","SUM","SUMIF","SUMIFS","SUMPRODUCT","SUMSQ","SUMX2MY2","SUMX2PY2","SUMXMY2","SWITCH","SYD","T","TAN","TANH","TBILLEQ","TBILLPRICE","TBILLYIELD","T.DIST","T.DIST.2T","T.DIST.RT","TDIST","TEXT","TEXTJOIN","TIME","TIMEVALUE","T.INV","T.INV.2T","TINV","TODAY","TRANSPOSE","TREND","TRIM","TRIMMEAN","TRUE|0","TRUNC","T.TEST","TTEST","TYPE","UNICHAR","UNICODE","UPPER","VALUE","VAR","VAR.P","VAR.S","VARA","VARP","VARPA","VDB","VLOOKUP","WEBSERVICE","WEEKDAY","WEEKNUM","WEIBULL","WEIBULL.DIST","WORKDAY","WORKDAY.INTL","XIRR","XNPV","XOR","YEAR","YEARFRAC","YIELD","YIELDDISC","YIELDMAT","Z.TEST","ZTEST"]},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0,relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0},e.BACKSLASH_ESCAPE,e.QUOTE_STRING_MODE,{className:"number",begin:e.NUMBER_RE+"(%)?",relevance:0},e.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0,excludeEnd:!0,illegal:/\n/})]}}},8008:e=>{e.exports=function(e){return{name:"FIX",contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}},9744:e=>{e.exports=function(e){return{name:"Flix",keywords:{keyword:["case","class","def","else","enum","if","impl","import","in","lat","rel","index","let","match","namespace","switch","type","yield","with"],literal:["true","false"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"',end:'"'}]},{className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[{className:"title",relevance:0,begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]},e.C_NUMBER_MODE]}}},1189:e=>{e.exports=function(e){const t=e.regex,n={variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0}),e.COMMENT("^C$","$",{relevance:0})]},r=/(_[a-z_\d]+)?/,i=/([de][+-]?\d+)?/,a={className:"number",variants:[{begin:t.concat(/\b\d+/,/\.(\d*)/,i,r)},{begin:t.concat(/\b\d+/,i,r)},{begin:t.concat(/\.\d+/,i,r)}],relevance:0},o={className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]};return{name:"Fortran",case_insensitive:!0,aliases:["f90","f95"],keywords:{keyword:["kind","do","concurrent","local","shared","while","private","call","intrinsic","where","elsewhere","type","endtype","endmodule","endselect","endinterface","end","enddo","endif","if","forall","endforall","only","contains","default","return","stop","then","block","endblock","endassociate","public","subroutine|10","function","program",".and.",".or.",".not.",".le.",".eq.",".ge.",".gt.",".lt.","goto","save","else","use","module","select","case","access","blank","direct","exist","file","fmt","form","formatted","iostat","name","named","nextrec","number","opened","rec","recl","sequential","status","unformatted","unit","continue","format","pause","cycle","exit","c_null_char","c_alert","c_backspace","c_form_feed","flush","wait","decimal","round","iomsg","synchronous","nopass","non_overridable","pass","protected","volatile","abstract","extends","import","non_intrinsic","value","deferred","generic","final","enumerator","class","associate","bind","enum","c_int","c_short","c_long","c_long_long","c_signed_char","c_size_t","c_int8_t","c_int16_t","c_int32_t","c_int64_t","c_int_least8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_fast8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_intmax_t","C_intptr_t","c_float","c_double","c_long_double","c_float_complex","c_double_complex","c_long_double_complex","c_bool","c_char","c_null_ptr","c_null_funptr","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","iso_c_binding","c_loc","c_funloc","c_associated","c_f_pointer","c_ptr","c_funptr","iso_fortran_env","character_storage_size","error_unit","file_storage_size","input_unit","iostat_end","iostat_eor","numeric_storage_size","output_unit","c_f_procpointer","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","newunit","contiguous","recursive","pad","position","action","delim","readwrite","eor","advance","nml","interface","procedure","namelist","include","sequence","elemental","pure","impure","integer","real","character","complex","logical","codimension","dimension","allocatable|10","parameter","external","implicit|10","none","double","precision","assign","intent","optional","pointer","target","in","out","common","equivalence","data"],literal:[".False.",".True."],built_in:["alog","alog10","amax0","amax1","amin0","amin1","amod","cabs","ccos","cexp","clog","csin","csqrt","dabs","dacos","dasin","datan","datan2","dcos","dcosh","ddim","dexp","dint","dlog","dlog10","dmax1","dmin1","dmod","dnint","dsign","dsin","dsinh","dsqrt","dtan","dtanh","float","iabs","idim","idint","idnint","ifix","isign","max0","max1","min0","min1","sngl","algama","cdabs","cdcos","cdexp","cdlog","cdsin","cdsqrt","cqabs","cqcos","cqexp","cqlog","cqsin","cqsqrt","dcmplx","dconjg","derf","derfc","dfloat","dgamma","dimag","dlgama","iqint","qabs","qacos","qasin","qatan","qatan2","qcmplx","qconjg","qcos","qcosh","qdim","qerf","qerfc","qexp","qgamma","qimag","qlgama","qlog","qlog10","qmax1","qmin1","qmod","qnint","qsign","qsin","qsinh","qsqrt","qtan","qtanh","abs","acos","aimag","aint","anint","asin","atan","atan2","char","cmplx","conjg","cos","cosh","exp","ichar","index","int","log","log10","max","min","nint","sign","sin","sinh","sqrt","tan","tanh","print","write","dim","lge","lgt","lle","llt","mod","nullify","allocate","deallocate","adjustl","adjustr","all","allocated","any","associated","bit_size","btest","ceiling","count","cshift","date_and_time","digits","dot_product","eoshift","epsilon","exponent","floor","fraction","huge","iand","ibclr","ibits","ibset","ieor","ior","ishft","ishftc","lbound","len_trim","matmul","maxexponent","maxloc","maxval","merge","minexponent","minloc","minval","modulo","mvbits","nearest","pack","present","product","radix","random_number","random_seed","range","repeat","reshape","rrspacing","scale","scan","selected_int_kind","selected_real_kind","set_exponent","shape","size","spacing","spread","sum","system_clock","tiny","transpose","trim","ubound","unpack","verify","achar","iachar","transfer","dble","entry","dprod","cpu_time","command_argument_count","get_command","get_command_argument","get_environment_variable","is_iostat_end","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","is_iostat_eor","move_alloc","new_line","selected_char_kind","same_type_as","extends_type_of","acosh","asinh","atanh","bessel_j0","bessel_j1","bessel_jn","bessel_y0","bessel_y1","bessel_yn","erf","erfc","erfc_scaled","gamma","log_gamma","hypot","norm2","atomic_define","atomic_ref","execute_command_line","leadz","trailz","storage_size","merge_bits","bge","bgt","ble","blt","dshiftl","dshiftr","findloc","iall","iany","iparity","image_index","lcobound","ucobound","maskl","maskr","num_images","parity","popcnt","poppar","shifta","shiftl","shiftr","this_image","sync","change","team","co_broadcast","co_max","co_min","co_sum","co_reduce"]},illegal:/\/\*/,contains:[{className:"string",relevance:0,variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o,{begin:/^C\s*=(?!=)/,relevance:0},n,a]}}},9301:e=>{function t(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){return e?"string"==typeof e?e:e.source:null}function r(e){return i("(?=",e,")")}function i(...e){return e.map((e=>n(e))).join("")}function a(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>n(e))).join("|")+")"}e.exports=function(e){const n={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},o=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],s={keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},l={variants:[e.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),e.C_LINE_COMMENT_MODE]},c={scope:"variable",begin:/``/,end:/``/},d=/\B('|\^)/,u={scope:"symbol",variants:[{match:i(d,/``.*?``/)},{match:i(d,e.UNDERSCORE_IDENT_RE)}],relevance:0},p=function({includeEqual:e}){let n;n=e?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?";const o=i("[",...Array.from(n).map(t),"]"),s=a(o,/\./),l=i(s,r(s)),c=a(i(l,s,"*"),i(o,"+"));return{scope:"operator",match:a(c,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},m=p({includeEqual:!0}),g=p({includeEqual:!1}),_=function(t,n){return{begin:i(t,r(i(/\s*/,a(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:n,end:r(a(/\n/,/=/)),relevance:0,keywords:e.inherit(s,{type:o}),contains:[l,u,e.inherit(c,{scope:null}),g]}},h=_(/:/,"operator"),f=_(/\bof\b/,"keyword"),b={begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword",4:"title.class"},end:r(/\(|=|$/),keywords:s,contains:[l,e.inherit(c,{scope:null}),u,{scope:"operator",match:/<|>/},h]},E={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},S={begin:[/^\s*/,i(/#/,a("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/],beginScope:{2:"meta"},end:r(/\s|$/)},y={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},v={scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},T={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},e.BACKSLASH_ESCAPE]},C={scope:"string",begin:/"""/,end:/"""/,relevance:2},N={scope:"subst",begin:/\{/,end:/\}/,keywords:s},A={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},e.BACKSLASH_ESCAPE,N]},x={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,N]},O={scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},N],relevance:2},w={scope:"string",match:i(/'/,a(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return N.contains=[x,A,T,v,w,n,l,c,h,E,S,y,u,m],{name:"F#",aliases:["fs","f#"],keywords:s,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[n,{variants:[O,x,A,C,T,v,w]},l,c,b,{scope:"meta",begin:/\[\]/,relevance:2,contains:[c,C,T,v,w,y]},f,h,E,S,y,u,m]}}},7495:e=>{e.exports=function(e){const t=e.regex,n={keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes",literal:"eps inf na",built_in:"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart"},r={className:"symbol",variants:[{begin:/=[lgenxc]=/},{begin:/\$/}]},i={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},a={begin:"/",end:"/",keywords:n,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},o=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,s={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[i,a,{className:"comment",begin:t.concat(o,t.anyNumberOfTimes(t.concat(/[ ]+/,o))),relevance:0}]};return{name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:n,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"keyword",begin:"^\\$[a-z0-9]+"}]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations",end:";",contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,a,s]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[s]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0,contains:[{className:"title",begin:/^[a-z0-9_]+/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},r]},e.C_NUMBER_MODE,r]}}},3770:e=>{e.exports=function(e){const t={keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv",built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim",literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR"},n=e.COMMENT("@","@"),r={className:"meta",begin:"#",end:"$",keywords:{keyword:"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"},contains:[{className:"string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n]},i={begin:/\bstruct\s+/,end:/\s/,keywords:"struct",contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},a=[{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\.\.\./},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,i]}],o={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},s=function(t,r,i){const s=e.inherit({className:"function",beginKeywords:t,end:r,excludeEnd:!0,contains:[].concat(a)},i||{});return s.contains.push(o),s.contains.push(e.C_NUMBER_MODE),s.contains.push(e.C_BLOCK_COMMENT_MODE),s.contains.push(n),s},l={className:"built_in",begin:"\\b("+t.built_in.split(" ").join("|")+")\\b"},c={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0},d={begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,keywords:t,relevance:0,contains:[{beginKeywords:t.keyword},l,{className:"built_in",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},u={begin:/\(/,end:/\)/,relevance:0,keywords:{built_in:t.built_in,literal:t.literal},contains:[e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,l,d,c,"self"]};return d.contains.push(u),{name:"GAUSS",aliases:["gss"],case_insensitive:!0,keywords:t,illegal:/(\{[%#]|[%#]\}| <- )/,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,c,r,{className:"keyword",begin:/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/},s("proc keyword",";"),s("fn","="),{beginKeywords:"for threadfor",end:/;/,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE,n,u]},{variants:[{begin:e.UNDERSCORE_IDENT_RE+"\\."+e.UNDERSCORE_IDENT_RE},{begin:e.UNDERSCORE_IDENT_RE+"\\s*="}],relevance:0},d,i]}}},8491:e=>{e.exports=function(e){const t=e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE}),n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),t,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[t],end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},contains:[{className:"meta",begin:"%"},{className:"meta",begin:"([O])([0-9]+)"}].concat(n)}}},3297:e=>{e.exports=function(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}},3779:e=>{e.exports=function(e){return{name:"GLSL",keywords:{keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly",type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",literal:"true false"},illegal:'"',contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"}]}}},1195:e=>{e.exports=function(e){return{name:"GML",case_insensitive:!1,keywords:{keyword:["#endregion","#macro","#region","and","begin","break","case","constructor","continue","default","delete","div","do","else","end","enum","exit","for","function","globalvar","if","mod","not","or","repeat","return","switch","then","until","var","while","with","xor"],built_in:["abs","achievement_available","achievement_event","achievement_get_challenges","achievement_get_info","achievement_get_pic","achievement_increment","achievement_load_friends","achievement_load_leaderboard","achievement_load_progress","achievement_login","achievement_login_status","achievement_logout","achievement_post","achievement_post_score","achievement_reset","achievement_send_challenge","achievement_show","achievement_show_achievements","achievement_show_challenge_notifications","achievement_show_leaderboards","action_inherited","action_kill_object","ads_disable","ads_enable","ads_engagement_active","ads_engagement_available","ads_engagement_launch","ads_event","ads_event_preload","ads_get_display_height","ads_get_display_width","ads_interstitial_available","ads_interstitial_display","ads_move","ads_set_reward_callback","ads_setup","alarm_get","alarm_set","analytics_event","analytics_event_ext","angle_difference","ansi_char","application_get_position","application_surface_draw_enable","application_surface_enable","application_surface_is_enabled","arccos","arcsin","arctan","arctan2","array_copy","array_create","array_delete","array_equals","array_height_2d","array_insert","array_length","array_length_1d","array_length_2d","array_pop","array_push","array_resize","array_sort","asset_get_index","asset_get_type","audio_channel_num","audio_create_buffer_sound","audio_create_play_queue","audio_create_stream","audio_create_sync_group","audio_debug","audio_destroy_stream","audio_destroy_sync_group","audio_emitter_create","audio_emitter_exists","audio_emitter_falloff","audio_emitter_free","audio_emitter_gain","audio_emitter_get_gain","audio_emitter_get_listener_mask","audio_emitter_get_pitch","audio_emitter_get_vx","audio_emitter_get_vy","audio_emitter_get_vz","audio_emitter_get_x","audio_emitter_get_y","audio_emitter_get_z","audio_emitter_pitch","audio_emitter_position","audio_emitter_set_listener_mask","audio_emitter_velocity","audio_exists","audio_falloff_set_model","audio_free_buffer_sound","audio_free_play_queue","audio_get_listener_count","audio_get_listener_info","audio_get_listener_mask","audio_get_master_gain","audio_get_name","audio_get_recorder_count","audio_get_recorder_info","audio_get_type","audio_group_is_loaded","audio_group_load","audio_group_load_progress","audio_group_name","audio_group_set_gain","audio_group_stop_all","audio_group_unload","audio_is_paused","audio_is_playing","audio_listener_get_data","audio_listener_orientation","audio_listener_position","audio_listener_set_orientation","audio_listener_set_position","audio_listener_set_velocity","audio_listener_velocity","audio_master_gain","audio_music_gain","audio_music_is_playing","audio_pause_all","audio_pause_music","audio_pause_sound","audio_pause_sync_group","audio_play_in_sync_group","audio_play_music","audio_play_sound","audio_play_sound_at","audio_play_sound_on","audio_queue_sound","audio_resume_all","audio_resume_music","audio_resume_sound","audio_resume_sync_group","audio_set_listener_mask","audio_set_master_gain","audio_sound_gain","audio_sound_get_gain","audio_sound_get_listener_mask","audio_sound_get_pitch","audio_sound_get_track_position","audio_sound_length","audio_sound_pitch","audio_sound_set_listener_mask","audio_sound_set_track_position","audio_start_recording","audio_start_sync_group","audio_stop_all","audio_stop_music","audio_stop_recording","audio_stop_sound","audio_stop_sync_group","audio_sync_group_debug","audio_sync_group_get_track_pos","audio_sync_group_is_playing","audio_system","background_get_height","background_get_width","base64_decode","base64_encode","browser_input_capture","buffer_async_group_begin","buffer_async_group_end","buffer_async_group_option","buffer_base64_decode","buffer_base64_decode_ext","buffer_base64_encode","buffer_copy","buffer_copy_from_vertex_buffer","buffer_create","buffer_create_from_vertex_buffer","buffer_create_from_vertex_buffer_ext","buffer_delete","buffer_exists","buffer_fill","buffer_get_address","buffer_get_alignment","buffer_get_size","buffer_get_surface","buffer_get_type","buffer_load","buffer_load_async","buffer_load_ext","buffer_load_partial","buffer_md5","buffer_peek","buffer_poke","buffer_read","buffer_resize","buffer_save","buffer_save_async","buffer_save_ext","buffer_seek","buffer_set_surface","buffer_sha1","buffer_sizeof","buffer_tell","buffer_write","camera_apply","camera_create","camera_create_view","camera_destroy","camera_get_active","camera_get_begin_script","camera_get_default","camera_get_end_script","camera_get_proj_mat","camera_get_update_script","camera_get_view_angle","camera_get_view_border_x","camera_get_view_border_y","camera_get_view_height","camera_get_view_mat","camera_get_view_speed_x","camera_get_view_speed_y","camera_get_view_target","camera_get_view_width","camera_get_view_x","camera_get_view_y","camera_set_begin_script","camera_set_default","camera_set_end_script","camera_set_proj_mat","camera_set_update_script","camera_set_view_angle","camera_set_view_border","camera_set_view_mat","camera_set_view_pos","camera_set_view_size","camera_set_view_speed","camera_set_view_target","ceil","choose","chr","clamp","clickable_add","clickable_add_ext","clickable_change","clickable_change_ext","clickable_delete","clickable_exists","clickable_set_style","clipboard_get_text","clipboard_has_text","clipboard_set_text","cloud_file_save","cloud_string_save","cloud_synchronise","code_is_compiled","collision_circle","collision_circle_list","collision_ellipse","collision_ellipse_list","collision_line","collision_line_list","collision_point","collision_point_list","collision_rectangle","collision_rectangle_list","color_get_blue","color_get_green","color_get_hue","color_get_red","color_get_saturation","color_get_value","colour_get_blue","colour_get_green","colour_get_hue","colour_get_red","colour_get_saturation","colour_get_value","cos","darccos","darcsin","darctan","darctan2","date_compare_date","date_compare_datetime","date_compare_time","date_create_datetime","date_current_datetime","date_date_of","date_date_string","date_datetime_string","date_day_span","date_days_in_month","date_days_in_year","date_get_day","date_get_day_of_year","date_get_hour","date_get_hour_of_year","date_get_minute","date_get_minute_of_year","date_get_month","date_get_second","date_get_second_of_year","date_get_timezone","date_get_week","date_get_weekday","date_get_year","date_hour_span","date_inc_day","date_inc_hour","date_inc_minute","date_inc_month","date_inc_second","date_inc_week","date_inc_year","date_is_today","date_leap_year","date_minute_span","date_month_span","date_second_span","date_set_timezone","date_time_of","date_time_string","date_valid_datetime","date_week_span","date_year_span","dcos","debug_event","debug_get_callstack","degtorad","device_get_tilt_x","device_get_tilt_y","device_get_tilt_z","device_is_keypad_open","device_mouse_check_button","device_mouse_check_button_pressed","device_mouse_check_button_released","device_mouse_dbclick_enable","device_mouse_raw_x","device_mouse_raw_y","device_mouse_x","device_mouse_x_to_gui","device_mouse_y","device_mouse_y_to_gui","directory_create","directory_destroy","directory_exists","display_get_dpi_x","display_get_dpi_y","display_get_gui_height","display_get_gui_width","display_get_height","display_get_orientation","display_get_sleep_margin","display_get_timing_method","display_get_width","display_mouse_get_x","display_mouse_get_y","display_mouse_set","display_reset","display_set_gui_maximise","display_set_gui_maximize","display_set_gui_size","display_set_sleep_margin","display_set_timing_method","display_set_ui_visibility","distance_to_object","distance_to_point","dot_product","dot_product_3d","dot_product_3d_normalised","dot_product_3d_normalized","dot_product_normalised","dot_product_normalized","draw_arrow","draw_background","draw_background_ext","draw_background_part_ext","draw_background_tiled","draw_button","draw_circle","draw_circle_color","draw_circle_colour","draw_clear","draw_clear_alpha","draw_ellipse","draw_ellipse_color","draw_ellipse_colour","draw_enable_alphablend","draw_enable_drawevent","draw_enable_swf_aa","draw_flush","draw_get_alpha","draw_get_color","draw_get_colour","draw_get_lighting","draw_get_swf_aa_level","draw_getpixel","draw_getpixel_ext","draw_healthbar","draw_highscore","draw_light_define_ambient","draw_light_define_direction","draw_light_define_point","draw_light_enable","draw_light_get","draw_light_get_ambient","draw_line","draw_line_color","draw_line_colour","draw_line_width","draw_line_width_color","draw_line_width_colour","draw_path","draw_point","draw_point_color","draw_point_colour","draw_primitive_begin","draw_primitive_begin_texture","draw_primitive_end","draw_rectangle","draw_rectangle_color","draw_rectangle_colour","draw_roundrect","draw_roundrect_color","draw_roundrect_color_ext","draw_roundrect_colour","draw_roundrect_colour_ext","draw_roundrect_ext","draw_self","draw_set_alpha","draw_set_alpha_test","draw_set_alpha_test_ref_value","draw_set_blend_mode","draw_set_blend_mode_ext","draw_set_circle_precision","draw_set_color","draw_set_color_write_enable","draw_set_colour","draw_set_font","draw_set_halign","draw_set_lighting","draw_set_swf_aa_level","draw_set_valign","draw_skeleton","draw_skeleton_collision","draw_skeleton_instance","draw_skeleton_time","draw_sprite","draw_sprite_ext","draw_sprite_general","draw_sprite_part","draw_sprite_part_ext","draw_sprite_pos","draw_sprite_stretched","draw_sprite_stretched_ext","draw_sprite_tiled","draw_sprite_tiled_ext","draw_surface","draw_surface_ext","draw_surface_general","draw_surface_part","draw_surface_part_ext","draw_surface_stretched","draw_surface_stretched_ext","draw_surface_tiled","draw_surface_tiled_ext","draw_text","draw_text_color","draw_text_colour","draw_text_ext","draw_text_ext_color","draw_text_ext_colour","draw_text_ext_transformed","draw_text_ext_transformed_color","draw_text_ext_transformed_colour","draw_text_transformed","draw_text_transformed_color","draw_text_transformed_colour","draw_texture_flush","draw_tile","draw_tilemap","draw_triangle","draw_triangle_color","draw_triangle_colour","draw_vertex","draw_vertex_color","draw_vertex_colour","draw_vertex_texture","draw_vertex_texture_color","draw_vertex_texture_colour","ds_exists","ds_grid_add","ds_grid_add_disk","ds_grid_add_grid_region","ds_grid_add_region","ds_grid_clear","ds_grid_copy","ds_grid_create","ds_grid_destroy","ds_grid_get","ds_grid_get_disk_max","ds_grid_get_disk_mean","ds_grid_get_disk_min","ds_grid_get_disk_sum","ds_grid_get_max","ds_grid_get_mean","ds_grid_get_min","ds_grid_get_sum","ds_grid_height","ds_grid_multiply","ds_grid_multiply_disk","ds_grid_multiply_grid_region","ds_grid_multiply_region","ds_grid_read","ds_grid_resize","ds_grid_set","ds_grid_set_disk","ds_grid_set_grid_region","ds_grid_set_region","ds_grid_shuffle","ds_grid_sort","ds_grid_value_disk_exists","ds_grid_value_disk_x","ds_grid_value_disk_y","ds_grid_value_exists","ds_grid_value_x","ds_grid_value_y","ds_grid_width","ds_grid_write","ds_list_add","ds_list_clear","ds_list_copy","ds_list_create","ds_list_delete","ds_list_destroy","ds_list_empty","ds_list_find_index","ds_list_find_value","ds_list_insert","ds_list_mark_as_list","ds_list_mark_as_map","ds_list_read","ds_list_replace","ds_list_set","ds_list_shuffle","ds_list_size","ds_list_sort","ds_list_write","ds_map_add","ds_map_add_list","ds_map_add_map","ds_map_clear","ds_map_copy","ds_map_create","ds_map_delete","ds_map_destroy","ds_map_empty","ds_map_exists","ds_map_find_first","ds_map_find_last","ds_map_find_next","ds_map_find_previous","ds_map_find_value","ds_map_read","ds_map_replace","ds_map_replace_list","ds_map_replace_map","ds_map_secure_load","ds_map_secure_load_buffer","ds_map_secure_save","ds_map_secure_save_buffer","ds_map_set","ds_map_size","ds_map_write","ds_priority_add","ds_priority_change_priority","ds_priority_clear","ds_priority_copy","ds_priority_create","ds_priority_delete_max","ds_priority_delete_min","ds_priority_delete_value","ds_priority_destroy","ds_priority_empty","ds_priority_find_max","ds_priority_find_min","ds_priority_find_priority","ds_priority_read","ds_priority_size","ds_priority_write","ds_queue_clear","ds_queue_copy","ds_queue_create","ds_queue_dequeue","ds_queue_destroy","ds_queue_empty","ds_queue_enqueue","ds_queue_head","ds_queue_read","ds_queue_size","ds_queue_tail","ds_queue_write","ds_set_precision","ds_stack_clear","ds_stack_copy","ds_stack_create","ds_stack_destroy","ds_stack_empty","ds_stack_pop","ds_stack_push","ds_stack_read","ds_stack_size","ds_stack_top","ds_stack_write","dsin","dtan","effect_clear","effect_create_above","effect_create_below","environment_get_variable","event_inherited","event_perform","event_perform_object","event_user","exp","external_call","external_define","external_free","facebook_accesstoken","facebook_check_permission","facebook_dialog","facebook_graph_request","facebook_init","facebook_launch_offerwall","facebook_login","facebook_logout","facebook_post_message","facebook_request_publish_permissions","facebook_request_read_permissions","facebook_send_invite","facebook_status","facebook_user_id","file_attributes","file_bin_close","file_bin_open","file_bin_position","file_bin_read_byte","file_bin_rewrite","file_bin_seek","file_bin_size","file_bin_write_byte","file_copy","file_delete","file_exists","file_find_close","file_find_first","file_find_next","file_rename","file_text_close","file_text_eof","file_text_eoln","file_text_open_append","file_text_open_from_string","file_text_open_read","file_text_open_write","file_text_read_real","file_text_read_string","file_text_readln","file_text_write_real","file_text_write_string","file_text_writeln","filename_change_ext","filename_dir","filename_drive","filename_ext","filename_name","filename_path","floor","font_add","font_add_enable_aa","font_add_get_enable_aa","font_add_sprite","font_add_sprite_ext","font_delete","font_exists","font_get_bold","font_get_first","font_get_fontname","font_get_italic","font_get_last","font_get_name","font_get_size","font_get_texture","font_get_uvs","font_replace","font_replace_sprite","font_replace_sprite_ext","font_set_cache_size","font_texture_page_size","frac","game_end","game_get_speed","game_load","game_load_buffer","game_restart","game_save","game_save_buffer","game_set_speed","gamepad_axis_count","gamepad_axis_value","gamepad_button_check","gamepad_button_check_pressed","gamepad_button_check_released","gamepad_button_count","gamepad_button_value","gamepad_get_axis_deadzone","gamepad_get_button_threshold","gamepad_get_description","gamepad_get_device_count","gamepad_is_connected","gamepad_is_supported","gamepad_set_axis_deadzone","gamepad_set_button_threshold","gamepad_set_color","gamepad_set_colour","gamepad_set_vibration","gesture_double_tap_distance","gesture_double_tap_time","gesture_drag_distance","gesture_drag_time","gesture_flick_speed","gesture_get_double_tap_distance","gesture_get_double_tap_time","gesture_get_drag_distance","gesture_get_drag_time","gesture_get_flick_speed","gesture_get_pinch_angle_away","gesture_get_pinch_angle_towards","gesture_get_pinch_distance","gesture_get_rotate_angle","gesture_get_rotate_time","gesture_get_tap_count","gesture_pinch_angle_away","gesture_pinch_angle_towards","gesture_pinch_distance","gesture_rotate_angle","gesture_rotate_time","gesture_tap_count","get_integer","get_integer_async","get_login_async","get_open_filename","get_open_filename_ext","get_save_filename","get_save_filename_ext","get_string","get_string_async","get_timer","gml_pragma","gml_release_mode","gpu_get_alphatestenable","gpu_get_alphatestfunc","gpu_get_alphatestref","gpu_get_blendenable","gpu_get_blendmode","gpu_get_blendmode_dest","gpu_get_blendmode_destalpha","gpu_get_blendmode_ext","gpu_get_blendmode_ext_sepalpha","gpu_get_blendmode_src","gpu_get_blendmode_srcalpha","gpu_get_colorwriteenable","gpu_get_colourwriteenable","gpu_get_cullmode","gpu_get_fog","gpu_get_lightingenable","gpu_get_state","gpu_get_tex_filter","gpu_get_tex_filter_ext","gpu_get_tex_max_aniso","gpu_get_tex_max_aniso_ext","gpu_get_tex_max_mip","gpu_get_tex_max_mip_ext","gpu_get_tex_min_mip","gpu_get_tex_min_mip_ext","gpu_get_tex_mip_bias","gpu_get_tex_mip_bias_ext","gpu_get_tex_mip_enable","gpu_get_tex_mip_enable_ext","gpu_get_tex_mip_filter","gpu_get_tex_mip_filter_ext","gpu_get_tex_repeat","gpu_get_tex_repeat_ext","gpu_get_texfilter","gpu_get_texfilter_ext","gpu_get_texrepeat","gpu_get_texrepeat_ext","gpu_get_zfunc","gpu_get_ztestenable","gpu_get_zwriteenable","gpu_pop_state","gpu_push_state","gpu_set_alphatestenable","gpu_set_alphatestfunc","gpu_set_alphatestref","gpu_set_blendenable","gpu_set_blendmode","gpu_set_blendmode_ext","gpu_set_blendmode_ext_sepalpha","gpu_set_colorwriteenable","gpu_set_colourwriteenable","gpu_set_cullmode","gpu_set_fog","gpu_set_lightingenable","gpu_set_state","gpu_set_tex_filter","gpu_set_tex_filter_ext","gpu_set_tex_max_aniso","gpu_set_tex_max_aniso_ext","gpu_set_tex_max_mip","gpu_set_tex_max_mip_ext","gpu_set_tex_min_mip","gpu_set_tex_min_mip_ext","gpu_set_tex_mip_bias","gpu_set_tex_mip_bias_ext","gpu_set_tex_mip_enable","gpu_set_tex_mip_enable_ext","gpu_set_tex_mip_filter","gpu_set_tex_mip_filter_ext","gpu_set_tex_repeat","gpu_set_tex_repeat_ext","gpu_set_texfilter","gpu_set_texfilter_ext","gpu_set_texrepeat","gpu_set_texrepeat_ext","gpu_set_zfunc","gpu_set_ztestenable","gpu_set_zwriteenable","highscore_add","highscore_clear","highscore_name","highscore_value","http_get","http_get_file","http_post_string","http_request","iap_acquire","iap_activate","iap_consume","iap_enumerate_products","iap_product_details","iap_purchase_details","iap_restore_all","iap_status","ini_close","ini_key_delete","ini_key_exists","ini_open","ini_open_from_string","ini_read_real","ini_read_string","ini_section_delete","ini_section_exists","ini_write_real","ini_write_string","instance_activate_all","instance_activate_layer","instance_activate_object","instance_activate_region","instance_change","instance_copy","instance_create","instance_create_depth","instance_create_layer","instance_deactivate_all","instance_deactivate_layer","instance_deactivate_object","instance_deactivate_region","instance_destroy","instance_exists","instance_find","instance_furthest","instance_id_get","instance_nearest","instance_number","instance_place","instance_place_list","instance_position","instance_position_list","int64","io_clear","irandom","irandom_range","is_array","is_bool","is_infinity","is_int32","is_int64","is_matrix","is_method","is_nan","is_numeric","is_ptr","is_real","is_string","is_struct","is_undefined","is_vec3","is_vec4","json_decode","json_encode","keyboard_check","keyboard_check_direct","keyboard_check_pressed","keyboard_check_released","keyboard_clear","keyboard_get_map","keyboard_get_numlock","keyboard_key_press","keyboard_key_release","keyboard_set_map","keyboard_set_numlock","keyboard_unset_map","keyboard_virtual_height","keyboard_virtual_hide","keyboard_virtual_show","keyboard_virtual_status","layer_add_instance","layer_background_alpha","layer_background_blend","layer_background_change","layer_background_create","layer_background_destroy","layer_background_exists","layer_background_get_alpha","layer_background_get_blend","layer_background_get_htiled","layer_background_get_id","layer_background_get_index","layer_background_get_speed","layer_background_get_sprite","layer_background_get_stretch","layer_background_get_visible","layer_background_get_vtiled","layer_background_get_xscale","layer_background_get_yscale","layer_background_htiled","layer_background_index","layer_background_speed","layer_background_sprite","layer_background_stretch","layer_background_visible","layer_background_vtiled","layer_background_xscale","layer_background_yscale","layer_create","layer_depth","layer_destroy","layer_destroy_instances","layer_element_move","layer_exists","layer_force_draw_depth","layer_get_all","layer_get_all_elements","layer_get_depth","layer_get_element_layer","layer_get_element_type","layer_get_forced_depth","layer_get_hspeed","layer_get_id","layer_get_id_at_depth","layer_get_name","layer_get_script_begin","layer_get_script_end","layer_get_shader","layer_get_target_room","layer_get_visible","layer_get_vspeed","layer_get_x","layer_get_y","layer_has_instance","layer_hspeed","layer_instance_get_instance","layer_is_draw_depth_forced","layer_reset_target_room","layer_script_begin","layer_script_end","layer_set_target_room","layer_set_visible","layer_shader","layer_sprite_alpha","layer_sprite_angle","layer_sprite_blend","layer_sprite_change","layer_sprite_create","layer_sprite_destroy","layer_sprite_exists","layer_sprite_get_alpha","layer_sprite_get_angle","layer_sprite_get_blend","layer_sprite_get_id","layer_sprite_get_index","layer_sprite_get_speed","layer_sprite_get_sprite","layer_sprite_get_x","layer_sprite_get_xscale","layer_sprite_get_y","layer_sprite_get_yscale","layer_sprite_index","layer_sprite_speed","layer_sprite_x","layer_sprite_xscale","layer_sprite_y","layer_sprite_yscale","layer_tile_alpha","layer_tile_blend","layer_tile_change","layer_tile_create","layer_tile_destroy","layer_tile_exists","layer_tile_get_alpha","layer_tile_get_blend","layer_tile_get_region","layer_tile_get_sprite","layer_tile_get_visible","layer_tile_get_x","layer_tile_get_xscale","layer_tile_get_y","layer_tile_get_yscale","layer_tile_region","layer_tile_visible","layer_tile_x","layer_tile_xscale","layer_tile_y","layer_tile_yscale","layer_tilemap_create","layer_tilemap_destroy","layer_tilemap_exists","layer_tilemap_get_id","layer_vspeed","layer_x","layer_y","lengthdir_x","lengthdir_y","lerp","ln","load_csv","log10","log2","logn","make_color_hsv","make_color_rgb","make_colour_hsv","make_colour_rgb","math_get_epsilon","math_set_epsilon","matrix_build","matrix_build_identity","matrix_build_lookat","matrix_build_projection_ortho","matrix_build_projection_perspective","matrix_build_projection_perspective_fov","matrix_get","matrix_multiply","matrix_set","matrix_stack_clear","matrix_stack_is_empty","matrix_stack_multiply","matrix_stack_pop","matrix_stack_push","matrix_stack_set","matrix_stack_top","matrix_transform_vertex","max","md5_file","md5_string_unicode","md5_string_utf8","mean","median","merge_color","merge_colour","min","motion_add","motion_set","mouse_check_button","mouse_check_button_pressed","mouse_check_button_released","mouse_clear","mouse_wheel_down","mouse_wheel_up","move_bounce_all","move_bounce_solid","move_contact_all","move_contact_solid","move_outside_all","move_outside_solid","move_random","move_snap","move_towards_point","move_wrap","mp_grid_add_cell","mp_grid_add_instances","mp_grid_add_rectangle","mp_grid_clear_all","mp_grid_clear_cell","mp_grid_clear_rectangle","mp_grid_create","mp_grid_destroy","mp_grid_draw","mp_grid_get_cell","mp_grid_path","mp_grid_to_ds_grid","mp_linear_path","mp_linear_path_object","mp_linear_step","mp_linear_step_object","mp_potential_path","mp_potential_path_object","mp_potential_settings","mp_potential_step","mp_potential_step_object","network_connect","network_connect_raw","network_create_server","network_create_server_raw","network_create_socket","network_create_socket_ext","network_destroy","network_resolve","network_send_broadcast","network_send_packet","network_send_raw","network_send_udp","network_send_udp_raw","network_set_config","network_set_timeout","object_exists","object_get_depth","object_get_mask","object_get_name","object_get_parent","object_get_persistent","object_get_physics","object_get_solid","object_get_sprite","object_get_visible","object_is_ancestor","object_set_mask","object_set_persistent","object_set_solid","object_set_sprite","object_set_visible","ord","os_get_config","os_get_info","os_get_language","os_get_region","os_is_network_connected","os_is_paused","os_lock_orientation","os_powersave_enable","parameter_count","parameter_string","part_emitter_burst","part_emitter_clear","part_emitter_create","part_emitter_destroy","part_emitter_destroy_all","part_emitter_exists","part_emitter_region","part_emitter_stream","part_particles_clear","part_particles_count","part_particles_create","part_particles_create_color","part_particles_create_colour","part_system_automatic_draw","part_system_automatic_update","part_system_clear","part_system_create","part_system_create_layer","part_system_depth","part_system_destroy","part_system_draw_order","part_system_drawit","part_system_exists","part_system_get_layer","part_system_layer","part_system_position","part_system_update","part_type_alpha1","part_type_alpha2","part_type_alpha3","part_type_blend","part_type_clear","part_type_color1","part_type_color2","part_type_color3","part_type_color_hsv","part_type_color_mix","part_type_color_rgb","part_type_colour1","part_type_colour2","part_type_colour3","part_type_colour_hsv","part_type_colour_mix","part_type_colour_rgb","part_type_create","part_type_death","part_type_destroy","part_type_direction","part_type_exists","part_type_gravity","part_type_life","part_type_orientation","part_type_scale","part_type_shape","part_type_size","part_type_speed","part_type_sprite","part_type_step","path_add","path_add_point","path_append","path_assign","path_change_point","path_clear_points","path_delete","path_delete_point","path_duplicate","path_end","path_exists","path_flip","path_get_closed","path_get_kind","path_get_length","path_get_name","path_get_number","path_get_point_speed","path_get_point_x","path_get_point_y","path_get_precision","path_get_speed","path_get_time","path_get_x","path_get_y","path_insert_point","path_mirror","path_rescale","path_reverse","path_rotate","path_set_closed","path_set_kind","path_set_precision","path_shift","path_start","physics_apply_angular_impulse","physics_apply_force","physics_apply_impulse","physics_apply_local_force","physics_apply_local_impulse","physics_apply_torque","physics_draw_debug","physics_fixture_add_point","physics_fixture_bind","physics_fixture_bind_ext","physics_fixture_create","physics_fixture_delete","physics_fixture_set_angular_damping","physics_fixture_set_awake","physics_fixture_set_box_shape","physics_fixture_set_chain_shape","physics_fixture_set_circle_shape","physics_fixture_set_collision_group","physics_fixture_set_density","physics_fixture_set_edge_shape","physics_fixture_set_friction","physics_fixture_set_kinematic","physics_fixture_set_linear_damping","physics_fixture_set_polygon_shape","physics_fixture_set_restitution","physics_fixture_set_sensor","physics_get_density","physics_get_friction","physics_get_restitution","physics_joint_delete","physics_joint_distance_create","physics_joint_enable_motor","physics_joint_friction_create","physics_joint_gear_create","physics_joint_get_value","physics_joint_prismatic_create","physics_joint_pulley_create","physics_joint_revolute_create","physics_joint_rope_create","physics_joint_set_value","physics_joint_weld_create","physics_joint_wheel_create","physics_mass_properties","physics_particle_count","physics_particle_create","physics_particle_delete","physics_particle_delete_region_box","physics_particle_delete_region_circle","physics_particle_delete_region_poly","physics_particle_draw","physics_particle_draw_ext","physics_particle_get_damping","physics_particle_get_data","physics_particle_get_data_particle","physics_particle_get_density","physics_particle_get_gravity_scale","physics_particle_get_group_flags","physics_particle_get_max_count","physics_particle_get_radius","physics_particle_group_add_point","physics_particle_group_begin","physics_particle_group_box","physics_particle_group_circle","physics_particle_group_count","physics_particle_group_delete","physics_particle_group_end","physics_particle_group_get_ang_vel","physics_particle_group_get_angle","physics_particle_group_get_centre_x","physics_particle_group_get_centre_y","physics_particle_group_get_data","physics_particle_group_get_inertia","physics_particle_group_get_mass","physics_particle_group_get_vel_x","physics_particle_group_get_vel_y","physics_particle_group_get_x","physics_particle_group_get_y","physics_particle_group_join","physics_particle_group_polygon","physics_particle_set_category_flags","physics_particle_set_damping","physics_particle_set_density","physics_particle_set_flags","physics_particle_set_gravity_scale","physics_particle_set_group_flags","physics_particle_set_max_count","physics_particle_set_radius","physics_pause_enable","physics_remove_fixture","physics_set_density","physics_set_friction","physics_set_restitution","physics_test_overlap","physics_world_create","physics_world_draw_debug","physics_world_gravity","physics_world_update_iterations","physics_world_update_speed","place_empty","place_free","place_meeting","place_snapped","point_direction","point_distance","point_distance_3d","point_in_circle","point_in_rectangle","point_in_triangle","position_change","position_destroy","position_empty","position_meeting","power","ptr","push_cancel_local_notification","push_get_first_local_notification","push_get_next_local_notification","push_local_notification","radtodeg","random","random_get_seed","random_range","random_set_seed","randomise","randomize","real","rectangle_in_circle","rectangle_in_rectangle","rectangle_in_triangle","room_add","room_assign","room_duplicate","room_exists","room_get_camera","room_get_name","room_get_viewport","room_goto","room_goto_next","room_goto_previous","room_instance_add","room_instance_clear","room_next","room_previous","room_restart","room_set_background_color","room_set_background_colour","room_set_camera","room_set_height","room_set_persistent","room_set_view","room_set_view_enabled","room_set_viewport","room_set_width","round","screen_save","screen_save_part","script_execute","script_exists","script_get_name","sha1_file","sha1_string_unicode","sha1_string_utf8","shader_current","shader_enable_corner_id","shader_get_name","shader_get_sampler_index","shader_get_uniform","shader_is_compiled","shader_reset","shader_set","shader_set_uniform_f","shader_set_uniform_f_array","shader_set_uniform_i","shader_set_uniform_i_array","shader_set_uniform_matrix","shader_set_uniform_matrix_array","shaders_are_supported","shop_leave_rating","show_debug_message","show_debug_overlay","show_error","show_message","show_message_async","show_question","show_question_async","sign","sin","skeleton_animation_clear","skeleton_animation_get","skeleton_animation_get_duration","skeleton_animation_get_ext","skeleton_animation_get_frame","skeleton_animation_get_frames","skeleton_animation_list","skeleton_animation_mix","skeleton_animation_set","skeleton_animation_set_ext","skeleton_animation_set_frame","skeleton_attachment_create","skeleton_attachment_get","skeleton_attachment_set","skeleton_bone_data_get","skeleton_bone_data_set","skeleton_bone_state_get","skeleton_bone_state_set","skeleton_collision_draw_set","skeleton_get_bounds","skeleton_get_minmax","skeleton_get_num_bounds","skeleton_skin_get","skeleton_skin_list","skeleton_skin_set","skeleton_slot_data","sprite_add","sprite_add_from_surface","sprite_assign","sprite_collision_mask","sprite_create_from_surface","sprite_delete","sprite_duplicate","sprite_exists","sprite_flush","sprite_flush_multi","sprite_get_bbox_bottom","sprite_get_bbox_left","sprite_get_bbox_right","sprite_get_bbox_top","sprite_get_height","sprite_get_name","sprite_get_number","sprite_get_speed","sprite_get_speed_type","sprite_get_texture","sprite_get_tpe","sprite_get_uvs","sprite_get_width","sprite_get_xoffset","sprite_get_yoffset","sprite_merge","sprite_prefetch","sprite_prefetch_multi","sprite_replace","sprite_save","sprite_save_strip","sprite_set_alpha_from_sprite","sprite_set_cache_size","sprite_set_cache_size_ext","sprite_set_offset","sprite_set_speed","sqr","sqrt","steam_activate_overlay","steam_activate_overlay_browser","steam_activate_overlay_store","steam_activate_overlay_user","steam_available_languages","steam_clear_achievement","steam_create_leaderboard","steam_current_game_language","steam_download_friends_scores","steam_download_scores","steam_download_scores_around_user","steam_file_delete","steam_file_exists","steam_file_persisted","steam_file_read","steam_file_share","steam_file_size","steam_file_write","steam_file_write_file","steam_get_achievement","steam_get_app_id","steam_get_persona_name","steam_get_quota_free","steam_get_quota_total","steam_get_stat_avg_rate","steam_get_stat_float","steam_get_stat_int","steam_get_user_account_id","steam_get_user_persona_name","steam_get_user_steam_id","steam_initialised","steam_is_cloud_enabled_for_account","steam_is_cloud_enabled_for_app","steam_is_overlay_activated","steam_is_overlay_enabled","steam_is_screenshot_requested","steam_is_user_logged_on","steam_reset_all_stats","steam_reset_all_stats_achievements","steam_send_screenshot","steam_set_achievement","steam_set_stat_avg_rate","steam_set_stat_float","steam_set_stat_int","steam_stats_ready","steam_ugc_create_item","steam_ugc_create_query_all","steam_ugc_create_query_all_ex","steam_ugc_create_query_user","steam_ugc_create_query_user_ex","steam_ugc_download","steam_ugc_get_item_install_info","steam_ugc_get_item_update_info","steam_ugc_get_item_update_progress","steam_ugc_get_subscribed_items","steam_ugc_num_subscribed_items","steam_ugc_query_add_excluded_tag","steam_ugc_query_add_required_tag","steam_ugc_query_set_allow_cached_response","steam_ugc_query_set_cloud_filename_filter","steam_ugc_query_set_match_any_tag","steam_ugc_query_set_ranked_by_trend_days","steam_ugc_query_set_return_long_description","steam_ugc_query_set_return_total_only","steam_ugc_query_set_search_text","steam_ugc_request_item_details","steam_ugc_send_query","steam_ugc_set_item_content","steam_ugc_set_item_description","steam_ugc_set_item_preview","steam_ugc_set_item_tags","steam_ugc_set_item_title","steam_ugc_set_item_visibility","steam_ugc_start_item_update","steam_ugc_submit_item_update","steam_ugc_subscribe_item","steam_ugc_unsubscribe_item","steam_upload_score","steam_upload_score_buffer","steam_upload_score_buffer_ext","steam_upload_score_ext","steam_user_installed_dlc","steam_user_owns_dlc","string","string_byte_at","string_byte_length","string_char_at","string_copy","string_count","string_delete","string_digits","string_format","string_hash_to_newline","string_height","string_height_ext","string_insert","string_length","string_letters","string_lettersdigits","string_lower","string_ord_at","string_pos","string_repeat","string_replace","string_replace_all","string_set_byte_at","string_upper","string_width","string_width_ext","surface_copy","surface_copy_part","surface_create","surface_create_ext","surface_depth_disable","surface_exists","surface_free","surface_get_depth_disable","surface_get_height","surface_get_texture","surface_get_width","surface_getpixel","surface_getpixel_ext","surface_reset_target","surface_resize","surface_save","surface_save_part","surface_set_target","surface_set_target_ext","tan","texture_get_height","texture_get_texel_height","texture_get_texel_width","texture_get_uvs","texture_get_width","texture_global_scale","texture_set_stage","tile_get_empty","tile_get_flip","tile_get_index","tile_get_mirror","tile_get_rotate","tile_set_empty","tile_set_flip","tile_set_index","tile_set_mirror","tile_set_rotate","tilemap_clear","tilemap_get","tilemap_get_at_pixel","tilemap_get_cell_x_at_pixel","tilemap_get_cell_y_at_pixel","tilemap_get_frame","tilemap_get_global_mask","tilemap_get_height","tilemap_get_mask","tilemap_get_tile_height","tilemap_get_tile_width","tilemap_get_tileset","tilemap_get_width","tilemap_get_x","tilemap_get_y","tilemap_set","tilemap_set_at_pixel","tilemap_set_global_mask","tilemap_set_mask","tilemap_tileset","tilemap_x","tilemap_y","timeline_add","timeline_clear","timeline_delete","timeline_exists","timeline_get_name","timeline_max_moment","timeline_moment_add_script","timeline_moment_clear","timeline_size","typeof","url_get_domain","url_open","url_open_ext","url_open_full","variable_global_exists","variable_global_get","variable_global_set","variable_instance_exists","variable_instance_get","variable_instance_get_names","variable_instance_set","variable_struct_exists","variable_struct_get","variable_struct_get_names","variable_struct_names_count","variable_struct_remove","variable_struct_set","vertex_argb","vertex_begin","vertex_color","vertex_colour","vertex_create_buffer","vertex_create_buffer_ext","vertex_create_buffer_from_buffer","vertex_create_buffer_from_buffer_ext","vertex_delete_buffer","vertex_end","vertex_float1","vertex_float2","vertex_float3","vertex_float4","vertex_format_add_color","vertex_format_add_colour","vertex_format_add_custom","vertex_format_add_normal","vertex_format_add_position","vertex_format_add_position_3d","vertex_format_add_texcoord","vertex_format_add_textcoord","vertex_format_begin","vertex_format_delete","vertex_format_end","vertex_freeze","vertex_get_buffer_size","vertex_get_number","vertex_normal","vertex_position","vertex_position_3d","vertex_submit","vertex_texcoord","vertex_ubyte4","view_get_camera","view_get_hport","view_get_surface_id","view_get_visible","view_get_wport","view_get_xport","view_get_yport","view_set_camera","view_set_hport","view_set_surface_id","view_set_visible","view_set_wport","view_set_xport","view_set_yport","virtual_key_add","virtual_key_delete","virtual_key_hide","virtual_key_show","win8_appbar_add_element","win8_appbar_enable","win8_appbar_remove_element","win8_device_touchscreen_available","win8_license_initialize_sandbox","win8_license_trial_version","win8_livetile_badge_clear","win8_livetile_badge_notification","win8_livetile_notification_begin","win8_livetile_notification_end","win8_livetile_notification_expiry","win8_livetile_notification_image_add","win8_livetile_notification_secondary_begin","win8_livetile_notification_tag","win8_livetile_notification_text_add","win8_livetile_queue_enable","win8_livetile_tile_clear","win8_livetile_tile_notification","win8_search_add_suggestions","win8_search_disable","win8_search_enable","win8_secondarytile_badge_notification","win8_secondarytile_delete","win8_secondarytile_pin","win8_settingscharm_add_entry","win8_settingscharm_add_html_entry","win8_settingscharm_add_xaml_entry","win8_settingscharm_get_xaml_property","win8_settingscharm_remove_entry","win8_settingscharm_set_xaml_property","win8_share_file","win8_share_image","win8_share_screenshot","win8_share_text","win8_share_url","window_center","window_device","window_get_caption","window_get_color","window_get_colour","window_get_cursor","window_get_fullscreen","window_get_height","window_get_visible_rects","window_get_width","window_get_x","window_get_y","window_handle","window_has_focus","window_mouse_get_x","window_mouse_get_y","window_mouse_set","window_set_caption","window_set_color","window_set_colour","window_set_cursor","window_set_fullscreen","window_set_max_height","window_set_max_width","window_set_min_height","window_set_min_width","window_set_position","window_set_rectangle","window_set_size","window_view_mouse_get_x","window_view_mouse_get_y","window_views_mouse_get_x","window_views_mouse_get_y","winphone_license_trial_version","winphone_tile_back_content","winphone_tile_back_content_wide","winphone_tile_back_image","winphone_tile_back_image_wide","winphone_tile_back_title","winphone_tile_background_color","winphone_tile_background_colour","winphone_tile_count","winphone_tile_cycle_images","winphone_tile_front_image","winphone_tile_front_image_small","winphone_tile_front_image_wide","winphone_tile_icon_image","winphone_tile_small_background_image","winphone_tile_small_icon_image","winphone_tile_title","winphone_tile_wide_content","zip_unzip"],literal:["all","false","noone","pointer_invalid","pointer_null","true","undefined"],symbol:["ANSI_CHARSET","ARABIC_CHARSET","BALTIC_CHARSET","CHINESEBIG5_CHARSET","DEFAULT_CHARSET","EASTEUROPE_CHARSET","GB2312_CHARSET","GM_build_date","GM_runtime_version","GM_version","GREEK_CHARSET","HANGEUL_CHARSET","HEBREW_CHARSET","JOHAB_CHARSET","MAC_CHARSET","OEM_CHARSET","RUSSIAN_CHARSET","SHIFTJIS_CHARSET","SYMBOL_CHARSET","THAI_CHARSET","TURKISH_CHARSET","VIETNAMESE_CHARSET","achievement_achievement_info","achievement_filter_all_players","achievement_filter_favorites_only","achievement_filter_friends_only","achievement_friends_info","achievement_leaderboard_info","achievement_our_info","achievement_pic_loaded","achievement_show_achievement","achievement_show_bank","achievement_show_friend_picker","achievement_show_leaderboard","achievement_show_profile","achievement_show_purchase_prompt","achievement_show_ui","achievement_type_achievement_challenge","achievement_type_score_challenge","asset_font","asset_object","asset_path","asset_room","asset_script","asset_shader","asset_sound","asset_sprite","asset_tiles","asset_timeline","asset_unknown","audio_3d","audio_falloff_exponent_distance","audio_falloff_exponent_distance_clamped","audio_falloff_inverse_distance","audio_falloff_inverse_distance_clamped","audio_falloff_linear_distance","audio_falloff_linear_distance_clamped","audio_falloff_none","audio_mono","audio_new_system","audio_old_system","audio_stereo","bm_add","bm_complex","bm_dest_alpha","bm_dest_color","bm_dest_colour","bm_inv_dest_alpha","bm_inv_dest_color","bm_inv_dest_colour","bm_inv_src_alpha","bm_inv_src_color","bm_inv_src_colour","bm_max","bm_normal","bm_one","bm_src_alpha","bm_src_alpha_sat","bm_src_color","bm_src_colour","bm_subtract","bm_zero","browser_chrome","browser_edge","browser_firefox","browser_ie","browser_ie_mobile","browser_not_a_browser","browser_opera","browser_safari","browser_safari_mobile","browser_tizen","browser_unknown","browser_windows_store","buffer_bool","buffer_f16","buffer_f32","buffer_f64","buffer_fast","buffer_fixed","buffer_generalerror","buffer_grow","buffer_invalidtype","buffer_network","buffer_outofbounds","buffer_outofspace","buffer_s16","buffer_s32","buffer_s8","buffer_seek_end","buffer_seek_relative","buffer_seek_start","buffer_string","buffer_surface_copy","buffer_text","buffer_u16","buffer_u32","buffer_u64","buffer_u8","buffer_vbuffer","buffer_wrap","button_type","c_aqua","c_black","c_blue","c_dkgray","c_fuchsia","c_gray","c_green","c_lime","c_ltgray","c_maroon","c_navy","c_olive","c_orange","c_purple","c_red","c_silver","c_teal","c_white","c_yellow","cmpfunc_always","cmpfunc_equal","cmpfunc_greater","cmpfunc_greaterequal","cmpfunc_less","cmpfunc_lessequal","cmpfunc_never","cmpfunc_notequal","cr_appstart","cr_arrow","cr_beam","cr_cross","cr_default","cr_drag","cr_handpoint","cr_hourglass","cr_none","cr_size_all","cr_size_nesw","cr_size_ns","cr_size_nwse","cr_size_we","cr_uparrow","cull_clockwise","cull_counterclockwise","cull_noculling","device_emulator","device_ios_ipad","device_ios_ipad_retina","device_ios_iphone","device_ios_iphone5","device_ios_iphone6","device_ios_iphone6plus","device_ios_iphone_retina","device_ios_unknown","device_tablet","display_landscape","display_landscape_flipped","display_portrait","display_portrait_flipped","dll_cdecl","dll_stdcall","ds_type_grid","ds_type_list","ds_type_map","ds_type_priority","ds_type_queue","ds_type_stack","ef_cloud","ef_ellipse","ef_explosion","ef_firework","ef_flare","ef_rain","ef_ring","ef_smoke","ef_smokeup","ef_snow","ef_spark","ef_star","ev_alarm","ev_animation_end","ev_boundary","ev_cleanup","ev_close_button","ev_collision","ev_create","ev_destroy","ev_draw","ev_draw_begin","ev_draw_end","ev_draw_post","ev_draw_pre","ev_end_of_path","ev_game_end","ev_game_start","ev_gesture","ev_gesture_double_tap","ev_gesture_drag_end","ev_gesture_drag_start","ev_gesture_dragging","ev_gesture_flick","ev_gesture_pinch_end","ev_gesture_pinch_in","ev_gesture_pinch_out","ev_gesture_pinch_start","ev_gesture_rotate_end","ev_gesture_rotate_start","ev_gesture_rotating","ev_gesture_tap","ev_global_gesture_double_tap","ev_global_gesture_drag_end","ev_global_gesture_drag_start","ev_global_gesture_dragging","ev_global_gesture_flick","ev_global_gesture_pinch_end","ev_global_gesture_pinch_in","ev_global_gesture_pinch_out","ev_global_gesture_pinch_start","ev_global_gesture_rotate_end","ev_global_gesture_rotate_start","ev_global_gesture_rotating","ev_global_gesture_tap","ev_global_left_button","ev_global_left_press","ev_global_left_release","ev_global_middle_button","ev_global_middle_press","ev_global_middle_release","ev_global_right_button","ev_global_right_press","ev_global_right_release","ev_gui","ev_gui_begin","ev_gui_end","ev_joystick1_button1","ev_joystick1_button2","ev_joystick1_button3","ev_joystick1_button4","ev_joystick1_button5","ev_joystick1_button6","ev_joystick1_button7","ev_joystick1_button8","ev_joystick1_down","ev_joystick1_left","ev_joystick1_right","ev_joystick1_up","ev_joystick2_button1","ev_joystick2_button2","ev_joystick2_button3","ev_joystick2_button4","ev_joystick2_button5","ev_joystick2_button6","ev_joystick2_button7","ev_joystick2_button8","ev_joystick2_down","ev_joystick2_left","ev_joystick2_right","ev_joystick2_up","ev_keyboard","ev_keypress","ev_keyrelease","ev_left_button","ev_left_press","ev_left_release","ev_middle_button","ev_middle_press","ev_middle_release","ev_mouse","ev_mouse_enter","ev_mouse_leave","ev_mouse_wheel_down","ev_mouse_wheel_up","ev_no_button","ev_no_more_health","ev_no_more_lives","ev_other","ev_outside","ev_right_button","ev_right_press","ev_right_release","ev_room_end","ev_room_start","ev_step","ev_step_begin","ev_step_end","ev_step_normal","ev_trigger","ev_user0","ev_user1","ev_user2","ev_user3","ev_user4","ev_user5","ev_user6","ev_user7","ev_user8","ev_user9","ev_user10","ev_user11","ev_user12","ev_user13","ev_user14","ev_user15","fa_archive","fa_bottom","fa_center","fa_directory","fa_hidden","fa_left","fa_middle","fa_readonly","fa_right","fa_sysfile","fa_top","fa_volumeid","fb_login_default","fb_login_fallback_to_webview","fb_login_forcing_safari","fb_login_forcing_webview","fb_login_no_fallback_to_webview","fb_login_use_system_account","gamespeed_fps","gamespeed_microseconds","ge_lose","global","gp_axislh","gp_axislv","gp_axisrh","gp_axisrv","gp_face1","gp_face2","gp_face3","gp_face4","gp_padd","gp_padl","gp_padr","gp_padu","gp_select","gp_shoulderl","gp_shoulderlb","gp_shoulderr","gp_shoulderrb","gp_start","gp_stickl","gp_stickr","iap_available","iap_canceled","iap_ev_consume","iap_ev_product","iap_ev_purchase","iap_ev_restore","iap_ev_storeload","iap_failed","iap_purchased","iap_refunded","iap_status_available","iap_status_loading","iap_status_processing","iap_status_restoring","iap_status_unavailable","iap_status_uninitialised","iap_storeload_failed","iap_storeload_ok","iap_unavailable","input_type","kbv_autocapitalize_characters","kbv_autocapitalize_none","kbv_autocapitalize_sentences","kbv_autocapitalize_words","kbv_returnkey_continue","kbv_returnkey_default","kbv_returnkey_done","kbv_returnkey_emergency","kbv_returnkey_go","kbv_returnkey_google","kbv_returnkey_join","kbv_returnkey_next","kbv_returnkey_route","kbv_returnkey_search","kbv_returnkey_send","kbv_returnkey_yahoo","kbv_type_ascii","kbv_type_default","kbv_type_email","kbv_type_numbers","kbv_type_phone","kbv_type_phone_name","kbv_type_url","layerelementtype_background","layerelementtype_instance","layerelementtype_oldtilemap","layerelementtype_particlesystem","layerelementtype_sprite","layerelementtype_tile","layerelementtype_tilemap","layerelementtype_undefined","lb_disp_none","lb_disp_numeric","lb_disp_time_ms","lb_disp_time_sec","lb_sort_ascending","lb_sort_descending","lb_sort_none","leaderboard_type_number","leaderboard_type_time_mins_secs","lighttype_dir","lighttype_point","local","matrix_projection","matrix_view","matrix_world","mb_any","mb_left","mb_middle","mb_none","mb_right","mip_markedonly","mip_off","mip_on","network_config_connect_timeout","network_config_disable_reliable_udp","network_config_enable_reliable_udp","network_config_use_non_blocking_socket","network_socket_bluetooth","network_socket_tcp","network_socket_udp","network_type_connect","network_type_data","network_type_disconnect","network_type_non_blocking_connect","of_challen","of_challenge_tie","of_challenge_win","os_3ds","os_android","os_bb10","os_ios","os_linux","os_macosx","os_ps3","os_ps4","os_psvita","os_switch","os_symbian","os_tizen","os_tvos","os_unknown","os_uwp","os_wiiu","os_win32","os_win8native","os_windows","os_winphone","os_xbox360","os_xboxone","other","ov_achievements","ov_community","ov_friends","ov_gamegroup","ov_players","ov_settings","path_action_continue","path_action_restart","path_action_reverse","path_action_stop","phy_debug_render_aabb","phy_debug_render_collision_pairs","phy_debug_render_coms","phy_debug_render_core_shapes","phy_debug_render_joints","phy_debug_render_obb","phy_debug_render_shapes","phy_joint_anchor_1_x","phy_joint_anchor_1_y","phy_joint_anchor_2_x","phy_joint_anchor_2_y","phy_joint_angle","phy_joint_angle_limits","phy_joint_damping_ratio","phy_joint_frequency","phy_joint_length_1","phy_joint_length_2","phy_joint_lower_angle_limit","phy_joint_max_force","phy_joint_max_length","phy_joint_max_motor_force","phy_joint_max_motor_torque","phy_joint_max_torque","phy_joint_motor_force","phy_joint_motor_speed","phy_joint_motor_torque","phy_joint_reaction_force_x","phy_joint_reaction_force_y","phy_joint_reaction_torque","phy_joint_speed","phy_joint_translation","phy_joint_upper_angle_limit","phy_particle_data_flag_category","phy_particle_data_flag_color","phy_particle_data_flag_colour","phy_particle_data_flag_position","phy_particle_data_flag_typeflags","phy_particle_data_flag_velocity","phy_particle_flag_colormixing","phy_particle_flag_colourmixing","phy_particle_flag_elastic","phy_particle_flag_powder","phy_particle_flag_spring","phy_particle_flag_tensile","phy_particle_flag_viscous","phy_particle_flag_wall","phy_particle_flag_water","phy_particle_flag_zombie","phy_particle_group_flag_rigid","phy_particle_group_flag_solid","pi","pr_linelist","pr_linestrip","pr_pointlist","pr_trianglefan","pr_trianglelist","pr_trianglestrip","ps_distr_gaussian","ps_distr_invgaussian","ps_distr_linear","ps_shape_diamond","ps_shape_ellipse","ps_shape_line","ps_shape_rectangle","pt_shape_circle","pt_shape_cloud","pt_shape_disk","pt_shape_explosion","pt_shape_flare","pt_shape_line","pt_shape_pixel","pt_shape_ring","pt_shape_smoke","pt_shape_snow","pt_shape_spark","pt_shape_sphere","pt_shape_square","pt_shape_star","spritespeed_framespergameframe","spritespeed_framespersecond","text_type","tf_anisotropic","tf_linear","tf_point","tile_flip","tile_index_mask","tile_mirror","tile_rotate","timezone_local","timezone_utc","tm_countvsyncs","tm_sleep","ty_real","ty_string","ugc_filetype_community","ugc_filetype_microtrans","ugc_list_Favorited","ugc_list_Followed","ugc_list_Published","ugc_list_Subscribed","ugc_list_UsedOrPlayed","ugc_list_VotedDown","ugc_list_VotedOn","ugc_list_VotedUp","ugc_list_WillVoteLater","ugc_match_AllGuides","ugc_match_Artwork","ugc_match_Collections","ugc_match_ControllerBindings","ugc_match_IntegratedGuides","ugc_match_Items","ugc_match_Items_Mtx","ugc_match_Items_ReadyToUse","ugc_match_Screenshots","ugc_match_UsableInGame","ugc_match_Videos","ugc_match_WebGuides","ugc_query_AcceptedForGameRankedByAcceptanceDate","ugc_query_CreatedByFollowedUsersRankedByPublicationDate","ugc_query_CreatedByFriendsRankedByPublicationDate","ugc_query_FavoritedByFriendsRankedByPublicationDate","ugc_query_NotYetRated","ugc_query_RankedByNumTimesReported","ugc_query_RankedByPublicationDate","ugc_query_RankedByTextSearch","ugc_query_RankedByTotalVotesAsc","ugc_query_RankedByTrend","ugc_query_RankedByVote","ugc_query_RankedByVotesUp","ugc_result_success","ugc_sortorder_CreationOrderAsc","ugc_sortorder_CreationOrderDesc","ugc_sortorder_ForModeration","ugc_sortorder_LastUpdatedDesc","ugc_sortorder_SubscriptionDateDesc","ugc_sortorder_TitleAsc","ugc_sortorder_VoteScoreDesc","ugc_visibility_friends_only","ugc_visibility_private","ugc_visibility_public","vertex_type_color","vertex_type_colour","vertex_type_float1","vertex_type_float2","vertex_type_float3","vertex_type_float4","vertex_type_ubyte4","vertex_usage_binormal","vertex_usage_blendindices","vertex_usage_blendweight","vertex_usage_color","vertex_usage_colour","vertex_usage_depth","vertex_usage_fog","vertex_usage_normal","vertex_usage_position","vertex_usage_psize","vertex_usage_sample","vertex_usage_tangent","vertex_usage_texcoord","vertex_usage_textcoord","vk_add","vk_alt","vk_anykey","vk_backspace","vk_control","vk_decimal","vk_delete","vk_divide","vk_down","vk_end","vk_enter","vk_escape","vk_f1","vk_f2","vk_f3","vk_f4","vk_f5","vk_f6","vk_f7","vk_f8","vk_f9","vk_f10","vk_f11","vk_f12","vk_home","vk_insert","vk_lalt","vk_lcontrol","vk_left","vk_lshift","vk_multiply","vk_nokey","vk_numpad0","vk_numpad1","vk_numpad2","vk_numpad3","vk_numpad4","vk_numpad5","vk_numpad6","vk_numpad7","vk_numpad8","vk_numpad9","vk_pagedown","vk_pageup","vk_pause","vk_printscreen","vk_ralt","vk_rcontrol","vk_return","vk_right","vk_rshift","vk_shift","vk_space","vk_subtract","vk_tab","vk_up"],"variable.language":["alarm","application_surface","argument","argument0","argument1","argument2","argument3","argument4","argument5","argument6","argument7","argument8","argument9","argument10","argument11","argument12","argument13","argument14","argument15","argument_count","argument_relative","async_load","background_color","background_colour","background_showcolor","background_showcolour","bbox_bottom","bbox_left","bbox_right","bbox_top","browser_height","browser_width","caption_health","caption_lives","caption_score","current_day","current_hour","current_minute","current_month","current_second","current_time","current_weekday","current_year","cursor_sprite","debug_mode","delta_time","depth","direction","display_aa","error_last","error_occurred","event_action","event_data","event_number","event_object","event_type","fps","fps_real","friction","game_display_name","game_id","game_project_name","game_save_id","gamemaker_pro","gamemaker_registered","gamemaker_version","gravity","gravity_direction","health","hspeed","iap_data","id|0","image_alpha","image_angle","image_blend","image_index","image_number","image_speed","image_xscale","image_yscale","instance_count","instance_id","keyboard_key","keyboard_lastchar","keyboard_lastkey","keyboard_string","layer","lives","mask_index","mouse_button","mouse_lastbutton","mouse_x","mouse_y","object_index","os_browser","os_device","os_type","os_version","path_endaction","path_index","path_orientation","path_position","path_positionprevious","path_scale","path_speed","persistent","phy_active","phy_angular_damping","phy_angular_velocity","phy_bullet","phy_col_normal_x","phy_col_normal_y","phy_collision_points","phy_collision_x","phy_collision_y","phy_com_x","phy_com_y","phy_dynamic","phy_fixed_rotation","phy_inertia","phy_kinematic","phy_linear_damping","phy_linear_velocity_x","phy_linear_velocity_y","phy_mass","phy_position_x","phy_position_xprevious","phy_position_y","phy_position_yprevious","phy_rotation","phy_sleeping","phy_speed","phy_speed_x","phy_speed_y","program_directory","room","room_caption","room_first","room_height","room_last","room_persistent","room_speed","room_width","score","self","show_health","show_lives","show_score","solid","speed","sprite_height","sprite_index","sprite_width","sprite_xoffset","sprite_yoffset","temp_directory","timeline_index","timeline_loop","timeline_position","timeline_running","timeline_speed","view_angle","view_camera","view_current","view_enabled","view_hborder","view_hport","view_hspeed","view_hview","view_object","view_surface_id","view_vborder","view_visible","view_vspeed","view_wport","view_wview","view_xport","view_xview","view_yport","view_yview","visible","vspeed","webgl_enabled","working_directory","xprevious","xstart","x|0","yprevious","ystart","y|0"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},9777:e=>{e.exports=function(e){const t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:t,illegal:"{e.exports=function(e){return{name:"Golo",keywords:{keyword:["println","readln","print","import","module","function","local","return","let","var","while","for","foreach","times","in","case","when","match","with","break","continue","augment","augmentation","each","find","filter","reduce","if","then","else","otherwise","try","catch","finally","raise","throw","orIfNull","DynamicObject|10","DynamicVariable","struct","Observable","map","set","vector","list","array"],literal:["true","false","null"]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}},1432:e=>{e.exports=function(e){return{name:"Gradle",case_insensitive:!0,keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"],contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}},7474:e=>{e.exports=function(e){const t=e.regex;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:t.concat(/[_A-Za-z][_0-9A-Za-z]*/,t.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}},253:e=>{function t(e,t={}){return t.variants=e,t}e.exports=function(e){const n=e.regex,r="[A-Za-z0-9_$]+",i=t([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),a={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},o=t([e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]),s=t([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],{className:"string"}),l={match:[/(class|interface|trait|enum|record|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE],scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{"variable.language":"this super",literal:"true false null",type:["byte","short","char","int","long","boolean","float","double","void"],keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof","var"]},contains:[e.SHEBANG({binary:"groovy",relevance:10}),i,s,a,o,l,{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:r+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[i,s,a,o,"self"]},{className:"symbol",begin:"^[ \t]*"+n.lookahead(r+":"),excludeBegin:!0,end:r+":",relevance:0}],illegal:/#|<\//}}},4517:e=>{e.exports=function(e){return{name:"HAML",case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",null,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",end:/$/,subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0},{className:"tag",begin:"^\\s*%",contains:[{className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+"},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,end:/\}/,subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}},3187:e=>{e.exports=function(e){const t=e.regex,n={$pattern:/[\w.\/]+/,built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},r=/\[\]|\[[^\]]+\]/,i=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,a=t.either(/""|"[^"]+"/,/''|'[^']+'/,r,i),o=t.concat(t.optional(/\.|\.\/|\//),a,t.anyNumberOfTimes(t.concat(/(\.|\/)/,a))),s=t.concat("(",r,"|",i,")(?==)"),l={begin:o},c=e.inherit(l,{keywords:{$pattern:/[\w.\/]+/,literal:["true","false","undefined","null"]}}),d={begin:/\(/,end:/\)/},u={className:"attr",begin:s,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,c,d]}}},p={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},u,c,d],returnEnd:!0},m=e.inherit(l,{className:"name",keywords:n,starts:e.inherit(p,{end:/\)/})});d.contains=[m];const g=e.inherit(l,{keywords:n,className:"name",starts:e.inherit(p,{end:/\}\}/})}),_=e.inherit(l,{keywords:n,className:"name"}),h=e.inherit(l,{className:"name",keywords:n,starts:e.inherit(p,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[g],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[_]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[g]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[_]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}},379:e=>{e.exports=function(e){const t="([0-9]_*)+",n="([0-9a-fA-F]_*)+",r="([!#$%&*+.\\/<=>?@\\\\^~-]|(?!([(),;\\[\\]`|{}]|[_:\"']))(\\p{S}|\\p{P}))",i={variants:[e.COMMENT("--+","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},a={className:"meta",begin:/\{-#/,end:/#-\}/},o={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[a,o,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),i]},c={className:"number",relevance:0,variants:[{match:`\\b(${t})(\\.(${t}))?([eE][+-]?(${t}))?\\b`},{match:`\\b0[xX]_*(${n})(\\.(${n}))?([pP][+-]?(${t}))?\\b`},{match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",unicodeRegex:!0,contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,i],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,i],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,i]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[a,s,l,{begin:/\{/,end:/\}/,contains:l.contains},i]},{beginKeywords:"default",end:"$",contains:[s,l,i]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,i]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,i]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},a,o,{scope:"string",begin:/'(?=\\?.')/,end:/'/,contains:[{scope:"char.escape",match:/\\./}]},e.QUOTE_STRING_MODE,c,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:`(?!-)${r}--+|--+(?!-)${r}`},i,{begin:"->|<-"}]}}},4139:e=>{e.exports=function(e){return{name:"Haxe",aliases:["hx"],keywords:{keyword:"abstract break case cast catch continue default do dynamic else enum extern final for function here if import in inline is macro never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",built_in:"trace this",literal:"true false null _"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:/\$\{/,end:/\}/},{className:"subst",begin:/\$/,end:/\W\}/}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:/(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/,relevance:0},{className:"variable",begin:"\\$[a-zA-Z_$][a-zA-Z0-9_$]*"},{className:"meta",begin:/@:?/,end:/\(|$/,excludeEnd:!0},{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elseif end error"}},{className:"type",begin:/:[ \t]*/,end:/[^A-Za-z0-9_ \t\->]/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/:[ \t]*/,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/new */,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"title.class",beginKeywords:"enum",end:/\{/,contains:[e.TITLE_MODE]},{className:"title.class",begin:"\\babstract\\b(?=\\s*"+e.IDENT_RE+"\\s*\\()",end:/[\{$]/,contains:[{className:"type",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/from +/,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/to +/,end:/\W/,excludeBegin:!0,excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"title.class",begin:/\b(class|interface) +/,end:/[\{$]/,excludeEnd:!0,keywords:"class interface",contains:[{className:"keyword",begin:/\b(extends|implements) +/,keywords:"extends implements",contains:[{className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{className:"title.function",beginKeywords:"function",end:/\(/,excludeEnd:!0,illegal:/\S/,contains:[e.TITLE_MODE]}],illegal:/<\//}}},4008:e=>{e.exports=function(e){return{name:"HSP",case_insensitive:!0,keywords:{$pattern:/[\w._]+/,keyword:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",begin:/\{"/,end:/"\}/,contains:[e.BACKSLASH_ESCAPE]},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$",keywords:{keyword:"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib"},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]}}},3383:e=>{e.exports=function(e){const t="HTTP/([32]|1\\.[01])",n={className:"attribute",begin:e.regex.concat("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},r=[n,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+t+" \\d{3})",end:/$/,contains:[{className:"meta",begin:t},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:r}},{begin:"(?=^[A-Z]+ (.*?) "+t+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:t},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:r}},e.inherit(n,{relevance:0})]}}},4688:e=>{e.exports=function(e){const t="a-zA-Z_\\-!.?+*=<>&#'",n="["+t+"]["+t+"0-9/;:]*",r={$pattern:n,built_in:"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~"},i={begin:n,relevance:0},a={className:"number",begin:"[-+]?\\d+(\\.\\d+)?",relevance:0},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),s=e.COMMENT(";","$",{relevance:0}),l={className:"literal",begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},c={begin:"[\\[\\{]",end:"[\\]\\}]",relevance:0},d={className:"comment",begin:"\\^"+n},u=e.COMMENT("\\^\\{","\\}"),p={className:"symbol",begin:"[:]{1,2}"+n},m={begin:"\\(",end:"\\)"},g={endsWithParent:!0,relevance:0},_={className:"name",relevance:0,keywords:r,begin:n,starts:g},h=[m,o,d,u,s,p,c,a,l,i];return m.contains=[e.COMMENT("comment",""),_,g],g.contains=h,c.contains=h,{name:"Hy",aliases:["hylang"],illegal:/\S/,contains:[e.SHEBANG(),m,o,d,u,s,p,c,a,l]}}},6969:e=>{e.exports=function(e){return{name:"Inform 7",aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:"\\[",end:"\\]"}]},{className:"section",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment",begin:"\\[",end:"\\]",contains:["self"]}]}}},1533:e=>{e.exports=function(e){const t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},a={className:"literal",begin:/\bon|off|true|false|yes|no\b/},o={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},s={begin:/\[/,end:/\]/,contains:[r,a,i,o,n,"self"],relevance:0},l=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:t.concat(l,"(\\s*\\.\\s*",l,")*",t.lookahead(/\s*=\s*[^#\s]/)),className:"attr",starts:{end:/$/,contains:[r,s,a,i,o,n]}}]}}},4499:e=>{e.exports=function(e){const t=e.regex,n=/(_[a-z_\d]+)?/,r=/([de][+-]?\d+)?/,i={className:"number",variants:[{begin:t.concat(/\b\d+/,/\.(\d*)/,r,n)},{begin:t.concat(/\b\d+/,r,n)},{begin:t.concat(/\.\d+/,r,n)}],relevance:0};return{name:"IRPF90",case_insensitive:!0,keywords:{literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),i]}}},5665:e=>{e.exports=function(e){const t="[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*",n={className:"number",begin:e.NUMBER_RE,relevance:0},r={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]},i={className:"doctag",begin:"\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",relevance:0},a={variants:[{className:"comment",begin:"//",end:"$",relevance:0,contains:[e.PHRASAL_WORDS_MODE,i]},{className:"comment",begin:"/\\*",end:"\\*/",relevance:0,contains:[e.PHRASAL_WORDS_MODE,i]}]},o={$pattern:t,keyword:"and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока except exitfor finally foreach все if если in в not не or или try while пока ",built_in:"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE smHidden smMaximized smMinimized smNormal wmNo wmYes COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STATЕ SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID RESULT_VAR_NAME RESULT_VAR_NAME_ENG AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ISBL_SYNTAX NO_SYNTAX XML_SYNTAX WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP atUser atGroup atRole aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty apBegin apEnd alLeft alRight asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways cirCommon cirRevoked ctSignature ctEncode ctSignatureEncode clbUnchecked clbChecked clbGrayed ceISB ceAlways ceNever ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob cfInternal cfDisplay ciUnspecified ciWrite ciRead ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton cctDate cctInteger cctNumeric cctPick cctReference cctString cctText cltInternal cltPrimary cltGUI dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange dssEdit dssInsert dssBrowse dssInActive dftDate dftShortDate dftDateTime dftTimeStamp dotDays dotHours dotMinutes dotSeconds dtkndLocal dtkndUTC arNone arView arEdit arFull ddaView ddaEdit emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ecotFile ecotProcess eaGet eaCopy eaCreate eaCreateStandardRoute edltAll edltNothing edltQuery essmText essmCard esvtLast esvtLastActive esvtSpecified edsfExecutive edsfArchive edstSQLServer edstFile edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile vsDefault vsDesign vsActive vsObsolete etNone etCertificate etPassword etCertificatePassword ecException ecWarning ecInformation estAll estApprovingOnly evtLast evtLastActive evtQuery fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch grhAuto grhX1 grhX2 grhX3 hltText hltRTF hltHTML iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG im8bGrayscale im24bRGB im1bMonochrome itBMP itJPEG itWMF itPNG ikhInformation ikhWarning ikhError ikhNoIcon icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler isShow isHide isByUserSettings jkJob jkNotice jkControlJob jtInner jtLeft jtRight jtFull jtCross lbpAbove lbpBelow lbpLeft lbpRight eltPerConnection eltPerUser sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac sfsItalic sfsStrikeout sfsNormal ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom vtEqual vtGreaterOrEqual vtLessOrEqual vtRange rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth rdWindow rdFile rdPrinter rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument reOnChange reOnChangeValues ttGlobal ttLocal ttUser ttSystem ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal smSelect smLike smCard stNone stAuthenticating stApproving sctString sctStream sstAnsiSort sstNaturalSort svtEqual svtContain soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown tarAbortByUser tarAbortByWorkflowException tvtAllWords tvtExactPhrase tvtAnyWord usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected btAnd btDetailAnd btOr btNotOr btOnly vmView vmSelect vmNavigation vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection wfatPrevious wfatNext wfatCancel wfatFinish wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 wfetQueryParameter wfetText wfetDelimiter wfetLabel wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal waAll waPerformers waManual wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection wiLow wiNormal wiHigh wrtSoft wrtHard wsInit wsRunning wsDone wsControlled wsAborted wsContinued wtmFull wtmFromCurrent wtmOnlyCurrent ",class:"AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work ВызовСпособ ИмяОтчета РеквЗнач ",literal:"null true false nil "},s={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,keywords:o,relevance:0},l={className:"type",begin:":[ \\t]*("+"IApplication IAccessRights IAccountRepository IAccountSelectionRestrictions IAction IActionList IAdministrationHistoryDescription IAnchors IApplication IArchiveInfo IAttachment IAttachmentList ICheckListBox ICheckPointedList IColumn IComponent IComponentDescription IComponentToken IComponentTokenFactory IComponentTokenInfo ICompRecordInfo IConnection IContents IControl IControlJob IControlJobInfo IControlList ICrypto ICrypto2 ICustomJob ICustomJobInfo ICustomListBox ICustomObjectWizardStep ICustomWork ICustomWorkInfo IDataSet IDataSetAccessInfo IDataSigner IDateCriterion IDateRequisite IDateRequisiteDescription IDateValue IDeaAccessRights IDeaObjectInfo IDevelopmentComponentLock IDialog IDialogFactory IDialogPickRequisiteItems IDialogsFactory IDICSFactory IDocRequisite IDocumentInfo IDualListDialog IECertificate IECertificateInfo IECertificates IEditControl IEditorForm IEdmsExplorer IEdmsObject IEdmsObjectDescription IEdmsObjectFactory IEdmsObjectInfo IEDocument IEDocumentAccessRights IEDocumentDescription IEDocumentEditor IEDocumentFactory IEDocumentInfo IEDocumentStorage IEDocumentVersion IEDocumentVersionListDialog IEDocumentVersionSource IEDocumentWizardStep IEDocVerSignature IEDocVersionState IEnabledMode IEncodeProvider IEncrypter IEvent IEventList IException IExternalEvents IExternalHandler IFactory IField IFileDialog IFolder IFolderDescription IFolderDialog IFolderFactory IFolderInfo IForEach IForm IFormTitle IFormWizardStep IGlobalIDFactory IGlobalIDInfo IGrid IHasher IHistoryDescription IHyperLinkControl IImageButton IImageControl IInnerPanel IInplaceHint IIntegerCriterion IIntegerList IIntegerRequisite IIntegerValue IISBLEditorForm IJob IJobDescription IJobFactory IJobForm IJobInfo ILabelControl ILargeIntegerCriterion ILargeIntegerRequisite ILargeIntegerValue ILicenseInfo ILifeCycleStage IList IListBox ILocalIDInfo ILocalization ILock IMemoryDataSet IMessagingFactory IMetadataRepository INotice INoticeInfo INumericCriterion INumericRequisite INumericValue IObject IObjectDescription IObjectImporter IObjectInfo IObserver IPanelGroup IPickCriterion IPickProperty IPickRequisite IPickRequisiteDescription IPickRequisiteItem IPickRequisiteItems IPickValue IPrivilege IPrivilegeList IProcess IProcessFactory IProcessMessage IProgress IProperty IPropertyChangeEvent IQuery IReference IReferenceCriterion IReferenceEnabledMode IReferenceFactory IReferenceHistoryDescription IReferenceInfo IReferenceRecordCardWizardStep IReferenceRequisiteDescription IReferencesFactory IReferenceValue IRefRequisite IReport IReportFactory IRequisite IRequisiteDescription IRequisiteDescriptionList IRequisiteFactory IRichEdit IRouteStep IRule IRuleList ISchemeBlock IScript IScriptFactory ISearchCriteria ISearchCriterion ISearchDescription ISearchFactory ISearchFolderInfo ISearchForObjectDescription ISearchResultRestrictions ISecuredContext ISelectDialog IServerEvent IServerEventFactory IServiceDialog IServiceFactory ISignature ISignProvider ISignProvider2 ISignProvider3 ISimpleCriterion IStringCriterion IStringList IStringRequisite IStringRequisiteDescription IStringValue ISystemDialogsFactory ISystemInfo ITabSheet ITask ITaskAbortReasonInfo ITaskCardWizardStep ITaskDescription ITaskFactory ITaskInfo ITaskRoute ITextCriterion ITextRequisite ITextValue ITreeListSelectDialog IUser IUserList IValue IView IWebBrowserControl IWizard IWizardAction IWizardFactory IWizardFormElement IWizardParam IWizardPickParam IWizardReferenceParam IWizardStep IWorkAccessRights IWorkDescription IWorkflowAskableParam IWorkflowAskableParams IWorkflowBlock IWorkflowBlockResult IWorkflowEnabledMode IWorkflowParam IWorkflowPickParam IWorkflowReferenceParam IWorkState IWorkTreeCustomNode IWorkTreeJobNode IWorkTreeTaskNode IXMLEditorForm SBCrypto ".trim().replace(/\s/g,"|")+")",end:"[ \\t]*=",excludeEnd:!0},c={className:"variable",keywords:o,begin:t,relevance:0,contains:[l,s]},d="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*\\(";return{name:"ISBL",case_insensitive:!0,keywords:o,illegal:"\\$|\\?|%|,|;$|~|#|@|{var t="[0-9](_*[0-9])*",n=`\\.(${t})`,r="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b(${t})((${n})|\\.)?|(${n}))[eE][+-]?(${t})[fFdD]?\\b`},{begin:`\\b(${t})((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:`\\b(${t})[fFdD]\\b`},{begin:`\\b0[xX]((${r})\\.?|(${r})?\\.(${r}))[pP][+-]?(${t})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${r})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function a(e,t,n){return-1===n?"":e.replace(t,(r=>a(e,t,n-1)))}e.exports=function(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+a("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),o={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},s={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i,s]}}},6035:e=>{const t="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],r=["true","false","null","undefined","NaN","Infinity"],i=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],l=[].concat(o,i,a);e.exports=function(e){const c=e.regex,d=t,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let i;">"===r&&(((e,{after:t})=>{const n="",P={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:p,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:O},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,E,S,y,v,{match:/\$\d+/},h,O,{className:"attr",begin:d+c.lookahead(":"),relevance:0},P,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:p,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},w,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},R,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},x,k,{match:/\$[(.]/}]}}},5623:e=>{e.exports=function(e){return{name:"JBoss CLI",aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+",keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"params",begin:/--[\w\-=\/]+/},{className:"function",begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B([\/.])[\w\-.\/=]+/},{className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}],relevance:0}]}}},621:e=>{e.exports=function(e){const t=["true","false","null"],n={scope:"literal",beginKeywords:t.join(" ")};return{name:"JSON",keywords:{literal:t},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}},8514:e=>{e.exports=function(e){return{name:"Julia REPL",contains:[{className:"meta.prompt",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"}}],aliases:["jldoctest"]}}},8874:e=>{e.exports=function(e){const t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",n={$pattern:t,keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"],literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","π","ℯ"],built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"]},r={keywords:n,illegal:/<\//},i={className:"subst",begin:/\$\(/,end:/\)/,keywords:n},a={className:"variable",begin:"\\$"+t},o={className:"string",contains:[e.BACKSLASH_ESCAPE,i,a],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},s={className:"string",contains:[e.BACKSLASH_ESCAPE,i,a],begin:"`",end:"`"},l={className:"meta",begin:"@"+t};return r.name="Julia",r.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o,s,l,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],i.contains=r.contains,r}},2838:e=>{var t="[0-9](_*[0-9])*",n=`\\.(${t})`,r="[0-9a-fA-F](_*[0-9a-fA-F])*",i={className:"number",variants:[{begin:`(\\b(${t})((${n})|\\.)?|(${n}))[eE][+-]?(${t})[fFdD]?\\b`},{begin:`\\b(${t})((${n})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${n})[fFdD]?\\b`},{begin:`\\b(${t})[fFdD]\\b`},{begin:`\\b0[xX]((${r})\\.?|(${r})?\\.(${r}))[pP][+-]?(${t})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${r})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};e.exports=function(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,r]}]};r.contains.push(o);const s={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=i,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},p=u;return p.variants[1].contains=[u],u.variants[1].contains=[p],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},n,s,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,s,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},s,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},c]}}},6089:e=>{e.exports=function(e){const t="[a-zA-Z_][\\w.]*",n="<\\?(lasso(script)?|=)",r="\\]|\\?>",i={$pattern:t+"|&[lg]t;",literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},a=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),o={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[a]}},s={className:"meta",begin:"\\[/noprocess|"+n},l={className:"symbol",begin:"'"+t+"'"},c=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$]"+t},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",end:t,illegal:"\\W"},{className:"params",variants:[{begin:"-(?!infinity)"+t,relevance:0},{begin:"(\\.\\.\\.)"}]},{begin:/(->|\.)\s*/,relevance:0,contains:[l]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:t+"(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso",aliases:["ls","lassoscript"],case_insensitive:!0,keywords:i,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[|"+n,returnEnd:!0,relevance:0,contains:[a]}},o,s,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",keywords:i,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[noprocess\\]|"+n,returnEnd:!0,contains:[a]}},o,s].concat(c)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(c)}}},3483:e=>{e.exports=function(e){const t=[{begin:/\^{6}[0-9a-f]{6}/},{begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/},{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],n=[{className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0,begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map((e=>e+"(?![a-zA-Z@:_])")))},{endsParent:!0,begin:new RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map((e=>e+"(?![a-zA-Z:_])")).join("|"))},{endsParent:!0,variants:t},{endsParent:!0,relevance:0,variants:[{begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0,begin:/#+\d?/},{variants:t},{className:"built_in",relevance:0,begin:/[$&^_]/},{className:"meta",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:"$",relevance:10},e.COMMENT("%","$",{relevance:0})],r={begin:/\{/,end:/\}/,relevance:0,contains:["self",...n]},i=e.inherit(r,{relevance:0,endsParent:!0,contains:[r,...n]}),a={begin:/\[/,end:/\]/,endsParent:!0,relevance:0,contains:[r,...n]},o={begin:/\s+/,relevance:0},s=[i],l=[a],c=function(e,t){return{contains:[o],starts:{relevance:0,contains:e,starts:t}}},d=function(e,t){return{begin:"\\\\"+e+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+e},relevance:0,contains:[o],starts:t}},u=function(t,n){return e.inherit({begin:"\\\\begin(?=[ \t]*(\\r?\\n[ \t]*)?\\{"+t+"\\})",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0},c(s,n))},p=(t="string")=>e.END_SAME_AS_BEGIN({className:t,begin:/(.|\r?\n)/,end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),m=function(e){return{className:"string",end:"(?=\\\\end\\{"+e+"\\})"}},g=(e="string")=>({relevance:0,begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/,endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]}});return{name:"LaTeX",aliases:["tex"],contains:[...["verb","lstinline"].map((e=>d(e,{contains:[p()]}))),d("mint",c(s,{contains:[p()]})),d("mintinline",c(s,{contains:[g(),p()]})),d("url",{contains:[g("link"),g("link")]}),d("hyperref",{contains:[g("link")]}),d("href",c(l,{contains:[g("link")]})),...[].concat(...["","\\*"].map((e=>[u("verbatim"+e,m("verbatim"+e)),u("filecontents"+e,c(s,m("filecontents"+e))),...["","B","L"].map((t=>u(t+"Verbatim"+e,c(l,m(t+"Verbatim"+e)))))]))),u("minted",c(l,c(s,m("minted")))),...n]}}},7172:e=>{e.exports=function(e){return{name:"LDIF",contains:[{className:"attribute",match:"^dn(?=:)",relevance:10},{className:"attribute",match:"^\\w+(?=:)"},{className:"literal",match:"^-"},e.HASH_COMMENT_MODE]}}},6703:e=>{e.exports=function(e){const t=/([A-Za-z_][A-Za-z_0-9]*)?/,n={scope:"params",begin:/\(/,end:/\)(?=\:?)/,endsParent:!0,relevance:7,contains:[{scope:"string",begin:'"',end:'"'},{scope:"keyword",match:["true","false","in"].join("|")},{scope:"variable",match:/[A-Za-z_][A-Za-z_0-9]*/},{scope:"operator",match:/\+|\-|\*|\/|\%|\=\=|\=|\!|\>|\<|\&\&|\|\|/}]},r={match:[t,/(?=\()/],scope:{1:"keyword"},contains:[n]};return n.contains.unshift(r),{name:"Leaf",contains:[{match:[/#+/,t,/(?=\()/],scope:{1:"punctuation",2:"keyword"},starts:{contains:[{match:/\:/,scope:"punctuation"}]},contains:[n]},{match:[/#+/,t,/:?/],scope:{1:"punctuation",2:"keyword",3:"punctuation"}}]}}},8330:e=>{const t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],a=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),o=r.concat(i);e.exports=function(e){const s=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),l=o,c="[\\w-]+",d="("+c+"|@\\{"+c+"\\})",u=[],p=[],m=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},g=function(e,t,n){return{className:e,begin:t,relevance:n}},_={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:n.join(" ")},h={begin:"\\(",end:"\\)",contains:p,keywords:_,relevance:0};p.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m("'"),m('"'),s.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},s.HEXCOLOR,h,g("variable","@@?"+c,10),g("variable","@\\{"+c+"\\}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:c+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},s.IMPORTANT,{beginKeywords:"and not"},s.FUNCTION_DISPATCH);const f=p.concat({begin:/\{/,end:/\}/,contains:u}),b={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(p)},E={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+a.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:p}}]},S={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:_,returnEnd:!0,contains:p,relevance:0}},y={className:"variable",variants:[{begin:"@"+c+"\\s*:",relevance:15},{begin:"@"+c}],starts:{end:"[;}]",returnEnd:!0,contains:f}},v={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,g("keyword","all\\b"),g("variable","@\\{"+c+"\\}"),{begin:"\\b("+t.join("|")+")\\b",className:"selector-tag"},s.CSS_NUMBER_MODE,g("selector-tag",d,0),g("selector-id","#"+d),g("selector-class","\\."+d,0),g("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+i.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:f},{begin:"!important"},s.FUNCTION_DISPATCH]},T={begin:c+":(:)?"+`(${l.join("|")})`,returnBegin:!0,contains:[v]};return u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,S,y,T,E,v,b,s.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:u}}},2491:e=>{e.exports=function(e){const t="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",n="\\|[^]*?\\|",r="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",i={className:"literal",begin:"\\b(t{1}|nil)\\b"},a={className:"number",variants:[{begin:r,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+r+" +"+r,end:"\\)"}]},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),s=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+t},d={begin:t,relevance:0},u={begin:n},p={contains:[a,o,l,c,{begin:"\\(",end:"\\)",contains:["self",i,o,a,d]},d],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+n}]},m={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},g={begin:"\\(\\s*",end:"\\)"},_={endsWithParent:!0,relevance:0};return g.contains=[{className:"name",variants:[{begin:t,relevance:0},{begin:n}]},_],_.contains=[p,m,g,i,a,o,s,l,c,u,d],{name:"Lisp",illegal:/\S/,contains:[a,e.SHEBANG(),i,o,s,p,m,g,d]}}},6859:e=>{e.exports=function(e){const t={className:"variable",variants:[{begin:"\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)"},{begin:"\\$_[A-Z]+"}],relevance:0},n=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],r=e.inherit(e.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z][A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),i=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{name:"LiveCode",case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress difference directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract symmetric union unload vectorDotProduct wait write"},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[i,r],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r]},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r].concat(n),illegal:";$|^\\[|^=|&|\\{"}}},5914:e=>{const t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],r=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);e.exports=function(e){const i={keyword:t.concat(["then","unless","until","loop","of","by","when","and","or","is","isnt","not","it","that","otherwise","from","to","til","fallthrough","case","enum","native","list","map","__hasProp","__extends","__slice","__bind","__indexOf"]),literal:n.concat(["yes","no","on","off","it","that","void"]),built_in:r.concat(["npm","print"])},a="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",o=e.inherit(e.TITLE_MODE,{begin:a}),s={className:"subst",begin:/#\{/,end:/\}/,keywords:i},l={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:i},c=[e.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,l]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,l]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[s,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/}]},{begin:"@"+a},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];s.contains=c;const d={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(c)}]},u={variants:[{match:[/class\s+/,a,/\s+extends\s+/,a]},{match:[/class\s+/,a]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:i};return{name:"LiveScript",aliases:["ls"],keywords:i,illegal:/\/\*/,contains:c.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,{begin:"(#=>|=>|\\|>>|-?->|!->)"},{className:"function",contains:[o,d],returnBegin:!0,variants:[{begin:"("+a+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",end:"->\\*?"},{begin:"("+a+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+a+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},u,{begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},6398:e=>{e.exports=function(e){const t=e.regex,n=/([-a-zA-Z$._][\w$.-]*)/,r={className:"variable",variants:[{begin:t.concat(/%/,n)},{begin:/%\d+/},{begin:/#\d+/}]},i={className:"title",variants:[{begin:t.concat(/@/,n)},{begin:/@\d+/},{begin:t.concat(/!/,n)},{begin:t.concat(/!\d+/,n)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/,contains:[{className:"char.escape",match:/\\\d\d/}]},i,{className:"punctuation",relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},r,{className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}},2480:e=>{e.exports=function(e){const t={className:"number",relevance:0,begin:e.C_NUMBER_RE};return{name:"LSL (Linden Scripting Language)",illegal:":",contains:[{className:"string",begin:'"',end:'"',contains:[{className:"subst",begin:/\\[tn"\\]/}]},{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")],relevance:0},t,{className:"section",variants:[{begin:"\\b(state|default)\\b"},{begin:"\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b"}]},{className:"built_in",begin:"\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b"},{className:"literal",variants:[{begin:"\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{begin:"\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b"},{begin:"\\b(FALSE|TRUE)\\b"},{begin:"\\b(ZERO_ROTATION)\\b"},{begin:"\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b"},{begin:"\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b"}]},{className:"type",begin:"\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}},3873:e=>{e.exports=function(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}},7667:e=>{e.exports=function(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{e.exports=function(e){const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},r={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},a=e.inherit(r,{contains:[]}),o=e.inherit(i,{contains:[]});r.contains.push(o),i.contains.push(a);let s=[t,n];return[r,i,a,o].forEach((e=>{e.contains=e.contains.concat(s)})),s=s.concat(r,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:s},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:s}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},r,i,{className:"quote",begin:"^>\\s+",contains:s,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},n,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},6455:e=>{const t=["AASTriangle","AbelianGroup","Abort","AbortKernels","AbortProtect","AbortScheduledTask","Above","Abs","AbsArg","AbsArgPlot","Absolute","AbsoluteCorrelation","AbsoluteCorrelationFunction","AbsoluteCurrentValue","AbsoluteDashing","AbsoluteFileName","AbsoluteOptions","AbsolutePointSize","AbsoluteThickness","AbsoluteTime","AbsoluteTiming","AcceptanceThreshold","AccountingForm","Accumulate","Accuracy","AccuracyGoal","AcousticAbsorbingValue","AcousticImpedanceValue","AcousticNormalVelocityValue","AcousticPDEComponent","AcousticPressureCondition","AcousticRadiationValue","AcousticSoundHardValue","AcousticSoundSoftCondition","ActionDelay","ActionMenu","ActionMenuBox","ActionMenuBoxOptions","Activate","Active","ActiveClassification","ActiveClassificationObject","ActiveItem","ActivePrediction","ActivePredictionObject","ActiveStyle","AcyclicGraphQ","AddOnHelpPath","AddSides","AddTo","AddToSearchIndex","AddUsers","AdjacencyGraph","AdjacencyList","AdjacencyMatrix","AdjacentMeshCells","Adjugate","AdjustmentBox","AdjustmentBoxOptions","AdjustTimeSeriesForecast","AdministrativeDivisionData","AffineHalfSpace","AffineSpace","AffineStateSpaceModel","AffineTransform","After","AggregatedEntityClass","AggregationLayer","AircraftData","AirportData","AirPressureData","AirSoundAttenuation","AirTemperatureData","AiryAi","AiryAiPrime","AiryAiZero","AiryBi","AiryBiPrime","AiryBiZero","AlgebraicIntegerQ","AlgebraicNumber","AlgebraicNumberDenominator","AlgebraicNumberNorm","AlgebraicNumberPolynomial","AlgebraicNumberTrace","AlgebraicRules","AlgebraicRulesData","Algebraics","AlgebraicUnitQ","Alignment","AlignmentMarker","AlignmentPoint","All","AllowAdultContent","AllowChatServices","AllowedCloudExtraParameters","AllowedCloudParameterExtensions","AllowedDimensions","AllowedFrequencyRange","AllowedHeads","AllowGroupClose","AllowIncomplete","AllowInlineCells","AllowKernelInitialization","AllowLooseGrammar","AllowReverseGroupClose","AllowScriptLevelChange","AllowVersionUpdate","AllTrue","Alphabet","AlphabeticOrder","AlphabeticSort","AlphaChannel","AlternateImage","AlternatingFactorial","AlternatingGroup","AlternativeHypothesis","Alternatives","AltitudeMethod","AmbientLight","AmbiguityFunction","AmbiguityList","Analytic","AnatomyData","AnatomyForm","AnatomyPlot3D","AnatomySkinStyle","AnatomyStyling","AnchoredSearch","And","AndersonDarlingTest","AngerJ","AngleBisector","AngleBracket","AnglePath","AnglePath3D","AngleVector","AngularGauge","Animate","AnimatedImage","AnimationCycleOffset","AnimationCycleRepetitions","AnimationDirection","AnimationDisplayTime","AnimationRate","AnimationRepetitions","AnimationRunning","AnimationRunTime","AnimationTimeIndex","AnimationVideo","Animator","AnimatorBox","AnimatorBoxOptions","AnimatorElements","Annotate","Annotation","AnnotationDelete","AnnotationKeys","AnnotationRules","AnnotationValue","Annuity","AnnuityDue","Annulus","AnomalyDetection","AnomalyDetector","AnomalyDetectorFunction","Anonymous","Antialiasing","Antihermitian","AntihermitianMatrixQ","Antisymmetric","AntisymmetricMatrixQ","Antonyms","AnyOrder","AnySubset","AnyTrue","Apart","ApartSquareFree","APIFunction","Appearance","AppearanceElements","AppearanceRules","AppellF1","Append","AppendCheck","AppendLayer","AppendTo","Application","Apply","ApplyReaction","ApplySides","ApplyTo","ArcCos","ArcCosh","ArcCot","ArcCoth","ArcCsc","ArcCsch","ArcCurvature","ARCHProcess","ArcLength","ArcSec","ArcSech","ArcSin","ArcSinDistribution","ArcSinh","ArcTan","ArcTanh","Area","Arg","ArgMax","ArgMin","ArgumentCountQ","ArgumentsOptions","ARIMAProcess","ArithmeticGeometricMean","ARMAProcess","Around","AroundReplace","ARProcess","Array","ArrayComponents","ArrayDepth","ArrayFilter","ArrayFlatten","ArrayMesh","ArrayPad","ArrayPlot","ArrayPlot3D","ArrayQ","ArrayReduce","ArrayResample","ArrayReshape","ArrayRules","Arrays","Arrow","Arrow3DBox","ArrowBox","Arrowheads","ASATriangle","Ask","AskAppend","AskConfirm","AskDisplay","AskedQ","AskedValue","AskFunction","AskState","AskTemplateDisplay","AspectRatio","AspectRatioFixed","Assert","AssessmentFunction","AssessmentResultObject","AssociateTo","Association","AssociationFormat","AssociationMap","AssociationQ","AssociationThread","AssumeDeterministic","Assuming","Assumptions","AstroAngularSeparation","AstroBackground","AstroCenter","AstroDistance","AstroGraphics","AstroGridLines","AstroGridLinesStyle","AstronomicalData","AstroPosition","AstroProjection","AstroRange","AstroRangePadding","AstroReferenceFrame","AstroStyling","AstroZoomLevel","Asymptotic","AsymptoticDSolveValue","AsymptoticEqual","AsymptoticEquivalent","AsymptoticExpectation","AsymptoticGreater","AsymptoticGreaterEqual","AsymptoticIntegrate","AsymptoticLess","AsymptoticLessEqual","AsymptoticOutputTracker","AsymptoticProbability","AsymptoticProduct","AsymptoticRSolveValue","AsymptoticSolve","AsymptoticSum","Asynchronous","AsynchronousTaskObject","AsynchronousTasks","Atom","AtomCoordinates","AtomCount","AtomDiagramCoordinates","AtomLabels","AtomLabelStyle","AtomList","AtomQ","AttachCell","AttachedCell","AttentionLayer","Attributes","Audio","AudioAmplify","AudioAnnotate","AudioAnnotationLookup","AudioBlockMap","AudioCapture","AudioChannelAssignment","AudioChannelCombine","AudioChannelMix","AudioChannels","AudioChannelSeparate","AudioData","AudioDelay","AudioDelete","AudioDevice","AudioDistance","AudioEncoding","AudioFade","AudioFrequencyShift","AudioGenerator","AudioIdentify","AudioInputDevice","AudioInsert","AudioInstanceQ","AudioIntervals","AudioJoin","AudioLabel","AudioLength","AudioLocalMeasurements","AudioLooping","AudioLoudness","AudioMeasurements","AudioNormalize","AudioOutputDevice","AudioOverlay","AudioPad","AudioPan","AudioPartition","AudioPause","AudioPitchShift","AudioPlay","AudioPlot","AudioQ","AudioRecord","AudioReplace","AudioResample","AudioReverb","AudioReverse","AudioSampleRate","AudioSpectralMap","AudioSpectralTransformation","AudioSplit","AudioStop","AudioStream","AudioStreams","AudioTimeStretch","AudioTrackApply","AudioTrackSelection","AudioTrim","AudioType","AugmentedPolyhedron","AugmentedSymmetricPolynomial","Authenticate","Authentication","AuthenticationDialog","AutoAction","Autocomplete","AutocompletionFunction","AutoCopy","AutocorrelationTest","AutoDelete","AutoEvaluateEvents","AutoGeneratedPackage","AutoIndent","AutoIndentSpacings","AutoItalicWords","AutoloadPath","AutoMatch","Automatic","AutomaticImageSize","AutoMultiplicationSymbol","AutoNumberFormatting","AutoOpenNotebooks","AutoOpenPalettes","AutoOperatorRenderings","AutoQuoteCharacters","AutoRefreshed","AutoRemove","AutorunSequencing","AutoScaling","AutoScroll","AutoSpacing","AutoStyleOptions","AutoStyleWords","AutoSubmitting","Axes","AxesEdge","AxesLabel","AxesOrigin","AxesStyle","AxiomaticTheory","Axis","Axis3DBox","Axis3DBoxOptions","AxisBox","AxisBoxOptions","AxisLabel","AxisObject","AxisStyle","BabyMonsterGroupB","Back","BackFaceColor","BackFaceGlowColor","BackFaceOpacity","BackFaceSpecularColor","BackFaceSpecularExponent","BackFaceSurfaceAppearance","BackFaceTexture","Background","BackgroundAppearance","BackgroundTasksSettings","Backslash","Backsubstitution","Backward","Ball","Band","BandpassFilter","BandstopFilter","BarabasiAlbertGraphDistribution","BarChart","BarChart3D","BarcodeImage","BarcodeRecognize","BaringhausHenzeTest","BarLegend","BarlowProschanImportance","BarnesG","BarOrigin","BarSpacing","BartlettHannWindow","BartlettWindow","BaseDecode","BaseEncode","BaseForm","Baseline","BaselinePosition","BaseStyle","BasicRecurrentLayer","BatchNormalizationLayer","BatchSize","BatesDistribution","BattleLemarieWavelet","BayesianMaximization","BayesianMaximizationObject","BayesianMinimization","BayesianMinimizationObject","Because","BeckmannDistribution","Beep","Before","Begin","BeginDialogPacket","BeginPackage","BellB","BellY","Below","BenfordDistribution","BeniniDistribution","BenktanderGibratDistribution","BenktanderWeibullDistribution","BernoulliB","BernoulliDistribution","BernoulliGraphDistribution","BernoulliProcess","BernsteinBasis","BesagL","BesselFilterModel","BesselI","BesselJ","BesselJZero","BesselK","BesselY","BesselYZero","Beta","BetaBinomialDistribution","BetaDistribution","BetaNegativeBinomialDistribution","BetaPrimeDistribution","BetaRegularized","Between","BetweennessCentrality","Beveled","BeveledPolyhedron","BezierCurve","BezierCurve3DBox","BezierCurve3DBoxOptions","BezierCurveBox","BezierCurveBoxOptions","BezierFunction","BilateralFilter","BilateralLaplaceTransform","BilateralZTransform","Binarize","BinaryDeserialize","BinaryDistance","BinaryFormat","BinaryImageQ","BinaryRead","BinaryReadList","BinarySerialize","BinaryWrite","BinCounts","BinLists","BinnedVariogramList","Binomial","BinomialDistribution","BinomialPointProcess","BinomialProcess","BinormalDistribution","BiorthogonalSplineWavelet","BioSequence","BioSequenceBackTranslateList","BioSequenceComplement","BioSequenceInstances","BioSequenceModify","BioSequencePlot","BioSequenceQ","BioSequenceReverseComplement","BioSequenceTranscribe","BioSequenceTranslate","BipartiteGraphQ","BiquadraticFilterModel","BirnbaumImportance","BirnbaumSaundersDistribution","BitAnd","BitClear","BitGet","BitLength","BitNot","BitOr","BitRate","BitSet","BitShiftLeft","BitShiftRight","BitXor","BiweightLocation","BiweightMidvariance","Black","BlackmanHarrisWindow","BlackmanNuttallWindow","BlackmanWindow","Blank","BlankForm","BlankNullSequence","BlankSequence","Blend","Block","BlockchainAddressData","BlockchainBase","BlockchainBlockData","BlockchainContractValue","BlockchainData","BlockchainGet","BlockchainKeyEncode","BlockchainPut","BlockchainTokenData","BlockchainTransaction","BlockchainTransactionData","BlockchainTransactionSign","BlockchainTransactionSubmit","BlockDiagonalMatrix","BlockLowerTriangularMatrix","BlockMap","BlockRandom","BlockUpperTriangularMatrix","BlomqvistBeta","BlomqvistBetaTest","Blue","Blur","Blurring","BodePlot","BohmanWindow","Bold","Bond","BondCount","BondLabels","BondLabelStyle","BondList","BondQ","Bookmarks","Boole","BooleanConsecutiveFunction","BooleanConvert","BooleanCountingFunction","BooleanFunction","BooleanGraph","BooleanMaxterms","BooleanMinimize","BooleanMinterms","BooleanQ","BooleanRegion","Booleans","BooleanStrings","BooleanTable","BooleanVariables","BorderDimensions","BorelTannerDistribution","Bottom","BottomHatTransform","BoundaryDiscretizeGraphics","BoundaryDiscretizeRegion","BoundaryMesh","BoundaryMeshRegion","BoundaryMeshRegionQ","BoundaryStyle","BoundedRegionQ","BoundingRegion","Bounds","Box","BoxBaselineShift","BoxData","BoxDimensions","Boxed","Boxes","BoxForm","BoxFormFormatTypes","BoxFrame","BoxID","BoxMargins","BoxMatrix","BoxObject","BoxRatios","BoxRotation","BoxRotationPoint","BoxStyle","BoxWhiskerChart","Bra","BracketingBar","BraKet","BrayCurtisDistance","BreadthFirstScan","Break","BridgeData","BrightnessEqualize","BroadcastStationData","Brown","BrownForsytheTest","BrownianBridgeProcess","BrowserCategory","BSplineBasis","BSplineCurve","BSplineCurve3DBox","BSplineCurve3DBoxOptions","BSplineCurveBox","BSplineCurveBoxOptions","BSplineFunction","BSplineSurface","BSplineSurface3DBox","BSplineSurface3DBoxOptions","BubbleChart","BubbleChart3D","BubbleScale","BubbleSizes","BuckyballGraph","BuildCompiledComponent","BuildingData","BulletGauge","BusinessDayQ","ButterflyGraph","ButterworthFilterModel","Button","ButtonBar","ButtonBox","ButtonBoxOptions","ButtonCell","ButtonContents","ButtonData","ButtonEvaluator","ButtonExpandable","ButtonFrame","ButtonFunction","ButtonMargins","ButtonMinHeight","ButtonNote","ButtonNotebook","ButtonSource","ButtonStyle","ButtonStyleMenuListing","Byte","ByteArray","ByteArrayFormat","ByteArrayFormatQ","ByteArrayQ","ByteArrayToString","ByteCount","ByteOrdering","C","CachedValue","CacheGraphics","CachePersistence","CalendarConvert","CalendarData","CalendarType","Callout","CalloutMarker","CalloutStyle","CallPacket","CanberraDistance","Cancel","CancelButton","CandlestickChart","CanonicalGraph","CanonicalizePolygon","CanonicalizePolyhedron","CanonicalizeRegion","CanonicalName","CanonicalWarpingCorrespondence","CanonicalWarpingDistance","CantorMesh","CantorStaircase","Canvas","Cap","CapForm","CapitalDifferentialD","Capitalize","CapsuleShape","CaptureRunning","CaputoD","CardinalBSplineBasis","CarlemanLinearize","CarlsonRC","CarlsonRD","CarlsonRE","CarlsonRF","CarlsonRG","CarlsonRJ","CarlsonRK","CarlsonRM","CarmichaelLambda","CaseOrdering","Cases","CaseSensitive","Cashflow","Casoratian","Cast","Catalan","CatalanNumber","Catch","CategoricalDistribution","Catenate","CatenateLayer","CauchyDistribution","CauchyMatrix","CauchyPointProcess","CauchyWindow","CayleyGraph","CDF","CDFDeploy","CDFInformation","CDFWavelet","Ceiling","CelestialSystem","Cell","CellAutoOverwrite","CellBaseline","CellBoundingBox","CellBracketOptions","CellChangeTimes","CellContents","CellContext","CellDingbat","CellDingbatMargin","CellDynamicExpression","CellEditDuplicate","CellElementsBoundingBox","CellElementSpacings","CellEpilog","CellEvaluationDuplicate","CellEvaluationFunction","CellEvaluationLanguage","CellEventActions","CellFrame","CellFrameColor","CellFrameLabelMargins","CellFrameLabels","CellFrameMargins","CellFrameStyle","CellGroup","CellGroupData","CellGrouping","CellGroupingRules","CellHorizontalScrolling","CellID","CellInsertionPointCell","CellLabel","CellLabelAutoDelete","CellLabelMargins","CellLabelPositioning","CellLabelStyle","CellLabelTemplate","CellMargins","CellObject","CellOpen","CellPrint","CellProlog","Cells","CellSize","CellStyle","CellTags","CellTrayPosition","CellTrayWidgets","CellularAutomaton","CensoredDistribution","Censoring","Center","CenterArray","CenterDot","CenteredInterval","CentralFeature","CentralMoment","CentralMomentGeneratingFunction","Cepstrogram","CepstrogramArray","CepstrumArray","CForm","ChampernowneNumber","ChangeOptions","ChannelBase","ChannelBrokerAction","ChannelDatabin","ChannelHistoryLength","ChannelListen","ChannelListener","ChannelListeners","ChannelListenerWait","ChannelObject","ChannelPreSendFunction","ChannelReceiverFunction","ChannelSend","ChannelSubscribers","ChanVeseBinarize","Character","CharacterCounts","CharacterEncoding","CharacterEncodingsPath","CharacteristicFunction","CharacteristicPolynomial","CharacterName","CharacterNormalize","CharacterRange","Characters","ChartBaseStyle","ChartElementData","ChartElementDataFunction","ChartElementFunction","ChartElements","ChartLabels","ChartLayout","ChartLegends","ChartStyle","Chebyshev1FilterModel","Chebyshev2FilterModel","ChebyshevDistance","ChebyshevT","ChebyshevU","Check","CheckAbort","CheckAll","CheckArguments","Checkbox","CheckboxBar","CheckboxBox","CheckboxBoxOptions","ChemicalConvert","ChemicalData","ChemicalFormula","ChemicalInstance","ChemicalReaction","ChessboardDistance","ChiDistribution","ChineseRemainder","ChiSquareDistribution","ChoiceButtons","ChoiceDialog","CholeskyDecomposition","Chop","ChromaticityPlot","ChromaticityPlot3D","ChromaticPolynomial","Circle","CircleBox","CircleDot","CircleMinus","CirclePlus","CirclePoints","CircleThrough","CircleTimes","CirculantGraph","CircularArcThrough","CircularOrthogonalMatrixDistribution","CircularQuaternionMatrixDistribution","CircularRealMatrixDistribution","CircularSymplecticMatrixDistribution","CircularUnitaryMatrixDistribution","Circumsphere","CityData","ClassifierFunction","ClassifierInformation","ClassifierMeasurements","ClassifierMeasurementsObject","Classify","ClassPriors","Clear","ClearAll","ClearAttributes","ClearCookies","ClearPermissions","ClearSystemCache","ClebschGordan","ClickPane","ClickToCopy","ClickToCopyEnabled","Clip","ClipboardNotebook","ClipFill","ClippingStyle","ClipPlanes","ClipPlanesStyle","ClipRange","Clock","ClockGauge","ClockwiseContourIntegral","Close","Closed","CloseKernels","ClosenessCentrality","Closing","ClosingAutoSave","ClosingEvent","CloudAccountData","CloudBase","CloudConnect","CloudConnections","CloudDeploy","CloudDirectory","CloudDisconnect","CloudEvaluate","CloudExport","CloudExpression","CloudExpressions","CloudFunction","CloudGet","CloudImport","CloudLoggingData","CloudObject","CloudObjectInformation","CloudObjectInformationData","CloudObjectNameFormat","CloudObjects","CloudObjectURLType","CloudPublish","CloudPut","CloudRenderingMethod","CloudSave","CloudShare","CloudSubmit","CloudSymbol","CloudUnshare","CloudUserID","ClusterClassify","ClusterDissimilarityFunction","ClusteringComponents","ClusteringMeasurements","ClusteringTree","CMYKColor","Coarse","CodeAssistOptions","Coefficient","CoefficientArrays","CoefficientDomain","CoefficientList","CoefficientRules","CoifletWavelet","Collect","CollinearPoints","Colon","ColonForm","ColorBalance","ColorCombine","ColorConvert","ColorCoverage","ColorData","ColorDataFunction","ColorDetect","ColorDistance","ColorFunction","ColorFunctionBinning","ColorFunctionScaling","Colorize","ColorNegate","ColorOutput","ColorProfileData","ColorQ","ColorQuantize","ColorReplace","ColorRules","ColorSelectorSettings","ColorSeparate","ColorSetter","ColorSetterBox","ColorSetterBoxOptions","ColorSlider","ColorsNear","ColorSpace","ColorToneMapping","Column","ColumnAlignments","ColumnBackgrounds","ColumnForm","ColumnLines","ColumnsEqual","ColumnSpacings","ColumnWidths","CombinatorB","CombinatorC","CombinatorI","CombinatorK","CombinatorS","CombinatorW","CombinatorY","CombinedEntityClass","CombinerFunction","CometData","CommonDefaultFormatTypes","Commonest","CommonestFilter","CommonName","CommonUnits","CommunityBoundaryStyle","CommunityGraphPlot","CommunityLabels","CommunityRegionStyle","CompanyData","CompatibleUnitQ","CompilationOptions","CompilationTarget","Compile","Compiled","CompiledCodeFunction","CompiledComponent","CompiledExpressionDeclaration","CompiledFunction","CompiledLayer","CompilerCallback","CompilerEnvironment","CompilerEnvironmentAppend","CompilerEnvironmentAppendTo","CompilerEnvironmentObject","CompilerOptions","Complement","ComplementedEntityClass","CompleteGraph","CompleteGraphQ","CompleteIntegral","CompleteKaryTree","CompletionsListPacket","Complex","ComplexArrayPlot","ComplexContourPlot","Complexes","ComplexExpand","ComplexInfinity","ComplexityFunction","ComplexListPlot","ComplexPlot","ComplexPlot3D","ComplexRegionPlot","ComplexStreamPlot","ComplexVectorPlot","ComponentMeasurements","ComponentwiseContextMenu","Compose","ComposeList","ComposeSeries","CompositeQ","Composition","CompoundElement","CompoundExpression","CompoundPoissonDistribution","CompoundPoissonProcess","CompoundRenewalProcess","Compress","CompressedData","CompressionLevel","ComputeUncertainty","ConcaveHullMesh","Condition","ConditionalExpression","Conditioned","Cone","ConeBox","ConfidenceLevel","ConfidenceRange","ConfidenceTransform","ConfigurationPath","Confirm","ConfirmAssert","ConfirmBy","ConfirmMatch","ConfirmQuiet","ConformationMethod","ConformAudio","ConformImages","Congruent","ConicGradientFilling","ConicHullRegion","ConicHullRegion3DBox","ConicHullRegion3DBoxOptions","ConicHullRegionBox","ConicHullRegionBoxOptions","ConicOptimization","Conjugate","ConjugateTranspose","Conjunction","Connect","ConnectedComponents","ConnectedGraphComponents","ConnectedGraphQ","ConnectedMeshComponents","ConnectedMoleculeComponents","ConnectedMoleculeQ","ConnectionSettings","ConnectLibraryCallbackFunction","ConnectSystemModelComponents","ConnectSystemModelController","ConnesWindow","ConoverTest","ConservativeConvectionPDETerm","ConsoleMessage","Constant","ConstantArray","ConstantArrayLayer","ConstantImage","ConstantPlusLayer","ConstantRegionQ","Constants","ConstantTimesLayer","ConstellationData","ConstrainedMax","ConstrainedMin","Construct","Containing","ContainsAll","ContainsAny","ContainsExactly","ContainsNone","ContainsOnly","ContentDetectorFunction","ContentFieldOptions","ContentLocationFunction","ContentObject","ContentPadding","ContentsBoundingBox","ContentSelectable","ContentSize","Context","ContextMenu","Contexts","ContextToFileName","Continuation","Continue","ContinuedFraction","ContinuedFractionK","ContinuousAction","ContinuousMarkovProcess","ContinuousTask","ContinuousTimeModelQ","ContinuousWaveletData","ContinuousWaveletTransform","ContourDetect","ContourGraphics","ContourIntegral","ContourLabels","ContourLines","ContourPlot","ContourPlot3D","Contours","ContourShading","ContourSmoothing","ContourStyle","ContraharmonicMean","ContrastiveLossLayer","Control","ControlActive","ControlAlignment","ControlGroupContentsBox","ControllabilityGramian","ControllabilityMatrix","ControllableDecomposition","ControllableModelQ","ControllerDuration","ControllerInformation","ControllerInformationData","ControllerLinking","ControllerManipulate","ControllerMethod","ControllerPath","ControllerState","ControlPlacement","ControlsRendering","ControlType","ConvectionPDETerm","Convergents","ConversionOptions","ConversionRules","ConvertToPostScript","ConvertToPostScriptPacket","ConvexHullMesh","ConvexHullRegion","ConvexOptimization","ConvexPolygonQ","ConvexPolyhedronQ","ConvexRegionQ","ConvolutionLayer","Convolve","ConwayGroupCo1","ConwayGroupCo2","ConwayGroupCo3","CookieFunction","Cookies","CoordinateBoundingBox","CoordinateBoundingBoxArray","CoordinateBounds","CoordinateBoundsArray","CoordinateChartData","CoordinatesToolOptions","CoordinateTransform","CoordinateTransformData","CoplanarPoints","CoprimeQ","Coproduct","CopulaDistribution","Copyable","CopyDatabin","CopyDirectory","CopyFile","CopyFunction","CopyTag","CopyToClipboard","CoreNilpotentDecomposition","CornerFilter","CornerNeighbors","Correlation","CorrelationDistance","CorrelationFunction","CorrelationTest","Cos","Cosh","CoshIntegral","CosineDistance","CosineWindow","CosIntegral","Cot","Coth","CoulombF","CoulombG","CoulombH1","CoulombH2","Count","CountDistinct","CountDistinctBy","CounterAssignments","CounterBox","CounterBoxOptions","CounterClockwiseContourIntegral","CounterEvaluator","CounterFunction","CounterIncrements","CounterStyle","CounterStyleMenuListing","CountRoots","CountryData","Counts","CountsBy","Covariance","CovarianceEstimatorFunction","CovarianceFunction","CoxianDistribution","CoxIngersollRossProcess","CoxModel","CoxModelFit","CramerVonMisesTest","CreateArchive","CreateCellID","CreateChannel","CreateCloudExpression","CreateCompilerEnvironment","CreateDatabin","CreateDataStructure","CreateDataSystemModel","CreateDialog","CreateDirectory","CreateDocument","CreateFile","CreateIntermediateDirectories","CreateLicenseEntitlement","CreateManagedLibraryExpression","CreateNotebook","CreatePacletArchive","CreatePalette","CreatePermissionsGroup","CreateScheduledTask","CreateSearchIndex","CreateSystemModel","CreateTemporary","CreateTypeInstance","CreateUUID","CreateWindow","CriterionFunction","CriticalityFailureImportance","CriticalitySuccessImportance","CriticalSection","Cross","CrossEntropyLossLayer","CrossingCount","CrossingDetect","CrossingPolygon","CrossMatrix","Csc","Csch","CSGRegion","CSGRegionQ","CSGRegionTree","CTCLossLayer","Cube","CubeRoot","Cubics","Cuboid","CuboidBox","CuboidBoxOptions","Cumulant","CumulantGeneratingFunction","CumulativeFeatureImpactPlot","Cup","CupCap","Curl","CurlyDoubleQuote","CurlyQuote","CurrencyConvert","CurrentDate","CurrentImage","CurrentNotebookImage","CurrentScreenImage","CurrentValue","Curry","CurryApplied","CurvatureFlowFilter","CurveClosed","Cyan","CycleGraph","CycleIndexPolynomial","Cycles","CyclicGroup","Cyclotomic","Cylinder","CylinderBox","CylinderBoxOptions","CylindricalDecomposition","CylindricalDecompositionFunction","D","DagumDistribution","DamData","DamerauLevenshteinDistance","DampingFactor","Darker","Dashed","Dashing","DatabaseConnect","DatabaseDisconnect","DatabaseReference","Databin","DatabinAdd","DatabinRemove","Databins","DatabinSubmit","DatabinUpload","DataCompression","DataDistribution","DataRange","DataReversed","Dataset","DatasetDisplayPanel","DatasetTheme","DataStructure","DataStructureQ","Date","DateBounds","Dated","DateDelimiters","DateDifference","DatedUnit","DateFormat","DateFunction","DateGranularity","DateHistogram","DateInterval","DateList","DateListLogPlot","DateListPlot","DateListStepPlot","DateObject","DateObjectQ","DateOverlapsQ","DatePattern","DatePlus","DateRange","DateReduction","DateScale","DateSelect","DateString","DateTicksFormat","DateValue","DateWithinQ","DaubechiesWavelet","DavisDistribution","DawsonF","DayCount","DayCountConvention","DayHemisphere","DaylightQ","DayMatchQ","DayName","DayNightTerminator","DayPlus","DayRange","DayRound","DeBruijnGraph","DeBruijnSequence","Debug","DebugTag","Decapitalize","Decimal","DecimalForm","DeclareCompiledComponent","DeclareKnownSymbols","DeclarePackage","Decompose","DeconvolutionLayer","Decrement","Decrypt","DecryptFile","DedekindEta","DeepSpaceProbeData","Default","Default2DTool","Default3DTool","DefaultAttachedCellStyle","DefaultAxesStyle","DefaultBaseStyle","DefaultBoxStyle","DefaultButton","DefaultColor","DefaultControlPlacement","DefaultDockedCellStyle","DefaultDuplicateCellStyle","DefaultDuration","DefaultElement","DefaultFaceGridsStyle","DefaultFieldHintStyle","DefaultFont","DefaultFontProperties","DefaultFormatType","DefaultFrameStyle","DefaultFrameTicksStyle","DefaultGridLinesStyle","DefaultInlineFormatType","DefaultInputFormatType","DefaultLabelStyle","DefaultMenuStyle","DefaultNaturalLanguage","DefaultNewCellStyle","DefaultNewInlineCellStyle","DefaultNotebook","DefaultOptions","DefaultOutputFormatType","DefaultPrintPrecision","DefaultStyle","DefaultStyleDefinitions","DefaultTextFormatType","DefaultTextInlineFormatType","DefaultTicksStyle","DefaultTooltipStyle","DefaultValue","DefaultValues","Defer","DefineExternal","DefineInputStreamMethod","DefineOutputStreamMethod","DefineResourceFunction","Definition","Degree","DegreeCentrality","DegreeGraphDistribution","DegreeLexicographic","DegreeReverseLexicographic","DEigensystem","DEigenvalues","Deinitialization","Del","DelaunayMesh","Delayed","Deletable","Delete","DeleteAdjacentDuplicates","DeleteAnomalies","DeleteBorderComponents","DeleteCases","DeleteChannel","DeleteCloudExpression","DeleteContents","DeleteDirectory","DeleteDuplicates","DeleteDuplicatesBy","DeleteElements","DeleteFile","DeleteMissing","DeleteObject","DeletePermissionsKey","DeleteSearchIndex","DeleteSmallComponents","DeleteStopwords","DeleteWithContents","DeletionWarning","DelimitedArray","DelimitedSequence","Delimiter","DelimiterAutoMatching","DelimiterFlashTime","DelimiterMatching","Delimiters","DeliveryFunction","Dendrogram","Denominator","DensityGraphics","DensityHistogram","DensityPlot","DensityPlot3D","DependentVariables","Deploy","Deployed","Depth","DepthFirstScan","Derivative","DerivativeFilter","DerivativePDETerm","DerivedKey","DescriptorStateSpace","DesignMatrix","DestroyAfterEvaluation","Det","DeviceClose","DeviceConfigure","DeviceExecute","DeviceExecuteAsynchronous","DeviceObject","DeviceOpen","DeviceOpenQ","DeviceRead","DeviceReadBuffer","DeviceReadLatest","DeviceReadList","DeviceReadTimeSeries","Devices","DeviceStreams","DeviceWrite","DeviceWriteBuffer","DGaussianWavelet","DiacriticalPositioning","Diagonal","DiagonalizableMatrixQ","DiagonalMatrix","DiagonalMatrixQ","Dialog","DialogIndent","DialogInput","DialogLevel","DialogNotebook","DialogProlog","DialogReturn","DialogSymbols","Diamond","DiamondMatrix","DiceDissimilarity","DictionaryLookup","DictionaryWordQ","DifferenceDelta","DifferenceOrder","DifferenceQuotient","DifferenceRoot","DifferenceRootReduce","Differences","DifferentialD","DifferentialRoot","DifferentialRootReduce","DifferentiatorFilter","DiffusionPDETerm","DiggleGatesPointProcess","DiggleGrattonPointProcess","DigitalSignature","DigitBlock","DigitBlockMinimum","DigitCharacter","DigitCount","DigitQ","DihedralAngle","DihedralGroup","Dilation","DimensionalCombinations","DimensionalMeshComponents","DimensionReduce","DimensionReducerFunction","DimensionReduction","Dimensions","DiracComb","DiracDelta","DirectedEdge","DirectedEdges","DirectedGraph","DirectedGraphQ","DirectedInfinity","Direction","DirectionalLight","Directive","Directory","DirectoryName","DirectoryQ","DirectoryStack","DirichletBeta","DirichletCharacter","DirichletCondition","DirichletConvolve","DirichletDistribution","DirichletEta","DirichletL","DirichletLambda","DirichletTransform","DirichletWindow","DisableConsolePrintPacket","DisableFormatting","DiscreteAsymptotic","DiscreteChirpZTransform","DiscreteConvolve","DiscreteDelta","DiscreteHadamardTransform","DiscreteIndicator","DiscreteInputOutputModel","DiscreteLimit","DiscreteLQEstimatorGains","DiscreteLQRegulatorGains","DiscreteLyapunovSolve","DiscreteMarkovProcess","DiscreteMaxLimit","DiscreteMinLimit","DiscretePlot","DiscretePlot3D","DiscreteRatio","DiscreteRiccatiSolve","DiscreteShift","DiscreteTimeModelQ","DiscreteUniformDistribution","DiscreteVariables","DiscreteWaveletData","DiscreteWaveletPacketTransform","DiscreteWaveletTransform","DiscretizeGraphics","DiscretizeRegion","Discriminant","DisjointQ","Disjunction","Disk","DiskBox","DiskBoxOptions","DiskMatrix","DiskSegment","Dispatch","DispatchQ","DispersionEstimatorFunction","Display","DisplayAllSteps","DisplayEndPacket","DisplayForm","DisplayFunction","DisplayPacket","DisplayRules","DisplayString","DisplayTemporary","DisplayWith","DisplayWithRef","DisplayWithVariable","DistanceFunction","DistanceMatrix","DistanceTransform","Distribute","Distributed","DistributedContexts","DistributeDefinitions","DistributionChart","DistributionDomain","DistributionFitTest","DistributionParameterAssumptions","DistributionParameterQ","Dithering","Div","Divergence","Divide","DivideBy","Dividers","DivideSides","Divisible","Divisors","DivisorSigma","DivisorSum","DMSList","DMSString","Do","DockedCell","DockedCells","DocumentGenerator","DocumentGeneratorInformation","DocumentGeneratorInformationData","DocumentGenerators","DocumentNotebook","DocumentWeightingRules","Dodecahedron","DomainRegistrationInformation","DominantColors","DominatorTreeGraph","DominatorVertexList","DOSTextFormat","Dot","DotDashed","DotEqual","DotLayer","DotPlusLayer","Dotted","DoubleBracketingBar","DoubleContourIntegral","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DoublyInfinite","Down","DownArrow","DownArrowBar","DownArrowUpArrow","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","Downsample","DownTee","DownTeeArrow","DownValues","DownValuesFunction","DragAndDrop","DrawBackFaces","DrawEdges","DrawFrontFaces","DrawHighlighted","DrazinInverse","Drop","DropoutLayer","DropShadowing","DSolve","DSolveChangeVariables","DSolveValue","Dt","DualLinearProgramming","DualPlanarGraph","DualPolyhedron","DualSystemsModel","DumpGet","DumpSave","DuplicateFreeQ","Duration","Dynamic","DynamicBox","DynamicBoxOptions","DynamicEvaluationTimeout","DynamicGeoGraphics","DynamicImage","DynamicLocation","DynamicModule","DynamicModuleBox","DynamicModuleBoxOptions","DynamicModuleParent","DynamicModuleValues","DynamicName","DynamicNamespace","DynamicReference","DynamicSetting","DynamicUpdating","DynamicWrapper","DynamicWrapperBox","DynamicWrapperBoxOptions","E","EarthImpactData","EarthquakeData","EccentricityCentrality","Echo","EchoEvaluation","EchoFunction","EchoLabel","EchoTiming","EclipseType","EdgeAdd","EdgeBetweennessCentrality","EdgeCapacity","EdgeCapForm","EdgeChromaticNumber","EdgeColor","EdgeConnectivity","EdgeContract","EdgeCost","EdgeCount","EdgeCoverQ","EdgeCycleMatrix","EdgeDashing","EdgeDelete","EdgeDetect","EdgeForm","EdgeIndex","EdgeJoinForm","EdgeLabeling","EdgeLabels","EdgeLabelStyle","EdgeList","EdgeOpacity","EdgeQ","EdgeRenderingFunction","EdgeRules","EdgeShapeFunction","EdgeStyle","EdgeTaggedGraph","EdgeTaggedGraphQ","EdgeTags","EdgeThickness","EdgeTransitiveGraphQ","EdgeValueRange","EdgeValueSizes","EdgeWeight","EdgeWeightedGraphQ","Editable","EditButtonSettings","EditCellTagsSettings","EditDistance","EffectiveInterest","Eigensystem","Eigenvalues","EigenvectorCentrality","Eigenvectors","Element","ElementData","ElementwiseLayer","ElidedForms","Eliminate","EliminationOrder","Ellipsoid","EllipticE","EllipticExp","EllipticExpPrime","EllipticF","EllipticFilterModel","EllipticK","EllipticLog","EllipticNomeQ","EllipticPi","EllipticReducedHalfPeriods","EllipticTheta","EllipticThetaPrime","EmbedCode","EmbeddedHTML","EmbeddedService","EmbeddedSQLEntityClass","EmbeddedSQLExpression","EmbeddingLayer","EmbeddingObject","EmitSound","EmphasizeSyntaxErrors","EmpiricalDistribution","Empty","EmptyGraphQ","EmptyRegion","EmptySpaceF","EnableConsolePrintPacket","Enabled","Enclose","Encode","Encrypt","EncryptedObject","EncryptFile","End","EndAdd","EndDialogPacket","EndOfBuffer","EndOfFile","EndOfLine","EndOfString","EndPackage","EngineEnvironment","EngineeringForm","Enter","EnterExpressionPacket","EnterTextPacket","Entity","EntityClass","EntityClassList","EntityCopies","EntityFunction","EntityGroup","EntityInstance","EntityList","EntityPrefetch","EntityProperties","EntityProperty","EntityPropertyClass","EntityRegister","EntityStore","EntityStores","EntityTypeName","EntityUnregister","EntityValue","Entropy","EntropyFilter","Environment","Epilog","EpilogFunction","Equal","EqualColumns","EqualRows","EqualTilde","EqualTo","EquatedTo","Equilibrium","EquirippleFilterKernel","Equivalent","Erf","Erfc","Erfi","ErlangB","ErlangC","ErlangDistribution","Erosion","ErrorBox","ErrorBoxOptions","ErrorNorm","ErrorPacket","ErrorsDialogSettings","EscapeRadius","EstimatedBackground","EstimatedDistribution","EstimatedPointNormals","EstimatedPointProcess","EstimatedProcess","EstimatedVariogramModel","EstimatorGains","EstimatorRegulator","EuclideanDistance","EulerAngles","EulerCharacteristic","EulerE","EulerGamma","EulerianGraphQ","EulerMatrix","EulerPhi","Evaluatable","Evaluate","Evaluated","EvaluatePacket","EvaluateScheduledTask","EvaluationBox","EvaluationCell","EvaluationCompletionAction","EvaluationData","EvaluationElements","EvaluationEnvironment","EvaluationMode","EvaluationMonitor","EvaluationNotebook","EvaluationObject","EvaluationOrder","EvaluationPrivileges","EvaluationRateLimit","Evaluator","EvaluatorNames","EvenQ","EventData","EventEvaluator","EventHandler","EventHandlerTag","EventLabels","EventSeries","ExactBlackmanWindow","ExactNumberQ","ExactRootIsolation","ExampleData","Except","ExcludedContexts","ExcludedForms","ExcludedLines","ExcludedPhysicalQuantities","ExcludePods","Exclusions","ExclusionsStyle","Exists","Exit","ExitDialog","ExoplanetData","Exp","Expand","ExpandAll","ExpandDenominator","ExpandFileName","ExpandNumerator","Expectation","ExpectationE","ExpectedValue","ExpGammaDistribution","ExpIntegralE","ExpIntegralEi","ExpirationDate","Exponent","ExponentFunction","ExponentialDistribution","ExponentialFamily","ExponentialGeneratingFunction","ExponentialMovingAverage","ExponentialPowerDistribution","ExponentPosition","ExponentStep","Export","ExportAutoReplacements","ExportByteArray","ExportForm","ExportPacket","ExportString","Expression","ExpressionCell","ExpressionGraph","ExpressionPacket","ExpressionTree","ExpressionUUID","ExpToTrig","ExtendedEntityClass","ExtendedGCD","Extension","ExtentElementFunction","ExtentMarkers","ExtentSize","ExternalBundle","ExternalCall","ExternalDataCharacterEncoding","ExternalEvaluate","ExternalFunction","ExternalFunctionName","ExternalIdentifier","ExternalObject","ExternalOptions","ExternalSessionObject","ExternalSessions","ExternalStorageBase","ExternalStorageDownload","ExternalStorageGet","ExternalStorageObject","ExternalStoragePut","ExternalStorageUpload","ExternalTypeSignature","ExternalValue","Extract","ExtractArchive","ExtractLayer","ExtractPacletArchive","ExtremeValueDistribution","FaceAlign","FaceForm","FaceGrids","FaceGridsStyle","FaceRecognize","FacialFeatures","Factor","FactorComplete","Factorial","Factorial2","FactorialMoment","FactorialMomentGeneratingFunction","FactorialPower","FactorInteger","FactorList","FactorSquareFree","FactorSquareFreeList","FactorTerms","FactorTermsList","Fail","Failure","FailureAction","FailureDistribution","FailureQ","False","FareySequence","FARIMAProcess","FeatureDistance","FeatureExtract","FeatureExtraction","FeatureExtractor","FeatureExtractorFunction","FeatureImpactPlot","FeatureNames","FeatureNearest","FeatureSpacePlot","FeatureSpacePlot3D","FeatureTypes","FeatureValueDependencyPlot","FeatureValueImpactPlot","FEDisableConsolePrintPacket","FeedbackLinearize","FeedbackSector","FeedbackSectorStyle","FeedbackType","FEEnableConsolePrintPacket","FetalGrowthData","Fibonacci","Fibonorial","FieldCompletionFunction","FieldHint","FieldHintStyle","FieldMasked","FieldSize","File","FileBaseName","FileByteCount","FileConvert","FileDate","FileExistsQ","FileExtension","FileFormat","FileFormatProperties","FileFormatQ","FileHandler","FileHash","FileInformation","FileName","FileNameDepth","FileNameDialogSettings","FileNameDrop","FileNameForms","FileNameJoin","FileNames","FileNameSetter","FileNameSplit","FileNameTake","FileNameToFormatList","FilePrint","FileSize","FileSystemMap","FileSystemScan","FileSystemTree","FileTemplate","FileTemplateApply","FileType","FilledCurve","FilledCurveBox","FilledCurveBoxOptions","FilledTorus","FillForm","Filling","FillingStyle","FillingTransform","FilteredEntityClass","FilterRules","FinancialBond","FinancialData","FinancialDerivative","FinancialIndicator","Find","FindAnomalies","FindArgMax","FindArgMin","FindChannels","FindClique","FindClusters","FindCookies","FindCurvePath","FindCycle","FindDevices","FindDistribution","FindDistributionParameters","FindDivisions","FindEdgeColoring","FindEdgeCover","FindEdgeCut","FindEdgeIndependentPaths","FindEquationalProof","FindEulerianCycle","FindExternalEvaluators","FindFaces","FindFile","FindFit","FindFormula","FindFundamentalCycles","FindGeneratingFunction","FindGeoLocation","FindGeometricConjectures","FindGeometricTransform","FindGraphCommunities","FindGraphIsomorphism","FindGraphPartition","FindHamiltonianCycle","FindHamiltonianPath","FindHiddenMarkovStates","FindImageText","FindIndependentEdgeSet","FindIndependentVertexSet","FindInstance","FindIntegerNullVector","FindIsomers","FindIsomorphicSubgraph","FindKClan","FindKClique","FindKClub","FindKPlex","FindLibrary","FindLinearRecurrence","FindList","FindMatchingColor","FindMaximum","FindMaximumCut","FindMaximumFlow","FindMaxValue","FindMeshDefects","FindMinimum","FindMinimumCostFlow","FindMinimumCut","FindMinValue","FindMoleculeSubstructure","FindPath","FindPeaks","FindPermutation","FindPlanarColoring","FindPointProcessParameters","FindPostmanTour","FindProcessParameters","FindRegionTransform","FindRepeat","FindRoot","FindSequenceFunction","FindSettings","FindShortestPath","FindShortestTour","FindSpanningTree","FindSubgraphIsomorphism","FindSystemModelEquilibrium","FindTextualAnswer","FindThreshold","FindTransientRepeat","FindVertexColoring","FindVertexCover","FindVertexCut","FindVertexIndependentPaths","Fine","FinishDynamic","FiniteAbelianGroupCount","FiniteGroupCount","FiniteGroupData","First","FirstCase","FirstPassageTimeDistribution","FirstPosition","FischerGroupFi22","FischerGroupFi23","FischerGroupFi24Prime","FisherHypergeometricDistribution","FisherRatioTest","FisherZDistribution","Fit","FitAll","FitRegularization","FittedModel","FixedOrder","FixedPoint","FixedPointList","FlashSelection","Flat","FlatShading","Flatten","FlattenAt","FlattenLayer","FlatTopWindow","FlightData","FlipView","Floor","FlowPolynomial","Fold","FoldList","FoldPair","FoldPairList","FoldWhile","FoldWhileList","FollowRedirects","Font","FontColor","FontFamily","FontForm","FontName","FontOpacity","FontPostScriptName","FontProperties","FontReencoding","FontSize","FontSlant","FontSubstitutions","FontTracking","FontVariations","FontWeight","For","ForAll","ForAllType","ForceVersionInstall","Format","FormatRules","FormatType","FormatTypeAutoConvert","FormatValues","FormBox","FormBoxOptions","FormControl","FormFunction","FormLayoutFunction","FormObject","FormPage","FormProtectionMethod","FormTheme","FormulaData","FormulaLookup","FortranForm","Forward","ForwardBackward","ForwardCloudCredentials","Fourier","FourierCoefficient","FourierCosCoefficient","FourierCosSeries","FourierCosTransform","FourierDCT","FourierDCTFilter","FourierDCTMatrix","FourierDST","FourierDSTMatrix","FourierMatrix","FourierParameters","FourierSequenceTransform","FourierSeries","FourierSinCoefficient","FourierSinSeries","FourierSinTransform","FourierTransform","FourierTrigSeries","FoxH","FoxHReduce","FractionalBrownianMotionProcess","FractionalD","FractionalGaussianNoiseProcess","FractionalPart","FractionBox","FractionBoxOptions","FractionLine","Frame","FrameBox","FrameBoxOptions","Framed","FrameInset","FrameLabel","Frameless","FrameListVideo","FrameMargins","FrameRate","FrameStyle","FrameTicks","FrameTicksStyle","FRatioDistribution","FrechetDistribution","FreeQ","FrenetSerretSystem","FrequencySamplingFilterKernel","FresnelC","FresnelF","FresnelG","FresnelS","Friday","FrobeniusNumber","FrobeniusSolve","FromAbsoluteTime","FromCharacterCode","FromCoefficientRules","FromContinuedFraction","FromDate","FromDateString","FromDigits","FromDMS","FromEntity","FromJulianDate","FromLetterNumber","FromPolarCoordinates","FromRawPointer","FromRomanNumeral","FromSphericalCoordinates","FromUnixTime","Front","FrontEndDynamicExpression","FrontEndEventActions","FrontEndExecute","FrontEndObject","FrontEndResource","FrontEndResourceString","FrontEndStackSize","FrontEndToken","FrontEndTokenExecute","FrontEndValueCache","FrontEndVersion","FrontFaceColor","FrontFaceGlowColor","FrontFaceOpacity","FrontFaceSpecularColor","FrontFaceSpecularExponent","FrontFaceSurfaceAppearance","FrontFaceTexture","Full","FullAxes","FullDefinition","FullForm","FullGraphics","FullInformationOutputRegulator","FullOptions","FullRegion","FullSimplify","Function","FunctionAnalytic","FunctionBijective","FunctionCompile","FunctionCompileExport","FunctionCompileExportByteArray","FunctionCompileExportLibrary","FunctionCompileExportString","FunctionContinuous","FunctionConvexity","FunctionDeclaration","FunctionDiscontinuities","FunctionDomain","FunctionExpand","FunctionInjective","FunctionInterpolation","FunctionLayer","FunctionMeromorphic","FunctionMonotonicity","FunctionPeriod","FunctionPoles","FunctionRange","FunctionSign","FunctionSingularities","FunctionSpace","FunctionSurjective","FussellVeselyImportance","GaborFilter","GaborMatrix","GaborWavelet","GainMargins","GainPhaseMargins","GalaxyData","GalleryView","Gamma","GammaDistribution","GammaRegularized","GapPenalty","GARCHProcess","GatedRecurrentLayer","Gather","GatherBy","GaugeFaceElementFunction","GaugeFaceStyle","GaugeFrameElementFunction","GaugeFrameSize","GaugeFrameStyle","GaugeLabels","GaugeMarkers","GaugeStyle","GaussianFilter","GaussianIntegers","GaussianMatrix","GaussianOrthogonalMatrixDistribution","GaussianSymplecticMatrixDistribution","GaussianUnitaryMatrixDistribution","GaussianWindow","GCD","GegenbauerC","General","GeneralizedLinearModelFit","GenerateAsymmetricKeyPair","GenerateConditions","GeneratedAssetFormat","GeneratedAssetLocation","GeneratedCell","GeneratedCellStyles","GeneratedDocumentBinding","GenerateDerivedKey","GenerateDigitalSignature","GenerateDocument","GeneratedParameters","GeneratedQuantityMagnitudes","GenerateFileSignature","GenerateHTTPResponse","GenerateSecuredAuthenticationKey","GenerateSymmetricKey","GeneratingFunction","GeneratorDescription","GeneratorHistoryLength","GeneratorOutputType","Generic","GenericCylindricalDecomposition","GenomeData","GenomeLookup","GeoAntipode","GeoArea","GeoArraySize","GeoBackground","GeoBoundary","GeoBoundingBox","GeoBounds","GeoBoundsRegion","GeoBoundsRegionBoundary","GeoBubbleChart","GeoCenter","GeoCircle","GeoContourPlot","GeoDensityPlot","GeodesicClosing","GeodesicDilation","GeodesicErosion","GeodesicOpening","GeodesicPolyhedron","GeoDestination","GeodesyData","GeoDirection","GeoDisk","GeoDisplacement","GeoDistance","GeoDistanceList","GeoElevationData","GeoEntities","GeoGraphics","GeoGraphPlot","GeoGraphValuePlot","GeogravityModelData","GeoGridDirectionDifference","GeoGridLines","GeoGridLinesStyle","GeoGridPosition","GeoGridRange","GeoGridRangePadding","GeoGridUnitArea","GeoGridUnitDistance","GeoGridVector","GeoGroup","GeoHemisphere","GeoHemisphereBoundary","GeoHistogram","GeoIdentify","GeoImage","GeoLabels","GeoLength","GeoListPlot","GeoLocation","GeologicalPeriodData","GeomagneticModelData","GeoMarker","GeometricAssertion","GeometricBrownianMotionProcess","GeometricDistribution","GeometricMean","GeometricMeanFilter","GeometricOptimization","GeometricScene","GeometricStep","GeometricStylingRules","GeometricTest","GeometricTransformation","GeometricTransformation3DBox","GeometricTransformation3DBoxOptions","GeometricTransformationBox","GeometricTransformationBoxOptions","GeoModel","GeoNearest","GeoOrientationData","GeoPath","GeoPolygon","GeoPosition","GeoPositionENU","GeoPositionXYZ","GeoProjection","GeoProjectionData","GeoRange","GeoRangePadding","GeoRegionValuePlot","GeoResolution","GeoScaleBar","GeoServer","GeoSmoothHistogram","GeoStreamPlot","GeoStyling","GeoStylingImageFunction","GeoVariant","GeoVector","GeoVectorENU","GeoVectorPlot","GeoVectorXYZ","GeoVisibleRegion","GeoVisibleRegionBoundary","GeoWithinQ","GeoZoomLevel","GestureHandler","GestureHandlerTag","Get","GetContext","GetEnvironment","GetFileName","GetLinebreakInformationPacket","GibbsPointProcess","Glaisher","GlobalClusteringCoefficient","GlobalPreferences","GlobalSession","Glow","GoldenAngle","GoldenRatio","GompertzMakehamDistribution","GoochShading","GoodmanKruskalGamma","GoodmanKruskalGammaTest","Goto","GouraudShading","Grad","Gradient","GradientFilter","GradientFittedMesh","GradientOrientationFilter","GrammarApply","GrammarRules","GrammarToken","Graph","Graph3D","GraphAssortativity","GraphAutomorphismGroup","GraphCenter","GraphComplement","GraphData","GraphDensity","GraphDiameter","GraphDifference","GraphDisjointUnion","GraphDistance","GraphDistanceMatrix","GraphEmbedding","GraphHighlight","GraphHighlightStyle","GraphHub","Graphics","Graphics3D","Graphics3DBox","Graphics3DBoxOptions","GraphicsArray","GraphicsBaseline","GraphicsBox","GraphicsBoxOptions","GraphicsColor","GraphicsColumn","GraphicsComplex","GraphicsComplex3DBox","GraphicsComplex3DBoxOptions","GraphicsComplexBox","GraphicsComplexBoxOptions","GraphicsContents","GraphicsData","GraphicsGrid","GraphicsGridBox","GraphicsGroup","GraphicsGroup3DBox","GraphicsGroup3DBoxOptions","GraphicsGroupBox","GraphicsGroupBoxOptions","GraphicsGrouping","GraphicsHighlightColor","GraphicsRow","GraphicsSpacing","GraphicsStyle","GraphIntersection","GraphJoin","GraphLayerLabels","GraphLayers","GraphLayerStyle","GraphLayout","GraphLinkEfficiency","GraphPeriphery","GraphPlot","GraphPlot3D","GraphPower","GraphProduct","GraphPropertyDistribution","GraphQ","GraphRadius","GraphReciprocity","GraphRoot","GraphStyle","GraphSum","GraphTree","GraphUnion","Gray","GrayLevel","Greater","GreaterEqual","GreaterEqualLess","GreaterEqualThan","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterThan","GreaterTilde","GreekStyle","Green","GreenFunction","Grid","GridBaseline","GridBox","GridBoxAlignment","GridBoxBackground","GridBoxDividers","GridBoxFrame","GridBoxItemSize","GridBoxItemStyle","GridBoxOptions","GridBoxSpacings","GridCreationSettings","GridDefaultElement","GridElementStyleOptions","GridFrame","GridFrameMargins","GridGraph","GridLines","GridLinesStyle","GridVideo","GroebnerBasis","GroupActionBase","GroupBy","GroupCentralizer","GroupElementFromWord","GroupElementPosition","GroupElementQ","GroupElements","GroupElementToWord","GroupGenerators","Groupings","GroupMultiplicationTable","GroupOpenerColor","GroupOpenerInsideFrame","GroupOrbits","GroupOrder","GroupPageBreakWithin","GroupSetwiseStabilizer","GroupStabilizer","GroupStabilizerChain","GroupTogetherGrouping","GroupTogetherNestedGrouping","GrowCutComponents","Gudermannian","GuidedFilter","GumbelDistribution","HaarWavelet","HadamardMatrix","HalfLine","HalfNormalDistribution","HalfPlane","HalfSpace","HalftoneShading","HamiltonianGraphQ","HammingDistance","HammingWindow","HandlerFunctions","HandlerFunctionsKeys","HankelH1","HankelH2","HankelMatrix","HankelTransform","HannPoissonWindow","HannWindow","HaradaNortonGroupHN","HararyGraph","HardcorePointProcess","HarmonicMean","HarmonicMeanFilter","HarmonicNumber","Hash","HatchFilling","HatchShading","Haversine","HazardFunction","Head","HeadCompose","HeaderAlignment","HeaderBackground","HeaderDisplayFunction","HeaderLines","Headers","HeaderSize","HeaderStyle","Heads","HeatFluxValue","HeatInsulationValue","HeatOutflowValue","HeatRadiationValue","HeatSymmetryValue","HeatTemperatureCondition","HeatTransferPDEComponent","HeatTransferValue","HeavisideLambda","HeavisidePi","HeavisideTheta","HeldGroupHe","HeldPart","HelmholtzPDEComponent","HelpBrowserLookup","HelpBrowserNotebook","HelpBrowserSettings","HelpViewerSettings","Here","HermiteDecomposition","HermiteH","Hermitian","HermitianMatrixQ","HessenbergDecomposition","Hessian","HeunB","HeunBPrime","HeunC","HeunCPrime","HeunD","HeunDPrime","HeunG","HeunGPrime","HeunT","HeunTPrime","HexadecimalCharacter","Hexahedron","HexahedronBox","HexahedronBoxOptions","HiddenItems","HiddenMarkovProcess","HiddenSurface","Highlighted","HighlightGraph","HighlightImage","HighlightMesh","HighlightString","HighpassFilter","HigmanSimsGroupHS","HilbertCurve","HilbertFilter","HilbertMatrix","Histogram","Histogram3D","HistogramDistribution","HistogramList","HistogramPointDensity","HistogramTransform","HistogramTransformInterpolation","HistoricalPeriodData","HitMissTransform","HITSCentrality","HjorthDistribution","HodgeDual","HoeffdingD","HoeffdingDTest","Hold","HoldAll","HoldAllComplete","HoldComplete","HoldFirst","HoldForm","HoldPattern","HoldRest","HolidayCalendar","HomeDirectory","HomePage","Horizontal","HorizontalForm","HorizontalGauge","HorizontalScrollPosition","HornerForm","HostLookup","HotellingTSquareDistribution","HoytDistribution","HTMLSave","HTTPErrorResponse","HTTPRedirect","HTTPRequest","HTTPRequestData","HTTPResponse","Hue","HumanGrowthData","HumpDownHump","HumpEqual","HurwitzLerchPhi","HurwitzZeta","HyperbolicDistribution","HypercubeGraph","HyperexponentialDistribution","Hyperfactorial","Hypergeometric0F1","Hypergeometric0F1Regularized","Hypergeometric1F1","Hypergeometric1F1Regularized","Hypergeometric2F1","Hypergeometric2F1Regularized","HypergeometricDistribution","HypergeometricPFQ","HypergeometricPFQRegularized","HypergeometricU","Hyperlink","HyperlinkAction","HyperlinkCreationSettings","Hyperplane","Hyphenation","HyphenationOptions","HypoexponentialDistribution","HypothesisTestData","I","IconData","Iconize","IconizedObject","IconRules","Icosahedron","Identity","IdentityMatrix","If","IfCompiled","IgnoreCase","IgnoreDiacritics","IgnoreIsotopes","IgnorePunctuation","IgnoreSpellCheck","IgnoreStereochemistry","IgnoringInactive","Im","Image","Image3D","Image3DProjection","Image3DSlices","ImageAccumulate","ImageAdd","ImageAdjust","ImageAlign","ImageApply","ImageApplyIndexed","ImageAspectRatio","ImageAssemble","ImageAugmentationLayer","ImageBoundingBoxes","ImageCache","ImageCacheValid","ImageCapture","ImageCaptureFunction","ImageCases","ImageChannels","ImageClip","ImageCollage","ImageColorSpace","ImageCompose","ImageContainsQ","ImageContents","ImageConvolve","ImageCooccurrence","ImageCorners","ImageCorrelate","ImageCorrespondingPoints","ImageCrop","ImageData","ImageDeconvolve","ImageDemosaic","ImageDifference","ImageDimensions","ImageDisplacements","ImageDistance","ImageEditMode","ImageEffect","ImageExposureCombine","ImageFeatureTrack","ImageFileApply","ImageFileFilter","ImageFileScan","ImageFilter","ImageFocusCombine","ImageForestingComponents","ImageFormattingWidth","ImageForwardTransformation","ImageGraphics","ImageHistogram","ImageIdentify","ImageInstanceQ","ImageKeypoints","ImageLabels","ImageLegends","ImageLevels","ImageLines","ImageMargins","ImageMarker","ImageMarkers","ImageMeasurements","ImageMesh","ImageMultiply","ImageOffset","ImagePad","ImagePadding","ImagePartition","ImagePeriodogram","ImagePerspectiveTransformation","ImagePosition","ImagePreviewFunction","ImagePyramid","ImagePyramidApply","ImageQ","ImageRangeCache","ImageRecolor","ImageReflect","ImageRegion","ImageResize","ImageResolution","ImageRestyle","ImageRotate","ImageRotated","ImageSaliencyFilter","ImageScaled","ImageScan","ImageSize","ImageSizeAction","ImageSizeCache","ImageSizeMultipliers","ImageSizeRaw","ImageStitch","ImageSubtract","ImageTake","ImageTransformation","ImageTrim","ImageType","ImageValue","ImageValuePositions","ImageVectorscopePlot","ImageWaveformPlot","ImagingDevice","ImplicitD","ImplicitRegion","Implies","Import","ImportAutoReplacements","ImportByteArray","ImportedObject","ImportOptions","ImportString","ImprovementImportance","In","Inactivate","Inactive","InactiveStyle","IncidenceGraph","IncidenceList","IncidenceMatrix","IncludeAromaticBonds","IncludeConstantBasis","IncludedContexts","IncludeDefinitions","IncludeDirectories","IncludeFileExtension","IncludeGeneratorTasks","IncludeHydrogens","IncludeInflections","IncludeMetaInformation","IncludePods","IncludeQuantities","IncludeRelatedTables","IncludeSingularSolutions","IncludeSingularTerm","IncludeWindowTimes","Increment","IndefiniteMatrixQ","Indent","IndentingNewlineSpacings","IndentMaxFraction","IndependenceTest","IndependentEdgeSetQ","IndependentPhysicalQuantity","IndependentUnit","IndependentUnitDimension","IndependentVertexSetQ","Indeterminate","IndeterminateThreshold","IndexCreationOptions","Indexed","IndexEdgeTaggedGraph","IndexGraph","IndexTag","Inequality","InertEvaluate","InertExpression","InexactNumberQ","InexactNumbers","InfiniteFuture","InfiniteLine","InfiniteLineThrough","InfinitePast","InfinitePlane","Infinity","Infix","InflationAdjust","InflationMethod","Information","InformationData","InformationDataGrid","Inherited","InheritScope","InhomogeneousPoissonPointProcess","InhomogeneousPoissonProcess","InitialEvaluationHistory","Initialization","InitializationCell","InitializationCellEvaluation","InitializationCellWarning","InitializationObject","InitializationObjects","InitializationValue","Initialize","InitialSeeding","InlineCounterAssignments","InlineCounterIncrements","InlineRules","Inner","InnerPolygon","InnerPolyhedron","Inpaint","Input","InputAliases","InputAssumptions","InputAutoReplacements","InputField","InputFieldBox","InputFieldBoxOptions","InputForm","InputGrouping","InputNamePacket","InputNotebook","InputPacket","InputPorts","InputSettings","InputStream","InputString","InputStringPacket","InputToBoxFormPacket","Insert","InsertionFunction","InsertionPointObject","InsertLinebreaks","InsertResults","Inset","Inset3DBox","Inset3DBoxOptions","InsetBox","InsetBoxOptions","Insphere","Install","InstallService","InstanceNormalizationLayer","InString","Integer","IntegerDigits","IntegerExponent","IntegerLength","IntegerName","IntegerPart","IntegerPartitions","IntegerQ","IntegerReverse","Integers","IntegerString","Integral","Integrate","IntegrateChangeVariables","Interactive","InteractiveTradingChart","InterfaceSwitched","Interlaced","Interleaving","InternallyBalancedDecomposition","InterpolatingFunction","InterpolatingPolynomial","Interpolation","InterpolationOrder","InterpolationPoints","InterpolationPrecision","Interpretation","InterpretationBox","InterpretationBoxOptions","InterpretationFunction","Interpreter","InterpretTemplate","InterquartileRange","Interrupt","InterruptSettings","IntersectedEntityClass","IntersectingQ","Intersection","Interval","IntervalIntersection","IntervalMarkers","IntervalMarkersStyle","IntervalMemberQ","IntervalSlider","IntervalUnion","Into","Inverse","InverseBetaRegularized","InverseBilateralLaplaceTransform","InverseBilateralZTransform","InverseCDF","InverseChiSquareDistribution","InverseContinuousWaveletTransform","InverseDistanceTransform","InverseEllipticNomeQ","InverseErf","InverseErfc","InverseFourier","InverseFourierCosTransform","InverseFourierSequenceTransform","InverseFourierSinTransform","InverseFourierTransform","InverseFunction","InverseFunctions","InverseGammaDistribution","InverseGammaRegularized","InverseGaussianDistribution","InverseGudermannian","InverseHankelTransform","InverseHaversine","InverseImagePyramid","InverseJacobiCD","InverseJacobiCN","InverseJacobiCS","InverseJacobiDC","InverseJacobiDN","InverseJacobiDS","InverseJacobiNC","InverseJacobiND","InverseJacobiNS","InverseJacobiSC","InverseJacobiSD","InverseJacobiSN","InverseLaplaceTransform","InverseMellinTransform","InversePermutation","InverseRadon","InverseRadonTransform","InverseSeries","InverseShortTimeFourier","InverseSpectrogram","InverseSurvivalFunction","InverseTransformedRegion","InverseWaveletTransform","InverseWeierstrassP","InverseWishartMatrixDistribution","InverseZTransform","Invisible","InvisibleApplication","InvisibleTimes","IPAddress","IrreduciblePolynomialQ","IslandData","IsolatingInterval","IsomorphicGraphQ","IsomorphicSubgraphQ","IsotopeData","Italic","Item","ItemAspectRatio","ItemBox","ItemBoxOptions","ItemDisplayFunction","ItemSize","ItemStyle","ItoProcess","JaccardDissimilarity","JacobiAmplitude","Jacobian","JacobiCD","JacobiCN","JacobiCS","JacobiDC","JacobiDN","JacobiDS","JacobiEpsilon","JacobiNC","JacobiND","JacobiNS","JacobiP","JacobiSC","JacobiSD","JacobiSN","JacobiSymbol","JacobiZeta","JacobiZN","JankoGroupJ1","JankoGroupJ2","JankoGroupJ3","JankoGroupJ4","JarqueBeraALMTest","JohnsonDistribution","Join","JoinAcross","Joined","JoinedCurve","JoinedCurveBox","JoinedCurveBoxOptions","JoinForm","JordanDecomposition","JordanModelDecomposition","JulianDate","JuliaSetBoettcher","JuliaSetIterationCount","JuliaSetPlot","JuliaSetPoints","K","KagiChart","KaiserBesselWindow","KaiserWindow","KalmanEstimator","KalmanFilter","KarhunenLoeveDecomposition","KaryTree","KatzCentrality","KCoreComponents","KDistribution","KEdgeConnectedComponents","KEdgeConnectedGraphQ","KeepExistingVersion","KelvinBei","KelvinBer","KelvinKei","KelvinKer","KendallTau","KendallTauTest","KernelConfiguration","KernelExecute","KernelFunction","KernelMixtureDistribution","KernelObject","Kernels","Ket","Key","KeyCollisionFunction","KeyComplement","KeyDrop","KeyDropFrom","KeyExistsQ","KeyFreeQ","KeyIntersection","KeyMap","KeyMemberQ","KeypointStrength","Keys","KeySelect","KeySort","KeySortBy","KeyTake","KeyUnion","KeyValueMap","KeyValuePattern","Khinchin","KillProcess","KirchhoffGraph","KirchhoffMatrix","KleinInvariantJ","KnapsackSolve","KnightTourGraph","KnotData","KnownUnitQ","KochCurve","KolmogorovSmirnovTest","KroneckerDelta","KroneckerModelDecomposition","KroneckerProduct","KroneckerSymbol","KuiperTest","KumaraswamyDistribution","Kurtosis","KuwaharaFilter","KVertexConnectedComponents","KVertexConnectedGraphQ","LABColor","Label","Labeled","LabeledSlider","LabelingFunction","LabelingSize","LabelStyle","LabelVisibility","LaguerreL","LakeData","LambdaComponents","LambertW","LameC","LameCPrime","LameEigenvalueA","LameEigenvalueB","LameS","LameSPrime","LaminaData","LanczosWindow","LandauDistribution","Language","LanguageCategory","LanguageData","LanguageIdentify","LanguageOptions","LaplaceDistribution","LaplaceTransform","Laplacian","LaplacianFilter","LaplacianGaussianFilter","LaplacianPDETerm","Large","Larger","Last","Latitude","LatitudeLongitude","LatticeData","LatticeReduce","Launch","LaunchKernels","LayeredGraphPlot","LayeredGraphPlot3D","LayerSizeFunction","LayoutInformation","LCHColor","LCM","LeaderSize","LeafCount","LeapVariant","LeapYearQ","LearnDistribution","LearnedDistribution","LearningRate","LearningRateMultipliers","LeastSquares","LeastSquaresFilterKernel","Left","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","LegendAppearance","Legended","LegendFunction","LegendLabel","LegendLayout","LegendMargins","LegendMarkers","LegendMarkerSize","LegendreP","LegendreQ","LegendreType","Length","LengthWhile","LerchPhi","Less","LessEqual","LessEqualGreater","LessEqualThan","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessThan","LessTilde","LetterCharacter","LetterCounts","LetterNumber","LetterQ","Level","LeveneTest","LeviCivitaTensor","LevyDistribution","Lexicographic","LexicographicOrder","LexicographicSort","LibraryDataType","LibraryFunction","LibraryFunctionDeclaration","LibraryFunctionError","LibraryFunctionInformation","LibraryFunctionLoad","LibraryFunctionUnload","LibraryLoad","LibraryUnload","LicenseEntitlementObject","LicenseEntitlements","LicenseID","LicensingSettings","LiftingFilterData","LiftingWaveletTransform","LightBlue","LightBrown","LightCyan","Lighter","LightGray","LightGreen","Lighting","LightingAngle","LightMagenta","LightOrange","LightPink","LightPurple","LightRed","LightSources","LightYellow","Likelihood","Limit","LimitsPositioning","LimitsPositioningTokens","LindleyDistribution","Line","Line3DBox","Line3DBoxOptions","LinearFilter","LinearFractionalOptimization","LinearFractionalTransform","LinearGradientFilling","LinearGradientImage","LinearizingTransformationData","LinearLayer","LinearModelFit","LinearOffsetFunction","LinearOptimization","LinearProgramming","LinearRecurrence","LinearSolve","LinearSolveFunction","LineBox","LineBoxOptions","LineBreak","LinebreakAdjustments","LineBreakChart","LinebreakSemicolonWeighting","LineBreakWithin","LineColor","LineGraph","LineIndent","LineIndentMaxFraction","LineIntegralConvolutionPlot","LineIntegralConvolutionScale","LineLegend","LineOpacity","LineSpacing","LineWrapParts","LinkActivate","LinkClose","LinkConnect","LinkConnectedQ","LinkCreate","LinkError","LinkFlush","LinkFunction","LinkHost","LinkInterrupt","LinkLaunch","LinkMode","LinkObject","LinkOpen","LinkOptions","LinkPatterns","LinkProtocol","LinkRankCentrality","LinkRead","LinkReadHeld","LinkReadyQ","Links","LinkService","LinkWrite","LinkWriteHeld","LiouvilleLambda","List","Listable","ListAnimate","ListContourPlot","ListContourPlot3D","ListConvolve","ListCorrelate","ListCurvePathPlot","ListDeconvolve","ListDensityPlot","ListDensityPlot3D","Listen","ListFormat","ListFourierSequenceTransform","ListInterpolation","ListLineIntegralConvolutionPlot","ListLinePlot","ListLinePlot3D","ListLogLinearPlot","ListLogLogPlot","ListLogPlot","ListPicker","ListPickerBox","ListPickerBoxBackground","ListPickerBoxOptions","ListPlay","ListPlot","ListPlot3D","ListPointPlot3D","ListPolarPlot","ListQ","ListSliceContourPlot3D","ListSliceDensityPlot3D","ListSliceVectorPlot3D","ListStepPlot","ListStreamDensityPlot","ListStreamPlot","ListStreamPlot3D","ListSurfacePlot3D","ListVectorDensityPlot","ListVectorDisplacementPlot","ListVectorDisplacementPlot3D","ListVectorPlot","ListVectorPlot3D","ListZTransform","Literal","LiteralSearch","LiteralType","LoadCompiledComponent","LocalAdaptiveBinarize","LocalCache","LocalClusteringCoefficient","LocalEvaluate","LocalizeDefinitions","LocalizeVariables","LocalObject","LocalObjects","LocalResponseNormalizationLayer","LocalSubmit","LocalSymbol","LocalTime","LocalTimeZone","LocationEquivalenceTest","LocationTest","Locator","LocatorAutoCreate","LocatorBox","LocatorBoxOptions","LocatorCentering","LocatorPane","LocatorPaneBox","LocatorPaneBoxOptions","LocatorRegion","Locked","Log","Log10","Log2","LogBarnesG","LogGamma","LogGammaDistribution","LogicalExpand","LogIntegral","LogisticDistribution","LogisticSigmoid","LogitModelFit","LogLikelihood","LogLinearPlot","LogLogisticDistribution","LogLogPlot","LogMultinormalDistribution","LogNormalDistribution","LogPlot","LogRankTest","LogSeriesDistribution","LongEqual","Longest","LongestCommonSequence","LongestCommonSequencePositions","LongestCommonSubsequence","LongestCommonSubsequencePositions","LongestMatch","LongestOrderedSequence","LongForm","Longitude","LongLeftArrow","LongLeftRightArrow","LongRightArrow","LongShortTermMemoryLayer","Lookup","Loopback","LoopFreeGraphQ","Looping","LossFunction","LowerCaseQ","LowerLeftArrow","LowerRightArrow","LowerTriangularize","LowerTriangularMatrix","LowerTriangularMatrixQ","LowpassFilter","LQEstimatorGains","LQGRegulator","LQOutputRegulatorGains","LQRegulatorGains","LUBackSubstitution","LucasL","LuccioSamiComponents","LUDecomposition","LunarEclipse","LUVColor","LyapunovSolve","LyonsGroupLy","MachineID","MachineName","MachineNumberQ","MachinePrecision","MacintoshSystemPageSetup","Magenta","Magnification","Magnify","MailAddressValidation","MailExecute","MailFolder","MailItem","MailReceiverFunction","MailResponseFunction","MailSearch","MailServerConnect","MailServerConnection","MailSettings","MainSolve","MaintainDynamicCaches","Majority","MakeBoxes","MakeExpression","MakeRules","ManagedLibraryExpressionID","ManagedLibraryExpressionQ","MandelbrotSetBoettcher","MandelbrotSetDistance","MandelbrotSetIterationCount","MandelbrotSetMemberQ","MandelbrotSetPlot","MangoldtLambda","ManhattanDistance","Manipulate","Manipulator","MannedSpaceMissionData","MannWhitneyTest","MantissaExponent","Manual","Map","MapAll","MapApply","MapAt","MapIndexed","MAProcess","MapThread","MarchenkoPasturDistribution","MarcumQ","MardiaCombinedTest","MardiaKurtosisTest","MardiaSkewnessTest","MarginalDistribution","MarkovProcessProperties","Masking","MassConcentrationCondition","MassFluxValue","MassImpermeableBoundaryValue","MassOutflowValue","MassSymmetryValue","MassTransferValue","MassTransportPDEComponent","MatchingDissimilarity","MatchLocalNameQ","MatchLocalNames","MatchQ","Material","MaterialShading","MaternPointProcess","MathematicalFunctionData","MathematicaNotation","MathieuC","MathieuCharacteristicA","MathieuCharacteristicB","MathieuCharacteristicExponent","MathieuCPrime","MathieuGroupM11","MathieuGroupM12","MathieuGroupM22","MathieuGroupM23","MathieuGroupM24","MathieuS","MathieuSPrime","MathMLForm","MathMLText","Matrices","MatrixExp","MatrixForm","MatrixFunction","MatrixLog","MatrixNormalDistribution","MatrixPlot","MatrixPower","MatrixPropertyDistribution","MatrixQ","MatrixRank","MatrixTDistribution","Max","MaxBend","MaxCellMeasure","MaxColorDistance","MaxDate","MaxDetect","MaxDisplayedChildren","MaxDuration","MaxExtraBandwidths","MaxExtraConditions","MaxFeatureDisplacement","MaxFeatures","MaxFilter","MaximalBy","Maximize","MaxItems","MaxIterations","MaxLimit","MaxMemoryUsed","MaxMixtureKernels","MaxOverlapFraction","MaxPlotPoints","MaxPoints","MaxRecursion","MaxStableDistribution","MaxStepFraction","MaxSteps","MaxStepSize","MaxTrainingRounds","MaxValue","MaxwellDistribution","MaxWordGap","McLaughlinGroupMcL","Mean","MeanAbsoluteLossLayer","MeanAround","MeanClusteringCoefficient","MeanDegreeConnectivity","MeanDeviation","MeanFilter","MeanGraphDistance","MeanNeighborDegree","MeanPointDensity","MeanShift","MeanShiftFilter","MeanSquaredLossLayer","Median","MedianDeviation","MedianFilter","MedicalTestData","Medium","MeijerG","MeijerGReduce","MeixnerDistribution","MellinConvolve","MellinTransform","MemberQ","MemoryAvailable","MemoryConstrained","MemoryConstraint","MemoryInUse","MengerMesh","Menu","MenuAppearance","MenuCommandKey","MenuEvaluator","MenuItem","MenuList","MenuPacket","MenuSortingValue","MenuStyle","MenuView","Merge","MergeDifferences","MergingFunction","MersennePrimeExponent","MersennePrimeExponentQ","Mesh","MeshCellCentroid","MeshCellCount","MeshCellHighlight","MeshCellIndex","MeshCellLabel","MeshCellMarker","MeshCellMeasure","MeshCellQuality","MeshCells","MeshCellShapeFunction","MeshCellStyle","MeshConnectivityGraph","MeshCoordinates","MeshFunctions","MeshPrimitives","MeshQualityGoal","MeshRange","MeshRefinementFunction","MeshRegion","MeshRegionQ","MeshShading","MeshStyle","Message","MessageDialog","MessageList","MessageName","MessageObject","MessageOptions","MessagePacket","Messages","MessagesNotebook","MetaCharacters","MetaInformation","MeteorShowerData","Method","MethodOptions","MexicanHatWavelet","MeyerWavelet","Midpoint","MIMETypeToFormatList","Min","MinColorDistance","MinDate","MinDetect","MineralData","MinFilter","MinimalBy","MinimalPolynomial","MinimalStateSpaceModel","Minimize","MinimumTimeIncrement","MinIntervalSize","MinkowskiQuestionMark","MinLimit","MinMax","MinorPlanetData","Minors","MinPointSeparation","MinRecursion","MinSize","MinStableDistribution","Minus","MinusPlus","MinValue","Missing","MissingBehavior","MissingDataMethod","MissingDataRules","MissingQ","MissingString","MissingStyle","MissingValuePattern","MissingValueSynthesis","MittagLefflerE","MixedFractionParts","MixedGraphQ","MixedMagnitude","MixedRadix","MixedRadixQuantity","MixedUnit","MixtureDistribution","Mod","Modal","Mode","ModelPredictiveController","Modular","ModularInverse","ModularLambda","Module","Modulus","MoebiusMu","Molecule","MoleculeAlign","MoleculeContainsQ","MoleculeDraw","MoleculeEquivalentQ","MoleculeFreeQ","MoleculeGraph","MoleculeMatchQ","MoleculeMaximumCommonSubstructure","MoleculeModify","MoleculeName","MoleculePattern","MoleculePlot","MoleculePlot3D","MoleculeProperty","MoleculeQ","MoleculeRecognize","MoleculeSubstructureCount","MoleculeValue","Moment","MomentConvert","MomentEvaluate","MomentGeneratingFunction","MomentOfInertia","Monday","Monitor","MonomialList","MonomialOrder","MonsterGroupM","MoonPhase","MoonPosition","MorletWavelet","MorphologicalBinarize","MorphologicalBranchPoints","MorphologicalComponents","MorphologicalEulerNumber","MorphologicalGraph","MorphologicalPerimeter","MorphologicalTransform","MortalityData","Most","MountainData","MouseAnnotation","MouseAppearance","MouseAppearanceTag","MouseButtons","Mouseover","MousePointerNote","MousePosition","MovieData","MovingAverage","MovingMap","MovingMedian","MoyalDistribution","MultiaxisArrangement","Multicolumn","MultiedgeStyle","MultigraphQ","MultilaunchWarning","MultiLetterItalics","MultiLetterStyle","MultilineFunction","Multinomial","MultinomialDistribution","MultinormalDistribution","MultiplicativeOrder","Multiplicity","MultiplySides","MultiscriptBoxOptions","Multiselection","MultivariateHypergeometricDistribution","MultivariatePoissonDistribution","MultivariateTDistribution","N","NakagamiDistribution","NameQ","Names","NamespaceBox","NamespaceBoxOptions","Nand","NArgMax","NArgMin","NBernoulliB","NBodySimulation","NBodySimulationData","NCache","NCaputoD","NDEigensystem","NDEigenvalues","NDSolve","NDSolveValue","Nearest","NearestFunction","NearestMeshCells","NearestNeighborG","NearestNeighborGraph","NearestTo","NebulaData","NeedlemanWunschSimilarity","Needs","Negative","NegativeBinomialDistribution","NegativeDefiniteMatrixQ","NegativeIntegers","NegativelyOrientedPoints","NegativeMultinomialDistribution","NegativeRationals","NegativeReals","NegativeSemidefiniteMatrixQ","NeighborhoodData","NeighborhoodGraph","Nest","NestedGreaterGreater","NestedLessLess","NestedScriptRules","NestGraph","NestList","NestTree","NestWhile","NestWhileList","NetAppend","NetArray","NetArrayLayer","NetBidirectionalOperator","NetChain","NetDecoder","NetDelete","NetDrop","NetEncoder","NetEvaluationMode","NetExternalObject","NetExtract","NetFlatten","NetFoldOperator","NetGANOperator","NetGraph","NetInformation","NetInitialize","NetInsert","NetInsertSharedArrays","NetJoin","NetMapOperator","NetMapThreadOperator","NetMeasurements","NetModel","NetNestOperator","NetPairEmbeddingOperator","NetPort","NetPortGradient","NetPrepend","NetRename","NetReplace","NetReplacePart","NetSharedArray","NetStateObject","NetTake","NetTrain","NetTrainResultsObject","NetUnfold","NetworkPacketCapture","NetworkPacketRecording","NetworkPacketRecordingDuring","NetworkPacketTrace","NeumannValue","NevilleThetaC","NevilleThetaD","NevilleThetaN","NevilleThetaS","NewPrimitiveStyle","NExpectation","Next","NextCell","NextDate","NextPrime","NextScheduledTaskTime","NeymanScottPointProcess","NFractionalD","NHoldAll","NHoldFirst","NHoldRest","NicholsGridLines","NicholsPlot","NightHemisphere","NIntegrate","NMaximize","NMaxValue","NMinimize","NMinValue","NominalScale","NominalVariables","NonAssociative","NoncentralBetaDistribution","NoncentralChiSquareDistribution","NoncentralFRatioDistribution","NoncentralStudentTDistribution","NonCommutativeMultiply","NonConstants","NondimensionalizationTransform","None","NoneTrue","NonlinearModelFit","NonlinearStateSpaceModel","NonlocalMeansFilter","NonNegative","NonNegativeIntegers","NonNegativeRationals","NonNegativeReals","NonPositive","NonPositiveIntegers","NonPositiveRationals","NonPositiveReals","Nor","NorlundB","Norm","Normal","NormalDistribution","NormalGrouping","NormalizationLayer","Normalize","Normalized","NormalizedSquaredEuclideanDistance","NormalMatrixQ","NormalsFunction","NormFunction","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","Notebook","NotebookApply","NotebookAutoSave","NotebookBrowseDirectory","NotebookClose","NotebookConvertSettings","NotebookCreate","NotebookDefault","NotebookDelete","NotebookDirectory","NotebookDynamicExpression","NotebookEvaluate","NotebookEventActions","NotebookFileName","NotebookFind","NotebookGet","NotebookImport","NotebookInformation","NotebookInterfaceObject","NotebookLocate","NotebookObject","NotebookOpen","NotebookPath","NotebookPrint","NotebookPut","NotebookRead","Notebooks","NotebookSave","NotebookSelection","NotebooksMenu","NotebookTemplate","NotebookWrite","NotElement","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","Nothing","NotHumpDownHump","NotHumpEqual","NotificationFunction","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessFullEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotPrecedesTilde","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Now","NoWhitespace","NProbability","NProduct","NProductFactors","NRoots","NSolve","NSolveValues","NSum","NSumTerms","NuclearExplosionData","NuclearReactorData","Null","NullRecords","NullSpace","NullWords","Number","NumberCompose","NumberDecompose","NumberDigit","NumberExpand","NumberFieldClassNumber","NumberFieldDiscriminant","NumberFieldFundamentalUnits","NumberFieldIntegralBasis","NumberFieldNormRepresentatives","NumberFieldRegulator","NumberFieldRootsOfUnity","NumberFieldSignature","NumberForm","NumberFormat","NumberLinePlot","NumberMarks","NumberMultiplier","NumberPadding","NumberPoint","NumberQ","NumberSeparator","NumberSigns","NumberString","Numerator","NumeratorDenominator","NumericalOrder","NumericalSort","NumericArray","NumericArrayQ","NumericArrayType","NumericFunction","NumericQ","NuttallWindow","NValues","NyquistGridLines","NyquistPlot","O","ObjectExistsQ","ObservabilityGramian","ObservabilityMatrix","ObservableDecomposition","ObservableModelQ","OceanData","Octahedron","OddQ","Off","Offset","OLEData","On","ONanGroupON","Once","OneIdentity","Opacity","OpacityFunction","OpacityFunctionScaling","Open","OpenAppend","Opener","OpenerBox","OpenerBoxOptions","OpenerView","OpenFunctionInspectorPacket","Opening","OpenRead","OpenSpecialOptions","OpenTemporary","OpenWrite","Operate","OperatingSystem","OperatorApplied","OptimumFlowData","Optional","OptionalElement","OptionInspectorSettings","OptionQ","Options","OptionsPacket","OptionsPattern","OptionValue","OptionValueBox","OptionValueBoxOptions","Or","Orange","Order","OrderDistribution","OrderedQ","Ordering","OrderingBy","OrderingLayer","Orderless","OrderlessPatternSequence","OrdinalScale","OrnsteinUhlenbeckProcess","Orthogonalize","OrthogonalMatrixQ","Out","Outer","OuterPolygon","OuterPolyhedron","OutputAutoOverwrite","OutputControllabilityMatrix","OutputControllableModelQ","OutputForm","OutputFormData","OutputGrouping","OutputMathEditExpression","OutputNamePacket","OutputPorts","OutputResponse","OutputSizeLimit","OutputStream","Over","OverBar","OverDot","Overflow","OverHat","Overlaps","Overlay","OverlayBox","OverlayBoxOptions","OverlayVideo","Overscript","OverscriptBox","OverscriptBoxOptions","OverTilde","OverVector","OverwriteTarget","OwenT","OwnValues","Package","PackingMethod","PackPaclet","PacletDataRebuild","PacletDirectoryAdd","PacletDirectoryLoad","PacletDirectoryRemove","PacletDirectoryUnload","PacletDisable","PacletEnable","PacletFind","PacletFindRemote","PacletInformation","PacletInstall","PacletInstallSubmit","PacletNewerQ","PacletObject","PacletObjectQ","PacletSite","PacletSiteObject","PacletSiteRegister","PacletSites","PacletSiteUnregister","PacletSiteUpdate","PacletSymbol","PacletUninstall","PacletUpdate","PaddedForm","Padding","PaddingLayer","PaddingSize","PadeApproximant","PadLeft","PadRight","PageBreakAbove","PageBreakBelow","PageBreakWithin","PageFooterLines","PageFooters","PageHeaderLines","PageHeaders","PageHeight","PageRankCentrality","PageTheme","PageWidth","Pagination","PairCorrelationG","PairedBarChart","PairedHistogram","PairedSmoothHistogram","PairedTTest","PairedZTest","PaletteNotebook","PalettePath","PalettesMenuSettings","PalindromeQ","Pane","PaneBox","PaneBoxOptions","Panel","PanelBox","PanelBoxOptions","Paneled","PaneSelector","PaneSelectorBox","PaneSelectorBoxOptions","PaperWidth","ParabolicCylinderD","ParagraphIndent","ParagraphSpacing","ParallelArray","ParallelAxisPlot","ParallelCombine","ParallelDo","Parallelepiped","ParallelEvaluate","Parallelization","Parallelize","ParallelKernels","ParallelMap","ParallelNeeds","Parallelogram","ParallelProduct","ParallelSubmit","ParallelSum","ParallelTable","ParallelTry","Parameter","ParameterEstimator","ParameterMixtureDistribution","ParameterVariables","ParametricConvexOptimization","ParametricFunction","ParametricNDSolve","ParametricNDSolveValue","ParametricPlot","ParametricPlot3D","ParametricRampLayer","ParametricRegion","ParentBox","ParentCell","ParentConnect","ParentDirectory","ParentEdgeLabel","ParentEdgeLabelFunction","ParentEdgeLabelStyle","ParentEdgeShapeFunction","ParentEdgeStyle","ParentEdgeStyleFunction","ParentForm","Parenthesize","ParentList","ParentNotebook","ParetoDistribution","ParetoPickandsDistribution","ParkData","Part","PartBehavior","PartialCorrelationFunction","PartialD","ParticleAcceleratorData","ParticleData","Partition","PartitionGranularity","PartitionsP","PartitionsQ","PartLayer","PartOfSpeech","PartProtection","ParzenWindow","PascalDistribution","PassEventsDown","PassEventsUp","Paste","PasteAutoQuoteCharacters","PasteBoxFormInlineCells","PasteButton","Path","PathGraph","PathGraphQ","Pattern","PatternFilling","PatternReaction","PatternSequence","PatternTest","PauliMatrix","PaulWavelet","Pause","PausedTime","PDF","PeakDetect","PeanoCurve","PearsonChiSquareTest","PearsonCorrelationTest","PearsonDistribution","PenttinenPointProcess","PercentForm","PerfectNumber","PerfectNumberQ","PerformanceGoal","Perimeter","PeriodicBoundaryCondition","PeriodicInterpolation","Periodogram","PeriodogramArray","Permanent","Permissions","PermissionsGroup","PermissionsGroupMemberQ","PermissionsGroups","PermissionsKey","PermissionsKeys","PermutationCycles","PermutationCyclesQ","PermutationGroup","PermutationLength","PermutationList","PermutationListQ","PermutationMatrix","PermutationMax","PermutationMin","PermutationOrder","PermutationPower","PermutationProduct","PermutationReplace","Permutations","PermutationSupport","Permute","PeronaMalikFilter","Perpendicular","PerpendicularBisector","PersistenceLocation","PersistenceTime","PersistentObject","PersistentObjects","PersistentSymbol","PersistentValue","PersonData","PERTDistribution","PetersenGraph","PhaseMargins","PhaseRange","PhongShading","PhysicalSystemData","Pi","Pick","PickedElements","PickMode","PIDData","PIDDerivativeFilter","PIDFeedforward","PIDTune","Piecewise","PiecewiseExpand","PieChart","PieChart3D","PillaiTrace","PillaiTraceTest","PingTime","Pink","PitchRecognize","Pivoting","PixelConstrained","PixelValue","PixelValuePositions","Placed","Placeholder","PlaceholderLayer","PlaceholderReplace","Plain","PlanarAngle","PlanarFaceList","PlanarGraph","PlanarGraphQ","PlanckRadiationLaw","PlaneCurveData","PlanetaryMoonData","PlanetData","PlantData","Play","PlaybackSettings","PlayRange","Plot","Plot3D","Plot3Matrix","PlotDivision","PlotJoined","PlotLabel","PlotLabels","PlotLayout","PlotLegends","PlotMarkers","PlotPoints","PlotRange","PlotRangeClipping","PlotRangeClipPlanesStyle","PlotRangePadding","PlotRegion","PlotStyle","PlotTheme","Pluralize","Plus","PlusMinus","Pochhammer","PodStates","PodWidth","Point","Point3DBox","Point3DBoxOptions","PointBox","PointBoxOptions","PointCountDistribution","PointDensity","PointDensityFunction","PointFigureChart","PointLegend","PointLight","PointProcessEstimator","PointProcessFitTest","PointProcessParameterAssumptions","PointProcessParameterQ","PointSize","PointStatisticFunction","PointValuePlot","PoissonConsulDistribution","PoissonDistribution","PoissonPDEComponent","PoissonPointProcess","PoissonProcess","PoissonWindow","PolarAxes","PolarAxesOrigin","PolarGridLines","PolarPlot","PolarTicks","PoleZeroMarkers","PolyaAeppliDistribution","PolyGamma","Polygon","Polygon3DBox","Polygon3DBoxOptions","PolygonalNumber","PolygonAngle","PolygonBox","PolygonBoxOptions","PolygonCoordinates","PolygonDecomposition","PolygonHoleScale","PolygonIntersections","PolygonScale","Polyhedron","PolyhedronAngle","PolyhedronBox","PolyhedronBoxOptions","PolyhedronCoordinates","PolyhedronData","PolyhedronDecomposition","PolyhedronGenus","PolyLog","PolynomialExpressionQ","PolynomialExtendedGCD","PolynomialForm","PolynomialGCD","PolynomialLCM","PolynomialMod","PolynomialQ","PolynomialQuotient","PolynomialQuotientRemainder","PolynomialReduce","PolynomialRemainder","Polynomials","PolynomialSumOfSquaresList","PoolingLayer","PopupMenu","PopupMenuBox","PopupMenuBoxOptions","PopupView","PopupWindow","Position","PositionIndex","PositionLargest","PositionSmallest","Positive","PositiveDefiniteMatrixQ","PositiveIntegers","PositivelyOrientedPoints","PositiveRationals","PositiveReals","PositiveSemidefiniteMatrixQ","PossibleZeroQ","Postfix","PostScript","Power","PowerDistribution","PowerExpand","PowerMod","PowerModList","PowerRange","PowerSpectralDensity","PowersRepresentations","PowerSymmetricPolynomial","Precedence","PrecedenceForm","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Precision","PrecisionGoal","PreDecrement","Predict","PredictionRoot","PredictorFunction","PredictorInformation","PredictorMeasurements","PredictorMeasurementsObject","PreemptProtect","PreferencesPath","PreferencesSettings","Prefix","PreIncrement","Prepend","PrependLayer","PrependTo","PreprocessingRules","PreserveColor","PreserveImageOptions","Previous","PreviousCell","PreviousDate","PriceGraphDistribution","PrimaryPlaceholder","Prime","PrimeNu","PrimeOmega","PrimePi","PrimePowerQ","PrimeQ","Primes","PrimeZetaP","PrimitivePolynomialQ","PrimitiveRoot","PrimitiveRootList","PrincipalComponents","PrincipalValue","Print","PrintableASCIIQ","PrintAction","PrintForm","PrintingCopies","PrintingOptions","PrintingPageRange","PrintingStartingPageNumber","PrintingStyleEnvironment","Printout3D","Printout3DPreviewer","PrintPrecision","PrintTemporary","Prism","PrismBox","PrismBoxOptions","PrivateCellOptions","PrivateEvaluationOptions","PrivateFontOptions","PrivateFrontEndOptions","PrivateKey","PrivateNotebookOptions","PrivatePaths","Probability","ProbabilityDistribution","ProbabilityPlot","ProbabilityPr","ProbabilityScalePlot","ProbitModelFit","ProcessConnection","ProcessDirectory","ProcessEnvironment","Processes","ProcessEstimator","ProcessInformation","ProcessObject","ProcessParameterAssumptions","ProcessParameterQ","ProcessStateDomain","ProcessStatus","ProcessTimeDomain","Product","ProductDistribution","ProductLog","ProgressIndicator","ProgressIndicatorBox","ProgressIndicatorBoxOptions","ProgressReporting","Projection","Prolog","PromptForm","ProofObject","PropagateAborts","Properties","Property","PropertyList","PropertyValue","Proportion","Proportional","Protect","Protected","ProteinData","Pruning","PseudoInverse","PsychrometricPropertyData","PublicKey","PublisherID","PulsarData","PunctuationCharacter","Purple","Put","PutAppend","Pyramid","PyramidBox","PyramidBoxOptions","QBinomial","QFactorial","QGamma","QHypergeometricPFQ","QnDispersion","QPochhammer","QPolyGamma","QRDecomposition","QuadraticIrrationalQ","QuadraticOptimization","Quantile","QuantilePlot","Quantity","QuantityArray","QuantityDistribution","QuantityForm","QuantityMagnitude","QuantityQ","QuantityUnit","QuantityVariable","QuantityVariableCanonicalUnit","QuantityVariableDimensions","QuantityVariableIdentifier","QuantityVariablePhysicalQuantity","Quartics","QuartileDeviation","Quartiles","QuartileSkewness","Query","QuestionGenerator","QuestionInterface","QuestionObject","QuestionSelector","QueueingNetworkProcess","QueueingProcess","QueueProperties","Quiet","QuietEcho","Quit","Quotient","QuotientRemainder","RadialAxisPlot","RadialGradientFilling","RadialGradientImage","RadialityCentrality","RadicalBox","RadicalBoxOptions","RadioButton","RadioButtonBar","RadioButtonBox","RadioButtonBoxOptions","Radon","RadonTransform","RamanujanTau","RamanujanTauL","RamanujanTauTheta","RamanujanTauZ","Ramp","Random","RandomArrayLayer","RandomChoice","RandomColor","RandomComplex","RandomDate","RandomEntity","RandomFunction","RandomGeneratorState","RandomGeoPosition","RandomGraph","RandomImage","RandomInstance","RandomInteger","RandomPermutation","RandomPoint","RandomPointConfiguration","RandomPolygon","RandomPolyhedron","RandomPrime","RandomReal","RandomSample","RandomSeed","RandomSeeding","RandomTime","RandomTree","RandomVariate","RandomWalkProcess","RandomWord","Range","RangeFilter","RangeSpecification","RankedMax","RankedMin","RarerProbability","Raster","Raster3D","Raster3DBox","Raster3DBoxOptions","RasterArray","RasterBox","RasterBoxOptions","Rasterize","RasterSize","Rational","RationalExpressionQ","RationalFunctions","Rationalize","Rationals","Ratios","RawArray","RawBoxes","RawData","RawMedium","RayleighDistribution","Re","ReactionBalance","ReactionBalancedQ","ReactionPDETerm","Read","ReadByteArray","ReadLine","ReadList","ReadProtected","ReadString","Real","RealAbs","RealBlockDiagonalForm","RealDigits","RealExponent","Reals","RealSign","Reap","RebuildPacletData","RecalibrationFunction","RecognitionPrior","RecognitionThreshold","ReconstructionMesh","Record","RecordLists","RecordSeparators","Rectangle","RectangleBox","RectangleBoxOptions","RectangleChart","RectangleChart3D","RectangularRepeatingElement","RecurrenceFilter","RecurrenceTable","RecurringDigitsForm","Red","Reduce","RefBox","ReferenceLineStyle","ReferenceMarkers","ReferenceMarkerStyle","Refine","ReflectionMatrix","ReflectionTransform","Refresh","RefreshRate","Region","RegionBinarize","RegionBoundary","RegionBoundaryStyle","RegionBounds","RegionCentroid","RegionCongruent","RegionConvert","RegionDifference","RegionDilation","RegionDimension","RegionDisjoint","RegionDistance","RegionDistanceFunction","RegionEmbeddingDimension","RegionEqual","RegionErosion","RegionFillingStyle","RegionFit","RegionFunction","RegionImage","RegionIntersection","RegionMeasure","RegionMember","RegionMemberFunction","RegionMoment","RegionNearest","RegionNearestFunction","RegionPlot","RegionPlot3D","RegionProduct","RegionQ","RegionResize","RegionSimilar","RegionSize","RegionSymmetricDifference","RegionUnion","RegionWithin","RegisterExternalEvaluator","RegularExpression","Regularization","RegularlySampledQ","RegularPolygon","ReIm","ReImLabels","ReImPlot","ReImStyle","Reinstall","RelationalDatabase","RelationGraph","Release","ReleaseHold","ReliabilityDistribution","ReliefImage","ReliefPlot","RemoteAuthorizationCaching","RemoteBatchJobAbort","RemoteBatchJobObject","RemoteBatchJobs","RemoteBatchMapSubmit","RemoteBatchSubmissionEnvironment","RemoteBatchSubmit","RemoteConnect","RemoteConnectionObject","RemoteEvaluate","RemoteFile","RemoteInputFiles","RemoteKernelObject","RemoteProviderSettings","RemoteRun","RemoteRunProcess","RemovalConditions","Remove","RemoveAlphaChannel","RemoveAsynchronousTask","RemoveAudioStream","RemoveBackground","RemoveChannelListener","RemoveChannelSubscribers","Removed","RemoveDiacritics","RemoveInputStreamMethod","RemoveOutputStreamMethod","RemoveProperty","RemoveScheduledTask","RemoveUsers","RemoveVideoStream","RenameDirectory","RenameFile","RenderAll","RenderingOptions","RenewalProcess","RenkoChart","RepairMesh","Repeated","RepeatedNull","RepeatedString","RepeatedTiming","RepeatingElement","Replace","ReplaceAll","ReplaceAt","ReplaceHeldPart","ReplaceImageValue","ReplaceList","ReplacePart","ReplacePixelValue","ReplaceRepeated","ReplicateLayer","RequiredPhysicalQuantities","Resampling","ResamplingAlgorithmData","ResamplingMethod","Rescale","RescalingTransform","ResetDirectory","ResetScheduledTask","ReshapeLayer","Residue","ResidueSum","ResizeLayer","Resolve","ResolveContextAliases","ResourceAcquire","ResourceData","ResourceFunction","ResourceObject","ResourceRegister","ResourceRemove","ResourceSearch","ResourceSubmissionObject","ResourceSubmit","ResourceSystemBase","ResourceSystemPath","ResourceUpdate","ResourceVersion","ResponseForm","Rest","RestartInterval","Restricted","Resultant","ResumePacket","Return","ReturnCreatesNewCell","ReturnEntersInput","ReturnExpressionPacket","ReturnInputFormPacket","ReturnPacket","ReturnReceiptFunction","ReturnTextPacket","Reverse","ReverseApplied","ReverseBiorthogonalSplineWavelet","ReverseElement","ReverseEquilibrium","ReverseGraph","ReverseSort","ReverseSortBy","ReverseUpEquilibrium","RevolutionAxis","RevolutionPlot3D","RGBColor","RiccatiSolve","RiceDistribution","RidgeFilter","RiemannR","RiemannSiegelTheta","RiemannSiegelZ","RiemannXi","Riffle","Right","RightArrow","RightArrowBar","RightArrowLeftArrow","RightComposition","RightCosetRepresentative","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","RipleyK","RipleyRassonRegion","RiskAchievementImportance","RiskReductionImportance","RobustConvexOptimization","RogersTanimotoDissimilarity","RollPitchYawAngles","RollPitchYawMatrix","RomanNumeral","Root","RootApproximant","RootIntervals","RootLocusPlot","RootMeanSquare","RootOfUnityQ","RootReduce","Roots","RootSum","RootTree","Rotate","RotateLabel","RotateLeft","RotateRight","RotationAction","RotationBox","RotationBoxOptions","RotationMatrix","RotationTransform","Round","RoundImplies","RoundingRadius","Row","RowAlignments","RowBackgrounds","RowBox","RowHeights","RowLines","RowMinHeight","RowReduce","RowsEqual","RowSpacings","RSolve","RSolveValue","RudinShapiro","RudvalisGroupRu","Rule","RuleCondition","RuleDelayed","RuleForm","RulePlot","RulerUnits","RulesTree","Run","RunProcess","RunScheduledTask","RunThrough","RuntimeAttributes","RuntimeOptions","RussellRaoDissimilarity","SameAs","SameQ","SameTest","SameTestProperties","SampledEntityClass","SampleDepth","SampledSoundFunction","SampledSoundList","SampleRate","SamplingPeriod","SARIMAProcess","SARMAProcess","SASTriangle","SatelliteData","SatisfiabilityCount","SatisfiabilityInstances","SatisfiableQ","Saturday","Save","Saveable","SaveAutoDelete","SaveConnection","SaveDefinitions","SavitzkyGolayMatrix","SawtoothWave","Scale","Scaled","ScaleDivisions","ScaledMousePosition","ScaleOrigin","ScalePadding","ScaleRanges","ScaleRangeStyle","ScalingFunctions","ScalingMatrix","ScalingTransform","Scan","ScheduledTask","ScheduledTaskActiveQ","ScheduledTaskInformation","ScheduledTaskInformationData","ScheduledTaskObject","ScheduledTasks","SchurDecomposition","ScientificForm","ScientificNotationThreshold","ScorerGi","ScorerGiPrime","ScorerHi","ScorerHiPrime","ScreenRectangle","ScreenStyleEnvironment","ScriptBaselineShifts","ScriptForm","ScriptLevel","ScriptMinSize","ScriptRules","ScriptSizeMultipliers","Scrollbars","ScrollingOptions","ScrollPosition","SearchAdjustment","SearchIndexObject","SearchIndices","SearchQueryString","SearchResultObject","Sec","Sech","SechDistribution","SecondOrderConeOptimization","SectionGrouping","SectorChart","SectorChart3D","SectorOrigin","SectorSpacing","SecuredAuthenticationKey","SecuredAuthenticationKeys","SecurityCertificate","SeedRandom","Select","Selectable","SelectComponents","SelectedCells","SelectedNotebook","SelectFirst","Selection","SelectionAnimate","SelectionCell","SelectionCellCreateCell","SelectionCellDefaultStyle","SelectionCellParentStyle","SelectionCreateCell","SelectionDebuggerTag","SelectionEvaluate","SelectionEvaluateCreateCell","SelectionMove","SelectionPlaceholder","SelectWithContents","SelfLoops","SelfLoopStyle","SemanticImport","SemanticImportString","SemanticInterpretation","SemialgebraicComponentInstances","SemidefiniteOptimization","SendMail","SendMessage","Sequence","SequenceAlignment","SequenceAttentionLayer","SequenceCases","SequenceCount","SequenceFold","SequenceFoldList","SequenceForm","SequenceHold","SequenceIndicesLayer","SequenceLastLayer","SequenceMostLayer","SequencePosition","SequencePredict","SequencePredictorFunction","SequenceReplace","SequenceRestLayer","SequenceReverseLayer","SequenceSplit","Series","SeriesCoefficient","SeriesData","SeriesTermGoal","ServiceConnect","ServiceDisconnect","ServiceExecute","ServiceObject","ServiceRequest","ServiceResponse","ServiceSubmit","SessionSubmit","SessionTime","Set","SetAccuracy","SetAlphaChannel","SetAttributes","Setbacks","SetCloudDirectory","SetCookies","SetDelayed","SetDirectory","SetEnvironment","SetFileDate","SetFileFormatProperties","SetOptions","SetOptionsPacket","SetPermissions","SetPrecision","SetProperty","SetSecuredAuthenticationKey","SetSelectedNotebook","SetSharedFunction","SetSharedVariable","SetStreamPosition","SetSystemModel","SetSystemOptions","Setter","SetterBar","SetterBox","SetterBoxOptions","Setting","SetUsers","Shading","Shallow","ShannonWavelet","ShapiroWilkTest","Share","SharingList","Sharpen","ShearingMatrix","ShearingTransform","ShellRegion","ShenCastanMatrix","ShiftedGompertzDistribution","ShiftRegisterSequence","Short","ShortDownArrow","Shortest","ShortestMatch","ShortestPathFunction","ShortLeftArrow","ShortRightArrow","ShortTimeFourier","ShortTimeFourierData","ShortUpArrow","Show","ShowAutoConvert","ShowAutoSpellCheck","ShowAutoStyles","ShowCellBracket","ShowCellLabel","ShowCellTags","ShowClosedCellArea","ShowCodeAssist","ShowContents","ShowControls","ShowCursorTracker","ShowGroupOpenCloseIcon","ShowGroupOpener","ShowInvisibleCharacters","ShowPageBreaks","ShowPredictiveInterface","ShowSelection","ShowShortBoxForm","ShowSpecialCharacters","ShowStringCharacters","ShowSyntaxStyles","ShrinkingDelay","ShrinkWrapBoundingBox","SiderealTime","SiegelTheta","SiegelTukeyTest","SierpinskiCurve","SierpinskiMesh","Sign","Signature","SignedRankTest","SignedRegionDistance","SignificanceLevel","SignPadding","SignTest","SimilarityRules","SimpleGraph","SimpleGraphQ","SimplePolygonQ","SimplePolyhedronQ","Simplex","Simplify","Sin","Sinc","SinghMaddalaDistribution","SingleEvaluation","SingleLetterItalics","SingleLetterStyle","SingularValueDecomposition","SingularValueList","SingularValuePlot","SingularValues","Sinh","SinhIntegral","SinIntegral","SixJSymbol","Skeleton","SkeletonTransform","SkellamDistribution","Skewness","SkewNormalDistribution","SkinStyle","Skip","SliceContourPlot3D","SliceDensityPlot3D","SliceDistribution","SliceVectorPlot3D","Slider","Slider2D","Slider2DBox","Slider2DBoxOptions","SliderBox","SliderBoxOptions","SlideShowVideo","SlideView","Slot","SlotSequence","Small","SmallCircle","Smaller","SmithDecomposition","SmithDelayCompensator","SmithWatermanSimilarity","SmoothDensityHistogram","SmoothHistogram","SmoothHistogram3D","SmoothKernelDistribution","SmoothPointDensity","SnDispersion","Snippet","SnippetsVideo","SnubPolyhedron","SocialMediaData","Socket","SocketConnect","SocketListen","SocketListener","SocketObject","SocketOpen","SocketReadMessage","SocketReadyQ","Sockets","SocketWaitAll","SocketWaitNext","SoftmaxLayer","SokalSneathDissimilarity","SolarEclipse","SolarSystemFeatureData","SolarTime","SolidAngle","SolidBoundaryLoadValue","SolidData","SolidDisplacementCondition","SolidFixedCondition","SolidMechanicsPDEComponent","SolidMechanicsStrain","SolidMechanicsStress","SolidRegionQ","Solve","SolveAlways","SolveDelayed","SolveValues","Sort","SortBy","SortedBy","SortedEntityClass","Sound","SoundAndGraphics","SoundNote","SoundVolume","SourceLink","SourcePDETerm","Sow","Space","SpaceCurveData","SpaceForm","Spacer","Spacings","Span","SpanAdjustments","SpanCharacterRounding","SpanFromAbove","SpanFromBoth","SpanFromLeft","SpanLineThickness","SpanMaxSize","SpanMinSize","SpanningCharacters","SpanSymmetric","SparseArray","SparseArrayQ","SpatialBinnedPointData","SpatialBoundaryCorrection","SpatialEstimate","SpatialEstimatorFunction","SpatialGraphDistribution","SpatialJ","SpatialMedian","SpatialNoiseLevel","SpatialObservationRegionQ","SpatialPointData","SpatialPointSelect","SpatialRandomnessTest","SpatialTransformationLayer","SpatialTrendFunction","Speak","SpeakerMatchQ","SpearmanRankTest","SpearmanRho","SpeciesData","SpecificityGoal","SpectralLineData","Spectrogram","SpectrogramArray","Specularity","SpeechCases","SpeechInterpreter","SpeechRecognize","SpeechSynthesize","SpellingCorrection","SpellingCorrectionList","SpellingDictionaries","SpellingDictionariesPath","SpellingOptions","Sphere","SphereBox","SphereBoxOptions","SpherePoints","SphericalBesselJ","SphericalBesselY","SphericalHankelH1","SphericalHankelH2","SphericalHarmonicY","SphericalPlot3D","SphericalRegion","SphericalShell","SpheroidalEigenvalue","SpheroidalJoiningFactor","SpheroidalPS","SpheroidalPSPrime","SpheroidalQS","SpheroidalQSPrime","SpheroidalRadialFactor","SpheroidalS1","SpheroidalS1Prime","SpheroidalS2","SpheroidalS2Prime","Splice","SplicedDistribution","SplineClosed","SplineDegree","SplineKnots","SplineWeights","Split","SplitBy","SpokenString","SpotLight","Sqrt","SqrtBox","SqrtBoxOptions","Square","SquaredEuclideanDistance","SquareFreeQ","SquareIntersection","SquareMatrixQ","SquareRepeatingElement","SquaresR","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","SquareWave","SSSTriangle","StabilityMargins","StabilityMarginsStyle","StableDistribution","Stack","StackBegin","StackComplete","StackedDateListPlot","StackedListPlot","StackInhibit","StadiumShape","StandardAtmosphereData","StandardDeviation","StandardDeviationFilter","StandardForm","Standardize","Standardized","StandardOceanData","StandbyDistribution","Star","StarClusterData","StarData","StarGraph","StartAsynchronousTask","StartExternalSession","StartingStepSize","StartOfLine","StartOfString","StartProcess","StartScheduledTask","StartupSound","StartWebSession","StateDimensions","StateFeedbackGains","StateOutputEstimator","StateResponse","StateSpaceModel","StateSpaceRealization","StateSpaceTransform","StateTransformationLinearize","StationaryDistribution","StationaryWaveletPacketTransform","StationaryWaveletTransform","StatusArea","StatusCentrality","StepMonitor","StereochemistryElements","StieltjesGamma","StippleShading","StirlingS1","StirlingS2","StopAsynchronousTask","StoppingPowerData","StopScheduledTask","StrataVariables","StratonovichProcess","StraussHardcorePointProcess","StraussPointProcess","StreamColorFunction","StreamColorFunctionScaling","StreamDensityPlot","StreamMarkers","StreamPlot","StreamPlot3D","StreamPoints","StreamPosition","Streams","StreamScale","StreamStyle","StrictInequalities","String","StringBreak","StringByteCount","StringCases","StringContainsQ","StringCount","StringDelete","StringDrop","StringEndsQ","StringExpression","StringExtract","StringForm","StringFormat","StringFormatQ","StringFreeQ","StringInsert","StringJoin","StringLength","StringMatchQ","StringPadLeft","StringPadRight","StringPart","StringPartition","StringPosition","StringQ","StringRepeat","StringReplace","StringReplaceList","StringReplacePart","StringReverse","StringRiffle","StringRotateLeft","StringRotateRight","StringSkeleton","StringSplit","StringStartsQ","StringTake","StringTakeDrop","StringTemplate","StringToByteArray","StringToStream","StringTrim","StripBoxes","StripOnInput","StripStyleOnPaste","StripWrapperBoxes","StrokeForm","Struckthrough","StructuralImportance","StructuredArray","StructuredArrayHeadQ","StructuredSelection","StruveH","StruveL","Stub","StudentTDistribution","Style","StyleBox","StyleBoxAutoDelete","StyleData","StyleDefinitions","StyleForm","StyleHints","StyleKeyMapping","StyleMenuListing","StyleNameDialogSettings","StyleNames","StylePrint","StyleSheetPath","Subdivide","Subfactorial","Subgraph","SubMinus","SubPlus","SubresultantPolynomialRemainders","SubresultantPolynomials","Subresultants","Subscript","SubscriptBox","SubscriptBoxOptions","Subscripted","Subsequences","Subset","SubsetCases","SubsetCount","SubsetEqual","SubsetMap","SubsetPosition","SubsetQ","SubsetReplace","Subsets","SubStar","SubstitutionSystem","Subsuperscript","SubsuperscriptBox","SubsuperscriptBoxOptions","SubtitleEncoding","SubtitleTrackSelection","Subtract","SubtractFrom","SubtractSides","SubValues","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","Success","SuchThat","Sum","SumConvergence","SummationLayer","Sunday","SunPosition","Sunrise","Sunset","SuperDagger","SuperMinus","SupernovaData","SuperPlus","Superscript","SuperscriptBox","SuperscriptBoxOptions","Superset","SupersetEqual","SuperStar","Surd","SurdForm","SurfaceAppearance","SurfaceArea","SurfaceColor","SurfaceData","SurfaceGraphics","SurvivalDistribution","SurvivalFunction","SurvivalModel","SurvivalModelFit","SuspendPacket","SuzukiDistribution","SuzukiGroupSuz","SwatchLegend","Switch","Symbol","SymbolName","SymletWavelet","Symmetric","SymmetricDifference","SymmetricGroup","SymmetricKey","SymmetricMatrixQ","SymmetricPolynomial","SymmetricReduction","Symmetrize","SymmetrizedArray","SymmetrizedArrayRules","SymmetrizedDependentComponents","SymmetrizedIndependentComponents","SymmetrizedReplacePart","SynchronousInitialization","SynchronousUpdating","Synonyms","Syntax","SyntaxForm","SyntaxInformation","SyntaxLength","SyntaxPacket","SyntaxQ","SynthesizeMissingValues","SystemCredential","SystemCredentialData","SystemCredentialKey","SystemCredentialKeys","SystemCredentialStoreObject","SystemDialogInput","SystemException","SystemGet","SystemHelpPath","SystemInformation","SystemInformationData","SystemInstall","SystemModel","SystemModeler","SystemModelExamples","SystemModelLinearize","SystemModelMeasurements","SystemModelParametricSimulate","SystemModelPlot","SystemModelProgressReporting","SystemModelReliability","SystemModels","SystemModelSimulate","SystemModelSimulateSensitivity","SystemModelSimulationData","SystemOpen","SystemOptions","SystemProcessData","SystemProcesses","SystemsConnectionsModel","SystemsModelControllerData","SystemsModelDelay","SystemsModelDelayApproximate","SystemsModelDelete","SystemsModelDimensions","SystemsModelExtract","SystemsModelFeedbackConnect","SystemsModelLabels","SystemsModelLinearity","SystemsModelMerge","SystemsModelOrder","SystemsModelParallelConnect","SystemsModelSeriesConnect","SystemsModelStateFeedbackConnect","SystemsModelVectorRelativeOrders","SystemStub","SystemTest","Tab","TabFilling","Table","TableAlignments","TableDepth","TableDirections","TableForm","TableHeadings","TableSpacing","TableView","TableViewBox","TableViewBoxAlignment","TableViewBoxBackground","TableViewBoxHeaders","TableViewBoxItemSize","TableViewBoxItemStyle","TableViewBoxOptions","TabSpacings","TabView","TabViewBox","TabViewBoxOptions","TagBox","TagBoxNote","TagBoxOptions","TaggingRules","TagSet","TagSetDelayed","TagStyle","TagUnset","Take","TakeDrop","TakeLargest","TakeLargestBy","TakeList","TakeSmallest","TakeSmallestBy","TakeWhile","Tally","Tan","Tanh","TargetDevice","TargetFunctions","TargetSystem","TargetUnits","TaskAbort","TaskExecute","TaskObject","TaskRemove","TaskResume","Tasks","TaskSuspend","TaskWait","TautologyQ","TelegraphProcess","TemplateApply","TemplateArgBox","TemplateBox","TemplateBoxOptions","TemplateEvaluate","TemplateExpression","TemplateIf","TemplateObject","TemplateSequence","TemplateSlot","TemplateSlotSequence","TemplateUnevaluated","TemplateVerbatim","TemplateWith","TemporalData","TemporalRegularity","Temporary","TemporaryVariable","TensorContract","TensorDimensions","TensorExpand","TensorProduct","TensorQ","TensorRank","TensorReduce","TensorSymmetry","TensorTranspose","TensorWedge","TerminatedEvaluation","TernaryListPlot","TernaryPlotCorners","TestID","TestReport","TestReportObject","TestResultObject","Tetrahedron","TetrahedronBox","TetrahedronBoxOptions","TeXForm","TeXSave","Text","Text3DBox","Text3DBoxOptions","TextAlignment","TextBand","TextBoundingBox","TextBox","TextCases","TextCell","TextClipboardType","TextContents","TextData","TextElement","TextForm","TextGrid","TextJustification","TextLine","TextPacket","TextParagraph","TextPosition","TextRecognize","TextSearch","TextSearchReport","TextSentences","TextString","TextStructure","TextStyle","TextTranslation","Texture","TextureCoordinateFunction","TextureCoordinateScaling","TextWords","Therefore","ThermodynamicData","ThermometerGauge","Thick","Thickness","Thin","Thinning","ThisLink","ThomasPointProcess","ThompsonGroupTh","Thread","Threaded","ThreadingLayer","ThreeJSymbol","Threshold","Through","Throw","ThueMorse","Thumbnail","Thursday","TickDirection","TickLabelOrientation","TickLabelPositioning","TickLabels","TickLengths","TickPositions","Ticks","TicksStyle","TideData","Tilde","TildeEqual","TildeFullEqual","TildeTilde","TimeConstrained","TimeConstraint","TimeDirection","TimeFormat","TimeGoal","TimelinePlot","TimeObject","TimeObjectQ","TimeRemaining","Times","TimesBy","TimeSeries","TimeSeriesAggregate","TimeSeriesForecast","TimeSeriesInsert","TimeSeriesInvertibility","TimeSeriesMap","TimeSeriesMapThread","TimeSeriesModel","TimeSeriesModelFit","TimeSeriesResample","TimeSeriesRescale","TimeSeriesShift","TimeSeriesThread","TimeSeriesWindow","TimeSystem","TimeSystemConvert","TimeUsed","TimeValue","TimeWarpingCorrespondence","TimeWarpingDistance","TimeZone","TimeZoneConvert","TimeZoneOffset","Timing","Tiny","TitleGrouping","TitsGroupT","ToBoxes","ToCharacterCode","ToColor","ToContinuousTimeModel","ToDate","Today","ToDiscreteTimeModel","ToEntity","ToeplitzMatrix","ToExpression","ToFileName","Together","Toggle","ToggleFalse","Toggler","TogglerBar","TogglerBox","TogglerBoxOptions","ToHeldExpression","ToInvertibleTimeSeries","TokenWords","Tolerance","ToLowerCase","Tomorrow","ToNumberField","TooBig","Tooltip","TooltipBox","TooltipBoxOptions","TooltipDelay","TooltipStyle","ToonShading","Top","TopHatTransform","ToPolarCoordinates","TopologicalSort","ToRadicals","ToRawPointer","ToRules","Torus","TorusGraph","ToSphericalCoordinates","ToString","Total","TotalHeight","TotalLayer","TotalVariationFilter","TotalWidth","TouchPosition","TouchscreenAutoZoom","TouchscreenControlPlacement","ToUpperCase","TourVideo","Tr","Trace","TraceAbove","TraceAction","TraceBackward","TraceDepth","TraceDialog","TraceForward","TraceInternal","TraceLevel","TraceOff","TraceOn","TraceOriginal","TracePrint","TraceScan","TrackCellChangeTimes","TrackedSymbols","TrackingFunction","TracyWidomDistribution","TradingChart","TraditionalForm","TraditionalFunctionNotation","TraditionalNotation","TraditionalOrder","TrainImageContentDetector","TrainingProgressCheckpointing","TrainingProgressFunction","TrainingProgressMeasurements","TrainingProgressReporting","TrainingStoppingCriterion","TrainingUpdateSchedule","TrainTextContentDetector","TransferFunctionCancel","TransferFunctionExpand","TransferFunctionFactor","TransferFunctionModel","TransferFunctionPoles","TransferFunctionTransform","TransferFunctionZeros","TransformationClass","TransformationFunction","TransformationFunctions","TransformationMatrix","TransformedDistribution","TransformedField","TransformedProcess","TransformedRegion","TransitionDirection","TransitionDuration","TransitionEffect","TransitiveClosureGraph","TransitiveReductionGraph","Translate","TranslationOptions","TranslationTransform","Transliterate","Transparent","TransparentColor","Transpose","TransposeLayer","TrapEnterKey","TrapSelection","TravelDirections","TravelDirectionsData","TravelDistance","TravelDistanceList","TravelMethod","TravelTime","Tree","TreeCases","TreeChildren","TreeCount","TreeData","TreeDelete","TreeDepth","TreeElementCoordinates","TreeElementLabel","TreeElementLabelFunction","TreeElementLabelStyle","TreeElementShape","TreeElementShapeFunction","TreeElementSize","TreeElementSizeFunction","TreeElementStyle","TreeElementStyleFunction","TreeExpression","TreeExtract","TreeFold","TreeForm","TreeGraph","TreeGraphQ","TreeInsert","TreeLayout","TreeLeafCount","TreeLeafQ","TreeLeaves","TreeLevel","TreeMap","TreeMapAt","TreeOutline","TreePlot","TreePosition","TreeQ","TreeReplacePart","TreeRules","TreeScan","TreeSelect","TreeSize","TreeTraversalOrder","TrendStyle","Triangle","TriangleCenter","TriangleConstruct","TriangleMeasurement","TriangleWave","TriangularDistribution","TriangulateMesh","Trig","TrigExpand","TrigFactor","TrigFactorList","Trigger","TrigReduce","TrigToExp","TrimmedMean","TrimmedVariance","TropicalStormData","True","TrueQ","TruncatedDistribution","TruncatedPolyhedron","TsallisQExponentialDistribution","TsallisQGaussianDistribution","TTest","Tube","TubeBezierCurveBox","TubeBezierCurveBoxOptions","TubeBox","TubeBoxOptions","TubeBSplineCurveBox","TubeBSplineCurveBoxOptions","Tuesday","TukeyLambdaDistribution","TukeyWindow","TunnelData","Tuples","TuranGraph","TuringMachine","TuttePolynomial","TwoWayRule","Typed","TypeDeclaration","TypeEvaluate","TypeHint","TypeOf","TypeSpecifier","UnateQ","Uncompress","UnconstrainedParameters","Undefined","UnderBar","Underflow","Underlined","Underoverscript","UnderoverscriptBox","UnderoverscriptBoxOptions","Underscript","UnderscriptBox","UnderscriptBoxOptions","UnderseaFeatureData","UndirectedEdge","UndirectedGraph","UndirectedGraphQ","UndoOptions","UndoTrackedVariables","Unequal","UnequalTo","Unevaluated","UniformDistribution","UniformGraphDistribution","UniformPolyhedron","UniformSumDistribution","Uninstall","Union","UnionedEntityClass","UnionPlus","Unique","UniqueElements","UnitaryMatrixQ","UnitBox","UnitConvert","UnitDimensions","Unitize","UnitRootTest","UnitSimplify","UnitStep","UnitSystem","UnitTriangle","UnitVector","UnitVectorLayer","UnityDimensions","UniverseModelData","UniversityData","UnixTime","UnlabeledTree","UnmanageObject","Unprotect","UnregisterExternalEvaluator","UnsameQ","UnsavedVariables","Unset","UnsetShared","Until","UntrackedVariables","Up","UpArrow","UpArrowBar","UpArrowDownArrow","Update","UpdateDynamicObjects","UpdateDynamicObjectsSynchronous","UpdateInterval","UpdatePacletSites","UpdateSearchIndex","UpDownArrow","UpEquilibrium","UpperCaseQ","UpperLeftArrow","UpperRightArrow","UpperTriangularize","UpperTriangularMatrix","UpperTriangularMatrixQ","Upsample","UpSet","UpSetDelayed","UpTee","UpTeeArrow","UpTo","UpValues","URL","URLBuild","URLDecode","URLDispatcher","URLDownload","URLDownloadSubmit","URLEncode","URLExecute","URLExpand","URLFetch","URLFetchAsynchronous","URLParse","URLQueryDecode","URLQueryEncode","URLRead","URLResponseTime","URLSave","URLSaveAsynchronous","URLShorten","URLSubmit","UseEmbeddedLibrary","UseGraphicsRange","UserDefinedWavelet","Using","UsingFrontEnd","UtilityFunction","V2Get","ValenceErrorHandling","ValenceFilling","ValidationLength","ValidationSet","ValueBox","ValueBoxOptions","ValueDimensions","ValueForm","ValuePreprocessingFunction","ValueQ","Values","ValuesData","VandermondeMatrix","Variables","Variance","VarianceEquivalenceTest","VarianceEstimatorFunction","VarianceGammaDistribution","VarianceGammaPointProcess","VarianceTest","VariogramFunction","VariogramModel","VectorAngle","VectorAround","VectorAspectRatio","VectorColorFunction","VectorColorFunctionScaling","VectorDensityPlot","VectorDisplacementPlot","VectorDisplacementPlot3D","VectorGlyphData","VectorGreater","VectorGreaterEqual","VectorLess","VectorLessEqual","VectorMarkers","VectorPlot","VectorPlot3D","VectorPoints","VectorQ","VectorRange","Vectors","VectorScale","VectorScaling","VectorSizes","VectorStyle","Vee","Verbatim","Verbose","VerificationTest","VerifyConvergence","VerifyDerivedKey","VerifyDigitalSignature","VerifyFileSignature","VerifyInterpretation","VerifySecurityCertificates","VerifySolutions","VerifyTestAssumptions","VersionedPreferences","VertexAdd","VertexCapacity","VertexChromaticNumber","VertexColors","VertexComponent","VertexConnectivity","VertexContract","VertexCoordinateRules","VertexCoordinates","VertexCorrelationSimilarity","VertexCosineSimilarity","VertexCount","VertexCoverQ","VertexDataCoordinates","VertexDegree","VertexDelete","VertexDiceSimilarity","VertexEccentricity","VertexInComponent","VertexInComponentGraph","VertexInDegree","VertexIndex","VertexJaccardSimilarity","VertexLabeling","VertexLabels","VertexLabelStyle","VertexList","VertexNormals","VertexOutComponent","VertexOutComponentGraph","VertexOutDegree","VertexQ","VertexRenderingFunction","VertexReplace","VertexShape","VertexShapeFunction","VertexSize","VertexStyle","VertexTextureCoordinates","VertexTransitiveGraphQ","VertexWeight","VertexWeightedGraphQ","Vertical","VerticalBar","VerticalForm","VerticalGauge","VerticalSeparator","VerticalSlider","VerticalTilde","Video","VideoCapture","VideoCombine","VideoDelete","VideoEncoding","VideoExtractFrames","VideoFrameList","VideoFrameMap","VideoGenerator","VideoInsert","VideoIntervals","VideoJoin","VideoMap","VideoMapList","VideoMapTimeSeries","VideoPadding","VideoPause","VideoPlay","VideoQ","VideoRecord","VideoReplace","VideoScreenCapture","VideoSplit","VideoStop","VideoStream","VideoStreams","VideoTimeStretch","VideoTrackSelection","VideoTranscode","VideoTransparency","VideoTrim","ViewAngle","ViewCenter","ViewMatrix","ViewPoint","ViewPointSelectorSettings","ViewPort","ViewProjection","ViewRange","ViewVector","ViewVertical","VirtualGroupData","Visible","VisibleCell","VoiceStyleData","VoigtDistribution","VolcanoData","Volume","VonMisesDistribution","VoronoiMesh","WaitAll","WaitAsynchronousTask","WaitNext","WaitUntil","WakebyDistribution","WalleniusHypergeometricDistribution","WaringYuleDistribution","WarpingCorrespondence","WarpingDistance","WatershedComponents","WatsonUSquareTest","WattsStrogatzGraphDistribution","WaveletBestBasis","WaveletFilterCoefficients","WaveletImagePlot","WaveletListPlot","WaveletMapIndexed","WaveletMatrixPlot","WaveletPhi","WaveletPsi","WaveletScale","WaveletScalogram","WaveletThreshold","WavePDEComponent","WeaklyConnectedComponents","WeaklyConnectedGraphComponents","WeaklyConnectedGraphQ","WeakStationarity","WeatherData","WeatherForecastData","WebAudioSearch","WebColumn","WebElementObject","WeberE","WebExecute","WebImage","WebImageSearch","WebItem","WebPageMetaInformation","WebRow","WebSearch","WebSessionObject","WebSessions","WebWindowObject","Wedge","Wednesday","WeibullDistribution","WeierstrassE1","WeierstrassE2","WeierstrassE3","WeierstrassEta1","WeierstrassEta2","WeierstrassEta3","WeierstrassHalfPeriods","WeierstrassHalfPeriodW1","WeierstrassHalfPeriodW2","WeierstrassHalfPeriodW3","WeierstrassInvariantG2","WeierstrassInvariantG3","WeierstrassInvariants","WeierstrassP","WeierstrassPPrime","WeierstrassSigma","WeierstrassZeta","WeightedAdjacencyGraph","WeightedAdjacencyMatrix","WeightedData","WeightedGraphQ","Weights","WelchWindow","WheelGraph","WhenEvent","Which","While","White","WhiteNoiseProcess","WhitePoint","Whitespace","WhitespaceCharacter","WhittakerM","WhittakerW","WholeCellGroupOpener","WienerFilter","WienerProcess","WignerD","WignerSemicircleDistribution","WikidataData","WikidataSearch","WikipediaData","WikipediaSearch","WilksW","WilksWTest","WindDirectionData","WindingCount","WindingPolygon","WindowClickSelect","WindowElements","WindowFloating","WindowFrame","WindowFrameElements","WindowMargins","WindowMovable","WindowOpacity","WindowPersistentStyles","WindowSelected","WindowSize","WindowStatusArea","WindowTitle","WindowToolbars","WindowWidth","WindSpeedData","WindVectorData","WinsorizedMean","WinsorizedVariance","WishartMatrixDistribution","With","WithCleanup","WithLock","WolframAlpha","WolframAlphaDate","WolframAlphaQuantity","WolframAlphaResult","WolframCloudSettings","WolframLanguageData","Word","WordBoundary","WordCharacter","WordCloud","WordCount","WordCounts","WordData","WordDefinition","WordFrequency","WordFrequencyData","WordList","WordOrientation","WordSearch","WordSelectionFunction","WordSeparators","WordSpacings","WordStem","WordTranslation","WorkingPrecision","WrapAround","Write","WriteLine","WriteString","Wronskian","XMLElement","XMLObject","XMLTemplate","Xnor","Xor","XYZColor","Yellow","Yesterday","YuleDissimilarity","ZernikeR","ZeroSymmetric","ZeroTest","ZeroWidthTimes","Zeta","ZetaZero","ZIPCodeData","ZipfDistribution","ZoomCenter","ZoomFactor","ZTest","ZTransform","$Aborted","$ActivationGroupID","$ActivationKey","$ActivationUserRegistered","$AddOnsDirectory","$AllowDataUpdates","$AllowExternalChannelFunctions","$AllowInternet","$AssertFunction","$Assumptions","$AsynchronousTask","$AudioDecoders","$AudioEncoders","$AudioInputDevices","$AudioOutputDevices","$BaseDirectory","$BasePacletsDirectory","$BatchInput","$BatchOutput","$BlockchainBase","$BoxForms","$ByteOrdering","$CacheBaseDirectory","$Canceled","$ChannelBase","$CharacterEncoding","$CharacterEncodings","$CloudAccountName","$CloudBase","$CloudConnected","$CloudConnection","$CloudCreditsAvailable","$CloudEvaluation","$CloudExpressionBase","$CloudObjectNameFormat","$CloudObjectURLType","$CloudRootDirectory","$CloudSymbolBase","$CloudUserID","$CloudUserUUID","$CloudVersion","$CloudVersionNumber","$CloudWolframEngineVersionNumber","$CommandLine","$CompilationTarget","$CompilerEnvironment","$ConditionHold","$ConfiguredKernels","$Context","$ContextAliases","$ContextPath","$ControlActiveSetting","$Cookies","$CookieStore","$CreationDate","$CryptographicEllipticCurveNames","$CurrentLink","$CurrentTask","$CurrentWebSession","$DataStructures","$DateStringFormat","$DefaultAudioInputDevice","$DefaultAudioOutputDevice","$DefaultFont","$DefaultFrontEnd","$DefaultImagingDevice","$DefaultKernels","$DefaultLocalBase","$DefaultLocalKernel","$DefaultMailbox","$DefaultNetworkInterface","$DefaultPath","$DefaultProxyRules","$DefaultRemoteBatchSubmissionEnvironment","$DefaultRemoteKernel","$DefaultSystemCredentialStore","$Display","$DisplayFunction","$DistributedContexts","$DynamicEvaluation","$Echo","$EmbedCodeEnvironments","$EmbeddableServices","$EntityStores","$Epilog","$EvaluationCloudBase","$EvaluationCloudObject","$EvaluationEnvironment","$ExportFormats","$ExternalIdentifierTypes","$ExternalStorageBase","$Failed","$FinancialDataSource","$FontFamilies","$FormatType","$FrontEnd","$FrontEndSession","$GeneratedAssetLocation","$GeoEntityTypes","$GeoLocation","$GeoLocationCity","$GeoLocationCountry","$GeoLocationPrecision","$GeoLocationSource","$HistoryLength","$HomeDirectory","$HTMLExportRules","$HTTPCookies","$HTTPRequest","$IgnoreEOF","$ImageFormattingWidth","$ImageResolution","$ImagingDevice","$ImagingDevices","$ImportFormats","$IncomingMailSettings","$InitialDirectory","$Initialization","$InitializationContexts","$Input","$InputFileName","$InputStreamMethods","$Inspector","$InstallationDate","$InstallationDirectory","$InterfaceEnvironment","$InterpreterTypes","$IterationLimit","$KernelCount","$KernelID","$Language","$LaunchDirectory","$LibraryPath","$LicenseExpirationDate","$LicenseID","$LicenseProcesses","$LicenseServer","$LicenseSubprocesses","$LicenseType","$Line","$Linked","$LinkSupported","$LoadedFiles","$LocalBase","$LocalSymbolBase","$MachineAddresses","$MachineDomain","$MachineDomains","$MachineEpsilon","$MachineID","$MachineName","$MachinePrecision","$MachineType","$MaxDisplayedChildren","$MaxExtraPrecision","$MaxLicenseProcesses","$MaxLicenseSubprocesses","$MaxMachineNumber","$MaxNumber","$MaxPiecewiseCases","$MaxPrecision","$MaxRootDegree","$MessageGroups","$MessageList","$MessagePrePrint","$Messages","$MinMachineNumber","$MinNumber","$MinorReleaseNumber","$MinPrecision","$MobilePhone","$ModuleNumber","$NetworkConnected","$NetworkInterfaces","$NetworkLicense","$NewMessage","$NewSymbol","$NotebookInlineStorageLimit","$Notebooks","$NoValue","$NumberMarks","$Off","$OperatingSystem","$Output","$OutputForms","$OutputSizeLimit","$OutputStreamMethods","$Packages","$ParentLink","$ParentProcessID","$PasswordFile","$PatchLevelID","$Path","$PathnameSeparator","$PerformanceGoal","$Permissions","$PermissionsGroupBase","$PersistenceBase","$PersistencePath","$PipeSupported","$PlotTheme","$Post","$Pre","$PreferencesDirectory","$PreInitialization","$PrePrint","$PreRead","$PrintForms","$PrintLiteral","$Printout3DPreviewer","$ProcessID","$ProcessorCount","$ProcessorType","$ProductInformation","$ProgramName","$ProgressReporting","$PublisherID","$RandomGeneratorState","$RandomState","$RecursionLimit","$RegisteredDeviceClasses","$RegisteredUserName","$ReleaseNumber","$RequesterAddress","$RequesterCloudUserID","$RequesterCloudUserUUID","$RequesterWolframID","$RequesterWolframUUID","$ResourceSystemBase","$ResourceSystemPath","$RootDirectory","$ScheduledTask","$ScriptCommandLine","$ScriptInputString","$SecuredAuthenticationKeyTokens","$ServiceCreditsAvailable","$Services","$SessionID","$SetParentLink","$SharedFunctions","$SharedVariables","$SoundDisplay","$SoundDisplayFunction","$SourceLink","$SSHAuthentication","$SubtitleDecoders","$SubtitleEncoders","$SummaryBoxDataSizeLimit","$SuppressInputFormHeads","$SynchronousEvaluation","$SyntaxHandler","$System","$SystemCharacterEncoding","$SystemCredentialStore","$SystemID","$SystemMemory","$SystemShell","$SystemTimeZone","$SystemWordLength","$TargetSystems","$TemplatePath","$TemporaryDirectory","$TemporaryPrefix","$TestFileName","$TextStyle","$TimedOut","$TimeUnit","$TimeZone","$TimeZoneEntity","$TopDirectory","$TraceOff","$TraceOn","$TracePattern","$TracePostAction","$TracePreAction","$UnitSystem","$Urgent","$UserAddOnsDirectory","$UserAgentLanguages","$UserAgentMachine","$UserAgentName","$UserAgentOperatingSystem","$UserAgentString","$UserAgentVersion","$UserBaseDirectory","$UserBasePacletsDirectory","$UserDocumentsDirectory","$Username","$UserName","$UserURLBase","$Version","$VersionNumber","$VideoDecoders","$VideoEncoders","$VoiceStyles","$WolframDocumentsDirectory","$WolframID","$WolframUUID"];e.exports=function(e){const n=e.regex,r=n.either(n.concat(/([2-9]|[1-2]\d|[3][0-5])\^\^/,/(\w*\.\w+|\w+\.\w*|\w+)/),/(\d*\.\d+|\d+\.\d*|\d+)/),i=n.either(/``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/,/`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/),a={className:"number",relevance:0,begin:n.concat(r,n.optional(i),n.optional(/\*\^[+-]?\d+/))},o=/[a-zA-Z$][a-zA-Z0-9$]*/,s=new Set(t),l={variants:[{className:"builtin-symbol",begin:o,"on:begin":(e,t)=>{s.has(e[0])||t.ignoreMatch()}},{className:"symbol",relevance:0,begin:o}]},c={className:"message-name",relevance:0,begin:n.concat("::",o)};return{name:"Mathematica",aliases:["mma","wl"],classNameAliases:{brace:"punctuation",pattern:"type",slot:"type",symbol:"variable","named-character":"variable","builtin-symbol":"built_in","message-name":"string"},contains:[e.COMMENT(/\(\*/,/\*\)/,{contains:["self"]}),{className:"pattern",relevance:0,begin:/([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/},{className:"slot",relevance:0,begin:/#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/},c,l,{className:"named-character",begin:/\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/},e.QUOTE_STRING_MODE,a,{className:"operator",relevance:0,begin:/[+\-*/,;.:@~=><&|_`'^?!%]+/},{className:"brace",relevance:0,begin:/[[\](){}]/}]}}},8722:e=>{e.exports=function(e){const t="('|\\.')+",n={relevance:0,contains:[{begin:t}]};return{name:"Matlab",keywords:{keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell "},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{className:"built_in",begin:/true|false/,relevance:0,starts:n},{begin:"[a-zA-Z][a-zA-Z_0-9]*"+t,relevance:0},{className:"number",begin:e.C_NUMBER_RE,relevance:0,starts:n},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:n},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}],starts:n},e.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),e.COMMENT("%","$")]}}},8216:e=>{e.exports=function(e){return{name:"Maxima",keywords:{$pattern:"[A-Za-z_%][0-9A-Za-z_%]*",keyword:"if then else elseif for thru do while unless step in and or not",literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma",built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest",symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/",contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0,variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}]}],illegal:/@/}}},9953:e=>{e.exports=function(e){return{name:"MEL",keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"{e.exports=function(e){const t=e.COMMENT("%","$"),n=e.inherit(e.APOS_STRING_MODE,{relevance:0}),r=e.inherit(e.QUOTE_STRING_MODE,{relevance:0});return r.contains=r.contains.slice(),r.contains.push({className:"subst",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0}),{name:"Mercury",aliases:["m","moo"],keywords:{keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",meta:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}]},t,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},e.NUMBER_MODE,n,r,{begin:/:-/},{begin:/\.$/}]}}},8269:e=>{e.exports=function(e){return{name:"MIPS Assembly",case_insensitive:!0,aliases:["mips"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ",built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt "},contains:[{className:"keyword",begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)",end:"\\s"},e.COMMENT("[;#](?!\\s*$)","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{begin:"[0-9]+[bf]"}],relevance:0}],illegal:/\//}}},944:e=>{e.exports=function(e){return{name:"Mizar",keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}}},6078:e=>{e.exports=function(e){return{name:"Mojolicious",subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}},7850:e=>{e.exports=function(e){const t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]},n={variants:[{match:[/(function|method)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword",3:"title.function"}},r={variants:[{match:[/(class|interface|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword",3:"title.class"}};return{name:"Monkey",case_insensitive:!0,keywords:{keyword:["public","private","property","continue","exit","extern","new","try","catch","eachin","not","abstract","final","select","case","default","const","local","global","field","end","if","then","else","elseif","endif","while","wend","repeat","until","forever","for","to","step","next","return","module","inline","throw","import","and","or","shl","shr","mod"],built_in:["DebugLog","DebugStop","Error","Print","ACos","ACosr","ASin","ASinr","ATan","ATan2","ATan2r","ATanr","Abs","Abs","Ceil","Clamp","Clamp","Cos","Cosr","Exp","Floor","Log","Max","Max","Min","Min","Pow","Sgn","Sgn","Sin","Sinr","Sqrt","Tan","Tanr","Seed","PI","HALFPI","TWOPI"],literal:["true","false","null"]},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),n,r,{className:"variable.language",begin:/\b(self|super)\b/},{className:"meta",begin:/\s*#/,end:"$",keywords:{keyword:"if else elseif endif end then"}},{match:[/^\s*/,/strict\b/],scope:{2:"meta"}},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}},9241:e=>{e.exports=function(e){const t={keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using",literal:"true false nil",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/\}/,keywords:t},i=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r]}]},{className:"built_in",begin:"@__"+e.IDENT_RE},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];r.contains=i;const a=e.inherit(e.TITLE_MODE,{begin:n}),o="(\\(.*\\)\\s*)?\\B[-=]>",s={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(i)}]};return{name:"MoonScript",aliases:["moon"],keywords:t,illegal:/\/\*/,contains:i.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+n+"\\s*=\\s*"+o,end:"[-=]>",returnBegin:!0,contains:[a,s]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:o,end:"[-=]>",returnBegin:!0,contains:[s]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[a]},a]},{className:"name",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},9827:e=>{e.exports=function(e){return{name:"N1QL",case_insensitive:!0,contains:[{beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10",end:/;/,keywords:{keyword:["all","alter","analyze","and","any","array","as","asc","begin","between","binary","boolean","break","bucket","build","by","call","case","cast","cluster","collate","collection","commit","connect","continue","correlate","cover","create","database","dataset","datastore","declare","decrement","delete","derived","desc","describe","distinct","do","drop","each","element","else","end","every","except","exclude","execute","exists","explain","fetch","first","flatten","for","force","from","function","grant","group","gsi","having","if","ignore","ilike","in","include","increment","index","infer","inline","inner","insert","intersect","into","is","join","key","keys","keyspace","known","last","left","let","letting","like","limit","lsm","map","mapping","matched","materialized","merge","minus","namespace","nest","not","number","object","offset","on","option","or","order","outer","over","parse","partition","password","path","pool","prepare","primary","private","privilege","procedure","public","raw","realm","reduce","rename","return","returning","revoke","right","role","rollback","satisfies","schema","select","self","semi","set","show","some","start","statistics","string","system","then","to","transaction","trigger","truncate","under","union","unique","unknown","unnest","unset","update","upsert","use","user","using","validate","value","valued","values","via","view","when","where","while","with","within","work","xor"],literal:["true","false","null","missing|5"],built_in:["array_agg","array_append","array_concat","array_contains","array_count","array_distinct","array_ifnull","array_length","array_max","array_min","array_position","array_prepend","array_put","array_range","array_remove","array_repeat","array_replace","array_reverse","array_sort","array_sum","avg","count","max","min","sum","greatest","least","ifmissing","ifmissingornull","ifnull","missingif","nullif","ifinf","ifnan","ifnanorinf","naninf","neginfif","posinfif","clock_millis","clock_str","date_add_millis","date_add_str","date_diff_millis","date_diff_str","date_part_millis","date_part_str","date_trunc_millis","date_trunc_str","duration_to_str","millis","str_to_millis","millis_to_str","millis_to_utc","millis_to_zone_name","now_millis","now_str","str_to_duration","str_to_utc","str_to_zone_name","decode_json","encode_json","encoded_size","poly_length","base64","base64_encode","base64_decode","meta","uuid","abs","acos","asin","atan","atan2","ceil","cos","degrees","e","exp","ln","log","floor","pi","power","radians","random","round","sign","sin","sqrt","tan","trunc","object_length","object_names","object_pairs","object_inner_pairs","object_values","object_inner_values","object_add","object_put","object_remove","object_unwrap","regexp_contains","regexp_like","regexp_position","regexp_replace","contains","initcap","length","lower","ltrim","position","repeat","replace","rtrim","split","substr","title","trim","upper","isarray","isatom","isboolean","isnumber","isobject","isstring","type","toarray","toatom","toboolean","tonumber","toobject","tostring"]},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]}}},4683:e=>{e.exports=function(e){return{name:"Nested Text",aliases:["nt"],contains:[e.inherit(e.HASH_COMMENT_MODE,{begin:/^\s*(?=#)/,excludeBegin:!0}),{variants:[{match:[/^\s*/,/-/,/[ ]/,/.*$/]},{match:[/^\s*/,/-$/]}],className:{2:"bullet",4:"string"}},{match:[/^\s*/,/>/,/[ ]/,/.*$/],className:{2:"punctuation",4:"string"}},{match:[/^\s*(?=\S)/,/[^:]+/,/:\s*/,/$/],className:{2:"attribute",3:"punctuation"}},{match:[/^\s*(?=\S)/,/[^:]*[^: ]/,/[ ]*:/,/[ ]/,/.*$/],className:{2:"attribute",3:"punctuation",5:"string"}}]}}},7259:e=>{e.exports=function(e){const t=e.regex,n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},r={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:r.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:r}],relevance:0}],illegal:"[^\\s\\}\\{]"}}},1747:e=>{e.exports=function(e){return{name:"Nim",keywords:{keyword:["addr","and","as","asm","bind","block","break","case","cast","const","continue","converter","discard","distinct","div","do","elif","else","end","enum","except","export","finally","for","from","func","generic","guarded","if","import","in","include","interface","is","isnot","iterator","let","macro","method","mixin","mod","nil","not","notin","object","of","or","out","proc","ptr","raise","ref","return","shared","shl","shr","static","template","try","tuple","type","using","var","when","while","with","without","xor","yield"],literal:["true","false"],type:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","float","float32","float64","bool","char","string","cstring","pointer","expr","stmt","void","auto","any","range","array","openarray","varargs","seq","set","clong","culong","cchar","cschar","cshort","cint","csize","clonglong","cfloat","cdouble","clongdouble","cuchar","cushort","cuint","culonglong","cstringarray","semistatic"],built_in:["stdin","stdout","stderr","result"]},contains:[{className:"meta",begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}},320:e=>{e.exports=function(e){const t={keyword:["rec","with","let","in","inherit","assert","if","else","then"],literal:["true","false","or","and","null"],built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"]},n={className:"subst",begin:/\$\{/,end:/\}/,keywords:t},r={className:"string",contains:[{className:"char.escape",begin:/''\$/},n],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},i=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/,relevance:.2}]}];return n.contains=i,{name:"Nix",aliases:["nixos"],keywords:t,contains:i}}},6673:e=>{e.exports=function(e){return{name:"Node REPL",contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}},140:e=>{e.exports=function(e){const t=e.regex,n={className:"variable.constant",begin:t.concat(/\$/,t.either("ADMINTOOLS","APPDATA","CDBURN_AREA","CMDLINE","COMMONFILES32","COMMONFILES64","COMMONFILES","COOKIES","DESKTOP","DOCUMENTS","EXEDIR","EXEFILE","EXEPATH","FAVORITES","FONTS","HISTORY","HWNDPARENT","INSTDIR","INTERNET_CACHE","LANGUAGE","LOCALAPPDATA","MUSIC","NETHOOD","OUTDIR","PICTURES","PLUGINSDIR","PRINTHOOD","PROFILE","PROGRAMFILES32","PROGRAMFILES64","PROGRAMFILES","QUICKLAUNCH","RECENT","RESOURCES_LOCALIZED","RESOURCES","SENDTO","SMPROGRAMS","SMSTARTUP","STARTMENU","SYSDIR","TEMP","TEMPLATES","VIDEOS","WINDIR"))},r={className:"variable",begin:/\$+\{[\!\w.:-]+\}/},i={className:"variable",begin:/\$+\w[\w\.]*/,illegal:/\(\)\{\}/},a={className:"variable",begin:/\$+\([\w^.:!-]+\)/},o={className:"params",begin:t.either("ARCHIVE","FILE_ATTRIBUTE_ARCHIVE","FILE_ATTRIBUTE_NORMAL","FILE_ATTRIBUTE_OFFLINE","FILE_ATTRIBUTE_READONLY","FILE_ATTRIBUTE_SYSTEM","FILE_ATTRIBUTE_TEMPORARY","HKCR","HKCU","HKDD","HKEY_CLASSES_ROOT","HKEY_CURRENT_CONFIG","HKEY_CURRENT_USER","HKEY_DYN_DATA","HKEY_LOCAL_MACHINE","HKEY_PERFORMANCE_DATA","HKEY_USERS","HKLM","HKPD","HKU","IDABORT","IDCANCEL","IDIGNORE","IDNO","IDOK","IDRETRY","IDYES","MB_ABORTRETRYIGNORE","MB_DEFBUTTON1","MB_DEFBUTTON2","MB_DEFBUTTON3","MB_DEFBUTTON4","MB_ICONEXCLAMATION","MB_ICONINFORMATION","MB_ICONQUESTION","MB_ICONSTOP","MB_OK","MB_OKCANCEL","MB_RETRYCANCEL","MB_RIGHT","MB_RTLREADING","MB_SETFOREGROUND","MB_TOPMOST","MB_USERICON","MB_YESNO","NORMAL","OFFLINE","READONLY","SHCTX","SHELL_CONTEXT","SYSTEM|TEMPORARY")},s={className:"keyword",begin:t.concat(/!/,t.either("addincludedir","addplugindir","appendfile","assert","cd","define","delfile","echo","else","endif","error","execute","finalize","getdllversion","gettlbversion","if","ifdef","ifmacrodef","ifmacrondef","ifndef","include","insertmacro","macro","macroend","makensis","packhdr","searchparse","searchreplace","system","tempfile","undef","uninstfinalize","verbose","warning"))},l={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{begin:"`",end:"`"}],illegal:/\n/,contains:[{className:"char.escape",begin:/\$(\\[nrt]|\$)/},n,r,i,a]},c={match:[/Function/,/\s+/,t.concat(/(\.)?/,e.IDENT_RE)],scope:{1:"keyword",3:"title.function"}};return{name:"NSIS",case_insensitive:!0,keywords:{keyword:["Abort","AddBrandingImage","AddSize","AllowRootDirInstall","AllowSkipFiles","AutoCloseWindow","BGFont","BGGradient","BrandingText","BringToFront","Call","CallInstDLL","Caption","ChangeUI","CheckBitmap","ClearErrors","CompletedText","ComponentText","CopyFiles","CRCCheck","CreateDirectory","CreateFont","CreateShortCut","Delete","DeleteINISec","DeleteINIStr","DeleteRegKey","DeleteRegValue","DetailPrint","DetailsButtonText","DirText","DirVar","DirVerify","EnableWindow","EnumRegKey","EnumRegValue","Exch","Exec","ExecShell","ExecShellWait","ExecWait","ExpandEnvStrings","File","FileBufSize","FileClose","FileErrorText","FileOpen","FileRead","FileReadByte","FileReadUTF16LE","FileReadWord","FileWriteUTF16LE","FileSeek","FileWrite","FileWriteByte","FileWriteWord","FindClose","FindFirst","FindNext","FindWindow","FlushINI","GetCurInstType","GetCurrentAddress","GetDlgItem","GetDLLVersion","GetDLLVersionLocal","GetErrorLevel","GetFileTime","GetFileTimeLocal","GetFullPathName","GetFunctionAddress","GetInstDirError","GetKnownFolderPath","GetLabelAddress","GetTempFileName","GetWinVer","Goto","HideWindow","Icon","IfAbort","IfErrors","IfFileExists","IfRebootFlag","IfRtlLanguage","IfShellVarContextAll","IfSilent","InitPluginsDir","InstallButtonText","InstallColors","InstallDir","InstallDirRegKey","InstProgressFlags","InstType","InstTypeGetText","InstTypeSetText","Int64Cmp","Int64CmpU","Int64Fmt","IntCmp","IntCmpU","IntFmt","IntOp","IntPtrCmp","IntPtrCmpU","IntPtrOp","IsWindow","LangString","LicenseBkColor","LicenseData","LicenseForceSelection","LicenseLangString","LicenseText","LoadAndSetImage","LoadLanguageFile","LockWindow","LogSet","LogText","ManifestDPIAware","ManifestLongPathAware","ManifestMaxVersionTested","ManifestSupportedOS","MessageBox","MiscButtonText","Name|0","Nop","OutFile","Page","PageCallbacks","PEAddResource","PEDllCharacteristics","PERemoveResource","PESubsysVer","Pop","Push","Quit","ReadEnvStr","ReadINIStr","ReadRegDWORD","ReadRegStr","Reboot","RegDLL","Rename","RequestExecutionLevel","ReserveFile","Return","RMDir","SearchPath","SectionGetFlags","SectionGetInstTypes","SectionGetSize","SectionGetText","SectionIn","SectionSetFlags","SectionSetInstTypes","SectionSetSize","SectionSetText","SendMessage","SetAutoClose","SetBrandingImage","SetCompress","SetCompressor","SetCompressorDictSize","SetCtlColors","SetCurInstType","SetDatablockOptimize","SetDateSave","SetDetailsPrint","SetDetailsView","SetErrorLevel","SetErrors","SetFileAttributes","SetFont","SetOutPath","SetOverwrite","SetRebootFlag","SetRegView","SetShellVarContext","SetSilent","ShowInstDetails","ShowUninstDetails","ShowWindow","SilentInstall","SilentUnInstall","Sleep","SpaceTexts","StrCmp","StrCmpS","StrCpy","StrLen","SubCaption","Unicode","UninstallButtonText","UninstallCaption","UninstallIcon","UninstallSubCaption","UninstallText","UninstPage","UnRegDLL","Var","VIAddVersionKey","VIFileVersion","VIProductVersion","WindowIcon","WriteINIStr","WriteRegBin","WriteRegDWORD","WriteRegExpandStr","WriteRegMultiStr","WriteRegNone","WriteRegStr","WriteUninstaller","XPStyle"],literal:["admin","all","auto","both","bottom","bzip2","colored","components","current","custom","directory","false","force","hide","highest","ifdiff","ifnewer","instfiles","lastused","leave","left","license","listonly","lzma","nevershow","none","normal","notset","off","on","open","print","right","show","silent","silentlog","smooth","textonly","top","true","try","un.components","un.custom","un.directory","un.instfiles","un.license","uninstConfirm","user","Win10","Win7","Win8","WinVista","zlib"]},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),{match:[/Var/,/\s+/,/(?:\/GLOBAL\s+)?/,/[A-Za-z][\w.]*/],scope:{1:"keyword",3:"params",4:"variable"}},c,{beginKeywords:"Function PageEx Section SectionGroup FunctionEnd SectionEnd"},l,s,r,i,a,o,{className:"title.function",begin:/\w+::\w+/},e.NUMBER_MODE]}}},943:e=>{e.exports=function(e){const t=/[a-zA-Z@][a-zA-Z0-9_]*/,n={$pattern:t,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{"variable.language":["this","super"],$pattern:t,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+n.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:n,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}},1791:e=>{e.exports=function(e){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}},6672:e=>{e.exports=function(e){const t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",n,r,t,{className:"literal",begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"meta",keywords:{keyword:"include use"},begin:"include|use <",end:">"},r,t,{begin:"[*!#%]",relevance:0},i]}}},3028:e=>{e.exports=function(e){const t={$pattern:/\.?\w+/,keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"},n=e.COMMENT(/\{/,/\}/,{relevance:0}),r=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),i={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},a={className:"string",begin:"(#\\d+)+"},o={beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.inherit(e.TITLE_MODE,{scope:"title.function"}),{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[i,a]},n,r]};return{name:"Oxygene",case_insensitive:!0,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[n,r,e.C_LINE_COMMENT_MODE,i,a,e.NUMBER_MODE,o,{scope:"punctuation",match:/;/,relevance:0}]}}},9163:e=>{e.exports=function(e){const t=e.COMMENT(/\{/,/\}/,{contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10,contains:[t]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword",begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}},946:e=>{e.exports=function(e){const t=e.regex,n=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},a={begin:/->\{/,end:/\}/},o={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},s=[e.BACKSLASH_ESCAPE,i,o],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,r,i="\\1")=>{const a="\\1"===i?i:t.concat(i,r);return t.concat(t.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,a,/(?:\\.|[^\\\/])*?/,i,n)},d=(e,r,i)=>t.concat(t.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,i,n),u=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),a,{className:"string",contains:s,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t.either(...l,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=u,a.contains=u,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:u}}},8837:e=>{e.exports=function(e){return{name:"Packet Filter config",aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/,built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"variable",begin:/\$[\w\d#@][\w\d_]*/,relevance:0},{className:"variable",begin:/<(?!\/)/,end:/>/}]}}},6876:e=>{e.exports=function(e){const t=e.COMMENT("--","$"),n="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",r="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",i=r.trim().split(" ").map((function(e){return e.split("|")[0]})).join("|"),a="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map((function(e){return e.split("|")[0]})).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+a+")\\s*\\("},{begin:"\\.("+i+")\\b"},{begin:"\\b("+i+")\\s+PATH\\b",keywords:{keyword:"PATH",type:r.replace("PATH ","")}},{className:"type",begin:"\\b("+i+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:n,end:n,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}}},1726:e=>{e.exports=function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}},3111:e=>{e.exports=function(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a={scope:"variable",match:"\\$+"+r},o={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},s=e.inherit(e.APOS_STRING_MODE,{illegal:null}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),s,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},u=["false","null","true"],p=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],g={keyword:p,literal:(e=>{const t=[];return e.forEach((e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())})),t})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{match:[/new/,t.concat(l,"+"),t.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},f=t.concat(r,"\\b(?!\\()"),b={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),f],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},E={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},S={relevance:0,begin:/\(/,end:/\)/,keywords:g,contains:[E,a,b,e.C_BLOCK_COMMENT_MODE,c,d,h]},y={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",_(p).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),r,t.concat(l,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[S]};S.contains.push(y);const v=[E,b,e.C_BLOCK_COMMENT_MODE,c,d,h];return{case_insensitive:!1,keywords:g,contains:[{begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]},contains:["self",...v]},...v,{scope:"meta",match:i}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},a,y,b,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},h,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:g,contains:["self",a,b,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}}},9040:e=>{e.exports=function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}},6903:e=>{e.exports=function(e){return{name:"Pony",keywords:{keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},contains:[{className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{className:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},3982:e=>{e.exports=function(e){const t={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},n={begin:"`[\\s\\S]",relevance:0},r={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},i={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[n,r,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},a={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},o=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]}]}),s={className:"built_in",variants:[{begin:"(".concat("Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",")+(-)[\\w\\d]+")}]},l={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},c={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[r]}]},d={begin:/using\s/,end:/$/,returnBegin:!0,contains:[i,a,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},u={variants:[{className:"operator",begin:"(".concat("-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},p={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(t.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},m=[p,o,n,e.NUMBER_MODE,i,a,s,r,{className:"literal",begin:/\$(null|true|false)\b/},{className:"selector-tag",begin:/@\B/,relevance:0}],g={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",m,{begin:"("+["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"].join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return p.contains.unshift(g),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:t,contains:m.concat(l,c,d,u,g)}}},9200:e=>{e.exports=function(e){const t=e.regex,n=["displayHeight","displayWidth","mouseY","mouseX","mousePressed","pmouseX","pmouseY","key","keyCode","pixels","focused","frameCount","frameRate","height","width","size","createGraphics","beginDraw","createShape","loadShape","PShape","arc","ellipse","line","point","quad","rect","triangle","bezier","bezierDetail","bezierPoint","bezierTangent","curve","curveDetail","curvePoint","curveTangent","curveTightness","shape","shapeMode","beginContour","beginShape","bezierVertex","curveVertex","endContour","endShape","quadraticVertex","vertex","ellipseMode","noSmooth","rectMode","smooth","strokeCap","strokeJoin","strokeWeight","mouseClicked","mouseDragged","mouseMoved","mousePressed","mouseReleased","mouseWheel","keyPressed","keyPressedkeyReleased","keyTyped","print","println","save","saveFrame","day","hour","millis","minute","month","second","year","background","clear","colorMode","fill","noFill","noStroke","stroke","alpha","blue","brightness","color","green","hue","lerpColor","red","saturation","modelX","modelY","modelZ","screenX","screenY","screenZ","ambient","emissive","shininess","specular","add","createImage","beginCamera","camera","endCamera","frustum","ortho","perspective","printCamera","printProjection","cursor","frameRate","noCursor","exit","loop","noLoop","popStyle","pushStyle","redraw","binary","boolean","byte","char","float","hex","int","str","unbinary","unhex","join","match","matchAll","nf","nfc","nfp","nfs","split","splitTokens","trim","append","arrayCopy","concat","expand","reverse","shorten","sort","splice","subset","box","sphere","sphereDetail","createInput","createReader","loadBytes","loadJSONArray","loadJSONObject","loadStrings","loadTable","loadXML","open","parseXML","saveTable","selectFolder","selectInput","beginRaw","beginRecord","createOutput","createWriter","endRaw","endRecord","PrintWritersaveBytes","saveJSONArray","saveJSONObject","saveStream","saveStrings","saveXML","selectOutput","popMatrix","printMatrix","pushMatrix","resetMatrix","rotate","rotateX","rotateY","rotateZ","scale","shearX","shearY","translate","ambientLight","directionalLight","lightFalloff","lights","lightSpecular","noLights","normal","pointLight","spotLight","image","imageMode","loadImage","noTint","requestImage","tint","texture","textureMode","textureWrap","blend","copy","filter","get","loadPixels","set","updatePixels","blendMode","loadShader","PShaderresetShader","shader","createFont","loadFont","text","textFont","textAlign","textLeading","textMode","textSize","textWidth","textAscent","textDescent","abs","ceil","constrain","dist","exp","floor","lerp","log","mag","map","max","min","norm","pow","round","sq","sqrt","acos","asin","atan","atan2","cos","degrees","radians","sin","tan","noise","noiseDetail","noiseSeed","random","randomGaussian","randomSeed"],r=e.IDENT_RE,i={variants:[{match:t.concat(t.either(...n),t.lookahead(/\s*\(/)),className:"built_in"},{relevance:0,match:t.concat(/\b(?!for|if|while)/,r,t.lookahead(/\s*\(/)),className:"title.function"}]},a={match:[/new\s+/,r],className:{1:"keyword",2:"class.title"}},o={relevance:0,match:[/\./,r],className:{2:"property"}},s={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,r]},{match:[/class/,/\s+/,r]}],className:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}};return{name:"Processing",aliases:["pde"],keywords:{keyword:["abstract","assert","break","case","catch","const","continue","default","else","enum","final","finally","for","if","import","instanceof","long","native","new","package","private","private","protected","protected","public","public","return","static","strictfp","switch","synchronized","throw","throws","transient","try","void","volatile","while"],literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false",title:"setup draw",variable:"super this",built_in:[...n,"BufferedReader","PVector","PFont","PImage","PGraphics","HashMap","String","Array","FloatDict","ArrayList","FloatList","IntDict","IntList","JSONArray","JSONObject","Object","StringDict","StringList","Table","TableRow","XML"],type:["boolean","byte","char","color","double","float","int","long","short"]},contains:[s,a,i,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},5206:e=>{e.exports=function(e){return{name:"Python profiler",contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}}},6168:e=>{e.exports=function(e){const t={begin:/\(/,end:/\)/,relevance:0},n={begin:/\[/,end:/\]/},r={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},a=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},t,{begin:/:-/},n,r,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,{className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/},e.C_NUMBER_MODE];return t.contains=a,n.contains=a,{name:"Prolog",contains:a.concat([{begin:/\.$/}])}}},7646:e=>{e.exports=function(e){const t="[ \\t\\f]*",n=t+"[:=]"+t,r="[ \\t\\f]+",i="([^\\\\:= \\t\\f\\n]|\\\\.)+",a={end:"("+n+"|"+r+")",relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",disableAutodetect:!0,case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:i+n},{begin:i+r}],contains:[{className:"attr",begin:i,endsParent:!0}],starts:a},{className:"attr",begin:i+t+"$"}]}}},7300:e=>{e.exports=function(e){const t={match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword",2:"title.class"}};return{name:"Protocol Buffers",aliases:["proto"],keywords:{keyword:["package","import","option","optional","required","repeated","group","oneof"],type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}},8545:e=>{e.exports=function(e){const t=e.COMMENT("#","$"),n="([A-Za-z_]|::)(\\w|::)*",r=e.inherit(e.TITLE_MODE,{begin:n}),i={className:"variable",begin:"\\$"+n},a={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{name:"Puppet",aliases:["pp"],contains:[t,i,a,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[r,t]},{beginKeywords:"define",end:/\{/,contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"keyword",begin:e.IDENT_RE,relevance:.2},{begin:/\{/,end:/\}/,keywords:{keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},relevance:0,contains:[a,t,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>",contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},i]}],relevance:0}]}}},7995:e=>{e.exports=function(e){return{name:"PureBASIC",aliases:["pb","pbi"],keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]}}},283:e=>{e.exports=function(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}},1117:e=>{e.exports=function(e){const t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},a={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,u=`\\b|${r.join("|")}`,p={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\b(${c})[jJ](?=${u})`}]},m={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},g={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",a,p,l,e.HASH_COMMENT_MODE]}]};return o.contains=[l,p,a],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,p,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,m,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[g]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[p,g,l]}]}}},9384:e=>{e.exports=function(e){return{name:"Q",aliases:["k","kdb"],keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/,keyword:"do while select delete by update from",literal:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},9797:e=>{e.exports=function(e){const t="[a-zA-Z_][a-zA-Z0-9\\._]*",n={className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:t,returnEnd:!1}},r={begin:t+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:t,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},i={begin:e.regex.concat(t,/\s*\{/),end:/\{/,returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:t})]};return{name:"QML",aliases:["qt"],case_insensitive:!1,keywords:{keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4d Promise"},contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:"\\."+e.IDENT_RE,relevance:0},n,r,i],illegal:/#/}}},8129:e=>{e.exports=function(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[a,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}},6446:e=>{e.exports=function(e){return{name:"ReasonML",aliases:["re"],keywords:{$pattern:/[a-z_]\w*!?/,keyword:["and","as","asr","assert","begin","class","constraint","do","done","downto","else","end","esfun","exception","external","for","fun","function","functor","if","in","include","inherit","initializer","land","lazy","let","lor","lsl","lsr","lxor","mod","module","mutable","new","nonrec","object","of","open","or","pri","pub","rec","sig","struct","switch","then","to","try","type","val","virtual","when","while","with"],built_in:["array","bool","bytes","char","exn|5","float","int","int32","int64","list","lazy_t|5","nativeint|5","ref","string","unit"],literal:["true","false"]},illegal:/(:-|:=|\$\{|\+=)/,contains:[{scope:"literal",match:/\[(\|\|)?\]|\(\)/,relevance:0},e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{illegal:/^(#,\/\/)/}),{scope:"symbol",match:/\'[A-Za-z_](?!\')[\w\']*/},{scope:"type",match:/`[A-Z][\w\']*/},{scope:"type",match:/\b[A-Z][\w\']*/,relevance:0},{match:/[a-z_]\w*\'[\w\']*/,relevance:0},{scope:"operator",match:/\s+(\|\||\+[\+\.]?|\*[\*\/\.]?|\/[\.]?|\.\.\.|\|>|&&|===?)\s+/,relevance:0},e.inherit(e.APOS_STRING_MODE,{scope:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{scope:"number",variants:[{match:/\b0[xX][a-fA-F0-9_]+[Lln]?/},{match:/\b0[oO][0-7_]+[Lln]?/},{match:/\b0[bB][01_]+[Lln]?/},{match:/\b[0-9][0-9_]*([Lln]|(\.[0-9_]*)?([eE][-+]?[0-9_]+)?)/}],relevance:0}]}}},6238:e=>{e.exports=function(e){return{name:"RenderMan RIB",keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"{e.exports=function(e){const t="[a-zA-Z-_][^\\n{]+\\{",n={className:"attribute",begin:/[a-zA-Z-_]+/,end:/\s*:/,excludeEnd:!0,starts:{end:";",relevance:0,contains:[{className:"variable",begin:/\.[a-zA-Z-_]+/},{className:"keyword",begin:/\(optional\)/}]}};return{name:"Roboconf",aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+t,end:/\}/,keywords:"facet",contains:[n,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+t,end:/\}/,keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",n,e.HASH_COMMENT_MODE]},{begin:"^"+t,end:/\}/,contains:[n,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}},5980:e=>{e.exports=function(e){const t="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",r={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},a={className:"string",begin:/'/,end:/'/};return{name:"MikroTik RouterOS script",aliases:["mikrotik"],case_insensitive:!0,keywords:{$pattern:/:?[\w-]+/,literal:n,keyword:t+" :"+t.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :")},contains:[{variants:[{begin:/\/\*/,end:/\*\//},{begin:/\/\//,end:/$/},{begin:/<\//,end:/>/}],illegal:/./},e.COMMENT("^#","$"),i,a,r,{begin:/[\w-]+=([^\s{}[\]()>]+)/,relevance:0,returnBegin:!0,contains:[{className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[i,a,r,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b"},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/},{begin:"\\b("+"add remove enable disable set get print export edit find run debug error info warning".split(" ").join("|")+")([\\s[(\\]|])",returnBegin:!0,contains:[{className:"built_in",begin:/\w+/}]},{className:"built_in",variants:[{begin:"(\\.\\./|/|\\s)(("+"traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw".split(" ").join("|")+");?\\s)+"},{begin:/\.\./,relevance:0}]}]}}},6650:e=>{e.exports=function(e){const t={match:[/(surface|displacement|light|volume|imager)/,/\s+/,e.IDENT_RE],scope:{1:"keyword",3:"title.class"}};return{name:"RenderMan RSL",keywords:{keyword:["while","for","if","do","return","else","break","extern","continue"],built_in:["abs","acos","ambient","area","asin","atan","atmosphere","attribute","calculatenormal","ceil","cellnoise","clamp","comp","concat","cos","degrees","depth","Deriv","diffuse","distance","Du","Dv","environment","exp","faceforward","filterstep","floor","format","fresnel","incident","length","lightsource","log","match","max","min","mod","noise","normalize","ntransform","opposite","option","phong","pnoise","pow","printf","ptlined","radians","random","reflect","refract","renderinfo","round","setcomp","setxcomp","setycomp","setzcomp","shadow","sign","sin","smoothstep","specular","specularbrdf","spline","sqrt","step","tan","texture","textureinfo","trace","transform","vtransform","xcomp","ycomp","zcomp"],type:["matrix","float","color","point","normal","vector"]},illegal:"{e.exports=function(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[o]}),e.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:a},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},u="[0-9](_?[0-9])*",p={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${u}))?([eE][+-]?(${u})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},m={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},g=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:a},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:n}],relevance:0},p,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,l),relevance:0}].concat(s,l);c.contains=g,m.contains=g;const _=[{begin:/^\s*=>/,starts:{end:"$",contains:g}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:a,contains:g}}];return l.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(_).concat(l).concat(g)}}},5690:e=>{e.exports=function(e){return{name:"Oracle Rules Language",keywords:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"literal",variants:[{begin:"#\\s+",relevance:0},{begin:"#[a-zA-Z .]+"}]}]}}},5409:e=>{e.exports=function(e){const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],a=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:a,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},n]}}},7754:e=>{e.exports=function(e){const t=e.regex;return{name:"SAS",case_insensitive:!0,keywords:{literal:["null","missing","_all_","_automatic_","_character_","_infile_","_n_","_name_","_null_","_numeric_","_user_","_webout_"],keyword:["do","if","then","else","end","until","while","abort","array","attrib","by","call","cards","cards4","catname","continue","datalines","datalines4","delete","delim","delimiter","display","dm","drop","endsas","error","file","filename","footnote","format","goto","in","infile","informat","input","keep","label","leave","length","libname","link","list","lostcard","merge","missing","modify","options","output","out","page","put","redirect","remove","rename","replace","retain","return","select","set","skip","startsas","stop","title","update","waitsas","where","window","x|0","systask","add","and","alter","as","cascade","check","create","delete","describe","distinct","drop","foreign","from","group","having","index","insert","into","in","key","like","message","modify","msgtype","not","null","on","or","order","primary","references","reset","restrict","select","set","table","unique","update","validate","view","where"]},contains:[{className:"keyword",begin:/^\s*(proc [\w\d_]+|data|run|quit)[\s;]/},{className:"variable",begin:/&[a-zA-Z_&][a-zA-Z0-9_]*\.?/},{begin:[/^\s*/,/datalines;|cards;/,/(?:.*\n)+/,/^\s*;\s*$/],className:{2:"keyword",3:"string"}},{begin:[/%mend|%macro/,/\s+/,/[a-zA-Z_&][a-zA-Z0-9_]*/],className:{1:"built_in",3:"title.function"}},{className:"built_in",begin:"%"+t.either("bquote","nrbquote","cmpres","qcmpres","compstor","datatyp","display","do","else","end","eval","global","goto","if","index","input","keydef","label","left","length","let","local","lowcase","macro","mend","nrbquote","nrquote","nrstr","put","qcmpres","qleft","qlowcase","qscan","qsubstr","qsysfunc","qtrim","quote","qupcase","scan","str","substr","superq","syscall","sysevalf","sysexec","sysfunc","sysget","syslput","sysprod","sysrc","sysrput","then","to","trim","unquote","until","upcase","verify","while","window")},{className:"title.function",begin:/%[a-zA-Z_][a-zA-Z_0-9]*/},{className:"meta",begin:t.either("abs","addr","airy","arcos","arsin","atan","attrc","attrn","band","betainv","blshift","bnot","bor","brshift","bxor","byte","cdf","ceil","cexist","cinv","close","cnonct","collate","compbl","compound","compress","cos","cosh","css","curobs","cv","daccdb","daccdbsl","daccsl","daccsyd","dacctab","dairy","date","datejul","datepart","datetime","day","dclose","depdb","depdbsl","depdbsl","depsl","depsl","depsyd","depsyd","deptab","deptab","dequote","dhms","dif","digamma","dim","dinfo","dnum","dopen","doptname","doptnum","dread","dropnote","dsname","erf","erfc","exist","exp","fappend","fclose","fcol","fdelete","fetch","fetchobs","fexist","fget","fileexist","filename","fileref","finfo","finv","fipname","fipnamel","fipstate","floor","fnonct","fnote","fopen","foptname","foptnum","fpoint","fpos","fput","fread","frewind","frlen","fsep","fuzz","fwrite","gaminv","gamma","getoption","getvarc","getvarn","hbound","hms","hosthelp","hour","ibessel","index","indexc","indexw","input","inputc","inputn","int","intck","intnx","intrr","irr","jbessel","juldate","kurtosis","lag","lbound","left","length","lgamma","libname","libref","log","log10","log2","logpdf","logpmf","logsdf","lowcase","max","mdy","mean","min","minute","mod","month","mopen","mort","n","netpv","nmiss","normal","note","npv","open","ordinal","pathname","pdf","peek","peekc","pmf","point","poisson","poke","probbeta","probbnml","probchi","probf","probgam","probhypr","probit","probnegb","probnorm","probt","put","putc","putn","qtr","quote","ranbin","rancau","ranexp","rangam","range","rank","rannor","ranpoi","rantbl","rantri","ranuni","repeat","resolve","reverse","rewind","right","round","saving","scan","sdf","second","sign","sin","sinh","skewness","soundex","spedis","sqrt","std","stderr","stfips","stname","stnamel","substr","sum","symget","sysget","sysmsg","sysprod","sysrc","system","tan","tanh","time","timepart","tinv","tnonct","today","translate","tranwrd","trigamma","trim","trimn","trunc","uniform","upcase","uss","var","varfmt","varinfmt","varlabel","varlen","varname","varnum","varray","varrayx","vartype","verify","vformat","vformatd","vformatdx","vformatn","vformatnx","vformatw","vformatwx","vformatx","vinarray","vinarrayx","vinformat","vinformatd","vinformatdx","vinformatn","vinformatnx","vinformatw","vinformatwx","vinformatx","vlabel","vlabelx","vlength","vlengthx","vname","vnamex","vtype","vtypex","weekday","year","yyq","zipfips","zipname","zipnamel","zipstate")+"(?=\\()"},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.COMMENT("\\*",";"),e.C_BLOCK_COMMENT_MODE]}}},3449:e=>{e.exports=function(e){const t=e.regex,n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},r={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},i={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},a={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},o={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},a]},s={className:"function",beginKeywords:"def",end:t.lookahead(/[:={\[(\n;]/),contains:[a]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent"},contains:[{begin:["//>",/\s+/,/using/,/\s+/,/\S+/],beginScope:{1:"comment",3:"keyword",5:"type"},end:/$/,contains:[{className:"string",begin:/\S+/}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,i,s,o,e.C_NUMBER_MODE,{begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},{begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"}},{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"},{begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}},{className:"meta",begin:"@[A-Za-z]+"}]}}},6244:e=>{e.exports=function(e){const t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n="(-|\\+)?\\d+([./]\\d+)?",r={$pattern:t,built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},i={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},a={className:"number",variants:[{begin:n,relevance:0},{begin:n+"[+\\-]"+n+"i",relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},o=e.QUOTE_STRING_MODE,s=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],l={begin:t,relevance:0},c={className:"symbol",begin:"'"+t},d={endsWithParent:!0,relevance:0},u={variants:[{begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)",contains:["self",i,o,a,l,c]}]},p={className:"name",relevance:0,begin:t,keywords:r},m={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[p,{endsParent:!0,variants:[{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/}],contains:[l]}]},p,d]};return d.contains=[i,a,o,l,c,u,m].concat(s),{name:"Scheme",aliases:["scm"],illegal:/\S/,contains:[e.SHEBANG(),a,o,c,u,m].concat(s)}}},395:e=>{e.exports=function(e){const t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/,keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while",literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[",end:"\\][\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}},1611:e=>{const t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],a=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();e.exports=function(e){const o=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),s=i,l=r,c="@[a-z-]+",d={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+t.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+s.join("|")+")"},d,{begin:/\(/,end:/\)/,contains:[o.CSS_NUMBER_MODE]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+a.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[o.BLOCK_COMMENT,d,o.HEXCOLOR,o.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o.IMPORTANT,o.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:c,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:n.join(" ")},contains:[{begin:c,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o.HEXCOLOR,o.CSS_NUMBER_MODE]},o.FUNCTION_DISPATCH]}}},8813:e=>{e.exports=function(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}},4119:e=>{e.exports=function(e){const t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"];return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{begin:"\\s("+["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"].join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"].join("|")+")((-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}}},78:e=>{e.exports=function(e){const t="[a-z][a-zA-Z0-9_]*",n={className:"string",begin:"\\$.{1}"},r={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:["self","super","nil","true","false","thisContext"],contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:t+":",relevance:0},e.C_NUMBER_MODE,r,n,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,r]}]}}},6959:e=>{e.exports=function(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}},6325:e=>{e.exports=function(e){const t={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},n={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:"define undef ifdef ifndef else endif include if",contains:[{begin:/\\\n/,relevance:0},e.inherit(t,{className:"string"}),{begin:/<[^\n>]*>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"SQF",case_insensitive:!0,keywords:{keyword:["break","breakWith","breakOut","breakTo","case","catch","continue","continueWith","default","do","else","exit","exitWith","for","forEach","from","if","local","private","switch","step","then","throw","to","try","waitUntil","while","with"],built_in:["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysEx","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","activeTitleEffectParams","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addUserActionEventHandler","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiaryRecords","allDiarySubjects","allDisplays","allEnv3DSoundSources","allGroups","allLODs","allMapMarkers","allMines","allMissionObjects","allObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowedService","allowFileOperations","allowFleeing","allowGetIn","allowService","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allUsers","allVariables","ambientTemperature","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSource","animationNames","animationPhase","animationSourcePhase","animationState","apertureParams","append","apply","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGroup","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignedVehicles","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","awake","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","behaviour","benchmark","bezierInterpolation","binocular","binocularItems","binocularMagazine","boundingBox","boundingBoxReal","boundingCenter","brakesDisabled","briefingName","buildingExit","buildingPos","buldozer_EnableRoadDiag","buldozer_IsEnabledRoadDiag","buldozer_LoadNewRoads","buldozer_reloadOperMap","buttonAction","buttonSetAction","cadetMode","calculatePath","calculatePlayerVisibilityByFriendly","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canDeployWeapon","canFire","canMove","canSlingLoad","canStand","canSuspend","canTriggerDynamicSimulation","canUnloadInCombat","canVehicleCargo","captive","captiveNum","cbChecked","cbSetChecked","ceil","channelEnabled","cheatsEnabled","checkAIFeature","checkVisibility","className","clear3DENAttribute","clear3DENInventory","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearForcesRTD","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","clientOwner","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","collect3DENHistory","collectiveRTD","collisionDisabledWith","combatBehaviour","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandSuppressiveFire","commandTarget","commandWatch","comment","commitOverlay","compatibleItems","compatibleMagazines","compile","compileFinal","compileScript","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configOf","configProperties","configSourceAddonList","configSourceMod","configSourceModList","confirmSensorTarget","connectTerminalToUAV","connectToServer","controlsGroupCtrl","conversationDisabled","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","create3DENComposition","create3DENEntity","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createHashMap","createHashMapFromArray","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createMPCampaignDisplay","createSimpleObject","createSimpleTask","createSite","createSoundSource","createTask","createTeam","createTrigger","createUnit","createVehicle","createVehicleCrew","createVehicleLocal","crew","ctAddHeader","ctAddRow","ctClear","ctCurSel","ctData","ctFindHeaderRows","ctFindRowHeader","ctHeaderControls","ctHeaderCount","ctRemoveHeaders","ctRemoveRows","ctrlActivate","ctrlAddEventHandler","ctrlAngle","ctrlAnimateModel","ctrlAnimationPhaseModel","ctrlAt","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlBackgroundColor","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlFontHeight","ctrlForegroundColor","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapPosition","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapSetPosition","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlMousePosition","ctrlParent","ctrlParentControlsGroup","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlScrollValues","ctrlSetActiveColor","ctrlSetAngle","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetDisabledColor","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontHeightSecondary","ctrlSetFontP","ctrlSetFontPB","ctrlSetFontSecondary","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetMousePosition","ctrlSetPixelPrecision","ctrlSetPosition","ctrlSetPositionH","ctrlSetPositionW","ctrlSetPositionX","ctrlSetPositionY","ctrlSetScale","ctrlSetScrollValues","ctrlSetShadow","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTextColorSecondary","ctrlSetTextSecondary","ctrlSetTextSelection","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlSetTooltipMaxWidth","ctrlSetURL","ctrlSetURLOverlayMode","ctrlShadow","ctrlShow","ctrlShown","ctrlStyle","ctrlText","ctrlTextColor","ctrlTextHeight","ctrlTextSecondary","ctrlTextSelection","ctrlTextWidth","ctrlTooltip","ctrlType","ctrlURL","ctrlURLOverlayMode","ctrlVisible","ctRowControls","ctRowCount","ctSetCurSel","ctSetData","ctSetHeaderTemplate","ctSetRowTemplate","ctSetValue","ctValue","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","current3DENOperation","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentPilot","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorObject","cursorTarget","customChat","customRadio","customWaypointPosition","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","dayTime","deActivateKey","debriefingText","debugFSM","debugLog","decayGraphValues","deg","delete3DENEntities","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteGroupWhenEmpty","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag_activeMissionFSMs","diag_activeScripts","diag_activeSQFScripts","diag_activeSQSScripts","diag_allMissionEventHandlers","diag_captureFrame","diag_captureFrameToFile","diag_captureSlowFrame","diag_codePerformance","diag_deltaTime","diag_drawmode","diag_dumpCalltraceToLog","diag_dumpScriptAssembly","diag_dumpTerrainSynth","diag_dynamicSimulationEnd","diag_enable","diag_enabled","diag_exportConfig","diag_exportTerrainSVG","diag_fps","diag_fpsmin","diag_frameno","diag_getTerrainSegmentOffset","diag_lightNewLoad","diag_list","diag_localized","diag_log","diag_logSlowFrame","diag_mergeConfigFile","diag_recordTurretLimits","diag_resetFSM","diag_resetshapes","diag_scope","diag_setLightNew","diag_stacktrace","diag_tickTime","diag_toggle","dialog","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","difficultyOption","direction","directionStabilizationEnabled","directSay","disableAI","disableBrakes","disableCollisionWith","disableConversation","disableDebriefingStats","disableMapIndicators","disableNVGEquipment","disableRemoteSensors","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayChild","displayCtrl","displayParent","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","displayUniqueName","displayUpdate","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do3DENAction","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doSuppressiveFire","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLaser","drawLine","drawLine3D","drawLink","drawLocation","drawPolygon","drawRectangle","drawTriangle","driver","drop","dynamicSimulationDistance","dynamicSimulationDistanceCoef","dynamicSimulationEnabled","dynamicSimulationSystemEnabled","echo","edit3DENMissionAttributes","editObject","editorSetEventHandler","effectiveCommander","elevatePeriscope","emptyPositions","enableAI","enableAIFeature","enableAimPrecision","enableAttack","enableAudioFeature","enableAutoStartUpRTD","enableAutoTrimRTD","enableCamShake","enableCaustics","enableChannel","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableDirectionStabilization","enableDynamicSimulation","enableDynamicSimulationSystem","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableInfoPanelComponent","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableStamina","enableStressDamage","enableTeamSwitch","enableTraffic","enableUAVConnectability","enableUAVWaypoints","enableVehicleCargo","enableVehicleSensor","enableWeaponDisassembly","endLoadingScreen","endMission","engineOn","enginesIsOnRTD","enginesPowerRTD","enginesRpmRTD","enginesTorqueRTD","entities","environmentEnabled","environmentVolume","equipmentDisabled","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exp","expectedDestination","exportJIPMessages","eyeDirection","eyePos","face","faction","fadeEnvironment","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","fileExists","fillWeaponsFromPool","find","findAny","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findIf","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagAnimationPhase","flagOwner","flagSide","flagTexture","flatten","fleeing","floor","flyInHeight","flyInHeightASL","focusedCtrl","fog","fogForecast","fogParams","forceAddUniform","forceAtPositionRTD","forceCadetDifficulty","forcedMap","forceEnd","forceFlagTexture","forceFollowRoad","forceGeneratorRTD","forceMap","forceRespawn","forceSpeed","forceUnicode","forceWalk","forceWeaponFire","forceWeatherChange","forEachMember","forEachMemberAgent","forEachMemberTeam","forgetTarget","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeExtension","freeLook","fromEditor","fuel","fullCrew","gearIDCAmmoCount","gearSlotAmmoCount","gearSlotData","gestureState","get","get3DENActionState","get3DENAttribute","get3DENCamera","get3DENConnections","get3DENEntity","get3DENEntityID","get3DENGrid","get3DENIconsVisible","get3DENLayerEntities","get3DENLinesVisible","get3DENMissionAttribute","get3DENMouseOver","get3DENSelected","getAimingCoef","getAllEnv3DSoundControllers","getAllEnvSoundControllers","getAllHitPointsDamage","getAllOwnedMines","getAllPylonsInfo","getAllSoundControllers","getAllUnitTraits","getAmmoCargo","getAnimAimPrecision","getAnimSpeedCoef","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssetDLCInfo","getAssignedCuratorLogic","getAssignedCuratorUnit","getAttackTarget","getAudioOptionVolumes","getBackpackCargo","getBleedingRemaining","getBurningValue","getCalculatePlayerVisibilityByFriendly","getCameraViewDirection","getCargoIndex","getCenterOfMass","getClientState","getClientStateNumber","getCompatiblePylonMagazines","getConnectedUAV","getConnectedUAVUnit","getContainerMaxLoad","getCorpse","getCruiseControl","getCursorObjectParams","getCustomAimCoef","getCustomSoundController","getCustomSoundControllerCount","getDammage","getDebriefingText","getDescription","getDir","getDirVisual","getDiverState","getDLCAssetsUsage","getDLCAssetsUsageByName","getDLCs","getDLCUsageTime","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getEngineTargetRPMRTD","getEnv3DSoundController","getEnvSoundController","getEventHandlerInfo","getFatigue","getFieldManualStartPage","getForcedFlagTexture","getForcedSpeed","getFriend","getFSMVariable","getFuelCargo","getGraphValues","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getLighting","getLightingAt","getLoadedModsInfo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getMissionConfig","getMissionConfigValue","getMissionDLCs","getMissionLayerEntities","getMissionLayers","getMissionPath","getModelInfo","getMousePosition","getMusicPlayedTime","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectFOV","getObjectID","getObjectMaterials","getObjectProxy","getObjectScale","getObjectTextures","getObjectType","getObjectViewDistance","getOpticsMode","getOrDefault","getOrDefaultCall","getOxygenRemaining","getPersonUsedDLCs","getPilotCameraDirection","getPilotCameraPosition","getPilotCameraRotation","getPilotCameraTarget","getPiPViewDistance","getPlateNumber","getPlayerChannel","getPlayerID","getPlayerScores","getPlayerUID","getPlayerVoNVolume","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getPosWorldVisual","getPylonMagazines","getRelDir","getRelPos","getRemoteSensorsDisabled","getRepairCargo","getResolution","getRoadInfo","getRotorBrakeRTD","getSensorTargets","getSensorThreats","getShadowDistance","getShotParents","getSlingLoad","getSoundController","getSoundControllerResult","getSpeed","getStamina","getStatValue","getSteamFriendsServers","getSubtitleOptions","getSuppression","getTerrainGrid","getTerrainHeight","getTerrainHeightASL","getTerrainInfo","getText","getTextRaw","getTextureInfo","getTextWidth","getTiParameters","getTotalDLCUsageTime","getTrimOffsetRTD","getTurretLimits","getTurretOpticsMode","getUnitFreefallInfo","getUnitLoadout","getUnitTrait","getUnloadInCombat","getUserInfo","getUserMFDText","getUserMFDValue","getVariable","getVehicleCargo","getVehicleTiPars","getWeaponCargo","getWeaponSway","getWingsOrientationRTD","getWingsPositionRTD","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupID","groupOwner","groupRadio","groups","groupSelectedUnits","groupSelectUnit","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hashValue","hasInterface","hasPilotCamera","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBody","hideObject","hideObjectGlobal","hideSelection","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","image","importAllGroups","importance","in","inArea","inAreaArray","incapacitatedState","inflame","inflamed","infoPanel","infoPanelComponentEnabled","infoPanelComponents","infoPanels","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inPolygon","inputAction","inputController","inputMouse","inRangeOfArtillery","insert","insertEditorObject","intersect","is3DEN","is3DENMultiplayer","is3DENPreview","isAbleToBreathe","isActionMenuVisible","isAgent","isAimPrecisionEnabled","isAllowedCrewInImmobile","isArray","isAutoHoverOn","isAutonomous","isAutoStartUpEnabledRTD","isAutotest","isAutoTrimOnRTD","isAwake","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDamageAllowed","isDedicated","isDLCAvailable","isEngineOn","isEqualRef","isEqualTo","isEqualType","isEqualTypeAll","isEqualTypeAny","isEqualTypeArray","isEqualTypeParams","isFilePatchingEnabled","isFinal","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isGameFocused","isGamePaused","isGroupDeletedWhenEmpty","isHidden","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLaserOn","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMissionProfileNamespaceLoaded","isMultiplayer","isMultiplayerSolo","isNil","isNotEqualRef","isNotEqualTo","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPiPEnabled","isPlayer","isRealTime","isRemoteExecuted","isRemoteExecutedJIP","isSaving","isSensorTargetConfirmed","isServer","isShowing3DIcons","isSimpleObject","isSprintAllowed","isStaminaEnabled","isSteamMission","isSteamOverlayEnabled","isStreamFriendlyUIEnabled","isStressDamageEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUIContext","isUniformAllowed","isVehicleCargo","isVehicleRadarOn","isVehicleSensorEnabled","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","keys","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbColorRight","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbPictureRight","lbSelection","lbSetColor","lbSetColorRight","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetPictureRight","lbSetPictureRightColor","lbSetPictureRightColorDisabled","lbSetPictureRightColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetText","lbSetTextRight","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortBy","lbSortByValue","lbText","lbTextRight","lbTooltip","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaderboardRequestRowsFriends","leaderboardRequestRowsGlobal","leaderboardRequestRowsGlobalAroundUser","leaderboardsRequestUploadScore","leaderboardsRequestUploadScoreKeepBest","leaderboardState","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","listRemoteTargets","listVehicleSensors","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbColorRight","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbPictureRight","lnbSetColor","lnbSetColorRight","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetPictureColor","lnbSetPictureColorRight","lnbSetPictureColorSelected","lnbSetPictureColorSelectedRight","lnbSetPictureRight","lnbSetText","lnbSetTextRight","lnbSetTooltip","lnbSetValue","lnbSize","lnbSort","lnbSortBy","lnbSortByValue","lnbText","lnbTextRight","lnbValue","load","loadAbs","loadBackpack","loadConfig","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","localize","localNamespace","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCameraTo","lockedCargo","lockedDriver","lockedInventory","lockedTurret","lockIdentity","lockInventory","lockTurret","lockWp","log","logEntities","logNetwork","logNetworkTerminate","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerChannel","markerColor","markerDir","markerPolyline","markerPos","markerShadow","markerShape","markerSize","markerText","markerType","matrixMultiply","matrixTranspose","max","maxLoad","members","menuAction","menuAdd","menuChecked","menuClear","menuCollapse","menuData","menuDelete","menuEnable","menuEnabled","menuExpand","menuHover","menuPicture","menuSetAction","menuSetCheck","menuSetData","menuSetPicture","menuSetShortcut","menuSetText","menuSetURL","menuSetValue","menuShortcut","menuShortcutText","menuSize","menuSort","menuText","menuURL","menuValue","merge","min","mineActive","mineDetectedBy","missileTarget","missileTargetPos","missionConfigFile","missionDifficulty","missionEnd","missionName","missionNameSource","missionNamespace","missionProfileNamespace","missionStart","missionVersion","mod","modelToWorld","modelToWorldVisual","modelToWorldVisualWorld","modelToWorldWorld","modParams","moonIntensity","moonPhase","morale","move","move3DENCamera","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","namedProperties","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestMines","nearestObject","nearestObjects","nearestTerrainObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","needService","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nMenuItems","not","numberOfEnginesRTD","numberToDate","objectCurators","objectFromNetId","objectParent","objStatus","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openDLCPage","openGPS","openMap","openSteamApp","openYoutubeVideo","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseSimpleArray","parseText","parsingNamespace","particlesQuality","periscopeElevation","pickWeaponPool","pitch","pixelGrid","pixelGridBase","pixelGridNoUIScale","pixelH","pixelW","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","playSoundUI","pose","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectEnabled","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","processDiaryLink","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","pushBackUnique","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelInfo","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioEnabled","radioVolume","rain","rainbow","rainParams","random","rank","rankId","rating","rectangular","regexFind","regexMatch","regexReplace","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","remoteExecutedOwner","remove3DENConnection","remove3DENEventHandler","remove3DENLayer","removeAction","removeAll3DENEventHandlers","removeAllActions","removeAllAssignedItems","removeAllBinocularItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllOwnedMines","removeAllPrimaryWeaponItems","removeAllSecondaryWeaponItems","removeAllUserActionEventHandlers","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeBinocularItem","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDiaryRecord","removeDiarySubject","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removeOwnedMine","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeUserActionEventHandler","removeVest","removeWeapon","removeWeaponAttachmentCargo","removeWeaponCargo","removeWeaponGlobal","removeWeaponTurret","reportRemoteTarget","requiredVersion","resetCamShake","resetSubgroupDirection","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadAt","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeDestroy","ropeDetach","ropeEndPosition","ropeLength","ropes","ropesAttachedTo","ropeSegments","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","save3DENInventory","saveGame","saveIdentity","saveJoysticks","saveMissionProfileNamespace","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenshot","screenToWorld","scriptDone","scriptName","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionNames","selectionPosition","selectionVectorDirAndUp","selectLeader","selectMax","selectMin","selectNoPlayer","selectPlayer","selectRandom","selectRandomWeighted","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","sentencesEnabled","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverNamespace","serverTime","set","set3DENAttribute","set3DENAttributes","set3DENGrid","set3DENIconsVisible","set3DENLayer","set3DENLinesVisible","set3DENLogicType","set3DENMissionAttribute","set3DENMissionAttributes","set3DENModelsVisible","set3DENObjectType","set3DENSelected","setAccTime","setActualCollectiveRTD","setAirplaneThrottle","setAirportSide","setAmmo","setAmmoCargo","setAmmoOnPylon","setAnimSpeedCoef","setAperture","setApertureNew","setArmoryPoints","setAttributes","setAutonomous","setBehaviour","setBehaviourStrong","setBleedingRemaining","setBrakesRTD","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTi","setCaptive","setCenterOfMass","setCollisionLight","setCombatBehaviour","setCombatMode","setCompassOscillation","setConvoySeparation","setCruiseControl","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setCustomAimCoef","SetCustomMissionData","setCustomSoundController","setCustomWeightRTD","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDiaryRecordText","setDiarySubjectPicture","setDir","setDirection","setDrawIcon","setDriveOnPath","setDropInterval","setDynamicSimulationDistance","setDynamicSimulationDistanceCoef","setEditorMode","setEditorObjectScope","setEffectCondition","setEffectiveCommander","setEngineRpmRTD","setFace","setFaceanimation","setFatigue","setFeatureType","setFlagAnimationPhase","setFlagOwner","setFlagSide","setFlagTexture","setFog","setForceGeneratorRTD","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupid","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setHumidity","setIdentity","setImportance","setInfoPanel","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightConePars","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightIR","setLightnings","setLightUseFlare","setLightVolumeShape","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPolyline","setMarkerPolylineLocal","setMarkerPos","setMarkerPosLocal","setMarkerShadow","setMarkerShadowLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMaxLoad","setMimic","setMissileTarget","setMissileTargetPos","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectMaterialGlobal","setObjectProxy","setObjectScale","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOpticsMode","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotCameraDirection","setPilotCameraRotation","setPilotCameraTarget","setPilotLight","setPiPEffect","setPiPViewDistance","setPitch","setPlateNumber","setPlayable","setPlayerRespawnTime","setPlayerVoNVolume","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setPylonLoadout","setPylonsPriority","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setRotorBrakeRTD","setShadowDistance","setShotParents","setSide","setSimpleTaskAlwaysVisible","setSimpleTaskCustomData","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimpleTaskType","setSimulWeatherLayers","setSize","setSkill","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStamina","setStaminaScheme","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskMarkerOffset","setTaskResult","setTaskState","setTerrainGrid","setTerrainHeight","setText","setTimeMultiplier","setTiParameter","setTitleEffect","setTowParent","setTrafficDensity","setTrafficDistance","setTrafficGap","setTrafficSpeed","setTriggerActivation","setTriggerArea","setTriggerInterval","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setTurretLimits","setTurretOpticsMode","setType","setUnconscious","setUnitAbility","setUnitCombatMode","setUnitFreefallHeight","setUnitLoadout","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnitTrait","setUnloadInCombat","setUserActionText","setUserMFDText","setUserMFDValue","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleCargo","setVehicleId","setVehicleLock","setVehiclePosition","setVehicleRadar","setVehicleReceiveRemoteTargets","setVehicleReportOwnPosition","setVehicleReportRemoteTargets","setVehicleTiPars","setVehicleVarName","setVelocity","setVelocityModelSpace","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWantedRPMRTD","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointForceBehaviour","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterAltitude","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWeaponZeroing","setWind","setWindDir","setWindForce","setWindStr","setWingForceScaleRTD","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGps","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGps","shownHUD","shownMap","shownPad","shownRadio","shownScoretable","shownSubtitles","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showScoretable","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","showWaypoints","side","sideChat","sideRadio","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speechVolume","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","stop","stopEngineRTD","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceTexture","surfaceType","swimInDepth","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","systemChat","systemOfUnits","systemTime","systemTimeUTC","tan","targetKnowledge","targets","targetsAggregate","targetsQuery","taskAlwaysVisible","taskChildren","taskCompleted","taskCustomData","taskDescription","taskDestination","taskHint","taskMarkerOffset","taskName","taskParent","taskResult","taskState","taskType","teamMember","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","terrainIntersectAtASL","text","textLog","textLogFormat","tg","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","toArray","toFixed","toLower","toLowerANSI","toString","toUpper","toUpperANSI","triggerActivated","triggerActivation","triggerAmmo","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerDynamicSimulation","triggerInterval","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","trim","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCollapseAll","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvExpandAll","tvIsSelected","tvPicture","tvPictureRight","tvSelection","tvSetColor","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetPictureColorDisabled","tvSetPictureColorSelected","tvSetPictureRight","tvSetPictureRightColor","tvSetPictureRightColorDisabled","tvSetPictureRightColorSelected","tvSetSelectColor","tvSetSelected","tvSetText","tvSetTooltip","tvSetValue","tvSort","tvSortAll","tvSortByValue","tvSortByValueAll","tvText","tvTooltip","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","uniqueUnitItems","unitAddons","unitAimPosition","unitAimPositionVisual","unitBackpack","unitCombatMode","unitIsUAV","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unitTurret","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAIOperMapObstructionTest","useAISteeringComponent","useAudioTimeForMoves","userInputDisabled","values","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorLinearConversion","vectorMagnitude","vectorMagnitudeSqr","vectorModelToWorld","vectorModelToWorldVisual","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vectorWorldToModel","vectorWorldToModelVisual","vehicle","vehicleCargoEnabled","vehicleChat","vehicleMoveInfo","vehicleRadio","vehicleReceiveRemoteTargets","vehicleReportOwnPosition","vehicleReportRemoteTargets","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGps","visibleMap","visiblePosition","visiblePositionASL","visibleScoretable","visibleWatch","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointForceBehaviour","waypointFormation","waypointHousePosition","waypointLoiterAltitude","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponAccessoriesCargo","weaponCargo","weaponDirection","weaponInertia","weaponLowered","weaponReloadingTime","weapons","weaponsInfo","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","WFSideText","wind","windDir","windRTD","windStr","wingsForcesRTD","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"],literal:["blufor","civilian","configNull","controlNull","displayNull","diaryRecordNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideEnemy","sideFriendly","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,{className:"variable",begin:/\b_+[a-zA-Z]\w*/},{className:"title",begin:/[a-zA-Z][a-zA-Z_0-9]*_fnc_[a-zA-Z_0-9]+/},t,n],illegal:[/\$[^a-fA-F0-9]/,/\w\$/,/\?/,/@/,/ \| /,/[a-zA-Z_]\./,/\:\=/,/\[\:/]}}},315:e=>{e.exports=function(e){const t=e.regex,n=e.COMMENT("--","$"),r=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=a,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),c={begin:t.concat(/\b/,t.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:n}={}){const r=n;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e))}(l,{when:e=>e.length<3}),literal:r,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...o),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),literal:r,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},c,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}},7891:e=>{e.exports=function(e){const t=e.regex,n=["bernoulli","bernoulli_logit","bernoulli_logit_glm","beta","beta_binomial","beta_proportion","binomial","binomial_logit","categorical","categorical_logit","categorical_logit_glm","cauchy","chi_square","dirichlet","discrete_range","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hmm_latent","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","inv_wishart_cholesky","lkj_corr","lkj_corr_cholesky","logistic","loglogistic","lognormal","multi_gp","multi_gp_cholesky","multinomial","multinomial_logit","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_cholesky_t","multi_student_t","multi_student_t_cholesky","neg_binomial","neg_binomial_2","neg_binomial_2_log","neg_binomial_2_log_glm","normal","normal_id_glm","ordered_logistic","ordered_logistic_glm","ordered_probit","pareto","pareto_type_2","poisson","poisson_log","poisson_log_glm","rayleigh","scaled_inv_chi_square","skew_double_exponential","skew_normal","std_normal","std_normal_log","student_t","uniform","von_mises","weibull","wiener","wishart","wishart_cholesky"],r=e.COMMENT(/\/\*/,/\*\//,{relevance:0,contains:[{scope:"doctag",match:/@(return|param)/}]}),i={scope:"meta",begin:/#include\b/,end:/$/,contains:[{match:/[a-z][a-z-._]+/,scope:"string"},e.C_LINE_COMMENT_MODE]},a=["lower","upper","offset","multiplier"];return{name:"Stan",aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE,title:["functions","model","data","parameters","quantities","transformed","generated"],type:["array","tuple","complex","int","real","vector","complex_vector","ordered","positive_ordered","simplex","unit_vector","row_vector","complex_row_vector","matrix","complex_matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"],keyword:["for","in","if","else","while","break","continue","return"],built_in:["abs","acos","acosh","add_diag","algebra_solver","algebra_solver_newton","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bessel_first_kind","bessel_second_kind","binary_log_loss","block","cbrt","ceil","chol2inv","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","complex_schur_decompose","complex_schur_decompose_t","complex_schur_decompose_u","conj","cos","cosh","cov_exp_quad","crossprod","csr_extract","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","dae","dae_tol","determinant","diag_matrix","diagonal","diag_post_multiply","diag_pre_multiply","digamma","dims","distance","dot_product","dot_self","eigendecompose","eigendecompose_sym","eigenvalues","eigenvalues_sym","eigenvectors","eigenvectors_sym","erf","erfc","exp","exp2","expm1","falling_factorial","fdim","fft","fft2","floor","fma","fmax","fmin","fmod","gamma_p","gamma_q","generalized_inverse","get_imag","get_real","head","hmm_hidden_state_prob","hmm_marginal","hypot","identity_matrix","inc_beta","integrate_1d","integrate_ode","integrate_ode_adams","integrate_ode_bdf","integrate_ode_rk45","int_step","inv","inv_cloglog","inv_erfc","inverse","inverse_spd","inv_fft","inv_fft2","inv_inc_beta","inv_logit","inv_Phi","inv_sqrt","inv_square","is_inf","is_nan","lambert_w0","lambert_wm1","lbeta","lchoose","ldexp","lgamma","linspaced_array","linspaced_int_array","linspaced_row_vector","linspaced_vector","lmgamma","lmultiply","log","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_inv_logit_diff","logit","log_mix","log_modified_bessel_first_kind","log_rising_factorial","log_softmax","log_sum_exp","machine_precision","map_rect","matrix_exp","matrix_exp_multiply","matrix_power","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multiply_lower_tri_self_transpose","negative_infinity","norm","norm1","norm2","not_a_number","num_elements","ode_adams","ode_adams_tol","ode_adjoint_tol_ctl","ode_bdf","ode_bdf_tol","ode_ckrk","ode_ckrk_tol","ode_rk45","ode_rk45_tol","one_hot_array","one_hot_int_array","one_hot_row_vector","one_hot_vector","ones_array","ones_int_array","ones_row_vector","ones_vector","owens_t","Phi","Phi_approx","polar","positive_infinity","pow","print","prod","proj","qr","qr_Q","qr_R","qr_thin","qr_thin_Q","qr_thin_R","quad_form","quad_form_diag","quad_form_sym","quantile","rank","reduce_sum","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","reverse","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scale_matrix_exp_multiply","sd","segment","sin","singular_values","sinh","size","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","square","squared_distance","step","sub_col","sub_row","sum","svd","svd_U","svd_V","symmetrize_from_lower_tri","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_complex","to_int","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_simplex","variance","zeros_array","zeros_int_array","zeros_row_vector"]},contains:[e.C_LINE_COMMENT_MODE,i,e.HASH_COMMENT_MODE,r,{scope:"built_in",match:/\s(pi|e|sqrt2|log2|log10)(?=\()/,relevance:0},{match:t.concat(/[<,]\s*/,t.either(...a),/\s*=/),keywords:a},{scope:"keyword",match:/\btarget(?=\s*\+=)/},{match:[/~\s*/,t.either(...n),/(?:\(\))/,/\s*T(?=\s*\[)/],scope:{2:"built_in",4:"keyword"}},{scope:"built_in",keywords:n,begin:t.concat(/\w*/,t.either(...n),/(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/)},{begin:[/~/,/\s*/,t.concat(t.either(...n),/(?=\s*[\(.*\)])/)],scope:{3:"built_in"}},{begin:[/~/,/\s*\w+(?=\s*[\(.*\)])/,"(?!.*/\b("+t.either(...n)+")\b)"],scope:{2:"title.function"}},{scope:"title.function",begin:/\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/},{scope:"number",match:t.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/,/(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/),relevance:0},{scope:"string",begin:/"/,end:/"/}]}}},2546:e=>{e.exports=function(e){return{name:"Stata",aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable",begin:/\$\{?[a-zA-Z0-9_]+\}?/,relevance:0},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()"}]},e.COMMENT("^[ \t]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},8128:e=>{e.exports=function(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}},5733:e=>{const t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],a=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();e.exports=function(e){const o=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),s={className:"variable",begin:"\\$"+e.IDENT_RE},l="(?=[.\\s\\n[:,(])";return{name:"Stylus",aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"].join("|")+")",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o.HEXCOLOR,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+l,className:"selector-class"},{begin:"#[a-zA-Z][a-zA-Z0-9_-]*"+l,className:"selector-id"},{begin:"\\b("+t.join("|")+")"+l,className:"selector-tag"},{className:"selector-pseudo",begin:"&?:("+r.join("|")+")"+l},{className:"selector-pseudo",begin:"&?:(:)?("+i.join("|")+")"+l},o.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:n.join(" ")},contains:[o.CSS_NUMBER_MODE]}},{className:"keyword",begin:"@((-(o|moz|ms|webkit)-)?("+["charset","css","debug","extend","font-face","for","import","include","keyframes","media","mixin","page","warn","while"].join("|")+"))\\b"},s,o.CSS_NUMBER_MODE,{className:"function",begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[o.HEXCOLOR,s,e.APOS_STRING_MODE,o.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE]}]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+a.join("|")+")\\b",starts:{end:/;|$/,contains:[o.HEXCOLOR,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o.CSS_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,o.IMPORTANT,o.FUNCTION_DISPATCH],illegal:/\./,relevance:0}},o.FUNCTION_DISPATCH]}}},6475:e=>{e.exports=function(e){return{name:"SubUnit",case_insensitive:!0,contains:[{className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}},1496:e=>{function t(e){return e?"string"==typeof e?e:e.source:null}function n(e){return r("(?=",e,")")}function r(...e){return e.map((e=>t(e))).join("")}function i(...e){const n=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(n.capture?"":"?:")+e.map((e=>t(e))).join("|")+")"}const a=e=>r(/\b/,e,/\w$/.test(e)?/\b/:/\B/),o=["Protocol","Type"].map(a),s=["init","self"].map(a),l=["Any","Self"],c=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],d=["false","nil","true"],u=["assignment","associativity","higherThan","left","lowerThan","none","right"],p=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],m=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],g=i(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),_=i(g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),h=r(g,_,"*"),f=i(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),b=i(f,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),E=r(f,b,"*"),S=r(/[A-Z]/,b,"*"),y=["attached","autoclosure",r(/convention\(/,i("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",r(/objc\(/,E,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],v=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];e.exports=function(e){const t={match:/\s+/,relevance:0},g=e.COMMENT("/\\*","\\*/",{contains:["self"]}),f=[e.C_LINE_COMMENT_MODE,g],T={match:[/\./,i(...o,...s)],className:{2:"keyword"}},C={match:r(/\./,i(...c)),relevance:0},N=c.filter((e=>"string"==typeof e)).concat(["_|0"]),A={variants:[{className:"keyword",match:i(...c.filter((e=>"string"!=typeof e)).concat(l).map(a),...s)}]},x={$pattern:i(/\b\w+/,/#\w+/),keyword:N.concat(p),literal:d},O=[T,C,A],w=[{match:r(/\./,i(...m)),relevance:0},{className:"built_in",match:r(/\b/,i(...m),/(?=\()/)}],R={match:/->/,relevance:0},I=[R,{className:"operator",relevance:0,variants:[{match:h},{match:`\\.(\\.|${_})+`}]}],D="([0-9]_*)+",k="([0-9a-fA-F]_*)+",M={className:"number",relevance:0,variants:[{match:`\\b(${D})(\\.(${D}))?([eE][+-]?(${D}))?\\b`},{match:`\\b0x(${k})(\\.(${k}))?([pP][+-]?(${D}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},P=(e="")=>({className:"subst",variants:[{match:r(/\\/,e,/[0\\tnr"']/)},{match:r(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),L=(e="")=>({className:"subst",match:r(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),F=(e="")=>({className:"subst",label:"interpol",begin:r(/\\/,e,/\(/),end:/\)/}),B=(e="")=>({begin:r(e,/"""/),end:r(/"""/,e),contains:[P(e),L(e),F(e)]}),U=(e="")=>({begin:r(e,/"/),end:r(/"/,e),contains:[P(e),F(e)]}),G={className:"string",variants:[B(),B("#"),B("##"),B("###"),U(),U("#"),U("##"),U("###")]},z=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],H={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:z},V=e=>{const t=r(e,/\//),n=r(/\//,e);return{begin:t,end:n,contains:[...z,{scope:"comment",begin:`#(?!.*${n})`,end:/$/}]}},q={scope:"regexp",variants:[V("###"),V("##"),V("#"),H]},Y={match:r(/`/,E,/`/)},j=[Y,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${b}+`}],$=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:v,contains:[...I,M,G]}]}},{scope:"keyword",match:r(/@/,i(...y))},{scope:"meta",match:r(/@/,E)}],W={match:n(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:r(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,b,"+")},{className:"type",match:S,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:r(/\s+&\s+/,n(S)),relevance:0}]},K={begin://,keywords:x,contains:[...f,...O,...$,R,W]};W.contains.push(K);const Q={begin:/\(/,end:/\)/,relevance:0,keywords:x,contains:["self",{match:r(E,/\s*:/),keywords:"_|0",relevance:0},...f,q,...O,...w,...I,M,G,...j,...$,W]},Z={begin://,keywords:"repeat each",contains:[...f,W]},X={begin:/\(/,end:/\)/,keywords:x,contains:[{begin:i(n(r(E,/\s*:/)),n(r(E,/\s+/,E,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:E}]},...f,...O,...I,M,G,...$,W,Q],endsParent:!0,illegal:/["']/},J={match:[/(func|macro)/,/\s+/,i(Y.match,E,h)],className:{1:"keyword",3:"title.function"},contains:[Z,X,t],illegal:[/\[/,/%/]},ee={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,X,t],illegal:/\[|%/},te={match:[/operator/,/\s+/,h],className:{1:"keyword",3:"title"}},ne={begin:[/precedencegroup/,/\s+/,S],className:{1:"keyword",3:"title"},contains:[W],keywords:[...u,...d],end:/}/};for(const e of G.variants){const t=e.contains.find((e=>"interpol"===e.label));t.keywords=x;const n=[...O,...w,...I,M,G,...j];t.contains=[...n,{begin:/\(/,end:/\)/,contains:["self",...n]}]}return{name:"Swift",keywords:x,contains:[...f,J,ee,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:x,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...O]},te,ne,{beginKeywords:"import",end:/$/,contains:[...f],relevance:0},q,...O,...w,...I,M,G,...j,...$,W,Q]}}},150:e=>{e.exports=function(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}},8942:e=>{e.exports=function(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}},1272:e=>{e.exports=function(e){const t=e.regex,n=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),n,"(::",n,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[r]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}},9888:e=>{e.exports=function(e){const t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}},987:e=>{e.exports=function(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}},222:e=>{e.exports=function(e){const t=e.regex,n=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"];let r=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"];r=r.concat(r.map((e=>`end${e}`)));const i={scope:"string",variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},a={scope:"number",match:/\d+/},o={begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[i,a]},s={beginKeywords:n.join(" "),keywords:{name:n},relevance:0,contains:[o]},l={match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"]}]},c=(e,{relevance:n})=>({beginScope:{1:"template-tag",3:"name"},relevance:n||2,endScope:"template-tag",begin:[/\{%/,/\s*/,t.either(...e)],end:/%\}/,keywords:"in",contains:[l,s,i,a]}),d=c(r,{relevance:2}),u=c([/[a-z_]+/],{relevance:1});return{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),d,u,{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",l,s,i,a]}]}}},8640:e=>{const t="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],r=["true","false","null","undefined","NaN","Infinity"],i=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],l=[].concat(o,i,a);function c(e){const c=e.regex,d=t,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let i;">"===r&&(((e,{after:t})=>{const n="",P={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,c.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:p,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:O},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,E,S,y,v,{match:/\$\d+/},h,O,{className:"attr",begin:d+c.lookahead(":"),relevance:0},P,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:p,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},w,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},R,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},x,k,{match:/\$[(.]/}]}}e.exports=function(e){const i=c(e),a=t,o=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],d={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[i.exports.CLASS_REFERENCE]},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:o},contains:[i.exports.CLASS_REFERENCE]},p={$pattern:t,keyword:n.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:r,built_in:l.concat(o),"variable.language":s},m={className:"meta",begin:"@"+a},g=(e,t,n)=>{const r=e.contains.findIndex((e=>e.label===t));if(-1===r)throw new Error("can not find mode to replace");e.contains.splice(r,1,n)};return Object.assign(i.keywords,p),i.exports.PARAMS_CONTAINS.push(m),i.contains=i.contains.concat([m,d,u]),g(i,"shebang",e.SHEBANG()),g(i,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),i.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(i,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),i}},9461:e=>{e.exports=function(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$"}]}}},8928:e=>{e.exports=function(e){const t=e.regex,n=/\d{1,2}\/\d{1,2}\/\d{4}/,r=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,o={className:"literal",variants:[{begin:t.concat(/# */,t.either(r,n),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,t.either(r,n),/ +/,t.either(i,a),/ *#/)}]},s=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},s,l,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[l]}]}}},164:e=>{e.exports=function(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}},1200:e=>{e.exports=function(e){const t=e.regex,n=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"];return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"],built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[{begin:t.concat(t.either(...n),"\\s*\\("),relevance:0,keywords:{built_in:n}},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}},8249:e=>{e.exports=function(e){const t=e.regex,n=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:t.concat(/`/,t.either("__FILE__","__LINE__"))},{scope:"meta",begin:t.concat(/`/,t.either(...n)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:n}]}}},8721:e=>{e.exports=function(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,r="\\b("+t+"#\\w+(\\.\\w+)?#("+n+")?|"+t+"(\\."+t+")?("+n+")?)";return{name:"VHDL",case_insensitive:!0,keywords:{keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"],built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"],literal:["false","true","note","warning","error","failure","line","text","side","width"]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:r,relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}},8907:e=>{e.exports=function(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword",3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}},9351:e=>{e.exports=function(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}},5069:e=>{e.exports=function(e){const t=e.regex,n=/[a-zA-Z]\w*/,r=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],i=["true","false","null"],a=["this","super"],o=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],s={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,n,/(?=\s*[({])/),className:"title.function"},l={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,n),t.either(...o)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:n}]}]}},c={variants:[{match:[/class\s+/,n,/\s+is\s+/,n]},{match:[/class\s+/,n]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},d={relevance:0,match:t.either(...o),className:"operator"},u={className:"property",begin:t.concat(/\./,t.lookahead(n)),end:n,excludeBegin:!0,relevance:0},p={relevance:0,match:t.concat(/\b_/,n),scope:"variable"},m={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"]}},g=e.C_NUMBER_MODE,_={match:[n,/\s*/,/=/,/\s*/,/\(/,n,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},h=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),f={scope:"subst",begin:/%\(/,end:/\)/,contains:[g,m,s,p,d]},b={scope:"string",begin:/"/,end:/"/,contains:[f,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};f.contains.push(b);const E=[...r,...a,...i],S={relevance:0,match:t.concat("\\b(?!",E.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:r,"variable.language":a,literal:i},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:i},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},g,b,{className:"string",begin:/"""/,end:/"""/},h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,c,_,l,s,d,p,u,S]}}},7514:e=>{e.exports=function(e){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+e.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}},8675:e=>{e.exports=function(e){const t={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"],literal:["true","false","nil"],built_in:["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"].concat(["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"])},n={className:"string",begin:'"',end:'"',illegal:"\\n"},r={beginKeywords:"import",end:"$",keywords:t,contains:[n]},i={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:t}})]};return{name:"XL",aliases:["tao"],keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:"<<",end:">>"},i,r,{className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}}},114:e=>{e.exports=function(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(i,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,s,o,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,a,s,o]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}},3051:e=>{e.exports=function(e){return{name:"XQuery",aliases:["xpath","xq","xqm"],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"],type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"],literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"]},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in",variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^/,end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/,subLanguage:"xquery"},"self"]}]}}},5588:e=>{e.exports=function(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(r,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),a={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},o={begin:/\{/,end:/\}/,contains:[a],illegal:"\\n",relevance:0},s={begin:"\\[",end:"\\]",contains:[a],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},o,s,r],c=[...l];return c.pop(),c.push(i),a.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:l}}},8745:e=>{e.exports=function(e){const t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n=e.UNDERSCORE_TITLE_MODE,r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:i,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[n,{className:"params",begin:/\(/,end:/\)/,keywords:i,contains:["self",e.C_BLOCK_COMMENT_MODE,t,r]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},n]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[n]},{beginKeywords:"use",end:/;/,contains:[n]},{begin:/=>/},t,r]}}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={id:r,exports:{}};return e[r](a,a.exports,n),a.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(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.u=e=>e+".bundle.js",n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/dist/",n.b=document.baseURI||self.location.href,(()=>{"use strict";var e={};n.r(e),n.d(e,{decode:()=>c,encode:()=>p,format:()=>m,parse:()=>A});var t={};n.r(t),n.d(t,{Any:()=>O,Cc:()=>w,Cf:()=>R,P:()=>x,S:()=>I,Z:()=>D});var r={};n.r(r),n.d(r,{arrayReplaceAt:()=>ie,assign:()=>re,escapeHtml:()=>he,escapeRE:()=>be,fromCodePoint:()=>oe,has:()=>ne,isMdAsciiPunct:()=>ve,isPunctChar:()=>ye,isSpace:()=>Ee,isString:()=>ee,isValidEntityCode:()=>ae,isWhiteSpace:()=>Se,lib:()=>Ce,normalizeReference:()=>Te,unescapeAll:()=>ue,unescapeMd:()=>de});var i={};n.r(i),n.d(i,{parseLinkDestination:()=>Ae,parseLinkLabel:()=>Ne,parseLinkTitle:()=>xe});var a=n(8125),o=n.n(a);const s={};function l(e,t){"string"!=typeof t&&(t=l.defaultChars);const n=function(e){let t=s[e];if(t)return t;t=s[e]=[];for(let e=0;e<128;e++){const n=String.fromCharCode(e);t.push(n)}for(let n=0;n=55296&&e<=57343?"���":String.fromCharCode(e),r+=6;continue}}if(240==(248&a)&&r+91114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),r+=9;continue}}t+="�"}}return t}))}l.defaultChars=";/?:@&=+$,#",l.componentChars="";const c=l,d={};function u(e,t,n){"string"!=typeof t&&(n=t,t=u.defaultChars),void 0===n&&(n=!0);const r=function(e){let t=d[e];if(t)return t;t=d[e]=[];for(let e=0;e<128;e++){const n=String.fromCharCode(e);/^[0-9a-z]$/i.test(n)?t.push(n):t.push("%"+("0"+e.toString(16).toUpperCase()).slice(-2))}for(let n=0;n=55296&&o<=57343){if(o>=55296&&o<=56319&&t+1=56320&&n<=57343){i+=encodeURIComponent(e[t]+e[t+1]),t++;continue}}i+="%EF%BF%BD"}else i+=encodeURIComponent(e[t])}return i}u.defaultChars=";/?:@&=+$,-_.!~*'()#",u.componentChars="-_.!~*'()";const p=u;function m(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function g(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const _=/^([a-z0-9.+-]+:)/i,h=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,b=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),E=["'"].concat(b),S=["%","/","?",";","#"].concat(E),y=["/","?","#"],v=/^[+a-z0-9A-Z_-]{0,63}$/,T=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,C={javascript:!0,"javascript:":!0},N={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};g.prototype.parse=function(e,t){let n,r,i,a=e;if(a=a.trim(),!t&&1===e.split("#").length){const e=f.exec(a);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let o=_.exec(a);if(o&&(o=o[0],n=o.toLowerCase(),this.protocol=o,a=a.substr(o.length)),(t||o||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===a.substr(0,2),!i||o&&C[o]||(a=a.substr(2),this.slashes=!0)),!C[o]&&(i||o&&!N[o])){let e,t,n=-1;for(let e=0;e127?r+="x":r+=n[e];if(!r.match(v)){const r=e.slice(0,t),i=e.slice(t+1),o=n.match(T);o&&(r.push(o[1]),i.unshift(o[2])),i.length&&(a=i.join(".")+a),this.hostname=r.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),o&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const s=a.indexOf("#");-1!==s&&(this.hash=a.substr(s),a=a.slice(0,s));const l=a.indexOf("?");return-1!==l&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),N[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this},g.prototype.parseHost=function(e){let t=h.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const A=function(e,t){if(e&&e instanceof g)return e;const n=new g;return n.parse(e,t),n},x=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,O=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,w=/[\0-\x1F\x7F-\x9F]/,R=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,I=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,D=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,k=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((e=>e.charCodeAt(0)))),M=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((e=>e.charCodeAt(0))));var P;const L=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),F=null!==(P=String.fromCodePoint)&&void 0!==P?P:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};var B,U,G,z,H;function V(e){return e>=B.ZERO&&e<=B.NINE}!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(B||(B={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(U||(U={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(G||(G={})),(H=z||(z={}))[H.Legacy=0]="Legacy",H[H.Strict=1]="Strict",H[H.Attribute=2]="Attribute";class q{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=G.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=z.Strict}startEntity(e){this.decodeMode=e,this.state=G.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case G.EntityStart:return e.charCodeAt(t)===B.NUM?(this.state=G.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=G.NamedEntity,this.stateNamedEntity(e,t));case G.NumericStart:return this.stateNumericStart(e,t);case G.NumericDecimal:return this.stateNumericDecimal(e,t);case G.NumericHex:return this.stateNumericHex(e,t);case G.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===B.LOWER_X?(this.state=G.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=G.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){const i=n-t;this.result=this.result*Math.pow(r,i)+parseInt(e.substr(t,i),r),this.consumed+=i}}stateNumericHex(e,t){const n=t;for(;t=B.UPPER_A&&r<=B.UPPER_F||r>=B.LOWER_A&&r<=B.LOWER_F)))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(i,3);t+=1}var r;return this.addToNumericResult(e,n,t,16),-1}stateNumericDecimal(e,t){const n=t;for(;t=55296&&e<=57343||e>1114111?65533:null!==(t=L.get(e))&&void 0!==t?t:e}(this.result),this.consumed),this.errors&&(e!==B.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){const{decodeTree:n}=this;let r=n[this.treeIndex],i=(r&U.VALUE_LENGTH)>>14;for(;t=B.UPPER_A&&e<=B.UPPER_Z||e>=B.LOWER_A&&e<=B.LOWER_Z||V(e)}(a)))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&U.VALUE_LENGTH)>>14,0!==i){if(o===B.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==z.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var a;return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:n}=this,r=(n[t]&U.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){const{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~U.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case G.NamedEntity:return 0===this.result||this.decodeMode===z.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case G.NumericDecimal:return this.emitNumericEntity(0,2);case G.NumericHex:return this.emitNumericEntity(0,3);case G.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case G.EntityStart:return 0}}}function Y(e){let t="";const n=new q(e,(e=>t+=F(e)));return function(e,r){let i=0,a=0;for(;(a=e.indexOf("&",a))>=0;){t+=e.slice(i,a),n.startEntity(r);const o=n.write(e,a+1);if(o<0){i=a+n.end();break}i=a+o,a=0===o?i+1:i}const o=t+e.slice(i);return t="",o}}function j(e,t,n,r){const i=(t&U.BRANCH_LENGTH)>>7,a=t&U.JUMP_TABLE;if(0===i)return 0!==a&&r===a?n:-1;if(a){const t=r-a;return t<0||t>=i?-1:e[n+t]-1}let o=n,s=o+i-1;for(;o<=s;){const t=o+s>>>1,n=e[t];if(nr))return e[t+i];s=t-1}}return-1}const $=Y(k);function W(e,t=z.Legacy){return $(e,t)}function K(e){for(let t=1;t'"]/g,Q),Z(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),Z(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"}(X||(X={})),function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"}(J||(J={}));const te=Object.prototype.hasOwnProperty;function ne(e,t){return te.call(e,t)}function re(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e}function ie(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function ae(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||!(65535&~e&&65534!=(65535&e))||e>=0&&e<=8||11===e||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function oe(e){if(e>65535){const t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const se=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,le=new RegExp(se.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),ce=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function de(e){return e.indexOf("\\")<0?e:e.replace(se,"$1")}function ue(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(le,(function(e,t,n){return t||function(e,t){if(35===t.charCodeAt(0)&&ce.test(t)){const n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return ae(n)?oe(n):e}const n=W(e);return n!==e?n:e}(e,n)}))}const pe=/[&<>"]/,me=/[&<>"]/g,ge={"&":"&","<":"<",">":">",'"':"""};function _e(e){return ge[e]}function he(e){return pe.test(e)?e.replace(me,_e):e}const fe=/[.?*+^$[\]\\(){}|-]/g;function be(e){return e.replace(fe,"\\$&")}function Ee(e){switch(e){case 9:case 32:return!0}return!1}function Se(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function ye(e){return x.test(e)}function ve(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Te(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Ce={mdurl:e,ucmicro:t};function Ne(e,t,n){let r,i,a,o;const s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos32))return a;if(41===r){if(0===o)break;o--}i++}return t===i||0!==o||(a.str=ue(e.slice(t,i)),a.pos=i,a.ok=!0),a}function xe(e,t,n){let r,i,a=0,o=t;const s={ok:!1,pos:0,lines:0,str:""};if(o>=n)return s;if(i=e.charCodeAt(o),34!==i&&39!==i&&40!==i)return s;for(o++,40===i&&(i=41);o"+he(a.content)+""},Oe.code_block=function(e,t,n,r,i){const a=e[t];return""+he(e[t].content)+"
\n"},Oe.fence=function(e,t,n,r,i){const a=e[t],o=a.info?ue(a.info).trim():"";let s,l="",c="";if(o){const e=o.split(/(\s+)/g);l=e[0],c=e.slice(2).join("")}if(s=n.highlight&&n.highlight(a.content,l,c)||he(a.content),0===s.indexOf("${s}\n`}return`
${s}
\n`},Oe.image=function(e,t,n,r,i){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=i.renderInlineAsText(a.children,n,r),i.renderToken(e,t,n)},Oe.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},Oe.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},Oe.text=function(e,t){return he(e[t].content)},Oe.html_block=function(e,t){return e[t].content},Oe.html_inline=function(e,t){return e[t].content},we.prototype.renderAttrs=function(e){let t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t\n":">",i},we.prototype.renderInline=function(e,t,n){let r="";const i=this.rules;for(let a=0,o=e.length;a=0&&(n=this.attrs[t][1]),n},ke.prototype.attrJoin=function(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t};const Me=ke;function Pe(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}Pe.prototype.Token=Me;const Le=Pe,Fe=/\r\n?|\n/g,Be=/\0/g;function Ue(e){return/^<\/a\s*>/i.test(e)}const Ge=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,ze=/\((c|tm|r)\)/i,He=/\((c|tm|r)\)/gi,Ve={c:"©",r:"®",tm:"™"};function qe(e,t){return Ve[t.toLowerCase()]}function Ye(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||(r.content=r.content.replace(He,qe)),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++}}function je(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||Ge.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++}}const $e=/['"]/,We=/['"]/g;function Ke(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function Qe(e,t){let n;const r=[];for(let i=0;i=0&&!(r[n].level<=o);n--);if(r.length=n+1,"text"!==a.type)continue;let s=a.content,l=0,c=s.length;e:for(;l=0)g=s.charCodeAt(d.index-1);else for(n=i-1;n>=0&&"softbreak"!==e[n].type&&"hardbreak"!==e[n].type;n--)if(e[n].content){g=e[n].content.charCodeAt(e[n].content.length-1);break}let _=32;if(l=48&&g<=57&&(p=u=!1),u&&p&&(u=h,p=f),u||p){if(p)for(n=r.length-1;n>=0;n--){let u=r[n];if(r[n].level=0;o--){const s=i[o];if("link_close"!==s.type){if("html_inline"===s.type&&(n=s.content,/^\s]/i.test(n)&&a>0&&a--,Ue(s.content)&&a++),!(a>0)&&"text"===s.type&&e.md.linkify.test(s.content)){const n=s.content;let a=e.md.linkify.match(n);const l=[];let c=s.level,d=0;a.length>0&&0===a[0].index&&o>0&&"text_special"===i[o-1].type&&(a=a.slice(1));for(let t=0;td){const t=new e.Token("text","",0);t.content=n.slice(d,s),t.level=c,l.push(t)}const u=new e.Token("link_open","a",1);u.attrs=[["href",i]],u.level=c++,u.markup="linkify",u.info="auto",l.push(u);const p=new e.Token("text","",0);p.content=o,p.level=c,l.push(p);const m=new e.Token("link_close","a",-1);m.level=--c,m.markup="linkify",m.info="auto",l.push(m),d=a[t].lastIndex}if(d=0;t--)"inline"===e.tokens[t].type&&(ze.test(e.tokens[t].content)&&Ye(e.tokens[t].children),Ge.test(e.tokens[t].content)&&je(e.tokens[t].children))}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&$e.test(e.tokens[t].content)&&Qe(e.tokens[t].children,e)}],["text_join",function(e){let t,n;const r=e.tokens,i=r.length;for(let e=0;e0&&this.level++,this.tokens.push(r),r},et.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},et.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;et;)if(!Ee(this.src.charCodeAt(--e)))return e+1;return e},et.prototype.skipChars=function(e,t){for(let n=this.src.length;en;)if(t!==this.src.charCodeAt(--e))return e+1;return e},et.prototype.getLines=function(e,t,n,r){if(e>=t)return"";const i=new Array(t-e);for(let a=0,o=e;on?new Array(e-n+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l)}return i.join("")},et.prototype.Token=Me;const tt=et;function nt(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function rt(e){const t=[],n=e.length;let r=0,i=e.charCodeAt(r),a=!1,o=0,s="";for(;r=r)return-1;let a=e.src.charCodeAt(i++);if(a<48||a>57)return-1;for(;;){if(i>=r)return-1;if(a=e.src.charCodeAt(i++),!(a>=48&&a<=57)){if(41===a||46===a)break;return-1}if(i-n>=10)return-1}return i`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",st="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",lt=new RegExp("^(?:"+ot+"|"+st+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),ct=new RegExp("^(?:"+ot+"|"+st+")"),dt=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(ct.source+"\\s*$"),/^$/,!1]],ut=[["table",function(e,t,n,r){if(t+2>n)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let a=e.bMarks[i]+e.tShift[i];if(a>=e.eMarks[i])return!1;const o=e.src.charCodeAt(a++);if(124!==o&&45!==o&&58!==o)return!1;if(a>=e.eMarks[i])return!1;const s=e.src.charCodeAt(a++);if(124!==s&&45!==s&&58!==s&&!Ee(s))return!1;if(45===o&&Ee(s))return!1;for(;a=4)return!1;c=rt(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return!1;if(r)return!0;const p=e.parentType;e.parentType="table";const m=e.md.block.ruler.getRules("blockquote"),g=[t,0];e.push("table_open","table",1).map=g,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;c=rt(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),i===t+2&&(e.push("tbody_open","tbody",1).map=_=[t+2,0]),e.push("tr_open","tr",1).map=[i,i+1];for(let t=0;t=4))break;r++,i=r}e.line=i;const a=e.push("code_block","code",0);return a.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",a.map=[t,e.line],!0}],["fence",function(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(i+3>a)return!1;const o=e.src.charCodeAt(i);if(126!==o&&96!==o)return!1;let s=i;i=e.skipChars(i,o);let l=i-s;if(l<3)return!1;const c=e.src.slice(s,i),d=e.src.slice(i,a);if(96===o&&d.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let u=t,p=!1;for(;!(u++,u>=n||(i=s=e.bMarks[u]+e.tShift[u],a=e.eMarks[u],i=4||(i=e.skipChars(i,o),i-s=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(r)return!0;const s=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),p=e.parentType;e.parentType="blockquote";let m,g=!1;for(m=t;m=a)break;if(62===e.src.charCodeAt(i++)&&!t){let t,n,r=e.sCount[m]+1;32===e.src.charCodeAt(i)?(i++,r++,n=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[m]+r)%4==3?(i++,r++,n=!1):n=!0):t=!1;let o=r;for(s.push(e.bMarks[m]),e.bMarks[m]=i;i=a,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=o-r,d.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(g)break;let r=!1;for(let t=0,i=u.length;t";const f=[t,0];h.map=f,e.md.block.tokenize(e,t,m),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=o,e.parentType=p,f[1]=e.line;for(let n=0;n=4)return!1;let a=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(a++);if(42!==o&&45!==o&&95!==o)return!1;let s=1;for(;a=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(m=!0),(p=at(e,l))>=0){if(d=!0,o=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(o,p-1)),m&&1!==u)return!1}else{if(!((p=it(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(p)>=e.eMarks[l])return!1;if(r)return!0;const g=e.src.charCodeAt(p-1),_=e.tokens.length;d?(s=e.push("ordered_list_open","ol",1),1!==u&&(s.attrs=[["start",u]])):s=e.push("bullet_list_open","ul",1);const h=[l,0];s.map=h,s.markup=String.fromCharCode(g);let f=!1;const b=e.md.block.ruler.getRules("list"),E=e.parentType;for(e.parentType="list";l=i?1:r-t,m>4&&(m=1);const _=t+m;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(g);const h=[l,0];s.map=h,d&&(s.info=e.src.slice(o,p-1));const E=e.tight,S=e.tShift[l],y=e.sCount[l],v=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=_,e.tight=!0,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=r,u>=i&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,!0),e.tight&&!f||(c=!1),f=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[l]=S,e.sCount[l]=y,e.tight=E,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(g),l=e.line,h[1]=l,l>=n)break;if(e.sCount[l]=4)break;let T=!1;for(let t=0,r=b.length;t=4)return!1;if(91!==e.src.charCodeAt(a))return!1;for(;++a3)continue;if(e.sCount[s]<0)continue;let t=!1;for(let n=0,r=c.length;n=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let o=e.src.slice(i,a),s=0;for(;s=4)return!1;let o=e.src.charCodeAt(i);if(35!==o||i>=a)return!1;let s=1;for(o=e.src.charCodeAt(++i);35===o&&i6||ii&&Ee(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(s),1);c.markup="########".slice(0,s),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(i,a).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(s),-1).markup="########".slice(0,s),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let a,o=0,s=t+1;for(;s3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s];const n=e.eMarks[s];if(t=n))){o=61===a?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,a=r.length;i3)continue;if(e.sCount[a]<0)continue;let t=!1;for(let i=0,o=r.length;i=n))&&!(e.sCount[o]=a){e.line=n;break}const t=e.line;let l=!1;for(let a=0;a=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(i),r},gt.prototype.scanDelims=function(e,t){let n,r,i=!0,a=!0;const o=this.posMax,s=this.src.charCodeAt(e),l=e>0?this.src.charCodeAt(e-1):32;let c=e;for(;c?@[]^_`{|}~-".split("").forEach((function(e){bt[e.charCodeAt(0)]=1}));const St={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return!1;if(126!==r)return!1;const i=e.scanDelims(e.pos,!0);let a=i.length;const o=String.fromCharCode(r);if(a<2)return!1;let s;a%2&&(s=e.push("text","",0),s.content=o,a--);for(let t=0;t=0;n--){const r=t[n];if(95!==r.marker&&42!==r.marker)continue;if(-1===r.end)continue;const i=t[r.end],a=n>0&&t[n-1].end===r.end+1&&t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&t[r.end+1].token===i.token+1,o=String.fromCharCode(r.marker),s=e.tokens[r.token];s.type=a?"strong_open":"em_open",s.tag=a?"strong":"em",s.nesting=1,s.markup=a?o+o:o,s.content="";const l=e.tokens[i.token];l.type=a?"strong_close":"em_close",l.tag=a?"strong":"em",l.nesting=-1,l.markup=a?o+o:o,l.content="",a&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--)}}const vt={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return!1;if(95!==r&&42!==r)return!1;const i=e.scanDelims(e.pos,42===r);for(let t=0;t\x00-\x20]*)$/,Nt=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,At=/^&([a-z][a-z0-9]{1,31});/i;function xt(e){const t={},n=e.length;if(!n)return;let r=0,i=-2;const a=[];for(let o=0;os;l-=a[l]+1){const t=e[l];if(t.marker===n.marker&&t.open&&t.end<0){let r=!1;if((t.close||n.open)&&(t.length+n.length)%3==0&&(t.length%3==0&&n.length%3==0||(r=!0)),!r){const r=l>0&&!e[l-1].open?a[l-1]+1:0;a[o]=o-l+r,a[l]=r,n.open=!1,t.end=o,t.close=!1,c=-1,i=-2;break}}}-1!==c&&(t[n.marker][(n.open?3:0)+(n.length||0)%3]=c)}}const Ot=[["text",function(e,t){let n=e.pos;for(;n0)return!1;const n=e.pos;if(n+3>e.posMax)return!1;if(58!==e.src.charCodeAt(n))return!1;if(47!==e.src.charCodeAt(n+1))return!1;if(47!==e.src.charCodeAt(n+2))return!1;const r=e.pending.match(ft);if(!r)return!1;const i=r[1],a=e.md.linkify.matchAtStart(e.src.slice(n-i.length));if(!a)return!1;let o=a.url;if(o.length<=i.length)return!1;o=o.replace(/\*+$/,"");const s=e.md.normalizeLink(o);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",s]],t.markup="linkify",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(o);const n=e.push("link_close","a",-1);n.markup="linkify",n.info="auto"}return e.pos+=o.length-i.length,!0}],["newline",function(e,t){let n=e.pos;if(10!==e.src.charCodeAt(n))return!1;const r=e.pending.length-1,i=e.posMax;if(!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){let t=r-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n=r)return!1;let i=e.src.charCodeAt(n);if(10===i){for(t||e.push("hardbreak","br",0),n++;n=55296&&i<=56319&&n+1=56320&&t<=57343&&(a+=e.src[n+1],n++)}const o="\\"+a;if(!t){const t=e.push("text_special","",0);i<256&&0!==bt[i]?t.content=a:t.content=o,t.markup=o,t.info="escape"}return e.pos=n+1,!0}],["backticks",function(e,t){let n=e.pos;if(96!==e.src.charCodeAt(n))return!1;const r=n;n++;const i=e.posMax;for(;n=u)return!1;if(l=g,i=e.md.helpers.parseLinkDestination(e.src,g,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?g=i.pos:o="",l=g;g=u||41!==e.src.charCodeAt(g))&&(c=!0),g++}if(c){if(void 0===e.env.references)return!1;if(g=0?r=e.src.slice(l,g++):g=m+1):g=m+1,r||(r=e.src.slice(p,m)),a=e.env.references[Te(r)],!a)return e.pos=d,!1;o=a.href,s=a.title}if(!t){e.pos=p,e.posMax=m;const t=[["href",o]];e.push("link_open","a",1).attrs=t,s&&t.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=g,e.posMax=u,!0}],["image",function(e,t){let n,r,i,a,o,s,l,c,d="";const u=e.pos,p=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const m=e.pos+2,g=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(g<0)return!1;if(a=g+1,a=p)return!1;for(c=a,s=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),s.ok&&(d=e.md.normalizeLink(s.str),e.md.validateLink(d)?a=s.pos:d=""),c=a;a=p||41!==e.src.charCodeAt(a))return e.pos=u,!1;a++}else{if(void 0===e.env.references)return!1;if(a=0?i=e.src.slice(c,a++):a=g+1):a=g+1,i||(i=e.src.slice(m,g)),o=e.env.references[Te(i)],!o)return e.pos=u,!1;d=o.href,l=o.title}if(!t){r=e.src.slice(m,g);const t=[];e.md.inline.parse(r,e.md,e.env,t);const n=e.push("image","img",0),i=[["src",d],["alt",""]];n.attrs=i,n.children=t,n.content=r,l&&i.push(["title",l])}return e.pos=a,e.posMax=p,!0}],["autolink",function(e,t){let n=e.pos;if(60!==e.src.charCodeAt(n))return!1;const r=e.pos,i=e.posMax;for(;;){if(++n>=i)return!1;const t=e.src.charCodeAt(n);if(60===t)return!1;if(62===t)break}const a=e.src.slice(r+1,n);if(Ct.test(a)){const n=e.md.normalizeLink(a);if(!e.md.validateLink(n))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto"}return e.pos+=a.length+2,!0}if(Tt.test(a)){const n=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(n))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto"}return e.pos+=a.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(60!==e.src.charCodeAt(r)||r+2>=n)return!1;const i=e.src.charCodeAt(r+1);if(33!==i&&63!==i&&47!==i&&!function(e){const t=32|e;return t>=97&&t<=122}(i))return!1;const a=e.src.slice(r).match(lt);if(!a)return!1;if(!t){const t=e.push("html_inline","",0);t.content=a[0],o=t.content,/^\s]/i.test(o)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var o;return e.pos+=a[0].length,!0}],["entity",function(e,t){const n=e.pos,r=e.posMax;if(38!==e.src.charCodeAt(n))return!1;if(n+1>=r)return!1;if(35===e.src.charCodeAt(n+1)){const r=e.src.slice(n).match(Nt);if(r){if(!t){const t="x"===r[1][0].toLowerCase()?parseInt(r[1].slice(1),16):parseInt(r[1],10),n=e.push("text_special","",0);n.content=ae(t)?oe(t):oe(65533),n.markup=r[0],n.info="entity"}return e.pos+=r[0].length,!0}}else{const r=e.src.slice(n).match(At);if(r){const n=W(r[0]);if(n!==r[0]){if(!t){const t=e.push("text_special","",0);t.content=n,t.markup=r[0],t.info="entity"}return e.pos+=r[0].length,!0}}}return!1}]],wt=[["balance_pairs",function(e){const t=e.tokens_meta,n=e.tokens_meta.length;xt(e.delimiters);for(let e=0;e0&&r++,"text"===i[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;o||e.pos++,a[t]=e.pos},Rt.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(o){if(e.pos>=r)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Rt.prototype.parse=function(e,t,n,r){const i=new this.State(e,t,n,r);this.tokenize(i);const a=this.ruler2.getRules(""),o=a.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Bt="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Ut="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Gt(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=O.source,t.src_Cc=w.source,t.src_Z=D.source,t.src_P=x.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),n=e.__tlds__.slice();function r(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push(Bt),n.push(t.src_xn),t.src_tlds=n.join("|"),t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const i=[];function a(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const n=e.__schemas__[t];if(null===n)return;const r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===kt(n))return"[object RegExp]"!==kt(n.validate)?Mt(n.validate)?r.validate=n.validate:a(t,n):r.validate=function(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(Mt(n.normalize)?r.normalize=n.normalize:n.normalize?a(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===kt(e)}(n)?a(t,n):i.push(t)})),i.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const o=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(Pt).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function zt(e,t){const n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function Ht(e,t){const n=new zt(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function Vt(e,t){if(!(this instanceof Vt))return new Vt(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||Lt.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=Dt({},Lt,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Dt({},Ft,e),this.__compiled__={},this.__tlds__=Ut,this.__tlds_replaced__=!1,this.re={},Gt(this)}Vt.prototype.add=function(e,t){return this.__schemas__[e]=t,Gt(this),this},Vt.prototype.set=function(e){return this.__opts__=Dt(this.__opts__,e),this},Vt.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,n,r,i,a,o,s,l,c;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;null!==(t=s.exec(e));)if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(r=e.match(this.re.email_fuzzy))&&(a=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||athis.__last_index__)&&(this.__schema__="mailto:",this.__index__=a,this.__last_index__=o))),this.__index__>=0},Vt.prototype.pretest=function(e){return this.re.pretest.test(e)},Vt.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},Vt.prototype.match=function(e){const t=[];let n=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(Ht(this,n)),n=this.__last_index__);let r=n?e.slice(n):e;for(;this.test(r);)t.push(Ht(this,n)),r=r.slice(this.__last_index__),n+=this.__last_index__;return t.length?t:null},Vt.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);return n?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n,Ht(this,0)):null},Vt.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),Gt(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,Gt(this),this)},Vt.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},Vt.prototype.onCompile=function(){};const qt=Vt,Yt=2147483647,jt=36,$t=/^xn--/,Wt=/[^\0-\x7F]/,Kt=/[\x2E\u3002\uFF0E\uFF61]/g,Qt={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zt=Math.floor,Xt=String.fromCharCode;function Jt(e){throw new RangeError(Qt[e])}function en(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const i=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(Kt,".")).split("."),t).join(".");return r+i}function tn(e){const t=[];let n=0;const r=e.length;for(;n=55296&&i<=56319&&n>1,e+=Zt(e/t);e>455;r+=jt)e=Zt(e/35);return Zt(r+36*e/(e+38))},an=function(e){const t=[],n=e.length;let r=0,i=128,a=72,o=e.lastIndexOf("-");o<0&&(o=0);for(let n=0;n=128&&Jt("not-basic"),t.push(e.charCodeAt(n));for(let l=o>0?o+1:0;l=n&&Jt("invalid-input");const o=(s=e.charCodeAt(l++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:jt;o>=jt&&Jt("invalid-input"),o>Zt((Yt-r)/t)&&Jt("overflow"),r+=o*t;const c=i<=a?1:i>=a+26?26:i-a;if(oZt(Yt/d)&&Jt("overflow"),t*=d}const c=t.length+1;a=rn(r-o,c,0==o),Zt(r/c)>Yt-i&&Jt("overflow"),i+=Zt(r/c),r%=c,t.splice(r++,0,i)}var s;return String.fromCodePoint(...t)},on=function(e){const t=[],n=(e=tn(e)).length;let r=128,i=0,a=72;for(const n of e)n<128&&t.push(Xt(n));const o=t.length;let s=o;for(o&&t.push("-");s=r&&tZt((Yt-i)/l)&&Jt("overflow"),i+=(n-r)*l,r=n;for(const n of e)if(nYt&&Jt("overflow"),n===r){let e=i;for(let n=jt;;n+=jt){const r=n<=a?1:n>=a+26?26:n-a;if(eString.fromCodePoint(...e)},decode:an,encode:on,toASCII:function(e){return en(e,(function(e){return Wt.test(e)?"xn--"+on(e):e}))},toUnicode:function(e){return en(e,(function(e){return $t.test(e)?an(e.slice(4).toLowerCase()):e}))}},ln={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},cn=/^(vbscript|javascript|file|data):/,dn=/^data:image\/(gif|png|jpeg|webp);/;function un(e){const t=e.trim().toLowerCase();return!cn.test(t)||dn.test(t)}const pn=["http:","https:","mailto:"];function mn(e){const t=A(e,!0);if(t.hostname&&(!t.protocol||pn.indexOf(t.protocol)>=0))try{t.hostname=sn.toASCII(t.hostname)}catch(e){}return p(m(t))}function gn(e){const t=A(e,!0);if(t.hostname&&(!t.protocol||pn.indexOf(t.protocol)>=0))try{t.hostname=sn.toUnicode(t.hostname)}catch(e){}return c(m(t),c.defaultChars+"%")}function _n(e,t){if(!(this instanceof _n))return new _n(e,t);t||ee(e)||(t=e||{},e="default"),this.inline=new It,this.block=new mt,this.core=new Je,this.renderer=new Re,this.linkify=new qt,this.validateLink=un,this.normalizeLink=mn,this.normalizeLinkText=gn,this.utils=r,this.helpers=re({},i),this.options={},this.configure(e),t&&this.set(t)}_n.prototype.set=function(e){return re(this.options,e),this},_n.prototype.configure=function(e){const t=this;if(ee(e)){const t=e;if(!(e=ln[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)})),this},_n.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},_n.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},_n.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},_n.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},_n.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_n.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},_n.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const hn=_n;function fn(e,t,n){const r=(n=n||{}).marker||":",i=r.charCodeAt(0),a=r.length,o=n.validate||function(e){return e.trim().split(" ",2)[0]===t},s=n.render||function(e,n,r,i,a){return 1===e[n].nesting&&e[n].attrJoin("class",t),a.renderToken(e,n,r,i,a)};e.block.ruler.before("fence","container_"+t,(function(e,n,s,l){let c,d=!1,u=e.bMarks[n]+e.tShift[n],p=e.eMarks[n];if(i!==e.src.charCodeAt(u))return!1;for(c=u+1;c<=p&&r[(c-u)%a]===e.src[c];c++);const m=Math.floor((c-u)/a);if(m<3)return!1;c-=(c-u)%a;const g=e.src.slice(u,c),_=e.src.slice(c,p);if(!o(_,g))return!1;if(l)return!0;let h=n;for(;!(h++,h>=s||(u=e.bMarks[h]+e.tShift[h],p=e.eMarks[h],u=4)){for(c=u+1;c<=p&&r[(c-u)%a]===e.src[c];c++);if(!(Math.floor((c-u)/a)e.trim())).filter((e=>e.endsWith("?"))),a=e.substring(0,s)),i=0===n?`\n \n ${Sn.render(a)}\n `:`\n \n ${Sn.render(a)}\n `,console.log("i am htmlContent",i),i=function(e){return e=(e=e.replace(/

\s*\*\*\s*([^*](?:(?!\*\*).)*)<\/p>/g,"

$1

")).replace(/

((?:(?!\*\*).)*[^*])\s*\*\*\s*<\/p>/g,"

$1

")}(i),i=i.replace(/\/\//g,""),console.log("i am htmlContent2",i),r.innerHTML=i,function(e){e.querySelectorAll("pre").forEach((e=>{e.classList.add("hljs"),e.style.whiteSpace="pre-wrap",e.style.lineHeight="1.2em",e.style.wordWrap="break-word",e.style.color="royalblue",e.style.padding="10px",e.style.backgroundColor="#f0f0f0",e.style.position="relative";const t=document.createElement("button");t.innerHTML='\n \n \n ',t.classList.add("copy-btn"),t.style.position="absolute",t.style.top="8px",t.style.right="8px",t.style.border="none",t.style.borderRadius="5px",t.style.background="transparent",t.style.cursor="pointer",t.style.color="#333",e.appendChild(t),t.addEventListener("click",(()=>{const n=t.innerHTML;navigator.clipboard.writeText(e.textContent),t.innerHTML="copied!",setTimeout((()=>{t.innerHTML=n}),2e3)}))}))}(r),o.length>0){const e=document.createElement("div");e.innerHTML='\n

\n \n \n \n Related\n

',o.forEach(((t,n)=>{if(0!==n){const t=document.createElement("hr");e.appendChild(t)}const r=document.createElement("button");r.innerHTML=`+ ${function(e){let t=e.replace(/^\d+\.\s*/,"");return t=t.replace(/\*/g,""),t}(t)}`,r.style.backgroundColor="transparent",r.style.border="none",r.classList.add("followup-button"),r.style.display="block",r.style.marginBottom="5px",r.style.color="royalblue",r.style.textAlign="left",r.addEventListener("click",(function(e){!function(e,t=[window.location.href]){const n=new CustomEvent("aiActionCompleted",{detail:{text:e,type:"general",links:t}});window.dispatchEvent(n)}(`Use this question: ${t} to expand upon this content ${a}`)})),e.appendChild(r)})),r.appendChild(e)}}Sn.renderer.rules.text=(e,t,n,r,i)=>{let a=e[t].content;return a=a.replace(/\\(.*?)\\/g,((e,t)=>`${t}`)),a=a.replace(/\/([^\/]+)\//g,((e,t)=>`${t}`)),a},Sn.renderer.rules.heading_open=(e,t)=>{const n=e[t].tag;return`<${n} class="${{h1:"text-3xl font-bold mt-2",h2:"text-2xl font-bold mt-2",h3:"text-xl font-semibold mt-2",h4:"text-lg font-semibold mt-2",h5:"text-base font-medium mt-2",h6:"text-sm font-medium mt-2"}[n]}">`},Sn.renderer.rules.heading_close=(e,t)=>``,Sn.renderer.rules.bullet_list_open=()=>'
    ',Sn.renderer.rules.ordered_list_open=()=>'
      ',Sn.renderer.rules.list_item_open=()=>'
    1. ',Sn.renderer.rules.list_item_close=()=>"
    2. ",Sn.block.ruler.before("hr","double_hr",((e,t,n,r)=>{const i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(i>=a)return!1;const o=e.src.slice(i,a).trim();if(!/^={4,}$/.test(o))return!1;if(r)return!0;e.line=t+1;const s=e.push("html_block","",0);return s.content='

      ',s.block=!0,s.map=[t,e.line],s.markup=o,!0})),Sn.use(fn,"spoiler",{validate:function(e){return e.trim().match(/^spoiler\s+(.*)$/)},render:function(e,t){const n=e[t].info.trim().match(/^spoiler\s+(.*)$/);return 1===e[t].nesting?"
      "+Sn.utils.escapeHtml(n[1])+"\n":"
      \n"}}).use(fn,"loader",{render:function(e,t){return 1===e[t].nesting?' Full-Width Skeleton Loader - Dark Theme
      ':""}});const vn='
      ';function Tn(e){if(!e)return void console.error("Shadow element is required");const t=e.getElementById("text-selection-menu"),n=e.getElementById("menu-toggle"),r=e.getElementById("toggleButton");t&&n&&r?t.classList.contains("translate-x-0")?An(t,n,r):Nn(t,n,r):console.error("Required elements not found:",{menu:!!t,checkbox:!!n,button:!!r})}function Cn(e,t=!1){if(!e)return void console.error("Shadow element is required");const n=e.getElementById("text-selection-menu"),r=e.getElementById("menu-toggle"),i=e.getElementById("toggleButton");n&&r&&i?t?Nn(n,r,i):n.classList.contains("translate-x-0")?An(n,r,i):Nn(n,r,i):console.error("Required elements not found")}function Nn(e,t,n){e.classList.contains("transition-transform")||e.classList.add("transition-transform"),t.checked=!0,e.classList.remove("translate-x-full"),e.classList.add("translate-x-0"),n.style.display="inline-block",e.dispatchEvent(new CustomEvent("menuOpened"))}function An(e,t,n){e.classList.contains("transition-transform")||e.classList.add("transition-transform"),t.checked=!1,e.classList.remove("translate-x-0"),e.classList.add("translate-x-full"),n.style.display="none",e.dispatchEvent(new CustomEvent("menuClosed"))}function xn(e,t){const n=t.getElementById("copy-container");if(!n)return;n.classList.remove("hidden");const r=document.createElement("div");r.className="copy-item pulse-effect",r.innerHTML=`\n

      ${e}

      \n \n \n \n \n \n `,setTimeout((()=>{r.classList.remove("pulse-effect")}),1e4),r.style.cssText="\n max-width: 100px;\n border-left: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n align-items: center;\n transition: max-width 0.2s ease;\n ",r.addEventListener("click",(()=>{n.querySelectorAll(".copy-item").forEach((e=>{e!==r&&e.classList.remove("expanded")})),r.classList.toggle("expanded"),r.classList.contains("expanded")?(r.style.maxWidth="100%",r.style.whiteSpace="normal"):(r.style.maxWidth="100px",r.style.whiteSpace="nowrap")})),r.querySelector(".close-btn").addEventListener("click",(()=>{n.removeChild(r),0===n.children.length&&n.classList.add("hidden")})),n.insertBefore(r,n.firstChild)}let On,wn;function Rn(e){const t=e.querySelector("#markdown-preview");return t.innerHTML=vn,t}const In="https://tinymlbackend3.azurewebsites.net/",Dn=6e3,kn="chapter_progress_data",Mn=(e,t)=>t.some((t=>e instanceof t));let Pn,Ln;const Fn=new WeakMap,Bn=new WeakMap,Un=new WeakMap;let Gn={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Fn.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Vn(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function zn(e){Gn=e(Gn)}function Hn(e){return"function"==typeof e?(t=e,(Ln||(Ln=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(qn(this),e),Vn(this.request)}:function(...e){return Vn(t.apply(qn(this),e))}):(e instanceof IDBTransaction&&function(e){if(Fn.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",a),e.removeEventListener("abort",a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",a),e.addEventListener("abort",a)}));Fn.set(e,t)}(e),Mn(e,Pn||(Pn=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Gn):e);var t}function Vn(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",a)},i=()=>{t(Vn(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",a)}));return Un.set(t,e),t}(e);if(Bn.has(e))return Bn.get(e);const t=Hn(e);return t!==e&&(Bn.set(e,t),Un.set(t,e)),t}const qn=e=>Un.get(e),Yn=["get","getKey","getAll","getAllKeys","count"],jn=["put","add","delete","clear"],$n=new Map;function Wn(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if($n.get(t))return $n.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=jn.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!Yn.includes(n))return;const a=async function(e,...t){const a=this.transaction(e,i?"readwrite":"readonly");let o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return $n.set(t,a),a}zn((e=>({...e,get:(t,n,r)=>Wn(t,n)||e.get(t,n,r),has:(t,n)=>!!Wn(t,n)||e.has(t,n)})));const Kn=["continue","continuePrimaryKey","advance"],Qn={},Zn=new WeakMap,Xn=new WeakMap,Jn={get(e,t){if(!Kn.includes(t))return e[t];let n=Qn[t];return n||(n=Qn[t]=function(...e){Zn.set(this,Xn.get(this)[t](...e))}),n}};async function*er(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,Jn);for(Xn.set(n,t),Un.set(n,qn(t));t;)yield n,t=await(Zn.get(n)||t.continue()),Zn.delete(n)}function tr(e,t){return t===Symbol.asyncIterator&&Mn(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Mn(e,[IDBIndex,IDBObjectStore])}zn((e=>({...e,get:(t,n,r)=>tr(t,n)?er:e.get(t,n,r),has:(t,n)=>tr(t,n)||e.has(t,n)})));const nr=' \n
      \n\x3c!-- --\x3e\n \x3c!-- Buttons with icons --\x3e\n \n\n\n
      ';function rr(e,t,n){try{let r;if("success"===n)return r=e.querySelector("#success-notice"),r||(r=document.createElement("div"),r.id="success-notice",r.style.display="none",r.style.position="fixed",r.style.bottom="5px",r.style.left="5px",r.style.background="lightgreen",r.style.padding="5px",r.style.borderRadius="5px",r.style.zIndex="9999",e.appendChild(r)),r.textContent=t,r.style.display="block",setTimeout((()=>{r.style.display="none"}),2e3),"none";r=e.querySelector("#error-notice"),r||(r=document.createElement("div"),r.id="error-notice",r.style.display="none",r.style.position="fixed",r.style.bottom="5px",r.style.left="5px",r.style.background="lightcoral",r.style.padding="5px",r.style.borderRadius="5px",r.style.zIndex="9999",e.appendChild(r)),r.textContent=t,r.style.display="block",setTimeout((()=>{r.style.display="none"}),2e3)}catch(e){console.error("Error in alert function:",e)}}function ir(e){const t=e.querySelector("#message-container");t&&requestAnimationFrame((()=>{t.scrollTop=t.scrollHeight}))}function ar(e,t,n="",r=""){const i=e.querySelector(`#${t}`);if(!i)return console.error("Element with ID "+t+" not found."),null;const a=i.cloneNode(!0);if(""!==n?a.id=n:a.removeAttribute("id"),""!==r){const t=e.querySelector(`#${r}`);if(t)if("message-container"===r){const n=e.querySelector("#scroll-target");t.insertBefore(a,n)}else t.appendChild(a);else console.error("Target container with ID "+r+" not found.")}return a}function or(e){e.id=`id-${performance.now().toString().replace(".","")}-${Math.random().toString(36).substring(2,15)}`,e.querySelectorAll("*").forEach(or)}function sr(e,t,n){const r=document.createElement("div");r.setAttribute("class","flex justify-between");const i=document.createElement("div");i.setAttribute("class","flex items-center"),n instanceof Element&&i.appendChild(n);const a=document.createElement("div");a.innerHTML=nr,r.appendChild(i),r.appendChild(a),t.appendChild(r),function(e,t){const n=t.querySelector("#copy-btn"),r=t.querySelector("#download-btn"),i=t.querySelector("#share-btn"),a=t.querySelector("#markdown-preview");n.addEventListener("click",(function(){navigator.clipboard.writeText(a.textContent).then((()=>{rr(e,"Text copied to clipboard!","success")})).catch((e=>{console.error("Failed to copy: ",e)}))})),r.addEventListener("click",(function(){const e=a.textContent,t=new Blob([e],{type:"text/plain"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download="download.txt",document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)})),i.addEventListener("click",(function(){const e=`mailto:?subject=${encodeURIComponent("Here's something I wanted to share with you")}&body=${encodeURIComponent(a.textContent)}`;window.location.href=e}))}(e,t)}const lr=["Vectorizing query","Cosine searching vector database","Retrieving relevant sentences","Calling LLM model","Returning results"],cr=["Retrieving relevant context from website","Calling LLM model","Returning results"],dr=["Retrieving relevant sentences","Checking conversation history","Calling LLM model","Returning results"],ur=["Retrieving relevant sentences from website","Generating possible questions","Calling LLM model","Returning results"],pr=["Retrieving relevant papers from Arxiv","Generating possible questions","Calling LLM model","Returning results"];let mr="Please try to provide useful, helpful and actionable answers. Stick to topics related to MLSysBook.AI: Principles and Practices of Machine Learning Systems Engineering.";const gr={prompt:"Explain the following quote to a beginner, including any necessary background knowledge, in markdown format. Do not repeat the quote or add commentary. For important keywords or phrases in your response that also have wikipedia pages, you must surround them with double slashes. For example '\\machine learning\\'. Each response MUST have at least two keywords or phrases. At the end of your response, place '%%%' 3 percent signs, and then write 2 to 3 followup questions that the user might ask to expand their knowledge.",quote:"",comments:"",background_knowledge:"",power_up:20,understanding:3},_r={prompt:'\nCreate a quiz from a CHAPTER SECTION, guided by the user\'s understanding level (1-10). The quiz should have 3 questions in JSON format:\n- Q1 & Q2: Directly related to the quote\'s content.\n- Q3: Requires deeper inference.\n\nUse this JSON template, modifying it as needed:\n\n{\n "questions": [\n {\n "question": "Q1 here?",\n "answers": [\n {"text": "A1", "correct": true/false, "explanation": "explanation"},\n {"text": "A2", "correct": false, "explanation": "explanation"},\n {"text": "A3", "correct": false, "explanation": "explanation"},\n ]\n },\n {"question": "Q2 here?", "answers": [/* options */]},\n {"question": "Q3 here?", "answers": [/* options */]}\n ]\n}\n\n\nAdjust content for quote, understanding level, questions, and answers.\nCHAPTER SECTION: ',quote:"",comments:"",power_up:20,understanding:3},hr={prompt:"Given the following BACKGROUND_KNOWLEDGE, and a student's QUESTION, answer the QUESTION. You may use the BACKGROUND_KNOWLEDGE as reference. Otherwise, you can be creative and respond in a way that always ensure you MUST answer the question. For important keywords or phrases in your response that also have wikipedia pages, you must surround them with double slashes. For example '\\machine learning\\'. Each response MUST have at least two keywords or phrases. At the end of your response, place '%%%' 3 percent signs, and then write 2 to 3 followup questions that the user might ask to expand their knowledge. Return as markdown",conversation_history:"",question:"",query:"",quote:"",background_knowledge:"",comments:"",power_up:20,understanding:3};function fr(e="explain"){let t,n;if("explain"===e)t={...gr};else if("quiz"===e)t={..._r};else{if("query"!==e)throw new Error(`Unsupported config type: ${e}`);t={...hr}}return n={...t},{set_field:function(e,t){if(!n.hasOwnProperty(e))throw new Error(`Field ${e} does not exist in config.`);n[e]=t},get_field:function(e){if(n.hasOwnProperty(e))return n[e];throw new Error(`Field ${e} does not exist in config.`)},make_field:function(e,t){n.hasOwnProperty(e)?this.set_field(e,t):n[e]=t},return_all_fields:function(){return n},reset_fields:function(){n={...t}}}}const br=In+"query_agent_stream_tiny",Er=In+"api/query_agent_stream_powerful",Sr=In+"api/query_agent_conversational_memory";async function*yr(e,t,n=!1,r=!1){let i=br;try{n&&(i=Er),r&&(i=Sr),console.log("i am url!",i);const a=await fetch(i,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify(e)});if(!a.ok)throw new Error(`HTTP error! Status: ${a.status}, response: ${a}`);const o=a.body.getReader(),s=new TextDecoder("utf-8");for(;;){const{done:e,value:t}=await o.read();if(e)break;let n=s.decode(t,{stream:!0});yield n}}catch(e){console.error("Failed to query agent:",e)}}const vr="tinyMLQuizDB",Tr=2,Cr="tinyMLQuizResults",Nr="quizAttempts",Ar="quizStats",xr="quizHighScores",Or="ongoing-incorrect-questions";function wr(){return new Promise(((e,t)=>{const n=indexedDB.open(vr,Tr);n.onerror=()=>t(n.error),n.onsuccess=()=>e(n.result),n.onupgradeneeded=e=>{const t=e.target.result;if(t.objectStoreNames.contains(Cr)||t.createObjectStore(Cr,{keyPath:"id"}),t.objectStoreNames.contains(Nr)||t.createObjectStore(Nr,{keyPath:"date"}).createIndex("dateIndex","date",{unique:!0}),!t.objectStoreNames.contains(Ar)){const e=t.createObjectStore(Ar,{keyPath:"id",autoIncrement:!0});e.createIndex("dateIndex","date"),e.createIndex("scoreIndex","score")}t.objectStoreNames.contains(xr)||t.createObjectStore(xr,{keyPath:"quizTitle"}).createIndex("scoreIndex","percentageScore",{unique:!1})}}))}async function Rr(e,t){if(!e)throw new Error("Quiz title is required for updating high score");const n=await wr();return new Promise(((r,i)=>{const a=n.transaction(xr,"readwrite"),o=a.objectStore(xr);try{const n={quizTitle:e,score:t,percentageScore:(t.correct/t.total*100).toFixed(2),achievedAt:(new Date).toISOString()},a=o.put(n);a.onsuccess=()=>r(),a.onerror=()=>i(a.error)}catch(e){i(e)}a.oncomplete=()=>r(),a.onerror=()=>i(a.error)}))}async function Ir(e,t){const n=await wr();return new Promise(((r,i)=>{const a=n.transaction(e,"readwrite").objectStore(e).add(t);a.onsuccess=()=>r(a.result),a.onerror=()=>i(a.error)}))}async function Dr(){const e=await wr(),t=(new Date).toISOString().split("T")[0];return new Promise(((n,r)=>{const i=e.transaction(Nr,"readwrite"),a=i.objectStore(Nr),o=a.get(t);o.onsuccess=()=>{const e=o.result||{date:t,attempts:0};e.attempts+=1,a.put(e)},i.oncomplete=()=>n(),i.onerror=()=>r(i.error)}))}async function kr(e){const t=await wr();return new Promise(((n,r)=>{const i=t.transaction(Cr,"readwrite"),a=i.objectStore(Cr),o=a.get(Or);o.onsuccess=()=>{const t=o.result;let n;if(t){const r=new Map;t.questions.forEach((e=>{r.set(e.question,e)})),e.forEach((e=>{r.set(e.question,e)})),n=Array.from(r.values())}else n=e;const r={id:Or,questions:n,lastUpdated:(new Date).toISOString()};a.put(r)},i.oncomplete=()=>n(),i.onerror=()=>r(i.error)}))}async function Mr(e,t,n){if(!n)return void console.error("Quiz title is required");const r=(new Date).toISOString(),i=r.split("T")[0];try{await Promise.all([kr(e),Rr(n,t),Ir(Ar,{date:i,timestamp:r,title:n,score:t,percentageScore:(t.correct/t.total*100).toFixed(2)})])}catch(e){throw console.error("Error in saveQuizResult:",e),e}}async function Pr(){const e=await wr();return new Promise(((t,n)=>{const r=e.transaction(xr,"readonly").objectStore(xr).getAll();r.onsuccess=()=>{const e=r.result,n=new Map;e.forEach((e=>{const t=e.quizTitle.match(/^(\d+)\./);if(t){const r=parseInt(t[1]),i=parseFloat(e.percentageScore)>=60;n.has(r)||n.set(r,{passedQuizzes:0,totalAttempted:0});const a=n.get(r);a.totalAttempted++,i&&a.passedQuizzes++}})),t(n)},r.onerror=()=>n(r.error)}))}function Lr(e){return e+.5|0}const Fr=(e,t,n)=>Math.max(Math.min(e,n),t);function Br(e){return Fr(Lr(2.55*e),0,255)}function Ur(e){return Fr(Lr(255*e),0,255)}function Gr(e){return Fr(Lr(e/2.55)/100,0,1)}function zr(e){return Fr(Lr(100*e),0,100)}const Hr={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Vr=[..."0123456789ABCDEF"],qr=e=>Vr[15&e],Yr=e=>Vr[(240&e)>>4]+Vr[15&e],jr=e=>(240&e)>>4==(15&e);const $r=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Wr(e,t,n){const r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function Kr(e,t,n){const r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function Qr(e,t,n){const r=Wr(e,1,.5);let i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function Zr(e){const t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2;let s,l,c;return i!==a&&(c=i-a,l=o>.5?c/(2-i-a):c/(i+a),s=function(e,t,n,r,i){return e===i?(t-n)/r+(te<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,oi=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function si(e,t,n){if(e){let r=Zr(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,0===t?360:1)),r=Jr(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function li(e,t){return e?Object.assign(t||{},e):e}function ci(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=Ur(e[3]))):(t=li(e,{r:0,g:0,b:0,a:1})).a=Ur(t.a),t}function di(e){return"r"===e.charAt(0)?function(e){const t=ii.exec(e);let n,r,i,a=255;if(t){if(t[7]!==n){const e=+t[7];a=t[8]?Br(e):Fr(255*e,0,255)}return n=+t[1],r=+t[3],i=+t[5],n=255&(t[2]?Br(n):Fr(n,0,255)),r=255&(t[4]?Br(r):Fr(r,0,255)),i=255&(t[6]?Br(i):Fr(i,0,255)),{r:n,g:r,b:i,a}}}(e):function(e){const t=$r.exec(e);let n,r=255;if(!t)return;t[5]!==n&&(r=t[6]?Br(+t[5]):Ur(+t[5]));const i=ei(+t[2]),a=+t[3]/100,o=+t[4]/100;return n="hwb"===t[1]?function(e,t,n){return Xr(Qr,e,t,n)}(i,a,o):"hsv"===t[1]?function(e,t,n){return Xr(Kr,e,t,n)}(i,a,o):Jr(i,a,o),{r:n[0],g:n[1],b:n[2],a:r}}(e)}class ui{constructor(e){if(e instanceof ui)return e;const t=typeof e;let n;var r,i,a;"object"===t?n=ci(e):"string"===t&&(a=(r=e).length,"#"===r[0]&&(4===a||5===a?i={r:255&17*Hr[r[1]],g:255&17*Hr[r[2]],b:255&17*Hr[r[3]],a:5===a?17*Hr[r[4]]:255}:7!==a&&9!==a||(i={r:Hr[r[1]]<<4|Hr[r[2]],g:Hr[r[3]]<<4|Hr[r[4]],b:Hr[r[5]]<<4|Hr[r[6]],a:9===a?Hr[r[7]]<<4|Hr[r[8]]:255})),n=i||function(e){ri||(ri=function(){const e={},t=Object.keys(ni),n=Object.keys(ti);let r,i,a,o,s;for(r=0;r>16&255,a>>8&255,255&a]}return e}(),ri.transparent=[0,0,0,0]);const t=ri[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:4===t.length?t[3]:255}}(e)||di(e)),this._rgb=n,this._valid=!!n}get valid(){return this._valid}get rgb(){var e=li(this._rgb);return e&&(e.a=Gr(e.a)),e}set rgb(e){this._rgb=ci(e)}rgbString(){return this._valid?function(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Gr(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}(this._rgb):void 0}hexString(){return this._valid?function(e){var t=(e=>jr(e.r)&&jr(e.g)&&jr(e.b)&&jr(e.a))(e)?qr:Yr;return e?"#"+t(e.r)+t(e.g)+t(e.b)+((e,t)=>e<255?t(e):"")(e.a,t):void 0}(this._rgb):void 0}hslString(){return this._valid?function(e){if(!e)return;const t=Zr(e),n=t[0],r=zr(t[1]),i=zr(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${Gr(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}(this._rgb):void 0}mix(e,t){if(e){const n=this.rgb,r=e.rgb;let i;const a=t===i?.5:t,o=2*a-1,s=n.a-r.a,l=((o*s==-1?o:(o+s)/(1+o*s))+1)/2;i=1-l,n.r=255&l*n.r+i*r.r+.5,n.g=255&l*n.g+i*r.g+.5,n.b=255&l*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=function(e,t,n){const r=oi(Gr(e.r)),i=oi(Gr(e.g)),a=oi(Gr(e.b));return{r:Ur(ai(r+n*(oi(Gr(t.r))-r))),g:Ur(ai(i+n*(oi(Gr(t.g))-i))),b:Ur(ai(a+n*(oi(Gr(t.b))-a))),a:e.a+n*(t.a-e.a)}}(this._rgb,e._rgb,t)),this}clone(){return new ui(this.rgb)}alpha(e){return this._rgb.a=Ur(e),this}clearer(e){return this._rgb.a*=1-e,this}greyscale(){const e=this._rgb,t=Lr(.3*e.r+.59*e.g+.11*e.b);return e.r=e.g=e.b=t,this}opaquer(e){return this._rgb.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return si(this._rgb,2,e),this}darken(e){return si(this._rgb,2,-e),this}saturate(e){return si(this._rgb,1,e),this}desaturate(e){return si(this._rgb,1,-e),this}rotate(e){return function(e,t){var n=Zr(e);n[0]=ei(n[0]+t),n=Jr(n),e.r=n[0],e.g=n[1],e.b=n[2]}(this._rgb,e),this}}function pi(){}const mi=(()=>{let e=0;return()=>e++})();function gi(e){return null==e}function _i(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return"[object"===t.slice(0,7)&&"Array]"===t.slice(-6)}function hi(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function fi(e){return("number"==typeof e||e instanceof Number)&&isFinite(+e)}function bi(e,t){return fi(e)?e:t}function Ei(e,t){return void 0===e?t:e}const Si=(e,t)=>"string"==typeof e&&e.endsWith("%")?parseFloat(e)/100*t:+e;function yi(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)}function vi(e,t,n,r){let i,a,o;if(_i(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function Ii(e,t){const n=Ri[t]||(Ri[t]=function(e){const t=function(e){const t=e.split("."),n=[];let r="";for(const e of t)r+=e,r.endsWith("\\")?r=r.slice(0,-1)+".":(n.push(r),r="");return n}(e);return e=>{for(const n of t){if(""===n)break;e=e&&e[n]}return e}}(t));return n(e)}function Di(e){return e.charAt(0).toUpperCase()+e.slice(1)}const ki=e=>void 0!==e,Mi=e=>"function"==typeof e,Pi=(e,t)=>{if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0},Li=Math.PI,Fi=2*Li,Bi=Fi+Li,Ui=Number.POSITIVE_INFINITY,Gi=Li/180,zi=Li/2,Hi=Li/4,Vi=2*Li/3,qi=Math.log10,Yi=Math.sign;function ji(e,t,n){return Math.abs(e-t)l&&c=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function ia(e,t,n){n=n||(n=>e[n]1;)r=a+i>>1,n(r)?a=r:i=r;return{lo:a,hi:i}}const aa=(e,t,n,r)=>ia(e,n,r?r=>{const i=e[r][t];return ie[r][t]ia(e,n,(r=>e[r][t]>=n)),sa=["push","pop","shift","splice","unshift"];function la(e,t){const n=e._chartjs;if(!n)return;const r=n.listeners,i=r.indexOf(t);-1!==i&&r.splice(i,1),r.length>0||(sa.forEach((t=>{delete e[t]})),delete e._chartjs)}const ca="undefined"==typeof window?function(e){return e()}:window.requestAnimationFrame;function da(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,ca.call(window,(()=>{r=!1,e.apply(t,n)})))}}const ua=e=>"start"===e?"left":"end"===e?"right":"center",pa=(e,t,n)=>"start"===e?t:"end"===e?n:(t+n)/2;const ma=e=>0===e||1===e,ga=(e,t,n)=>-Math.pow(2,10*(e-=1))*Math.sin((e-t)*Fi/n),_a=(e,t,n)=>Math.pow(2,-10*e)*Math.sin((e-t)*Fi/n)+1,ha={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>1-Math.cos(e*zi),easeOutSine:e=>Math.sin(e*zi),easeInOutSine:e=>-.5*(Math.cos(Li*e)-1),easeInExpo:e=>0===e?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>ma(e)?e:e<.5?.5*Math.pow(2,10*(2*e-1)):.5*(2-Math.pow(2,-10*(2*e-1))),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>ma(e)?e:ga(e,.075,.3),easeOutElastic:e=>ma(e)?e:_a(e,.075,.3),easeInOutElastic(e){const t=.1125;return ma(e)?e:e<.5?.5*ga(2*e,t,.45):.5+.5*_a(2*e-1,t,.45)},easeInBack(e){const t=1.70158;return e*e*((t+1)*e-t)},easeOutBack(e){const t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:e=>1-ha.easeOutBounce(1-e),easeOutBounce(e){const t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?.5*ha.easeInBounce(2*e):.5*ha.easeOutBounce(2*e-1)+.5};function fa(e){if(e&&"object"==typeof e){const t=e.toString();return"[object CanvasPattern]"===t||"[object CanvasGradient]"===t}return!1}function ba(e){return fa(e)?e:new ui(e)}function Ea(e){return fa(e)?e:new ui(e).saturate(.5).darken(.1).hexString()}const Sa=["x","y","borderWidth","radius","tension"],ya=["color","borderColor","backgroundColor"],va=new Map;function Ta(e,t,n){return function(e,t){t=t||{};const n=e+JSON.stringify(t);let r=va.get(n);return r||(r=new Intl.NumberFormat(e,t),va.set(n,r)),r}(t,n).format(e)}const Ca={values:e=>_i(e)?e:""+e,numeric(e,t,n){if(0===e)return"0";const r=this.chart.options.locale;let i,a=e;if(n.length>1){const t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>1e15)&&(i="scientific"),a=function(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}(e,n)}const o=qi(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),l={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(l,this.options.ticks.format),Ta(e,r,l)},logarithmic(e,t,n){if(0===e)return"0";const r=n[t].significand||e/Math.pow(10,Math.floor(qi(e)));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?Ca.numeric.call(this,e,t,n):""}};var Na={formatters:Ca};const Aa=Object.create(null),xa=Object.create(null);function Oa(e,t){if(!t)return e;const n=t.split(".");for(let t=0,r=n.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>Ea(t.backgroundColor),this.hoverBorderColor=(e,t)=>Ea(t.borderColor),this.hoverColor=(e,t)=>Ea(t.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return wa(this,e,t)}get(e){return Oa(this,e)}describe(e,t){return wa(xa,e,t)}override(e,t){return wa(Aa,e,t)}route(e,t,n,r){const i=Oa(this,e),a=Oa(this,n),o="_"+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){const e=this[o],t=a[r];return hi(e)?Object.assign({},t,e):Ei(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach((e=>e(this)))}}var Ia=new Ra({_scriptable:e=>!e.startsWith("on"),_indexable:e=>"events"!==e,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(e){e.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>"onProgress"!==e&&"onComplete"!==e&&"fn"!==e}),e.set("animations",{colors:{type:"color",properties:ya},numbers:{type:"number",properties:Sa}}),e.describe("animations",{_fallback:"animation"}),e.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>0|e}}}})},function(e){e.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(e){e.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Na.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),e.route("scale.ticks","color","","color"),e.route("scale.grid","color","","borderColor"),e.route("scale.border","color","","borderColor"),e.route("scale.title","color","","color"),e.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&"callback"!==e&&"parser"!==e,_indexable:e=>"borderDash"!==e&&"tickBorderDash"!==e&&"dash"!==e}),e.describe("scales",{_fallback:"scale"}),e.describe("scale.ticks",{_scriptable:e=>"backdropPadding"!==e&&"callback"!==e,_indexable:e=>"backdropPadding"!==e})}]);function Da(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function ka(e,t,n){const r=e.currentDevicePixelRatio,i=0!==n?Math.max(n/2,.5):0;return Math.round((t-i)*r)/r+i}function Ma(e,t){(t||e)&&((t=t||e.getContext("2d")).save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function Pa(e,t,n,r){La(e,t,n,r,null)}function La(e,t,n,r,i){let a,o,s,l,c,d,u,p;const m=t.pointStyle,g=t.rotation,_=t.radius;let h=(g||0)*Gi;if(m&&"object"==typeof m&&(a=m.toString(),"[object HTMLImageElement]"===a||"[object HTMLCanvasElement]"===a))return e.save(),e.translate(n,r),e.rotate(h),e.drawImage(m,-m.width/2,-m.height/2,m.width,m.height),void e.restore();if(!(isNaN(_)||_<=0)){switch(e.beginPath(),m){default:i?e.ellipse(n,r,i/2,_,0,0,Fi):e.arc(n,r,_,0,Fi),e.closePath();break;case"triangle":d=i?i/2:_,e.moveTo(n+Math.sin(h)*d,r-Math.cos(h)*_),h+=Vi,e.lineTo(n+Math.sin(h)*d,r-Math.cos(h)*_),h+=Vi,e.lineTo(n+Math.sin(h)*d,r-Math.cos(h)*_),e.closePath();break;case"rectRounded":c=.516*_,l=_-c,o=Math.cos(h+Hi)*l,u=Math.cos(h+Hi)*(i?i/2-c:l),s=Math.sin(h+Hi)*l,p=Math.sin(h+Hi)*(i?i/2-c:l),e.arc(n-u,r-s,c,h-Li,h-zi),e.arc(n+p,r-o,c,h-zi,h),e.arc(n+u,r+s,c,h,h+zi),e.arc(n-p,r+o,c,h+zi,h+Li),e.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*_,d=i?i/2:l,e.rect(n-d,r-l,2*d,2*l);break}h+=Hi;case"rectRot":u=Math.cos(h)*(i?i/2:_),o=Math.cos(h)*_,s=Math.sin(h)*_,p=Math.sin(h)*(i?i/2:_),e.moveTo(n-u,r-s),e.lineTo(n+p,r-o),e.lineTo(n+u,r+s),e.lineTo(n-p,r+o),e.closePath();break;case"crossRot":h+=Hi;case"cross":u=Math.cos(h)*(i?i/2:_),o=Math.cos(h)*_,s=Math.sin(h)*_,p=Math.sin(h)*(i?i/2:_),e.moveTo(n-u,r-s),e.lineTo(n+u,r+s),e.moveTo(n+p,r-o),e.lineTo(n-p,r+o);break;case"star":u=Math.cos(h)*(i?i/2:_),o=Math.cos(h)*_,s=Math.sin(h)*_,p=Math.sin(h)*(i?i/2:_),e.moveTo(n-u,r-s),e.lineTo(n+u,r+s),e.moveTo(n+p,r-o),e.lineTo(n-p,r+o),h+=Hi,u=Math.cos(h)*(i?i/2:_),o=Math.cos(h)*_,s=Math.sin(h)*_,p=Math.sin(h)*(i?i/2:_),e.moveTo(n-u,r-s),e.lineTo(n+u,r+s),e.moveTo(n+p,r-o),e.lineTo(n-p,r+o);break;case"line":o=i?i/2:Math.cos(h)*_,s=Math.sin(h)*_,e.moveTo(n-o,r-s),e.lineTo(n+o,r+s);break;case"dash":e.moveTo(n,r),e.lineTo(n+Math.cos(h)*(i?i/2:_),r+Math.sin(h)*_);break;case!1:e.closePath()}e.fill(),t.borderWidth>0&&e.stroke()}}function Fa(e,t,n){return n=n||.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&""!==a.strokeColor;let l,c;for(e.save(),e.font=i.string,function(e,t){t.translation&&e.translate(t.translation[0],t.translation[1]),gi(t.rotation)||e.rotate(t.rotation),t.color&&(e.fillStyle=t.color),t.textAlign&&(e.textAlign=t.textAlign),t.textBaseline&&(e.textBaseline=t.textBaseline)}(e,a),l=0;l+e||0;function Qa(e,t){const n={},r=hi(t),i=r?Object.keys(t):t,a=hi(e)?r?n=>Ei(e[n],e[t[n]]):t=>e[t]:()=>e;for(const e of i)n[e]=Ka(a(e));return n}function Za(e){return Qa(e,{top:"y",right:"x",bottom:"y",left:"x"})}function Xa(e){return Qa(e,["topLeft","topRight","bottomLeft","bottomRight"])}function Ja(e){const t=Za(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function eo(e,t){e=e||{},t=t||Ia.font;let n=Ei(e.size,t.size);"string"==typeof n&&(n=parseInt(n,10));let r=Ei(e.style,t.style);r&&!(""+r).match($a)&&(console.warn('Invalid font style specified: "'+r+'"'),r=void 0);const i={family:Ei(e.family,t.family),lineHeight:Wa(Ei(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:Ei(e.weight,t.weight),string:""};return i.string=function(e){return!e||gi(e.size)||gi(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(i),i}function to(e,t,n,r){let i,a,o,s=!0;for(i=0,a=e.length;ie[0])){const a=n||e;void 0===r&&(r=_o("_fallback",e));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>ro([n,...e],t,a,r)};return new Proxy(o,{deleteProperty:(t,n)=>(delete t[n],delete t._keys,delete e[0][n],!0),get:(n,r)=>lo(n,r,(()=>function(e,t,n,r){let i;for(const a of t)if(i=_o(oo(a,e),n),void 0!==i)return so(e,i)?mo(n,r,e,i):i}(r,t,e,n))),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e._scopes[0],t),getPrototypeOf:()=>Reflect.getPrototypeOf(e[0]),has:(e,t)=>ho(e).includes(t),ownKeys:e=>ho(e),set(e,t,n){const r=e._storage||(e._storage=i());return e[t]=r[t]=n,delete e._keys,!0}})}function io(e,t,n,r){const i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:ao(e,r),setContext:t=>io(e,t,n,r),override:i=>io(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty:(t,n)=>(delete t[n],delete e[n],!0),get:(e,t,n)=>lo(e,t,(()=>function(e,t,n){const{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e;let s=r[t];return Mi(s)&&o.isScriptable(t)&&(s=function(e,t,n,r){const{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw new Error("Recursion detected: "+Array.from(s).join("->")+"->"+e);s.add(e);let l=t(a,o||r);return s.delete(e),so(e,l)&&(l=mo(i._scopes,i,e,l)),l}(t,s,e,n)),_i(s)&&s.length&&(s=function(e,t,n,r){const{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(void 0!==a.index&&r(e))return t[a.index%t.length];if(hi(t[0])){const n=t,r=i._scopes.filter((e=>e!==n));t=[];for(const l of n){const n=mo(r,i,e,l);t.push(io(n,a,o&&o[e],s))}}return t}(t,s,e,o.isIndexable)),so(t,s)&&(s=io(s,i,a&&a[t],o)),s}(e,t,n))),getOwnPropertyDescriptor:(t,n)=>t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n),getPrototypeOf:()=>Reflect.getPrototypeOf(e),has:(t,n)=>Reflect.has(e,n),ownKeys:()=>Reflect.ownKeys(e),set:(t,n,r)=>(e[n]=r,delete t[n],!0)})}function ao(e,t={scriptable:!0,indexable:!0}){const{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:Mi(n)?n:()=>n,isIndexable:Mi(r)?r:()=>r}}const oo=(e,t)=>e?e+Di(t):t,so=(e,t)=>hi(t)&&"adapters"!==e&&(null===Object.getPrototypeOf(t)||t.constructor===Object);function lo(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||"constructor"===t)return e[t];const r=n();return e[t]=r,r}function co(e,t,n){return Mi(e)?e(t,n):e}const uo=(e,t)=>!0===e?t:"string"==typeof e?Ii(t,e):void 0;function po(e,t,n,r,i){for(const a of t){const t=uo(n,a);if(t){e.add(t);const a=co(t._fallback,n,i);if(void 0!==a&&a!==n&&a!==r)return a}else if(!1===t&&void 0!==r&&n!==r)return null}return!1}function mo(e,t,n,r){const i=t._rootScopes,a=co(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let l=go(s,o,n,a||n,r);return null!==l&&(void 0===a||a===n||(l=go(s,o,a,l,r),null!==l))&&ro(Array.from(s),[""],i,a,(()=>function(e,t,n){const r=e._getTarget();t in r||(r[t]={});const i=r[t];return _i(i)&&hi(n)?n:i||{}}(t,n,r)))}function go(e,t,n,r,i){for(;n;)n=po(e,t,n,r,i);return n}function _o(e,t){for(const n of t){if(!n)continue;const t=n[e];if(void 0!==t)return t}}function ho(e){let t=e._keys;return t||(t=e._keys=function(e){const t=new Set;for(const n of e)for(const e of Object.keys(n).filter((e=>!e.startsWith("_"))))t.add(e);return Array.from(t)}(e._scopes)),t}const fo=Number.EPSILON||1e-14,bo=(e,t)=>t"x"===e?"y":"x";function So(e,t,n,r){const i=e.skip?t:e,a=t,o=n.skip?t:n,s=Xi(a,i),l=Xi(o,a);let c=s/(s+l),d=l/(s+l);c=isNaN(c)?0:c,d=isNaN(d)?0:d;const u=r*c,p=r*d;return{previous:{x:a.x-u*(o.x-i.x),y:a.y-u*(o.y-i.y)},next:{x:a.x+p*(o.x-i.x),y:a.y+p*(o.y-i.y)}}}function yo(e,t,n){return Math.max(Math.min(e,n),t)}function vo(e,t,n,r,i){let a,o,s,l;if(t.spanGaps&&(e=e.filter((e=>!e.skip))),"monotone"===t.cubicInterpolationMode)!function(e,t="x"){const n=Eo(t),r=e.length,i=Array(r).fill(0),a=Array(r);let o,s,l,c=bo(e,0);for(o=0;oe.ownerDocument.defaultView.getComputedStyle(e,null),xo=["top","right","bottom","left"];function Oo(e,t,n){const r={};n=n?"-"+n:"";for(let i=0;i<4;i++){const a=xo[i];r[a]=parseFloat(e[t+"-"+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}const wo=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function Ro(e,t){if("native"in e)return e;const{canvas:n,currentDevicePixelRatio:r}=t,i=Ao(n),a="border-box"===i.boxSizing,o=Oo(i,"padding"),s=Oo(i,"border","width"),{x:l,y:c,box:d}=function(e,t){const n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r;let o,s,l=!1;if(wo(i,a,e.target))o=i,s=a;else{const e=t.getBoundingClientRect();o=r.clientX-e.left,s=r.clientY-e.top,l=!0}return{x:o,y:s,box:l}}(e,n),u=o.left+(d&&s.left),p=o.top+(d&&s.top);let{width:m,height:g}=t;return a&&(m-=o.width+s.width,g-=o.height+s.height),{x:Math.round((l-u)/m*n.width/r),y:Math.round((c-p)/g*n.height/r)}}const Io=e=>Math.round(10*e)/10;function Do(e,t,n){const r=t||1,i=Math.floor(e.height*r),a=Math.floor(e.width*r);e.height=Math.floor(e.height),e.width=Math.floor(e.width);const o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),(e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a)&&(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0)}const ko=function(){let e=!1;try{const t={get passive(){return e=!0,!1}};To()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch(e){}return e}();function Mo(e,t){const n=function(e,t){return Ao(e).getPropertyValue(t)}(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function Po(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function Lo(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:"middle"===r?n<.5?e.y:t.y:"after"===r?n<1?e.y:t.y:n>0?t.y:e.y}}function Fo(e,t,n,r){const i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=Po(e,i,n),s=Po(i,a,n),l=Po(a,t,n),c=Po(o,s,n),d=Po(s,l,n);return Po(c,d,n)}function Bo(e,t,n){return e?function(e,t){return{x:n=>e+e+t-n,setWidth(e){t=e},textAlign:e=>"center"===e?e:"right"===e?"left":"right",xPlus:(e,t)=>e-t,leftForLtr:(e,t)=>e-t}}(t,n):{x:e=>e,setWidth(e){},textAlign:e=>e,xPlus:(e,t)=>e+t,leftForLtr:(e,t)=>e}}function Uo(e,t){let n,r;"ltr"!==t&&"rtl"!==t||(n=e.canvas.style,r=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=r)}function Go(e,t){void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function zo(e){return"angle"===e?{between:ta,compare:Ji,normalize:ea}:{between:ra,compare:(e,t)=>e-t,normalize:e=>e}}function Ho({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n==0,style:i}}function Vo(e,t,n){if(!n)return[e];const{property:r,start:i,end:a}=n,o=t.length,{compare:s,between:l,normalize:c}=zo(r),{start:d,end:u,loop:p,style:m}=function(e,t,n){const{property:r,start:i,end:a}=n,{between:o,normalize:s}=zo(r),l=t.length;let c,d,{start:u,end:p,loop:m}=e;if(m){for(u+=l,p+=l,c=0,d=l;cr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)})))}_refresh(){this._request||(this._running=!0,this._request=ca.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(e=Date.now()){let t=0;this._charts.forEach(((n,r)=>{if(!n.running||!n.items.length)return;const i=n.items;let a,o=i.length-1,s=!1;for(;o>=0;--o)a=i[o],a._active?(a._total>n.duration&&(n.duration=a._total),a.tick(e),s=!0):(i[o]=i[i.length-1],i.pop());s&&(r.draw(),this._notify(r,n,e,"progress")),i.length||(n.running=!1,this._notify(r,n,e,"complete"),n.initial=!1),t+=i.length})),this._lastDate=e,0===t&&(this._running=!1)}_getAnims(e){const t=this._charts;let n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){t&&t.length&&this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){const t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce(((e,t)=>Math.max(e,t._duration)),0),this._refresh())}running(e){if(!this._running)return!1;const t=this._charts.get(e);return!!(t&&t.running&&t.items.length)}stop(e){const t=this._charts.get(e);if(!t||!t.items.length)return;const n=t.items;let r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var $o=new jo;const Wo="transparent",Ko={boolean:(e,t,n)=>n>.5?t:e,color(e,t,n){const r=ba(e||Wo),i=r.valid&&ba(t||Wo);return i&&i.valid?i.mix(r,n).hexString():t},number:(e,t,n)=>e+(t-e)*n};class Qo{constructor(e,t,n,r){const i=t[n];r=to([e.to,r,i,e.from]);const a=to([e.from,i,r]);this._active=!0,this._fn=e.fn||Ko[e.type||typeof a],this._easing=ha[e.easing]||ha.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);const r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=to([e.to,t,r,e.from]),this._from=to([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to;let s;if(this._active=i!==o&&(a||t1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s))}wait(){const e=this._promises||(this._promises=[]);return new Promise(((t,n)=>{e.push({res:t,rej:n})}))}_notify(e){const t=e?"res":"rej",n=this._promises||[];for(let e=0;e{const i=e[r];if(!hi(i))return;const a={};for(const e of t)a[e]=i[e];(_i(i.properties)&&i.properties||[r]).forEach((e=>{e!==r&&n.has(e)||n.set(e,a)}))}))}_animateOptions(e,t){const n=t.options,r=function(e,t){if(!t)return;let n=e.options;if(n)return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n;e.options=t}(e,n);if(!r)return[];const i=this._createAnimations(r,n);return n.$shared&&function(e,t){const n=[],r=Object.keys(t);for(let t=0;t{e.options=n}),(()=>{})),i}_createAnimations(e,t){const n=this._properties,r=[],i=e.$animations||(e.$animations={}),a=Object.keys(t),o=Date.now();let s;for(s=a.length-1;s>=0;--s){const l=a[s];if("$"===l.charAt(0))continue;if("options"===l){r.push(...this._animateOptions(e,t));continue}const c=t[l];let d=i[l];const u=n.get(l);if(d){if(u&&d.active()){d.update(u,c,o);continue}d.cancel()}u&&u.duration?(i[l]=d=new Qo(u,e,l,c),r.push(d)):e[l]=c}return r}update(e,t){if(0===this._properties.size)return void Object.assign(e,t);const n=this._createAnimations(e,t);return n.length?($o.add(this._chart,n),!0):void 0}}function Xo(e,t){const n=e&&e.options||{},r=n.reverse,i=void 0===n.min?t:0,a=void 0===n.max?t:0;return{start:r?a:i,end:r?i:a}}function Jo(e,t){const n=[],r=e._getSortedDatasetMetas(t);let i,a;for(i=0,a=r.length;i0||!n&&t<0)return i.index}return null}function is(e,t){const{chart:n,_cachedMeta:r}=e,i=n._stacks||(n._stacks={}),{iScale:a,vScale:o,index:s}=r,l=a.axis,c=o.axis,d=function(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}(a,o,r),u=t.length;let p;for(let e=0;en[e].axis===t)).shift()}function os(e,t){const n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t=t||e._parsed;for(const e of t){const t=e._stacks;if(!t||void 0===t[r]||void 0===t[r][n])return;delete t[r][n],void 0!==t[r]._visualValues&&void 0!==t[r]._visualValues[n]&&delete t[r]._visualValues[n]}}}const ss=e=>"reset"===e||"none"===e,ls=(e,t)=>t?e:Object.assign({},e);class cs{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=ts(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&os(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>"x"===e?t:"r"===e?r:n,i=t.xAxisID=Ei(n.xAxisID,as(e,"x")),a=t.yAxisID=Ei(n.yAxisID,as(e,"y")),o=t.rAxisID=Ei(n.rAxisID,as(e,"r")),s=t.indexAxis,l=t.iAxisID=r(s,i,a,o),c=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(l),t.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&la(this._data,this),e._stacked&&os(e)}_dataCheck(){const e=this.getDataset(),t=e.data||(e.data=[]),n=this._data;if(hi(t)){const e=this._cachedMeta;this._data=function(e,t){const{iScale:n,vScale:r}=t,i="x"===n.axis?"x":"y",a="x"===r.axis?"x":"y",o=Object.keys(e),s=new Array(o.length);let l,c,d;for(l=0,c=o.length;l{const t="_onData"+Di(e),n=r[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,value(...e){const i=n.apply(this,e);return r._chartjs.listeners.forEach((n=>{"function"==typeof n[t]&&n[t](...e)})),i}})})))),this._syncList=[],this._data=t}var r}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const t=this._cachedMeta,n=this.getDataset();let r=!1;this._dataCheck();const i=t._stacked;t._stacked=ts(t.vScale,t),t.stack!==n.stack&&(r=!0,os(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(is(this,t._parsed),t._stacked=ts(t.vScale,t))}configure(){const e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){const{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis;let s,l,c,d=0===e&&t===r.length||n._sorted,u=e>0&&n._parsed[e-1];if(!1===this._parsing)n._parsed=r,n._sorted=!0,c=r;else{c=_i(r[e])?this.parseArrayData(n,r,e,t):hi(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);const i=()=>null===l[o]||u&&l[o]e&&!t.hidden&&t._stacked&&{keys:Jo(n,!0),values:null})(t,n,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(e){const{min:t,max:n,minDefined:r,maxDefined:i}=e.getUserBounds();return{min:r?t:Number.NEGATIVE_INFINITY,max:i?n:Number.POSITIVE_INFINITY}}(o);let u,p;function m(){p=r[u];const t=p[o.axis];return!fi(p[e.axis])||c>t||d=0;--u)if(!m()){this.updateRangeFromParsed(l,e,p,s);break}return l}getAllParsedValues(e){const t=this._cachedMeta._parsed,n=[];let r,i,a;for(r=0,i=t.length;r=0&&ethis.getContext(n,r,t)),d);return m.$shared&&(m.$shared=s,i[a]=Object.freeze(ls(m,s))),m}_resolveAnimations(e,t,n){const r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(!1!==r.options.animation){const r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}const l=new Zo(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(l)),l}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,t){return!t||ss(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){const n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){ss(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!ss(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;const i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,"active",!1)}setHoverStyle(e,t,n){this._setStyle(e,n,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const t=this._data,n=this._cachedMeta.data;for(const[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];const r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;oe-t)))}return e._cache.$bar}(t,e.type);let r,i,a,o,s=t._length;const l=()=>{32767!==a&&-32768!==a&&(ki(o)&&(s=Math.min(s,Math.abs(a-o)||s)),o=a)};for(r=0,i=n.length;rMath.abs(s)&&(l=s,c=o),t[n.axis]=c,t._custom={barStart:l,barEnd:c,start:i,end:a,min:o,max:s}}(e,t,n,r):t[n.axis]=n.parse(e,r),t}function ps(e,t,n,r){const i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,l=[];let c,d,u,p;for(c=n,d=n+r;ce.x,n="left",r="right"):(t=e.base{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:l}),s=s||e.inRange(t.x,t.y,i))})),r&&!s?[]:a}var Ts={evaluateInteractionItems:Es,modes:{index(e,t,n,r){const i=Ro(t,e),a=n.axis||"x",o=n.includeInvisible||!1,s=n.intersect?Ss(e,i,a,r,o):ys(e,i,a,!1,r,o),l=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach((e=>{const t=s[0].index,n=e.data[t];n&&!n.skip&&l.push({element:n,datasetIndex:e.index,index:t})})),l):[]},dataset(e,t,n,r){const i=Ro(t,e),a=n.axis||"xy",o=n.includeInvisible||!1;let s=n.intersect?Ss(e,i,a,r,o):ys(e,i,a,!1,r,o);if(s.length>0){const t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;eSs(e,Ro(t,e),n.axis||"xy",r,n.includeInvisible||!1),nearest(e,t,n,r){const i=Ro(t,e),a=n.axis||"xy",o=n.includeInvisible||!1;return ys(e,i,a,n.intersect,r,o)},x:(e,t,n,r)=>vs(e,Ro(t,e),"x",n.intersect,r),y:(e,t,n,r)=>vs(e,Ro(t,e),"y",n.intersect,r)}};const Cs=["left","top","right","bottom"];function Ns(e,t){return e.filter((e=>e.pos===t))}function As(e,t){return e.filter((e=>-1===Cs.indexOf(e.pos)&&e.box.axis===t))}function xs(e,t){return e.sort(((e,n)=>{const r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight}))}function Os(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function ws(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function Rs(e,t,n,r){const{pos:i,box:a}=n,o=e.maxPadding;if(!hi(i)){n.size&&(e[i]-=n.size);const t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&ws(o,a.getPadding());const s=Math.max(0,t.outerWidth-Os(o,e,"left","right")),l=Math.max(0,t.outerHeight-Os(o,e,"top","bottom")),c=s!==e.w,d=l!==e.h;return e.w=s,e.h=l,n.horizontal?{same:c,other:d}:{same:d,other:c}}function Is(e,t){const n=t.maxPadding;return function(e){const r={left:0,top:0,right:0,bottom:0};return e.forEach((e=>{r[e]=Math.max(t[e],n[e])})),r}(e?["left","right"]:["top","bottom"])}function Ds(e,t,n,r){const i=[];let a,o,s,l,c,d;for(a=0,o=e.length,c=0;ae.box.fullSize)),!0),r=xs(Ns(t,"left"),!0),i=xs(Ns(t,"right")),a=xs(Ns(t,"top"),!0),o=xs(Ns(t,"bottom")),s=As(t,"x"),l=As(t,"y");return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(l).concat(o).concat(s),chartArea:Ns(t,"chartArea"),vertical:r.concat(i).concat(l),horizontal:a.concat(o).concat(s)}}(e.boxes),l=s.vertical,c=s.horizontal;vi(e.boxes,(e=>{"function"==typeof e.beforeLayout&&e.beforeLayout()}));const d=l.reduce(((e,t)=>t.box.options&&!1===t.box.options.display?e:e+1),0)||1,u=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/d,hBoxMaxHeight:o/2}),p=Object.assign({},i);ws(p,Ja(r));const m=Object.assign({maxPadding:p,w:a,h:o,x:i.left,y:i.top},i),g=function(e,t){const n=function(e){const t={};for(const n of e){const{stack:e,pos:r,stackWeight:i}=n;if(!e||!Cs.includes(r))continue;const a=t[e]||(t[e]={count:0,placed:0,weight:0,size:0});a.count++,a.weight+=i}return t}(e),{vBoxMaxWidth:r,hBoxMaxHeight:i}=t;let a,o,s;for(a=0,o=e.length;a{const n=t.box;Object.assign(n,e.chartArea),n.update(m.w,m.h,{left:0,top:0,right:0,bottom:0})}))}};class Ls{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n=n||e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}}class Fs extends Ls{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const Bs="$chartjs",Us={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Gs=e=>null===e||""===e,zs=!!ko&&{passive:!0};function Hs(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,zs)}function Vs(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function qs(e,t,n){const r=e.canvas,i=new MutationObserver((e=>{let t=!1;for(const n of e)t=t||Vs(n.addedNodes,r),t=t&&!Vs(n.removedNodes,r);t&&n()}));return i.observe(document,{childList:!0,subtree:!0}),i}function Ys(e,t,n){const r=e.canvas,i=new MutationObserver((e=>{let t=!1;for(const n of e)t=t||Vs(n.removedNodes,r),t=t&&!Vs(n.addedNodes,r);t&&n()}));return i.observe(document,{childList:!0,subtree:!0}),i}const js=new Map;let $s=0;function Ws(){const e=window.devicePixelRatio;e!==$s&&($s=e,js.forEach(((t,n)=>{n.currentDevicePixelRatio!==e&&t()})))}function Ks(e,t,n){const r=e.canvas,i=r&&Co(r);if(!i)return;const a=da(((e,t)=>{const r=i.clientWidth;n(e,t),r{const t=e[0],n=t.contentRect.width,r=t.contentRect.height;0===n&&0===r||a(n,r)}));return o.observe(i),function(e,t){js.size||window.addEventListener("resize",Ws),js.set(e,t)}(e,a),o}function Qs(e,t,n){n&&n.disconnect(),"resize"===t&&function(e){js.delete(e),js.size||window.removeEventListener("resize",Ws)}(e)}function Zs(e,t,n){const r=e.canvas,i=da((t=>{null!==e.ctx&&n(function(e,t){const n=Us[e.type]||e.type,{x:r,y:i}=Ro(e,t);return{type:n,chart:t,native:e,x:void 0!==r?r:null,y:void 0!==i?i:null}}(t,e))}),e);return function(e,t,n){e&&e.addEventListener(t,n,zs)}(r,t,i),i}class Xs extends Ls{acquireContext(e,t){const n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(function(e,t){const n=e.style,r=e.getAttribute("height"),i=e.getAttribute("width");if(e[Bs]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Gs(i)){const t=Mo(e,"width");void 0!==t&&(e.width=t)}if(Gs(r))if(""===e.style.height)e.height=e.width/(t||2);else{const t=Mo(e,"height");void 0!==t&&(e.height=t)}}(e,t),n):null}releaseContext(e){const t=e.canvas;if(!t[Bs])return!1;const n=t[Bs].initial;["height","width"].forEach((e=>{const r=n[e];gi(r)?t.removeAttribute(e):t.setAttribute(e,r)}));const r=n.style||{};return Object.keys(r).forEach((e=>{t.style[e]=r[e]})),t.width=t.width,delete t[Bs],!0}addEventListener(e,t,n){this.removeEventListener(e,t);const r=e.$proxies||(e.$proxies={}),i={attach:qs,detach:Ys,resize:Ks}[t]||Zs;r[t]=i(e,t,n)}removeEventListener(e,t){const n=e.$proxies||(e.$proxies={}),r=n[t];r&&(({attach:Qs,detach:Qs,resize:Qs}[t]||Hs)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return function(e,t,n,r){const i=Ao(e),a=Oo(i,"margin"),o=No(i.maxWidth,e,"clientWidth")||Ui,s=No(i.maxHeight,e,"clientHeight")||Ui,l=function(e,t,n){let r,i;if(void 0===t||void 0===n){const a=e&&Co(e);if(a){const e=a.getBoundingClientRect(),o=Ao(a),s=Oo(o,"border","width"),l=Oo(o,"padding");t=e.width-l.width-s.width,n=e.height-l.height-s.height,r=No(o.maxWidth,a,"clientWidth"),i=No(o.maxHeight,a,"clientHeight")}else t=e.clientWidth,n=e.clientHeight}return{width:t,height:n,maxWidth:r||Ui,maxHeight:i||Ui}}(e,t,n);let{width:c,height:d}=l;if("content-box"===i.boxSizing){const e=Oo(i,"border","width"),t=Oo(i,"padding");c-=t.width+e.width,d-=t.height+e.height}return c=Math.max(0,c-a.width),d=Math.max(0,r?c/r:d-a.height),c=Io(Math.min(c,o,l.maxWidth)),d=Io(Math.min(d,s,l.maxHeight)),c&&!d&&(d=Io(c/2)),(void 0!==t||void 0!==n)&&r&&l.height&&d>l.height&&(d=l.height,c=Io(Math.floor(d*r))),{width:c,height:d}}(e,t,n,r)}isAttached(e){const t=e&&Co(e);return!(!t||!t.isConnected)}}class Js{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){const{x:t,y:n}=this.getProps(["x","y"],e);return{x:t,y:n}}hasValue(){return Wi(this.x)&&Wi(this.y)}getProps(e,t){const n=this.$animations;if(!t||!n)return this;const r={};return e.forEach((e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]})),r}}function el(e,t,n,r,i){const a=Ei(r,0),o=Math.min(Ei(i,e.length),e.length);let s,l,c,d=0;for(n=Math.ceil(n),i&&(s=i-r,n=s/Math.floor(s/n)),c=a;c<0;)d++,c=Math.round(a+d*n);for(l=Math.max(a,0);l"top"===t||"left"===t?e[t]+n:e[t]-n,nl=(e,t)=>Math.min(t||e,e);function rl(e,t){const n=[],r=e.length/t,i=e.length;let a=0;for(;ao+s)))return c}function al(e){return e.drawTicks?e.tickLength:0}function ol(e,t){if(!e.display)return 0;const n=eo(e.font,t),r=Ja(e.padding);return(_i(e.text)?e.text.length:1)*n.lineHeight+r.height}function sl(e,t,n){let r=ua(e);return(n&&"right"!==t||!n&&"right"===t)&&(r=(e=>"left"===e?"right":"right"===e?"left":e)(r)),r}class ll extends Js{constructor(e){super(),this.id=e.id,this.type=e.type,this.options=void 0,this.ctx=e.ctx,this.chart=e.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(e){this.options=e.setContext(this.getContext()),this.axis=e.axis,this._userMin=this.parse(e.min),this._userMax=this.parse(e.max),this._suggestedMin=this.parse(e.suggestedMin),this._suggestedMax=this.parse(e.suggestedMax)}parse(e,t){return e}getUserBounds(){let{_userMin:e,_userMax:t,_suggestedMin:n,_suggestedMax:r}=this;return e=bi(e,Number.POSITIVE_INFINITY),t=bi(t,Number.NEGATIVE_INFINITY),n=bi(n,Number.POSITIVE_INFINITY),r=bi(r,Number.NEGATIVE_INFINITY),{min:bi(e,n),max:bi(t,r),minDefined:fi(e),maxDefined:fi(t)}}getMinMax(e){let t,{min:n,max:r,minDefined:i,maxDefined:a}=this.getUserBounds();if(i&&a)return{min:n,max:r};const o=this.getMatchingVisibleMetas();for(let s=0,l=o.length;sr?r:n,r=i&&n>r?n:r,{min:bi(n,bi(r,n)),max:bi(r,bi(n,r))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){yi(this.options.beforeUpdate,[this])}update(e,t,n){const{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function(e,t,n){const{min:r,max:i}=e,a=Si(t,(i-r)/2),o=(e,t)=>n&&0===e?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}(this,i,r),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const s=oi)return function(e,t,n,r){let i,a=0,o=n[0];for(r=Math.ceil(r),i=0;ie-t)).pop(),t}(r);for(let e=0,t=a.length-1;ei)return t}return Math.max(i,1)}(a,t,i);if(o>0){let e,n;const r=o>1?Math.round((l-s)/(o-1)):null;for(el(t,c,d,gi(r)?0:s-r,s),e=0,n=o-1;e=i||n<=1||!this.isHorizontal())return void(this.labelRotation=r);const c=this._getLabelSizes(),d=c.widest.width,u=c.highest.height,p=na(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/n:p/(n-1),d+6>a&&(a=p/(n-(e.offset?.5:1)),o=this.maxHeight-al(e.grid)-t.padding-ol(e.title,this.chart.options.font),s=Math.sqrt(d*d+u*u),l=Math.min(Math.asin(na((c.highest.height+6)/a,-1,1)),Math.asin(na(o/s,-1,1))-Math.asin(na(u/s,-1,1)))*(180/Li),l=Math.max(r,Math.min(i,l))),this.labelRotation=l}afterCalculateLabelRotation(){yi(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){yi(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){const a=ol(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=al(i)+a):(e.height=this.maxHeight,e.width=al(i)+a),n.display&&this.ticks.length){const{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=2*n.padding,l=Ki(this.labelRotation),c=Math.cos(l),d=Math.sin(l);if(o){const t=n.mirror?0:d*i.width+c*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{const t=n.mirror?0:c*i.width+d*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,d,c)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){const{ticks:{align:i,padding:a},position:o}=this.options,s=0!==this.labelRotation,l="top"!==o&&"x"===this.axis;if(this.isHorizontal()){const o=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,u=0;s?l?(d=r*e.width,u=n*t.height):(d=n*e.height,u=r*t.width):"start"===i?u=t.width:"end"===i?d=e.width:"inner"!==i&&(d=e.width/2,u=t.width/2),this.paddingLeft=Math.max((d-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((u-c+a)*this.width/(this.width-c),0)}else{let n=t.height/2,r=e.height/2;"start"===i?(n=0,r=e.height):"end"===i&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){yi(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:t}=this.options;return"top"===t||"bottom"===t||"x"===e}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){let t,n;for(this.beforeTickToLabelConversion(),this.generateTickLabels(e),t=0,n=e.length;t{const n=e.gc,r=n.length/2;let i;if(r>t){for(i=0;i({width:a[e]||0,height:o[e]||0});return{first:T(0),last:T(t-1),widest:T(y),highest:T(v),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){const t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const t=this._startPixel+e*this._length;return na(this._alignToPixels?ka(this.chart,t,0):t,-32768,32767)}getDecimalForPixel(e){const t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){const t=this.ticks||[];if(e>=0&&eo*r?o/n:s/r:s*r0}_computeGridLineItems(e){const t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,l=this.isHorizontal(),c=this.ticks.length+(s?1:0),d=al(i),u=[],p=o.setContext(this.getContext()),m=p.display?p.width:0,g=m/2,_=function(e){return ka(n,e,m)};let h,f,b,E,S,y,v,T,C,N,A,x;if("top"===a)h=_(this.bottom),y=this.bottom-d,T=h-g,N=_(e.top)+g,x=e.bottom;else if("bottom"===a)h=_(this.top),N=e.top,x=_(e.bottom)-g,y=h+g,T=this.top+d;else if("left"===a)h=_(this.right),S=this.right-d,v=h-g,C=_(e.left)+g,A=e.right;else if("right"===a)h=_(this.left),C=e.left,A=_(e.right)-g,S=h+g,v=this.left+d;else if("x"===t){if("center"===a)h=_((e.top+e.bottom)/2+.5);else if(hi(a)){const e=Object.keys(a)[0],t=a[e];h=_(this.chart.scales[e].getPixelForValue(t))}N=e.top,x=e.bottom,y=h+g,T=y+d}else if("y"===t){if("center"===a)h=_((e.left+e.right)/2);else if(hi(a)){const e=Object.keys(a)[0],t=a[e];h=_(this.chart.scales[e].getPixelForValue(t))}S=h-g,v=S-d,C=e.left,A=e.right}const O=Ei(r.ticks.maxTicksLimit,c),w=Math.max(1,Math.ceil(c/O));for(f=0;f0&&(a-=r/2)}u={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}_.push({label:E,font:C,textOffset:x,options:{rotation:g,color:n,strokeColor:s,strokeWidth:c,textAlign:p,textBaseline:O,translation:[S,y],backdrop:u}})}return _}_getXAxisLabelAlignment(){const{position:e,ticks:t}=this.options;if(-Ki(this.labelRotation))return"top"===e?"left":"right";let n="center";return"start"===t.align?n="left":"end"===t.align?n="right":"inner"===t.align&&(n="inner"),n}_getYAxisLabelAlignment(e){const{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=e+i,o=this._getLabelSizes().widest.width;let s,l;return"left"===t?r?(l=this.right+i,"near"===n?s="left":"center"===n?(s="center",l+=o/2):(s="right",l+=o)):(l=this.right-a,"near"===n?s="right":"center"===n?(s="center",l-=o/2):(s="left",l=this.left)):"right"===t?r?(l=this.left+i,"near"===n?s="right":"center"===n?(s="center",l-=o/2):(s="left",l-=o)):(l=this.left+a,"near"===n?s="left":"center"===n?(s="center",l+=o/2):(s="right",l=this.right)):s="right",{textAlign:s,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,t=this.options.position;return"left"===t||"right"===t?{top:0,left:this.left,bottom:e.height,right:this.right}:"top"===t||"bottom"===t?{top:this.top,left:0,bottom:this.bottom,right:e.width}:void 0}drawBackground(){const{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){const t=this.options.grid;if(!this._isVisible()||!t.display)return 0;const n=this.ticks.findIndex((t=>t.value===e));return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){const t=this.options.grid,n=this.ctx,r=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let i,a;const o=(e,t,r)=>{r.width&&r.color&&(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:r,draw:()=>{this.drawBorder()}},{z:t,draw:e=>{this.drawLabels(e)}}]:[{z:t,draw:e=>{this.draw(e)}}]}getMatchingVisibleMetas(e){const t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+"AxisID",r=[];let i,a;for(i=0,a=t.length;i{const r=n.split("."),i=r.pop(),a=[e].concat(r).join("."),o=t[n].split("."),s=o.pop(),l=o.join(".");Ia.route(a,i,l,s)}))}(t,e.defaultRoutes),e.descriptors&&Ia.describe(t,e.descriptors)}(e,a,n),this.override&&Ia.override(e.id,e.overrides)),a}get(e){return this.items[e]}unregister(e){const t=this.items,n=e.id,r=this.scope;n in t&&delete t[n],r&&n in Ia[r]&&(delete Ia[r][n],this.override&&delete Aa[n])}}class dl{constructor(){this.controllers=new cl(cs,"datasets",!0),this.elements=new cl(Js,"elements"),this.plugins=new cl(Object,"plugins"),this.scales=new cl(ll,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,t,n){[...t].forEach((t=>{const r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):vi(t,(t=>{const r=n||this._getRegistryForType(t);this._exec(e,r,t)}))}))}_exec(e,t,n){const r=Di(e);yi(n["before"+r],[],n),t[e](n),yi(n["after"+r],[],n)}_getRegistryForType(e){for(let t=0;te.filter((e=>!t.some((t=>e.plugin.id===t.plugin.id))));this._notify(r(t,n),e,"stop"),this._notify(r(n,t),e,"start")}}function ml(e,t){return t||!1!==e?!0===e?{}:e:null}function gl(e,{plugin:t,local:n},r,i){const a=e.pluginScopeKeys(t),o=e.getOptionScopes(r,a);return n&&t.defaults&&o.push(t.defaults),e.createResolver(o,i,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function _l(e,t){const n=Ia.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||"x"}function hl(e){if("x"===e||"y"===e||"r"===e)return e}function fl(e,...t){if(hl(e))return e;for(const r of t){const t=r.axis||("top"===(n=r.position)||"bottom"===n?"x":"left"===n||"right"===n?"y":void 0)||e.length>1&&hl(e[0].toLowerCase());if(t)return t}var n;throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function bl(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function El(e){const t=e.options||(e.options={});t.plugins=Ei(t.plugins,{}),t.scales=function(e,t){const n=Aa[e.type]||{scales:{}},r=t.scales||{},i=_l(e.type,t),a=Object.create(null);return Object.keys(r).forEach((t=>{const o=r[t];if(!hi(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const s=fl(t,o,function(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter((t=>t.xAxisID===e||t.yAxisID===e));if(n.length)return bl(e,"x",n[0])||bl(e,"y",n[0])}return{}}(t,e),Ia.scales[o.type]),l=function(e,t){return e===t?"_index_":"_value_"}(s,i),c=n.scales||{};a[t]=Oi(Object.create(null),[{axis:s},o,c[s],c[l]])})),e.data.datasets.forEach((n=>{const i=n.type||e.type,o=n.indexAxis||_l(i,t),s=(Aa[i]||{}).scales||{};Object.keys(s).forEach((e=>{const t=function(e,t){let n=e;return"_index_"===e?n=t:"_value_"===e&&(n="x"===t?"y":"x"),n}(e,o),i=n[t+"AxisID"]||t;a[i]=a[i]||Object.create(null),Oi(a[i],[{axis:t},r[i],s[e]])}))})),Object.keys(a).forEach((e=>{const t=a[e];Oi(t,[Ia.scales[t.type],Ia.scale])})),a}(e,t)}function Sl(e){return(e=e||{}).datasets=e.datasets||[],e.labels=e.labels||[],e}const yl=new Map,vl=new Set;function Tl(e,t){let n=yl.get(e);return n||(n=t(),yl.set(e,n),vl.add(n)),n}const Cl=(e,t,n)=>{const r=Ii(t,n);void 0!==r&&e.add(r)};class Nl{constructor(e){this._config=function(e){return(e=e||{}).data=Sl(e.data),El(e),e}(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=Sl(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),El(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Tl(e,(()=>[[`datasets.${e}`,""]]))}datasetAnimationScopeKeys(e,t){return Tl(`${e}.transition.${t}`,(()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,""]]))}datasetElementScopeKeys(e,t){return Tl(`${e}-${t}`,(()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,""]]))}pluginScopeKeys(e){const t=e.id;return Tl(`${this.type}-plugin-${t}`,(()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]]))}_cachedScopes(e,t){const n=this._scopeCache;let r=n.get(e);return r&&!t||(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){const{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;const s=new Set;t.forEach((t=>{e&&(s.add(e),t.forEach((t=>Cl(s,e,t)))),t.forEach((e=>Cl(s,r,e))),t.forEach((e=>Cl(s,Aa[i]||{},e))),t.forEach((e=>Cl(s,Ia,e))),t.forEach((e=>Cl(s,xa,e)))}));const l=Array.from(s);return 0===l.length&&l.push(Object.create(null)),vl.has(t)&&a.set(t,l),l}chartOptionScopes(){const{options:e,type:t}=this;return[e,Aa[t]||{},Ia.datasets[t]||{},{type:t},Ia,xa]}resolveNamedOptions(e,t,n,r=[""]){const i={$shared:!0},{resolver:a,subPrefixes:o}=Al(this._resolverCache,e,r);let s=a;(function(e,t){const{isScriptable:n,isIndexable:r}=ao(e);for(const i of t){const t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(Mi(o)||xl(o))||a&&_i(o))return!0}return!1})(a,t)&&(i.$shared=!1,s=io(a,n=Mi(n)?n():n,this.createResolver(e,n,o)));for(const e of t)i[e]=s[e];return i}createResolver(e,t,n=[""],r){const{resolver:i}=Al(this._resolverCache,e,n);return hi(t)?io(i,t,void 0,r):i}}function Al(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));const i=n.join();let a=r.get(i);return a||(a={resolver:ro(t,n),subPrefixes:n.filter((e=>!e.toLowerCase().includes("hover")))},r.set(i,a)),a}const xl=e=>hi(e)&&Object.getOwnPropertyNames(e).some((t=>Mi(e[t]))),Ol=["top","bottom","left","right","chartArea"];function wl(e,t){return"top"===e||"bottom"===e||-1===Ol.indexOf(e)&&"x"===t}function Rl(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function Il(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),yi(n&&n.onComplete,[e],t)}function Dl(e){const t=e.chart,n=t.options.animation;yi(n&&n.onProgress,[e],t)}function kl(e){return To()&&"string"==typeof e?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const Ml={},Pl=e=>{const t=kl(e);return Object.values(Ml).filter((e=>e.canvas===t)).pop()};function Ll(e,t,n){const r=Object.keys(e);for(const i of r){const r=+i;if(r>=t){const a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function Fl(e,t,n){return e.options.clip?e[n]:t[n]}class Bl{static defaults=Ia;static instances=Ml;static overrides=Aa;static registry=ul;static version="4.4.5";static getChart=Pl;static register(...e){ul.add(...e),Ul()}static unregister(...e){ul.remove(...e),Ul()}constructor(e,t){const n=this.config=new Nl(t),r=kl(e),i=Pl(r);if(i)throw new Error("Canvas is already in use. Chart with ID '"+i.id+"' must be destroyed before the canvas with ID '"+i.canvas.id+"' can be reused.");const a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||function(e){return!To()||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?Fs:Xs}(r)),this.platform.updateConfig(n);const o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,l=s&&s.height,c=s&&s.width;this.id=mi(),this.ctx=o,this.canvas=s,this.width=c,this.height=l,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new pl,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}((e=>this.update(e)),a.resizeDelay||0),this._dataChanges=[],Ml[this.id]=this,o&&s?($o.listen(this,"complete",Il),$o.listen(this,"progress",Dl),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return gi(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return ul}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Do(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Ma(this.canvas,this.ctx),this}stop(){return $o.stop(this),this}resize(e,t){$o.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){const n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,Do(this,o,!0)&&(this.notifyPlugins("resize",{size:a}),yi(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){vi(this.options.scales||{},((e,t)=>{e.id=t}))}buildOrUpdateScales(){const e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce(((e,t)=>(e[t]=!1,e)),{});let i=[];t&&(i=i.concat(Object.keys(t).map((e=>{const n=t[e],r=fl(e,n),i="r"===r,a="x"===r;return{options:n,dposition:i?"chartArea":a?"bottom":"left",dtype:i?"radialLinear":a?"category":"linear"}})))),vi(i,(t=>{const i=t.options,a=i.id,o=fl(a,i),s=Ei(i.type,t.dtype);void 0!==i.position&&wl(i.position,o)===wl(t.dposition)||(i.position=t.dposition),r[a]=!0;let l=null;a in n&&n[a].type===s?l=n[a]:(l=new(ul.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[l.id]=l),l.init(i,e)})),vi(r,((e,t)=>{e||delete n[t]})),vi(n,(e=>{Ps.configure(this,e,e.options),Ps.addBox(this,e)}))}_updateMetasets(){const e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort(((e,t)=>e.index-t.index)),n>t){for(let e=t;et.length&&delete this._stacks,e.forEach(((e,n)=>{0===t.filter((t=>t===e._dataset)).length&&this._destroyDatasetMeta(n)}))}buildOrUpdateControllers(){const e=[],t=this.data.datasets;let n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n{this.getDatasetMeta(t).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const t=this.config;t.update();const n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const i=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let e=0,t=this.data.datasets.length;e{e.reset()})),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Rl("z","_idx"));const{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){vi(this.scales,(e=>{Ps.removeBox(this,e)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,t=new Set(Object.keys(this._listeners)),n=new Set(e.events);Pi(t,n)&&!!this._responsiveListeners===e.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(const{method:n,start:r,count:i}of t)Ll(e,r,"_removeElements"===n?-i:i)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const t=this.data.datasets.length,n=t=>new Set(e.filter((e=>e[0]===t)).map(((e,t)=>t+","+e.splice(1).join(",")))),r=n(0);for(let e=1;ee.split(","))).map((e=>({method:e[1],start:+e[2],count:+e[3]})))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Ps.update(this,this.width,this.height,e);const t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],vi(this.boxes,(e=>{n&&"chartArea"===e.position||(e.configure&&e.configure(),this._layers.push(...e._layers()))}),this),this._layers.forEach(((e,t)=>{e._idx=t})),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const t=this.ctx,n=e._clip,r=!n.disabled,i=function(e,t){const{xScale:n,yScale:r}=e;return n&&r?{left:Fl(n,t,"left"),right:Fl(n,t,"right"),top:Fl(r,t,"top"),bottom:Fl(r,t,"bottom")}:t}(e,this.chartArea),a={meta:e,index:e.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",a)&&(r&&Ba(t,{left:!1===n.left?0:i.left-n.left,right:!1===n.right?this.width:i.right+n.right,top:!1===n.top?0:i.top-n.top,bottom:!1===n.bottom?this.height:i.bottom+n.bottom}),e.controller.draw(),r&&Ua(t),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(e){return Fa(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){const i=Ts.modes[t];return"function"==typeof i?i(this,e,n,r):[]}getDatasetMeta(e){const t=this.data.datasets[e],n=this._metasets;let r=n.filter((e=>e&&e._dataset===t)).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||(this.$context=no(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const t=this.data.datasets[e];if(!t)return!1;const n=this.getDatasetMeta(e);return"boolean"==typeof n.hidden?!n.hidden:!t.hidden}setDatasetVisibility(e,t){this.getDatasetMeta(e).hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){const r=n?"show":"hide",i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);ki(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update((t=>t.datasetIndex===e?r:void 0)))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){const t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),$o.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};vi(this.options.events,(e=>n(e,r)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)};let a;const o=()=>{r("attach",o),this.attached=!0,this.resize(),n("resize",i),n("detach",a)};a=()=>{this.attached=!1,r("resize",i),this._stop(),this._resize(0,0),n("attach",o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){vi(this._listeners,((e,t)=>{this.platform.removeEventListener(this,t,e)})),this._listeners={},vi(this._responsiveListeners,((e,t)=>{this.platform.removeEventListener(this,t,e)})),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){const r=n?"set":"remove";let i,a,o,s;for("dataset"===t&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller["_"+r+"DatasetHoverStyle"]()),o=0,s=e.length;o{const n=this.getDatasetMeta(e);if(!n)throw new Error("No dataset found at index "+e);return{datasetIndex:e,element:n.data[t],index:t}}));!Ti(n,t)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return 1===this._plugins._cache.filter((t=>t.plugin.id===e)).length}_updateHoverStyles(e,t,n){const r=this.options.hover,i=(e,t)=>e.filter((e=>!t.some((t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)))),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){const n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",n,r))return;const i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){const{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=function(e){return"mouseup"===e.type||"click"===e.type||"contextmenu"===e.type}(e),l=function(e,t,n,r){return n&&"mouseout"!==e.type?r?t:e:null}(e,this._lastEvent,n,s);n&&(this._lastEvent=null,yi(i.onHover,[e,o,this],this),s&&yi(i.onClick,[e,o,this],this));const c=!Ti(o,r);return(c||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=l,c}_getActiveElements(e,t,n,r){if("mouseout"===e.type)return[];if(!n)return t;const i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}}function Ul(){return vi(Bl.instances,(e=>e._plugins.invalidate()))}function Gl(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function zl(e,t,n,r,i,a){const{x:o,y:s,startAngle:l,pixelMargin:c,innerRadius:d}=t,u=Math.max(t.outerRadius+r+n-c,0),p=d>0?d+r+n+c:0;let m=0;const g=i-l;if(r){const e=((d>0?d-r:0)+(u>0?u-r:0))/2;m=(g-(0!==e?g*e/(e+r):g))/2}const _=(g-Math.max(.001,g*u-n/Li)/u)/2,h=l+_+m,f=i-_-m,{outerStart:b,outerEnd:E,innerStart:S,innerEnd:y}=function(e,t,n,r){const i=Qa(e.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]),a=(n-t)/2,o=Math.min(a,r*t/2),s=e=>{const t=(n-Math.min(a,e))*r/2;return na(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:na(i.innerStart,0,o),innerEnd:na(i.innerEnd,0,o)}}(t,p,u,f-h),v=u-b,T=u-E,C=h+b/v,N=f-E/T,A=p+S,x=p+y,O=h+S/A,w=f-y/x;if(e.beginPath(),a){const t=(C+N)/2;if(e.arc(o,s,u,C,t),e.arc(o,s,u,t,N),E>0){const t=Gl(T,N,o,s);e.arc(t.x,t.y,E,N,f+zi)}const n=Gl(x,f,o,s);if(e.lineTo(n.x,n.y),y>0){const t=Gl(x,w,o,s);e.arc(t.x,t.y,y,f+zi,w+Math.PI)}const r=(f-y/p+(h+S/p))/2;if(e.arc(o,s,p,f-y/p,r,!0),e.arc(o,s,p,r,h+S/p,!0),S>0){const t=Gl(A,O,o,s);e.arc(t.x,t.y,S,O+Math.PI,h-zi)}const i=Gl(v,h,o,s);if(e.lineTo(i.x,i.y),b>0){const t=Gl(v,C,o,s);e.arc(t.x,t.y,b,h-zi,C)}}else{e.moveTo(o,s);const t=Math.cos(C)*u+o,n=Math.sin(C)*u+s;e.lineTo(t,n);const r=Math.cos(N)*u+o,i=Math.sin(N)*u+s;e.lineTo(r,i)}e.closePath()}function Hl(e,t,n=t){e.lineCap=Ei(n.borderCapStyle,t.borderCapStyle),e.setLineDash(Ei(n.borderDash,t.borderDash)),e.lineDashOffset=Ei(n.borderDashOffset,t.borderDashOffset),e.lineJoin=Ei(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=Ei(n.borderWidth,t.borderWidth),e.strokeStyle=Ei(n.borderColor,t.borderColor)}function Vl(e,t,n){e.lineTo(n.x,n.y)}function ql(e,t,n={}){const r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,l=Math.max(i,o),c=Math.min(a,s),d=is&&a>s;return{count:r,start:l,loop:t.loop,ilen:c(o+(c?s-e:e))%a,E=()=>{m!==g&&(e.lineTo(h,g),e.lineTo(h,m),e.lineTo(h,_))};for(l&&(u=i[b(0)],e.moveTo(u.x,u.y)),d=0;d<=s;++d){if(u=i[b(d)],u.skip)continue;const t=u.x,n=u.y,r=0|t;r===p?(ng&&(g=n),h=(f*h+t)/++f):(E(),e.lineTo(t,n),p=r,f=0,m=g=n),_=n}E()}function $l(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return e._decimated||e._loop||t.tension||"monotone"===t.cubicInterpolationMode||t.stepped||n?Yl:jl}const Wl="function"==typeof Path2D;function Kl(e,t,n,r){const i=e.options,{[n]:a}=e.getProps([n],r);return Math.abs(t-a){let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}};class nc extends Js{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let t=yi(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter((t=>e.filter(t,this.chart.data)))),e.sort&&(t=t.sort(((t,n)=>e.sort(t,n,this.chart.data)))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){const{options:e,ctx:t}=this;if(!e.display)return void(this.width=this.height=0);const n=e.labels,r=eo(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=tc(n,i);let l,c;t.font=r.string,this.isHorizontal()?(l=this.maxWidth,c=this._fitRows(a,i,o,s)+10):(c=this.maxHeight,l=this._fitCols(a,r,o,s)+10),this.width=Math.min(l,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){const{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],l=this.lineWidths=[0],c=r+o;let d=e;i.textAlign="left",i.textBaseline="middle";let u=-1,p=-c;return this.legendItems.forEach(((e,m)=>{const g=n+t/2+i.measureText(e.text).width;(0===m||l[l.length-1]+g+2*o>a)&&(d+=c,l[l.length-(m>0?0:1)]=0,p+=c,u++),s[m]={left:0,top:p,row:u,width:g,height:r},l[l.length-1]+=g+o})),d}_fitCols(e,t,n,r){const{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],l=this.columnSizes=[],c=a-e;let d=o,u=0,p=0,m=0,g=0;return this.legendItems.forEach(((e,a)=>{const{itemWidth:_,itemHeight:h}=function(e,t,n,r,i){const a=function(e,t,n,r){let i=e.text;return i&&"string"!=typeof i&&(i=i.reduce(((e,t)=>e.length>t.length?e:t))),t+n.size/2+r.measureText(i).width}(r,e,t,n),o=function(e,t,n){let r=e;return"string"!=typeof t.text&&(r=rc(t,n)),r}(i,r,t.lineHeight);return{itemWidth:a,itemHeight:o}}(n,t,i,e,r);a>0&&p+h+2*o>c&&(d+=u+o,l.push({width:u,height:p}),m+=u+o,g++,u=p=0),s[a]={left:m,top:p,col:g,width:_,height:h},u=Math.max(u,_),p+=h+o})),d+=u,l.push({width:u,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=Bo(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=pa(n,this.left+r,this.right-this.lineWidths[i]);for(const s of t)i!==s.row&&(i=s.row,o=pa(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=pa(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(const s of t)s.col!==i&&(i=s.col,o=pa(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const e=this.ctx;Ba(e,this),this._draw(),Ua(e)}}_draw(){const{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=Ia.color,s=Bo(e.rtl,this.left,this.width),l=eo(a.font),{padding:c}=a,d=l.size,u=d/2;let p;this.drawTitle(),r.textAlign=s.textAlign("left"),r.textBaseline="middle",r.lineWidth=.5,r.font=l.string;const{boxWidth:m,boxHeight:g,itemHeight:_}=tc(a,d),h=this.isHorizontal(),f=this._computeTitleHeight();p=h?{x:pa(i,this.left+c,this.right-n[0]),y:this.top+c+f,line:0}:{x:this.left+c,y:pa(i,this.top+f+c,this.bottom-t[0].height),line:0},Uo(this.ctx,e.textDirection);const b=_+c;this.legendItems.forEach(((E,S)=>{r.strokeStyle=E.fontColor,r.fillStyle=E.fontColor;const y=r.measureText(E.text).width,v=s.textAlign(E.textAlign||(E.textAlign=a.textAlign)),T=m+u+y;let C=p.x,N=p.y;if(s.setWidth(this.width),h?S>0&&C+T+c>this.right&&(N=p.y+=b,p.line++,C=p.x=pa(i,this.left+c,this.right-n[p.line])):S>0&&N+b>this.bottom&&(C=p.x=C+t[p.line].width+c,p.line++,N=p.y=pa(i,this.top+f+c,this.bottom-t[p.line].height)),function(e,t,n){if(isNaN(m)||m<=0||isNaN(g)||g<0)return;r.save();const i=Ei(n.lineWidth,1);if(r.fillStyle=Ei(n.fillStyle,o),r.lineCap=Ei(n.lineCap,"butt"),r.lineDashOffset=Ei(n.lineDashOffset,0),r.lineJoin=Ei(n.lineJoin,"miter"),r.lineWidth=i,r.strokeStyle=Ei(n.strokeStyle,o),r.setLineDash(Ei(n.lineDash,[])),a.usePointStyle){const o={radius:g*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},l=s.xPlus(e,m/2);La(r,o,l,t+u,a.pointStyleWidth&&m)}else{const a=t+Math.max((d-g)/2,0),o=s.leftForLtr(e,m),l=Xa(n.borderRadius);r.beginPath(),Object.values(l).some((e=>0!==e))?Ya(r,{x:o,y:a,w:m,h:g,radius:l}):r.rect(o,a,m,g),r.fill(),0!==i&&r.stroke()}r.restore()}(s.x(C),N,E),C=((e,t,n,r)=>e===(r?"left":"right")?n:"center"===e?(t+n)/2:t)(v,C+m+u,h?C+T:this.right,e.rtl),function(e,t,n){qa(r,n.text,e,t+_/2,l,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})}(s.x(C),N,E),h)p.x+=T+c;else if("string"!=typeof E.text){const e=l.lineHeight;p.y+=rc(E,e)+c}else p.y+=b})),Go(this.ctx,e.textDirection)}drawTitle(){const e=this.options,t=e.title,n=eo(t.font),r=Ja(t.padding);if(!t.display)return;const i=Bo(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,l=r.top+s;let c,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),c=this.top+l,d=pa(e.align,d,this.right-u);else{const t=this.columnSizes.reduce(((e,t)=>Math.max(e,t.height)),0);c=l+pa(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}const p=pa(o,d,d+u);a.textAlign=i.textAlign(ua(o)),a.textBaseline="middle",a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,qa(a,t.text,p,c,n)}_computeTitleHeight(){const e=this.options.title,t=eo(e.font),n=Ja(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(ra(e,this.left,this.right)&&ra(t,this.top,this.bottom))for(i=this.legendHitBoxes,n=0;nnull!==e&&null!==t&&e.datasetIndex===t.datasetIndex&&e.index===t.index)(r,n);r&&!i&&yi(t.onLeave,[e,r,this],this),this._hoveredItem=n,n&&!i&&yi(t.onHover,[e,n,this],this)}else n&&yi(t.onClick,[e,n,this],this)}}function rc(e,t){return t*(e.text?e.text.length:0)}var ic={id:"legend",_element:nc,start(e,t,n){const r=e.legend=new nc({ctx:e.ctx,options:n,chart:e});Ps.configure(e,r,n),Ps.addBox(e,r)},stop(e){Ps.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const r=e.legend;Ps.configure(e,r,n),r.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map((e=>{const l=e.controller.getStyle(n?0:void 0),c=Ja(l.borderWidth);return{text:t[e.index].label,fillStyle:l.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:l.borderColor,pointStyle:r||l.pointStyle,rotation:l.rotation,textAlign:i||l.textAlign,borderRadius:o&&(s||l.borderRadius),datasetIndex:e.index}}),this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};new WeakMap;const ac={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;te+t))/r.size;return{x:o,y:i/a}},nearest(e,t){if(!e.length)return!1;let n,r,i,a=t.x,o=t.y,s=Number.POSITIVE_INFINITY;for(n=0,r=e.length;n-1?e.split("\n"):e}function lc(e,t){const{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function cc(e,t){const n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,l=eo(t.bodyFont),c=eo(t.titleFont),d=eo(t.footerFont),u=a.length,p=i.length,m=r.length,g=Ja(t.padding);let _=g.height,h=0,f=r.reduce(((e,t)=>e+t.before.length+t.lines.length+t.after.length),0);f+=e.beforeBody.length+e.afterBody.length,u&&(_+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),f&&(_+=m*(t.displayColors?Math.max(s,l.lineHeight):l.lineHeight)+(f-m)*l.lineHeight+(f-1)*t.bodySpacing),p&&(_+=t.footerMarginTop+p*d.lineHeight+(p-1)*t.footerSpacing);let b=0;const E=function(e){h=Math.max(h,n.measureText(e).width+b)};return n.save(),n.font=c.string,vi(e.title,E),n.font=l.string,vi(e.beforeBody.concat(e.afterBody),E),b=t.displayColors?o+2+t.boxPadding:0,vi(r,(e=>{vi(e.before,E),vi(e.lines,E),vi(e.after,E)})),b=0,n.font=d.string,vi(e.footer,E),n.restore(),h+=g.width,{width:h,height:_}}function dc(e,t,n,r){const{x:i,width:a}=n,{width:o,chartArea:{left:s,right:l}}=e;let c="center";return"center"===r?c=i<=(s+l)/2?"left":"right":i<=a/2?c="left":i>=o-a/2&&(c="right"),function(e,t,n,r){const{x:i,width:a}=r,o=n.caretSize+n.caretPadding;return"left"===e&&i+a+o>t.width||"right"===e&&i-a-o<0||void 0}(c,e,t,n)&&(c="center"),c}function uc(e,t,n){const r=n.yAlign||t.yAlign||function(e,t){const{y:n,height:r}=t;return ne.height-r/2?"bottom":"center"}(e,n);return{xAlign:n.xAlign||t.xAlign||dc(e,t,n,r),yAlign:r}}function pc(e,t,n,r){const{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:l}=n,c=i+a,{topLeft:d,topRight:u,bottomLeft:p,bottomRight:m}=Xa(o);let g=function(e,t){let{x:n,width:r}=e;return"right"===t?n-=r:"center"===t&&(n-=r/2),n}(t,s);const _=function(e,t,n){let{y:r,height:i}=e;return"top"===t?r+=n:r-="bottom"===t?i+n:i/2,r}(t,l,c);return"center"===l?"left"===s?g+=c:"right"===s&&(g-=c):"left"===s?g-=Math.max(d,p)+i:"right"===s&&(g+=Math.max(u,m)+i),{x:na(g,0,r.width-t.width),y:na(_,0,r.height-t.height)}}function mc(e,t,n){const r=Ja(n.padding);return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-r.right:e.x+r.left}function gc(e){return oc([],sc(e))}function _c(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const hc={beforeTitle:pi,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&"dataset"===this.options.mode)return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex{const t={before:[],lines:[],after:[]},i=_c(n,e);oc(t.before,sc(fc(i,"beforeLabel",this,e))),oc(t.lines,fc(i,"label",this,e)),oc(t.after,sc(fc(i,"afterLabel",this,e))),r.push(t)})),r}getAfterBody(e,t){return gc(fc(t.callbacks,"afterBody",this,e))}getFooter(e,t){const{callbacks:n}=t,r=fc(n,"beforeFooter",this,e),i=fc(n,"footer",this,e),a=fc(n,"afterFooter",this,e);let o=[];return o=oc(o,sc(r)),o=oc(o,sc(i)),o=oc(o,sc(a)),o}_createItems(e){const t=this._active,n=this.chart.data,r=[],i=[],a=[];let o,s,l=[];for(o=0,s=t.length;oe.filter(t,r,i,n)))),e.itemSort&&(l=l.sort(((t,r)=>e.itemSort(t,r,n)))),vi(l,(t=>{const n=_c(e.callbacks,t);r.push(fc(n,"labelColor",this,t)),i.push(fc(n,"labelPointStyle",this,t)),a.push(fc(n,"labelTextColor",this,t))})),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=l,l}update(e,t){const n=this.options.setContext(this.getContext()),r=this._active;let i,a=[];if(r.length){const e=ac[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);const t=this._size=cc(this,n),o=Object.assign({},e,t),s=uc(this.chart,n,o),l=pc(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:l.x,y:l.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}else 0!==this.opacity&&(i={opacity:0});this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){const i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){const{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:l,bottomLeft:c,bottomRight:d}=Xa(o),{x:u,y:p}=e,{width:m,height:g}=t;let _,h,f,b,E,S;return"center"===i?(E=p+g/2,"left"===r?(_=u,h=_-a,b=E+a,S=E-a):(_=u+m,h=_+a,b=E-a,S=E+a),f=_):(h="left"===r?u+Math.max(s,c)+a:"right"===r?u+m-Math.max(l,d)-a:this.caretX,"top"===i?(b=p,E=b-a,_=h-a,f=h+a):(b=p+g,E=b+a,_=h+a,f=h-a),S=b),{x1:_,x2:h,x3:f,y1:b,y2:E,y3:S}}drawTitle(e,t,n){const r=this.title,i=r.length;let a,o,s;if(i){const l=Bo(n.rtl,this.x,this.width);for(e.x=mc(this,n.titleAlign,n),t.textAlign=l.textAlign(n.titleAlign),t.textBaseline="middle",a=eo(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;s0!==e))?(e.beginPath(),e.fillStyle=i.multiKeyBackground,Ya(e,{x:t,y:m,w:l,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),Ya(e,{x:n,y:m+1,w:l-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,m,l,s),e.strokeRect(t,m,l,s),e.fillStyle=a.backgroundColor,e.fillRect(n,m+1,l-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){const{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:l,boxPadding:c}=n,d=eo(n.bodyFont);let u=d.lineHeight,p=0;const m=Bo(n.rtl,this.x,this.width),g=function(n){t.fillText(n,m.x(e.x+p),e.y+u/2),e.y+=u+i},_=m.textAlign(a);let h,f,b,E,S,y,v;for(t.textAlign=a,t.textBaseline="middle",t.font=d.string,e.x=mc(this,_,n),t.fillStyle=n.bodyColor,vi(this.beforeBody,g),p=o&&"right"!==_?"center"===a?l/2+c:l+2+c:0,E=0,y=r.length;E0&&t.stroke()}_updateAnimationTarget(e){const t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){const n=ac[e.position].call(this,this._active,this._eventPosition);if(!n)return;const a=this._size=cc(this,e),o=Object.assign({},n,this._size),s=uc(t,e,o),l=pc(e,o,s,t);r._to===l.x&&i._to===l.y||(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(e){const t=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(t);const r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const a=Ja(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),Uo(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),Go(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){const n=this._active,r=e.map((({datasetIndex:e,index:t})=>{const n=this.chart.getDatasetMeta(e);if(!n)throw new Error("Cannot find a dataset at index "+e);return{datasetIndex:e,element:n.data[t],index:t}})),i=!Ti(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!Ti(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){const i=this.options;if("mouseout"===e.type)return[];if(!r)return t.filter((e=>this.chart.data.datasets[e.datasetIndex]&&void 0!==this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)));const a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){const{caretX:n,caretY:r,options:i}=this,a=ac[i.position].call(this,e,t);return!1!==a&&(n!==a.x||r!==a.y)}}var Ec={id:"tooltip",_element:bc,positioners:ac,afterInit(e,t,n){n&&(e.tooltip=new bc({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(!1===e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0}))return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:hc},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>"filter"!==e&&"itemSort"!==e&&"external"!==e,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function Sc(e){const t=this.getLabels();return e>=0&&er=t?r:e,o=e=>i=n?i:e;if(e){const e=Yi(r),t=Yi(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=0===i?1:Math.abs(.05*i);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){const e=this.options.ticks;let t,{maxTicksLimit:n,stepSize:r}=e;return r?(t=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,t>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${t} ticks. Limiting to 1000.`),t=1e3)):(t=this.computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,t=e.ticks;let n=this.getTickLimit();n=Math.max(2,n);const r=function(e,t){const n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:l,maxTicks:c,maxDigits:d,includeBounds:u}=e,p=i||1,m=c-1,{min:g,max:_}=t,h=!gi(a),f=!gi(o),b=!gi(l),E=(_-g)/(d+1);let S,y,v,T,C=$i((_-g)/m/p)*p;if(C<1e-14&&!h&&!f)return[{value:g},{value:_}];T=Math.ceil(_/C)-Math.floor(g/C),T>m&&(C=$i(T*C/m/p)*p),gi(s)||(S=Math.pow(10,s),C=Math.ceil(C*S)/S),"ticks"===r?(y=Math.floor(g/C)*C,v=Math.ceil(_/C)*C):(y=g,v=_),h&&f&&i&&function(e,t){const n=Math.round(e);return n-t<=e&&n+t>=e}((o-a)/i,C/1e3)?(T=Math.round(Math.min((o-a)/C,c)),C=(o-a)/T,y=a,v=o):b?(y=h?a:y,v=f?o:v,T=l-1,C=(v-y)/T):(T=(v-y)/C,T=ji(T,Math.round(T),C/1e3)?Math.round(T):Math.ceil(T));const N=Math.max(Qi(C),Qi(y));S=Math.pow(10,gi(s)?N:s),y=Math.round(y*S)/S,v=Math.round(v*S)/S;let A=0;for(h&&(u&&y!==a?(n.push({value:a}),yo)break;n.push({value:e})}return f&&u&&v!==o?n.length&&ji(n[n.length-1].value,o,yc(o,E,e))?n[n.length-1].value=o:n.push({value:o}):f&&v!==o||n.push({value:v}),n}({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:!1!==t.includeBounds},this._range||this);return"ticks"===e.bounds&&function(e,t,n){let r,i,a;for(r=0,i=e.length;r"spacing"!==e,_indexable:e=>"spacing"!==e&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const t=e.data;if(t.labels.length&&t.datasets.length){const{labels:{pointStyle:n,color:r}}=e.legend.options;return t.labels.map(((t,i)=>{const a=e.getDatasetMeta(0).controller.getStyle(i);return{text:t,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,fontColor:r,lineWidth:a.borderWidth,pointStyle:n,hidden:!e.getDataVisibility(i),index:i}}))}return[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}}};constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){const n=this.getDataset().data,r=this._cachedMeta;if(!1===this._parsing)r._parsed=n;else{let i,a,o=e=>+n[e];if(hi(n[e])){const{key:e="value"}=this._parsing;o=t=>+Ii(n[t],e)}for(i=e,a=e+t;ita(e,s,l,!0)?1:Math.max(t,t*n,r,r*n),g=(e,t,r)=>ta(e,s,l,!0)?-1:Math.min(t,t*n,r,r*n),_=m(0,c,u),h=m(zi,d,p),f=g(Li,c,u),b=g(Li+zi,d,p);r=(_-f)/2,i=(h-b)/2,a=-(_+f)/2,o=-(h+b)/2}return{ratioX:r,ratioY:i,offsetX:a,offsetY:o}}(p,u,s),f=(n.width-a)/m,b=(n.height-a)/g,E=Math.max(Math.min(f,b)/2,0),S=Si(this.options.radius,E),y=(S-Math.max(S*s,0))/this._getVisibleDatasetWeightTotal();this.offsetX=_*S,this.offsetY=h*S,r.total=this.calculateTotal(),this.outerRadius=S-y*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-y*d,0),this.updateElements(i,0,i.length,e)}_circumference(e,t){const n=this.options,r=this._cachedMeta,i=this._getCircumference();return t&&n.animation.animateRotate||!this.chart.getDataVisibility(e)||null===r._parsed[e]||r.data[e].hidden?0:this.calculateCircumference(r._parsed[e]*i/Fi)}updateElements(e,t,n,r){const i="reset"===r,a=this.chart,o=a.chartArea,s=a.options.animation,l=(o.left+o.right)/2,c=(o.top+o.bottom)/2,d=i&&s.animateScale,u=d?0:this.innerRadius,p=d?0:this.outerRadius,{sharedOptions:m,includeOptions:g}=this._getSharedOptions(t,r);let _,h=this._getRotation();for(_=0;_0&&!isNaN(e)?Fi*(Math.abs(e)/t):0}getLabelAndValue(e){const t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Ta(t._parsed[e],n.options.locale);return{label:r[e]||"",value:i}}getMaxBorderWidth(e){let t=0;const n=this.chart;let r,i,a,o,s;if(!e)for(r=0,i=n.data.datasets.length;r0&&this.getParsed(t-1);for(let n=0;n=f){b.skip=!0;continue}const S=this.getParsed(n),y=gi(S[p]),v=b[u]=a.getPixelForValue(S[u],n),T=b[p]=i||y?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,S,s):S[p],n);b.skip=isNaN(v)||isNaN(T)||y,b.stop=n>0&&Math.abs(S[u]-E[u])>_,g&&(b.parsed=S,b.raw=l.data[n]),d&&(b.options=c||this.resolveDataElementOptions(n,m.active?"active":r)),h||this.updateElement(m,n,b,r),E=S}}getMaxOverflow(){const e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;const i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}},class extends cs{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(e,t,n,r){return ps(e,t,n,r)}parseArrayData(e,t,n,r){return ps(e,t,n,r)}parseObjectData(e,t,n,r){const{iScale:i,vScale:a}=e,{xAxisKey:o="x",yAxisKey:s="y"}=this._parsing,l="x"===i.axis?o:s,c="x"===a.axis?o:s,d=[];let u,p,m,g;for(u=n,p=n+r;ue.controller.options.grouped)),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],l=e=>{const t=e._parsed.find((e=>e[n.axis]===s)),r=t&&t[e.vScale.axis];if(gi(r)||isNaN(r))return!0};for(const n of r)if((void 0===t||!l(n))&&((!1===i||-1===a.indexOf(n.stack)||void 0===i&&void 0===n.stack)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,t,n){const r=this._getStacks(e,n),i=void 0!==t?r.indexOf(t):-1;return-1===i?r.length-1:i}_getRuler(){const e=this.options,t=this._cachedMeta,n=t.iScale,r=[];let i,a;for(i=0,a=t.data.length;i=n?1:-1)}(u,t,o)*a,p===o&&(h-=u/2);const e=t.getPixelForDecimal(0),i=t.getPixelForDecimal(1),l=Math.min(e,i),m=Math.max(e,i);h=Math.max(Math.min(h,m),l),d=h+u,n&&!c&&(s._stacks[t.axis]._visualValues[r]=t.getValueForPixel(d)-t.getValueForPixel(h))}if(h===t.getPixelForValue(o)){const e=Yi(u)*t.getLineWidthForValue(o)/2;h+=e,u-=e}return{size:u,base:h,head:d,center:d+u/2}}_calculateBarIndexPixels(e,t){const n=t.scale,r=this.options,i=r.skipNull,a=Ei(r.maxBarThickness,1/0);let o,s;if(t.grouped){const n=i?this._getStackCount(e):t.stackCount,l="flex"===r.barThickness?function(e,t,n,r){const i=t.pixels,a=i[e];let o=e>0?i[e-1]:null,s=enull===e?null:na(Math.round(e),0,t))(t=isFinite(t)&&n[t]===e?t:function(e,t,n,r){const i=e.indexOf(t);return-1===i?((e,t,n,r)=>("string"==typeof t?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n))(e,t,n,r):i!==e.lastIndexOf(t)?n:i}(n,e,Ei(t,e),this._addedLabels),n.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let{min:n,max:r}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(n=0),t||(r=this.getLabels().length-1)),this.min=n,this.max=r}buildTicks(){const e=this.min,t=this.max,n=this.options.offset,r=[];let i=this.getLabels();i=0===e&&t===i.length-1?i:i.slice(e,t+1),this._valueRange=Math.max(i.length-(n?0:1),1),this._startValue=this.min-(n?.5:0);for(let n=e;n<=t;n++)r.push({value:n});return r}getLabelForValue(e){return Sc.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}},Tc,class extends Js{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,t,n){const r=this.options,{x:i,y:a}=this.getProps(["x","y"],n);return Math.pow(e-i,2)+Math.pow(t-a,2)"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){const n=this.options;if((n.tension||"monotone"===n.cubicInterpolationMode)&&!n.stepped&&!this._pointsUpdated){const r=n.spanGaps?this._loop:this._fullLoop;vo(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function(e,t){const n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];const a=!!e._loop,{start:o,end:s}=function(e,t,n,r){let i=0,a=t-1;if(n&&!r)for(;ii&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}(n,i,a,r);return function(e,t,n,r){return r&&r.setContext&&n?function(e,t,n,r){const i=e._chart.getContext(),a=qo(e.options),{_datasetIndex:o,options:{spanGaps:s}}=e,l=n.length,c=[];let d=a,u=t[0].start,p=u;function m(e,t,r,i){const a=s?-1:1;if(e!==t){for(e+=l;n[e%l].skip;)e-=a;for(;n[t%l].skip;)t+=a;e%l!=t%l&&(c.push({start:e%l,end:t%l,loop:r,style:i}),d=i,u=t%l)}}for(const e of t){u=s?u:e.start;let t,a=n[u%l];for(p=u+1;p<=e.end;p++){const s=n[p%l];t=qo(r.setContext(no(i,{type:"segment",p0:a,p1:s,p0DataIndex:(p-1)%l,p1DataIndex:p%l,datasetIndex:o}))),Yo(t,d)&&m(u,p-1,e.loop,d),a=s,d=t}u"borderDash"!==e};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,n){const r=this.getProps(["x","y"],n),{angle:i,distance:a}=Zi(r,{x:e,y:t}),{startAngle:o,endAngle:s,innerRadius:l,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],n),u=(this.options.spacing+this.options.borderWidth)/2,p=Ei(d,s-o),m=ta(i,o,s)&&o!==s,g=p>=Fi||m,_=ra(a,l+u,c+u);return g&&_}getCenterPoint(e){const{x:t,y:n,startAngle:r,endAngle:i,innerRadius:a,outerRadius:o}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:s,spacing:l}=this.options,c=(r+i)/2,d=(a+o+l+s)/2;return{x:t+Math.cos(c)*d,y:n+Math.sin(c)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:t,circumference:n}=this,r=(t.offset||0)/4,i=(t.spacing||0)/2,a=t.circular;if(this.pixelMargin="inner"===t.borderAlign?.33:0,this.fullCircles=n>Fi?Math.floor(n/Fi):0,0===n||this.innerRadius<0||this.outerRadius<0)return;e.save();const o=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(o)*r,Math.sin(o)*r);const s=r*(1-Math.sin(Math.min(Li,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,function(e,t,n,r,i){const{fullCircles:a,startAngle:o,circumference:s}=t;let l=t.endAngle;if(a){zl(e,t,n,r,l,i);for(let t=0;ti?(c=i/l,e.arc(a,o,l,n+c,r-c,!0)):e.arc(a,o,i,n+zi,r-zi),e.closePath(),e.clip()}(e,t,g),a||(zl(e,t,n,r,g,i),e.stroke())}(e,this,s,i,a),e.restore()}},ic,Ec);let Nc={progressChart:null,successRateChart:null,dailyQuizzesChart:null,performanceTrendChart:null};function Ac(e){const t=function(e){const t=document.createElement("div");t.className="stats-modal hidden fixed inset-0 z-50 overflow-y-auto",t.innerHTML='\n
      \n
      \n \x3c!-- This element is to trick the browser into centering the modal --\x3e\n \n \n \n ',function(e){const t=e.querySelector("#chapterProgressChart").parentNode;t.style.minHeight="600px",t.style.overflow="auto",t.style.paddingRight="10px"}(t);const n=document.createElement("style");return n.textContent=`\n ${wc} \n .stats-modal {\n transition: opacity 0.3s ease-in-out;\n }\n .stats-modal.hidden {\n opacity: 0;\n pointer-events: none;\n }\n .modal-content {\n transition: transform 0.3s ease-in-out;\n }\n .stats-modal.hidden .modal-content {\n transform: scale(0.95);\n }\n .modal-content {\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n }\n .modal-content::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n }\n canvas {\n max-height: 100%;\n width: 100% !important;\n }\n `,e.appendChild(n),e.appendChild(t),requestAnimationFrame((()=>{const e=t.querySelector(".close-modal"),n=t.querySelector(".overlay");e&&e.addEventListener("click",(()=>t.classList.add("hidden"))),n&&n.addEventListener("click",(()=>t.classList.add("hidden")))})),t}(e),n=e.querySelector("#chat-quiz-btn");if(!n)return void console.error("History button not found in shadow root");n.addEventListener("click",(async()=>{t.classList.remove("hidden");try{xc(),function(e,t="chapterProgressChart"){try{const n=e.querySelector(`#${t}`).parentElement,r=function(e){const t=document.createElement("div");return t.className="chart-loader",t.innerHTML='\n
      \n
      \n
      \n ',e.style.position="relative",t}(n);return n.appendChild(r),Nc.progressChart&&(Nc.progressChart.destroy(),Nc.progressChart=null),Pr().then((n=>{const r=JSON.parse(localStorage.getItem(kn));if(function(){try{const e=localStorage.getItem(Cc);return e?JSON.parse(e):null}catch(e){return console.error("Error getting last visited chapter:",e),null}}(),!r)return;const i=e.querySelector(`#${t}`).getContext("2d"),a=r.map((e=>{const t=n.get(e.chapter)||{passedQuizzes:0},r=t.passedQuizzes/10*100;return{...e,completionPercentage:t.passedQuizzes>0?r:2,remainingPercentage:t.passedQuizzes>0?100-r:98}})),o=Math.max(400,40*a.length);i.canvas.parentNode.style.height=`${o}px`,Nc.progressChart=new Bl(i,{type:"bar",data:{labels:a.map((e=>`Chapter ${e.chapter}: ${e.title}`)),datasets:[{label:"Completed",data:a.map((e=>e.completionPercentage)),backgroundColor:"#3b82f6",borderColor:"#2563eb",borderWidth:1,order:1},{label:"Remaining",data:a.map((e=>e.remainingPercentage)),backgroundColor:"#93c5fd",borderColor:"#60a5fa",borderWidth:1,order:2}]},options:{indexAxis:"y",responsive:!0,maintainAspectRatio:!1,layout:{padding:{left:20,right:20}},plugins:{legend:{position:"top",labels:{generateLabels:function(e){return[{text:"Completed",fillStyle:"#3b82f6",strokeStyle:"#2563eb",lineWidth:1},{text:"Remaining",fillStyle:"#93c5fd",strokeStyle:"#60a5fa",lineWidth:1}]}}},tooltip:{callbacks:{label:function(e){const t=r[e.dataIndex],i=n.get(t.chapter)||{passedQuizzes:0},a=i.passedQuizzes/10*100;return"Completed"===e.dataset.label?i.passedQuizzes>0?`Completed: ${a.toFixed(1)}% (${i.passedQuizzes}/10 quizzes)`:"No quizzes completed yet":i.passedQuizzes>0?`Remaining: ${(100-a).toFixed(1)}% (${10-i.passedQuizzes}/10 quizzes)`:"All quizzes remaining"}}}},scales:{x:{stacked:!0,title:{display:!0,text:"Completion Percentage"},ticks:{callback:function(e){return e+"%"}},max:100},y:{stacked:!0,beginAtZero:!0,ticks:{padding:10,font:{size:11}}}},barThickness:20,barPercentage:.8,categoryPercentage:.9,borderRadius:4}})})).finally((()=>{const e=n.querySelector(".chart-loader");e&&e.remove()}))}catch(e){console.error("Error creating progress chart:",e)}}(e);const t=await async function(){const e=await wr();return new Promise(((t,n)=>{const r=e.transaction([Ar,Nr],"readonly"),i=r.objectStore(Ar),a=(r.objectStore(Nr),i.getAll());a.onsuccess=()=>{const e=a.result;t({attempts:e.length,totalCorrect:e.reduce(((e,t)=>e+t.score.correct),0),totalQuestions:e.reduce(((e,t)=>e+t.score.total),0),recentScores:e.slice(-5),allStats:e})},r.onerror=()=>n(r.error)}))}(),n=function(e){const t=[...new Array(7)].map(((e,t)=>{const n=new Date;return n.setDate(n.getDate()-t),n.toISOString().split("T")[0]})).reverse(),n=t.map((t=>{const n=e.allStats.filter((e=>e.date===t));return{date:t,count:n.length,correctRate:n.length?n.reduce(((e,t)=>e+t.score.correct/t.score.total),0)/n.length:0}}));let r=0,i=0,a=0;return n.forEach(((e,t)=>{e.count>0?(a++,t===n.length-1&&(r=a),a>i&&(i=a)):t0&&Oc(t,"🎯","First Quiz Completed!"),n>0){const e=document.createElement("div");e.className="streak-badge flex items-center justify-center w-6 h-6 rounded-full bg-blue-500 text-white text-xs font-bold",e.textContent=n,e.title=`${n} Perfect Score Streak!`,t.appendChild(e)}const i=Math.floor(r/10);for(let e=0;ee.date.slice(5))),datasets:[{label:"Number of Quizzes",data:n.map((e=>e.count)),backgroundColor:"#3b82f6",borderRadius:4}]},options:{responsive:!0,scales:{y:{beginAtZero:!0,ticks:{stepSize:1}}}}}),Nc.performanceTrendChart&&(Nc.performanceTrendChart.destroy(),Nc.performanceTrendChart=null);const a=e.querySelector("#performanceTrendChart").getContext("2d");Nc.performanceTrendChart=new Bl(a,{type:"line",data:{labels:n.map((e=>e.date.slice(5))),datasets:[{label:"Success Rate",data:n.map((e=>(100*e.correctRate).toFixed(1))),borderColor:"#3b82f6",tension:.3,fill:!1}]},options:{responsive:!0,scales:{y:{beginAtZero:!0,max:100,ticks:{callback:e=>`${e}%`}}}}}),e.querySelector("#currentStreak").textContent=`${t.currentStreak} days`,e.querySelector("#bestStreak").textContent=`${t.bestStreak} days`,e.querySelector("#totalQuizzes").textContent=t.totalQuizzes,e.querySelector("#avgScore").textContent=`${t.avgScore}%`}catch(e){console.error("Error creating charts:",e)}}(e,n)}catch(e){console.error("Error loading stats:",e)}}));const r=t.querySelector(".close-modal"),i=t.querySelector(".overlay"),a=()=>{t.classList.add("hidden"),xc()};r.addEventListener("click",a),i.addEventListener("click",a)}function xc(){Object.values(Nc).forEach((e=>{e&&e.destroy()})),Nc={progressChart:null,successRateChart:null,dailyQuizzesChart:null,performanceTrendChart:null}}function Oc(e,t,n){const r=document.createElement("div");r.className="badge text-xl cursor-help",r.textContent=t,r.title=n,function(e){const t=JSON.parse(localStorage.getItem("earnedBadges")||"[]");return!t.includes(e)&&(t.push(e),localStorage.setItem("earnedBadges",JSON.stringify(t)),!0)}(n)&&r.classList.add("new-badge-glow"),e.appendChild(r)}const wc="\n .badge {\n transition: transform 0.2s;\n }\n .badge:hover {\n transform: scale(1.2);\n }\n .new-badge-glow {\n animation: glow 2s ease-in-out infinite;\n }\n @keyframes glow {\n 0%, 100% { filter: drop-shadow(0 0 2px gold); }\n 50% { filter: drop-shadow(0 0 8px gold); }\n }\n .streak-badge {\n animation: pop-in 0.3s ease-out;\n }\n @keyframes pop-in {\n 0% { transform: scale(0); }\n 50% { transform: scale(1.2); }\n 100% { transform: scale(1); }\n }\n";let Rc;function Ic(e,t,n){const r=document.createElement("button");return r.className="w-6 h-6 flex items-center justify-center hover:text-blue-700 transition-colors duration-200",r.title=t,r.id=n,r.innerHTML=`\n \n \n \n `,r}function Dc(e,t,n,r=""){console.log("I AM QUIZ DATA",t,"title",n);const i=e.querySelector("#quiz-form"),a=e.querySelector("#submit-quiz-btn");function o(){return`${(new Date).getTime()}-${Math.random().toString(36).substring(2,15)}`}r&&r["final-review"]&&i.classList.add("final-review-quiz");const s=`submit-quiz-btn-${o()}`;a.id=s;const l=document.createElement("style");function c(){console.log("Explanation requested for quiz results:",a.dataset.quizResults);const e=new CustomEvent("aiActionCompleted",{detail:{text:a.dataset.quizResults,type:"query"}});window.dispatchEvent(e)}l.textContent=`\n #${s} {\n margin-top: 1rem;\n width: 100%;\n background-color: black;\n color: white;\n padding: 0.5rem 1rem;\n border-radius: 0.25rem;\n transition: background-color 0.2s;\n margin-bottom: 10px;\n }\n \n #${s}:hover {\n background-color: #333;\n }\n\n .final-review-quiz {\n background-color: #EFE4D4; /* Lighter version of #E0C9A6 */\n padding: 20px;\n border-radius: 8px;\n }\n `,e.appendChild(l);const d=function(e,t,n){return async function(r){if(r.preventDefault(),!n)return void console.error("Quiz title is missing");const i=t.querySelectorAll('input[type="radio"]:checked'),a=t.querySelectorAll("div.mb-8").length;let o=0,s=[];i.forEach((e=>{const t="true"===e.dataset.correct,n=e.closest(".mb-8");t?o++:s.push({question:n.querySelector("h4").textContent,answers:Array.from(n.querySelectorAll('input[type="radio"]')).map((e=>({text:e.nextElementSibling.textContent,correct:"true"===e.dataset.correct,explanation:e.closest("li").querySelector(".explanation").textContent})))})}));const l={correct:o,total:a,timestamp:(new Date).toISOString()};try{await Promise.all([Mr(s,l,n),Dr()]),function(e){const t=e.correct===e.total,n=parseInt(localStorage.getItem("quizStreak")||"0");t?localStorage.setItem("quizStreak",n+1):localStorage.setItem("quizStreak","0")}(l),function(){const e=parseInt(localStorage.getItem("totalQuizzes")||"0");localStorage.setItem("totalQuizzes",e+1)}()}catch(e){console.error("Error saving quiz results:",e)}e.call(this,r)}}(function n(r){r.preventDefault();const o=i.querySelectorAll('input[type="radio"]:checked'),s=i.querySelectorAll(".explains_wrapper");let l=0;o.forEach((e=>{const t="true"===e.dataset.correct,n=e.closest("li");t?(l++,n.classList.add("correct-answer")):n.classList.add("wrong-answer")})),s.forEach((e=>{e.classList.remove("hidden")}));const d=`You got ${l} out of ${t.length} questions correct.`;e.querySelector("#result").textContent=d,a.textContent="Explain in more detail",a.dataset.quizResults=i.textContent,a.removeEventListener("click",n),a.addEventListener("click",c);const u=function(e){Rc||(Rc=e);const t=document.createElement("div");t.className="flex justify-end space-x-2 mt-4";const n=Ic("M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99","Redo","redo-btn-group"),r=Ic("M7.217 10.907a2.25 2.25 0 100 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186l9.566-5.314m-9.566 7.5l9.566 5.314m0 0a2.25 2.25 0 103.935 2.186 2.25 2.25 0 00-3.935-2.186zm0-12.814a2.25 2.25 0 103.933-2.185 2.25 2.25 0 00-3.933 2.185z","Share","share-btn-group"),i=Ic("M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z","Graph","quiz-btn-group"),a=Ic("M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75","Copy","copy-btn-group");return n.addEventListener("click",(e=>{e.preventDefault(),alert("coming soon!")})),r.addEventListener("click",(e=>{e.preventDefault();const t=e.currentTarget.closest("#markdown-preview");if(t){const e=t.innerText||t.textContent,n="Shared Content",r=encodeURIComponent(e),i=`mailto:?subject=${encodeURIComponent(n)}&body=${r}`;window.open(i,"_blank")}else console.log("Share button clicked - No markdown preview found")})),i.addEventListener("click",(e=>{e.preventDefault(),console.log("Graph button clicked"),function(){const e=document.getElementById("widget-chat-container");if(!e||!e.shadowRoot)return void console.error("Host element or shadowRoot not found");const t=e.shadowRoot.querySelector("#chat-quiz-btn");t?t.click():console.error("Modal button not found in shadow root",e.shadowRoot)}()})),a.addEventListener("click",(async e=>{e.preventDefault();const t=e.currentTarget.closest("#markdown-preview");if(t)try{const e=t.innerText||t.textContent;await navigator.clipboard.writeText(e),a.querySelector("path").getAttribute("d"),function(e,t){const n=e.innerHTML;e.innerHTML='\n \n \n \n ',setTimeout((()=>{e.innerHTML=n}),2e3)}(a),console.log("Content copied to clipboard")}catch(e){console.error("Failed to copy content:",e)}else console.log("Copy button clicked - No markdown preview found")})),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),t}(e);i.appendChild(u)}.bind(null),i,n);a.addEventListener("click",d),function(e){i.innerHTML="",e.forEach(((e,t)=>{const n=document.createElement("div");n.classList.add("mb-8");const r=document.createElement("h4");r.classList.add("text-lg","font-semibold","mb-2"),r.textContent=e.question,n.appendChild(r);const a=document.createElement("ul");a.classList.add("list-none","space-y-2"),e.answers.forEach(((e,n)=>{const r=document.createElement("li"),i=document.createElement("div");i.classList.add("answer-option","flex","items-center");const s=document.createElement("input");s.type="radio";const l=o();s.id=l,s.name=`question${t}`,s.value=n,s.classList.add("mr-2"),s.dataset.correct=e.correct;const c=document.createElement("label");c.htmlFor=l,c.textContent=e.text,c.classList.add("flex-1");const d=document.createElement("div");if(d.classList.add("explains_wrapper","hidden"),e.correct){d.classList.add("relative","mt-2","rounded-lg","border-2","border-green-500","p-3");const e=document.createElement("div");e.classList.add("absolute","-top-3","left-2","rounded-lg","border-2","border-green-500","bg-white","px-2","text-xs","text-green-500"),e.textContent="Correct",d.appendChild(e)}const u=document.createElement("p");u.textContent=e.explanation,u.classList.add("explanation","text-sm","text-purple-500"),d.appendChild(u),i.appendChild(s),i.appendChild(c),r.append(i),r.appendChild(d),a.appendChild(r)})),n.appendChild(a),i.appendChild(n)}))}(t)}class kc{constructor(e){this.allShadow=e,this.shadowEle=e.querySelector("#modal1"),this.settings={sliderValue:1,selectedDropdownValue:"",checkboxes:{},modalDisplayed:!1},this.loadSettings()}init(){const e=this.shadowEle.querySelector("#understanding-slider");e&&(e.addEventListener("input",(e=>{this.updateSlider(e.target.value)})),this.updateSlider(e.value));const t=this.shadowEle.querySelector("#choices");t&&(t.addEventListener("change",(e=>{this.updateDropdown(e.target.value)})),this.updateDropdown(t.value)),this.shadowEle.querySelectorAll('input[type="checkbox"]').forEach((e=>{e.addEventListener("change",(t=>{this.updateCheckbox(e.id,t.target.checked)})),this.updateCheckbox(e.id,e.checked)}));const n=this.shadowEle.querySelector("#Enable-highlight-menu");console.log("highlightMenu: ",n);const r=this.allShadow.querySelector("#hidden-menu-start-body");console.log("body_highlight_menu: ",r),n&&n.addEventListener("change",(e=>{e.target.checked?(console.log("hello body menu!"),r.classList.remove("hidden")):(console.log("body should go bye bye"),r.classList.add("hidden"))})),this.dispatchAndUpdate("init",!0),this.dispatchAndUpdate_settings("init",!0)}dispatchHighlightMenuEvent(e){const t=new CustomEvent("highlight-menu-starts",{detail:{enabled:e}});window.dispatchEvent(t)}dispatchAndUpdate(e,t){const n=new CustomEvent("aiActionCompleted",{detail:{type:"system_prompt",text:this.generateSystemPrompt()}});window.dispatchEvent(n)}dispatchAndUpdate_settings(e,t){const n=new CustomEvent("aiActionCompleted",{detail:{settings:this.generateSettings(),type:"settings"}});window.dispatchEvent(n),"init"!==e&&rr(this.shadowEle,"setting "+e+" with value "+t+" is updated","success")}updateSlider(e){this.settings.sliderValue=parseInt(e,10),this.saveSettings(),this.dispatchAndUpdate("sliderValue",this.settings.sliderValue)}updateDropdown(e){this.settings.selectedDropdownValue=e,this.saveSettings(),this.dispatchAndUpdate_settings("selectedDropdownValue",this.settings.selectedDropdownValue)}updateCheckbox(e,t){this.settings.checkboxes[e]=t,this.saveSettings(),"Show answers"===e?this.dispatchAndUpdate(e,t):this.dispatchAndUpdate_settings(e,t)}generateSystemPrompt(){const e=["complete beginner of machine learning","learner with highs-chool level understanding of machine learning","learner with college level understanding of machine learning","learner with graduate level understanding of machine learning"],t=e[this.settings.sliderValue]||"unknown level";return this.settings.checkboxes["Show answers"],rr(this.shadowEle,"Questions will be greated towards a "+e[this.settings.sliderValue],"success"),`Taylor your response for a: ${t}. `}generateSettings(){return{llm_model:this.settings.selectedDropdownValue,show_progress:this.settings.checkboxes["Show chain of thought"]}}saveSettings(){localStorage.setItem("userSettings",JSON.stringify(this.settings))}loadSettings(){const e=localStorage.getItem("userSettings");e&&(this.settings=JSON.parse(e))}}const Mc={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},Pc={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}},Lc=Pc,Fc={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),i=e(r,n);return void 0===i?this.none():i}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}},Bc={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};Bc.group=Bc.groups,Bc.fullSentence=Bc.fullSentences,Bc.sentence=Bc.fullSentences,Bc.lastTerm=Bc.lastTerms,Bc.firstTerm=Bc.firstTerms;const Uc=Bc,Gc=Object.assign({},Uc,Lc,Fc);Gc.get=Gc.eq;const zc=Gc;class Hc{constructor(e,t,n={}){[["document",e],["world",Mc],["_groups",n],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=t}get docs(){let e=this.document;return this.ptrs&&(e=Mc.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,i,a,o]=e;return r=r||0,i=i||(n[t]||[]).length,n[t]&&n[t][r]&&(a=a||n[t][r].id,n[t][i-1]&&(o=o||n[t][i-1].id)),[t,r,i,a,o]}))}update(e){let t=new Hc(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,i,a]=e;(1===e.length||0===i&&this.document[r].length===a)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new Hc(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new Hc(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(Hc.prototype,zc);const Vc=Hc,qc=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function Yc(e,t){if(qc(t))for(const n in t)qc(t[n])?(e[n]||Object.assign(e,{[n]:{}}),Yc(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const jc=function(e,t,n,r){const{methods:i,model:a,compute:o,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(i,e.methods),e.model&&Yc(a,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(a,e.irregulars),e.compute&&Object.assign(o,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t)},$c=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wc=function(e,t,n){const{methods:r}=n;let i=new t([]);if(i.world=n,"number"==typeof e&&(e=String(e)),!e)return i;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(a=e,"[object Object]"===Object.prototype.toString.call(a)&&e.isView)return new t(e.document,e.ptrs);var a;if($c(e)){if($c(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>($c(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return i};let Kc=Object.assign({},Mc);const Qc=function(e,t){t&&Qc.addWords(t);let n=Wc(e,Vc,Kc);return e&&n.compute(Kc.hooks),n};Object.defineProperty(Qc,"_world",{value:Kc,writable:!0}),Qc.tokenize=function(e,t){const{compute:n}=this._world;t&&Qc.addWords(t);let r=Wc(e,Vc,Kc);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},Qc.plugin=function(e){return jc(e,this._world,Vc,this),this},Qc.extend=Qc.plugin,Qc.world=function(){return this._world},Qc.model=function(){return this._world.model},Qc.methods=function(){return this._world.methods},Qc.hooks=function(){return this._world.hooks},Qc.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},Qc.version="14.13.0";const Zc=Qc,Xc={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}},Jc={api:function(e){Object.assign(e.prototype,Xc)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),td=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},nd=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},rd=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let i=e[t-1];if(!i)return;let a=i.post;if(r.test(a)){let e=a.match(r).join(""),t=n[n.length-1];t.post=e+t.post,i.post=i.post.replace(r,"")}};let id=0;const ad=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,od=function(e){let[t,n]=e.index||[0,0];id+=1,id=id>46655?0:id,t=t>46655?0:t,n=n>1294?0:n;let r=ad(id.toString(36));r+=ad(t.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,r+=i,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()},sd=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},ld=e=>"[object Array]"===Object.prototype.toString.call(e),cd=function(e,t,n){const{document:r,world:i}=t;t.uncache();let a=t.fullPointer,o=t.fullPointer;t.forEach(((s,l)=>{let c=s.fullPointer[0],[d]=c,u=r[d],p=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:ld(e)?ld(e[0])?e[0]:e:[]}(e,i);0!==p.length&&(p=function(e){return e.map((e=>(e.id=od(e),e)))}(p),n?(sd(t.update([c]).firstTerm()),function(e,t,n,r){let[i,a,o]=t;0===a||o===r[i].length?nd(n):(nd(n),nd([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!ed(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let i=e[t];i.tags.has("ProperNoun")||i.tags.has("Acronym")||ed(i.text)&&i.text.length>1&&(i.text=i.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,a,n),td(e,a,n)}(u,c,p,r)):(sd(t.update([c]).lastTerm()),function(e,t,n,r){let[i,,a]=t,o=(r[i]||[]).length;a{let n=t(e);e.replaceWith(n)})),e}(r,e);let i=r.docs[0],a=t.possessives&&i[i.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(pd,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let o=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(o.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o),a){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}},gd=md,_d={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let i=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),s=function(e,t){t.forEach((t=>{let[n,r,i]=t,a=i-r;e[n]&&(i===e[n].length&&i>1&&function(e,t){let n=e.length-1,r=e[n],i=e[n-t];i&&r&&(i.post+=r.post,i.post=i.post.replace(/ +([.?!,;:])/,"$1"),i.post=i.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],a),e[n].splice(r,a))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e}(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=s,n.compute("index"),i&&(n.ptrs=void 0),e?n.toView(a):(this.ptrs=[],n.none())}};_d.delete=_d.remove;const hd=_d,fd={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};fd.deHyphenate=fd.dehyphenate,fd.toQuotation=fd.toQuotations;const bd=fd,Ed={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],i=t[n.normal];return ri?-1:0})),e}},Sd=new Set(["index","sequence","seq","sequential","chron","chronological"]),yd=new Set(["freq","frequency","topk","repeats"]),vd=new Set(["alpha","alphabetical"]),Td={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),i=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return Sd.has(e)&&(e="sequential"),vd.has(e)&&(e="alpha"),yd.has(e)?(i=Ed.byFreq(i),this.update(i.map((e=>e.pointer)))):"function"==typeof Ed[e]?(i=i.sort(Ed[e]),this.update(i.map((e=>e.pointer)))):this}},Cd=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e.concat(t)},Nd={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=Cd(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=Cd(this.document,e);return this.document=t,this.all()}var t;return this}},Ad=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},ud,gd,hd,bd,Td,Nd,{harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}}),xd={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,i+t],e))),n[0]&&(n[0].pre=e[r][i].pre,n[n.length-1].post=e[r][i].post,n[0].text=e[r][i].text,n[0].normal=e[r][i].normal),e[r].splice(i,1,...n))},Dd=/'/,kd=new Set(["what","how","when","where","why"]),Md=new Set(["be","go","start","think","need"]),Pd=new Set(["been","gone"]),Ld=/'/,Fd=/(e|é|aison|sion|tion)$/,Bd=/(age|isme|acle|ege|oire)$/,Ud=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,Gd=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,zd=/^[0-9]{3}-[0-9]{4}$/,Hd=function(e,t){let n=e[t],r=n.text.match(Ud);return null!==r?!0===n.tags.has("PhoneNumber")||zd.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(Gd),null!==r?[r[1],"to",r[4]]:null)},Vd=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,qd=function(e,t,n){const r=n.model.one.numberSuffixes||{};let i=e[t].text.match(Vd);if(null!==i){let e=i[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[i[1],e]}return null},Yd=/'/,jd=/^[0-9][^-–—]*[-–—].*?[0-9]/,$d=function(e,t,n,r){let i=t.update();i.document=[e];let a=n+r;n>0&&(n-=1),e[a]&&(a+=1),i.ptrs=[[0,n,a]]},Wd={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(Dd)[0];if(kd.has(n))return[n,"did"];if(e[t+1]){if(Pd.has(e[t+1].normal))return[n,"had"];if(Md.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},Kd={j:(e,t)=>((e,t)=>["je",e[t].normal.split(Ld)[1]])(e,t),l:(e,t)=>((e,t)=>{let n=e[t].normal.split(Ld)[1];return n&&n.endsWith("e")?["la",n]:["le",n]})(e,t),d:(e,t)=>((e,t)=>{let n=e[t].normal.split(Ld)[1];return n&&Fd.test(n)&&!Bd.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]})(e,t)},Qd=function(e,t,n,r){for(let i=0;i2)return a.out.concat(r)}return null},Zd=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},Xd=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]},Jd={model:Rd,compute:{contractions:e=>{let{world:t,document:n}=e;const{model:r,methods:i}=t;let a=r.one.contractions||[];n.forEach(((r,o)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,c=null;if(!0===Yd.test(r[s].normal)){let e=r[s].normal.split(Yd);l=e[0],c=e[1]}let d=Qd(a,r[s],l,c);!d&&Wd.hasOwnProperty(c)&&(d=Wd[c](r,s,t)),!d&&Kd.hasOwnProperty(l)&&(d=Kd[l](r,s)),"there"===l&&"s"===c&&(d=Xd(r,s)),d?(d=Zd(d,e),Id(n,[o,s],d),$d(n[o],e,s,d.length)):jd.test(r[s].normal)?(d=Hd(r,s),d&&(d=Zd(d,e),Id(n,[o,s],d),i.one.setTag(d,"NumberRange",t),d[2]&&d[2].tags.has("Time")&&i.one.setTag([d[0]],"Time",t,null,"time-range"),$d(n[o],e,s,d.length))):(d=qd(r,s,t),d&&(d=Zd(d,e),Id(n,[o,s],d),i.one.setTag([d[1]],"Unit",t,null,"contraction-unit")))}}))}},hooks:["contractions"]},eu=function(e){const t=e.world,{model:n,methods:r}=e.world,i=r.one.setTag,{frozenLex:a}=n.one,o=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let o=e.slice(n,r+1),s=o.map((e=>e.machine||e.normal)).join(" ");!0!==a.hasOwnProperty(s)||(i(o,a[s],t,!1,"1-frozen-multi-lexicon"),o.forEach((e=>e.frozen=!0)))}void 0!==a[s]&&a.hasOwnProperty(s)&&(i([r],a[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},tu=e=>""+e+"",nu=e=>""+e+"",ru=function(e){e.docs.forEach((e=>{console.log(tu("\n ┌─────────")),e.forEach((e=>{let t=` ${nu("│")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${tu(n)} ❄️`:t+=nu(n),console.log(t)}))}))},iu={compute:{frozen:eu,freeze:eu,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ru,t.debug.frozen=ru},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},au=function(e,t,n){const{model:r,methods:i}=n,a=i.one.setTag,o=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],c=l.machine||l.normal;if(void 0!==o[c]&&e[t+1]){for(let r=t+o[c]-1;r>t;r-=1){let i=e.slice(t,r+1);if(i.length<=1)return!1;let o=i.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(o)){let e=s[o];return a(i,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||a([i[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},ou=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,su=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),lu=function(e,t,n){const{model:r,methods:i}=n,a=i.one.setTag,{lexicon:o}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==o[l]&&o.hasOwnProperty(l))return a([s],o[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>o.hasOwnProperty(e)));if(e)return a([s],o[e],n,!1,"1-lexicon-alias"),!0}if(!0===ou.test(l)){let e=l.replace(ou,"");if(o.hasOwnProperty(e)&&e.length>3&&su.has(o[e]))return a([s],o[e],n,!1,"1-lexicon-prefix"),!0}return null},cu={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:a}=r.one.expandLexicon(e,n);return Object.assign(i.one._multiCache,a),void Object.assign(i.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:a}=r.two.expandLexicon(e,n);Object.assign(i.one.lexicon,t),Object.assign(i.one._multiCache,a)}let{lex:a,_multi:o}=r.one.expandLexicon(e,n);Object.assign(i.one.lexicon,a),Object.assign(i.one._multiCache,o)}},uu={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach((r=>{let i=e[r],a=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);a.length>1&&(void 0===n[a[0]]||a.length>n[a[0]])&&(n[a[0]]=a.length),t[r]=t[r]||i})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:cu,lib:du,hooks:["lexicon"]},pu=function(e,t){let n=[{}],r=[null],i=[0],a=[],o=0;e.forEach((function(e){let i=0,a=function(e,t){const{methods:n,model:r}=t;let i=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return i.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[o].hasOwnProperty(l);)o=i[o];if(n.hasOwnProperty(o)){let e=n[o][l];i[c]=e,r[e]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[e]))}else i[c]=0}}return{goNext:n,endAs:r,failTo:i}},mu=function(e,t,n){let r=0,i=[];for(let a=0;a0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(o));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(o)&&(r=t.goNext[r][o],t.endAs[r])){let n=t.endAs[r];for(let t=0;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e.slice(0,n+1);return e},hu={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=_u(e.goNext,void 0),e.failTo=_u(e.failTo,0),e.endAs=_u(e.endAs,null),e}(pu(e,this.world()))}};hu.compile=hu.buildTrie;const fu={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let r=function(e,t,n){let r=[];n.form=n.form||"normal";let i=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let a=Object.keys(t.goNext[0]);for(let o=0;o0&&(r=r.concat(l))}return e.update(r)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:pu(e,this.world)),t);return r=r.settle(),r}},lib:hu},bu=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Eu=function(e,t){let{ptrs:n,byGroup:r}=e;return n=bu(n,t),Object.keys(r).forEach((e=>{r[e]=bu(r[e],t)})),{ptrs:n,byGroup:r}},Su=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},yu=e=>"[object Object]"===Object.prototype.toString.call(e),vu=e=>e&&yu(e)&&!0===e.isView,Tu=e=>e&&yu(e)&&!0===e.isNet,Cu={matchOne:function(e,t,n){const r=this.methods.one;if(vu(e))return this.intersection(e).eq(0);if(Tu(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let i={regs:e=Su(e,n,this.world),group:t,justOne:!0},a=r.match(this.docs,i,this._cache),{ptrs:o,byGroup:s}=Eu(a,this.fullPointer),l=this.toView(o);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(vu(e))return this.intersection(e);if(Tu(e))return this.sweep(e,{tagger:!1}).view.settle();let i={regs:e=Su(e,n,this.world),group:t},a=r.match(this.docs,i,this._cache),{ptrs:o,byGroup:s}=Eu(a,this.fullPointer),l=this.toView(o);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(vu(e))return this.intersection(e).fullPointer.length>0;if(Tu(e))return this.sweep(e,{tagger:!1}).view.found;let i={regs:e=Su(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,i,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(vu(e))return this.filter((t=>t.intersection(e).found));if(Tu(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let i={regs:e=Su(e,n,this.world),group:t,justOne:!0},a=this.fullPointer,o=this._cache||[];a=a.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,i,o[t]).ptrs.length>0}));let s=this.update(a);return this._cache&&(s._cache=a.map((e=>o[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,i=r.one;if(vu(e))return this.filter((t=>!t.intersection(e).found));if(Tu(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Su(e,n,this.world);let a=this._cache||[],o=this.filter(((n,r)=>{let o={regs:e,group:t,justOne:!0};return 0===i.match(n.docs,o,a[r]).ptrs.length}));return this._cache&&(o._cache=o.ptrs.map((e=>a[e[0]]))),o}},Nu={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let i=[],a=r(this.fullPointer);Object.keys(a).forEach((e=>{let t=a[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&i.push([t[0],0,t[1]])}));let o=this.toView(i);return e?o.match(e,t,n):o},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let i=[],a=r(this.fullPointer),o=this.document;Object.keys(a).forEach((e=>{let t=a[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let a=n.before(e,t);if(a.found){let e=a.terms();r[i][1]-=e.length,r[i][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,i)=>{let a=n.after(e,t);if(a.found){let e=a.terms();r[i][2]+=e.length,r[i][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}},Au=function(e,t){return[e[0],e[1],t[2]]},xu=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ou=function(e,t){let[n,r,i]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][i-1]&&(e[4]=e[4]||t.document[n][i-1].id)),e},wu={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=xu(e,this,t).fullPointer,i=n(this.fullPointer,r),a=[];return i.forEach((e=>{a.push(e.passthrough),a.push(e.before),a.push(e.match),a.push(e.after)})),a=a.filter((e=>e)),a=a.map((e=>Ou(e,this))),this.update(a)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=xu(e,this,t).fullPointer,i=n(this.fullPointer,r);for(let e=0;e{a.push(e.passthrough),a.push(e.before),e.match&&e.after?a.push(Au(e.match,e.after)):a.push(e.match)})),a=a.filter((e=>e)),a=a.map((e=>Ou(e,this))),this.update(a)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=xu(e,this,t).fullPointer,i=n(this.fullPointer,r),a=[];return i.forEach((e=>{a.push(e.passthrough),e.before&&e.match?a.push(Au(e.before,e.match)):(a.push(e.before),a.push(e.match)),a.push(e.after)})),a=a.filter((e=>e)),a=a.map((e=>Ou(e,this))),this.update(a)}};wu.split=wu.splitAfter;const Ru=wu,Iu=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},Du=function(e,t,n){const r=e.world,i=r.methods.one.parseMatch;n=n||"^.";let a=i(t=t||".$",{},r),o=i(n,{},r);a[a.length-1].end=!0,o[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Lu=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Fu=/ /g,Bu=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Uu=function(e){return(e=e.map((e=>e.trim()))).filter((e=>e))},Gu=/\{([0-9]+)?(, *[0-9]*)?\}/,zu=/&&/,Hu=new RegExp(/^<\s*(\S+)\s*>/),Vu=e=>e.charAt(0).toUpperCase()+e.substring(1),qu=e=>e.charAt(e.length-1),Yu=e=>e.charAt(0),ju=e=>e.substring(1),$u=e=>e.substring(0,e.length-1),Wu=function(e){return e=ju(e),$u(e)},Ku=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===qu(e)&&(n.end=!0,e=$u(e)),"^"===Yu(e)&&(n.start=!0,e=ju(e)),"?"===qu(e)&&(n.optional=!0,e=$u(e)),("["===Yu(e)||"]"===qu(e))&&(n.group=null,"["===Yu(e)&&(n.groupStart=!0),"]"===qu(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Yu(e))){const t=Hu.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===qu(e)&&(n.greedy=!0,e=$u(e)),"*"!==e&&"*"===qu(e)&&"\\*"!==e&&(n.greedy=!0,e=$u(e)),"!"===Yu(e)&&(n.negative=!0,e=ju(e)),"~"===Yu(e)&&"~"===qu(e)&&e.length>2&&(e=Wu(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===Yu(e)&&"/"===qu(e))return e=Wu(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===Gu.test(e)&&(e=e.replace(Gu,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===Yu(e)&&")"===qu(e)){zu.test(e)?(n.choices=e.split(zu),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ju(n.choices[0]);let r=n.choices.length-1;n.choices[r]=$u(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Ku(e,t))))),e=""}if("{"===Yu(e)&&"}"===qu(e)){if(e=Wu(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===Yu(e)&&">"===qu(e))return e=Wu(e),n.chunk=Vu(e),n.greedy=!0,n;if("%"===Yu(e)&&"%"===qu(e))return e=Wu(e),n.switch=e,n}return"#"===Yu(e)?(n.tag=ju(e),n.tag=Vu(n.tag),n):"@"===Yu(e)?(n.method=ju(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)},Qu=Ku,Zu=/[a-z0-9][-–—][a-z]/i,Xu=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Ju=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},ep=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},tp=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},np=function(e,t){for(let n=0;n-1!==e.post.indexOf(t),lp={hasQuote:e=>rp.test(e.pre)||ip.test(e.post),hasComma:e=>sp(e,","),hasPeriod:e=>!0===sp(e,".")&&!1===sp(e,"..."),hasExclamation:e=>sp(e,"!"),hasQuestionMark:e=>sp(e,"?")||sp(e,"¿"),hasEllipses:e=>sp(e,"..")||sp(e,"…"),hasSemicolon:e=>sp(e,";"),hasColon:e=>sp(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ap.test(e.post)||ap.test(e.pre),hasDash:e=>op.test(e.post)||op.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};lp.hasQuotation=lp.hasQuote;const cp=lp;let dp=function(){};dp=function(e,t,n,r){let i=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(function(e,t,n=3){if(e===t)return 1;if(e.lengthn?r:n)+1;if(Math.abs(n-r)>(i||100))return i||100;let a,o,s,l,c,d,u=[];for(let e=0;e4)return n;s=t[a-1],l=o===s?0:1,c=u[i-1][a]+1,(d=u[i][a-1]+1)1&&a>1&&o===t[a-2]&&e[i-2]===s&&(d=u[i-2][a-2]+l)=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof cp[t.method]&&!0===cp[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>dp(e,t,n,r))):t.choices.some((t=>dp(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!i:i};const up=dp,pp=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(mp(e,e.t).length=r-e.t),e.t=r,!0)},_p=function(e,t=0){let n=e.regs[e.r],r=!1;for(let a=0;a{let i=0,a=e.t+r+t+i;if(void 0===e.terms[a])return!1;let o=up(e.terms[a],n,a+e.start_i,e.phrase_length);if(!0===o&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&up(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(mp(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},bp=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,up(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(up(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&up(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?function(e,t,n){let r=0;for(let i=e.t;ir||(e.t+=r,0))}(e,r,t[e.r+1]):(e.t+=1,!0)},Ep=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],i=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],i=up(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||i){let n=e.terms[e.t+1];n&&up(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),r.implicit&&e.terms[e.t+1]&&function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null}(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=mp(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,i),!0):null)},Sp=function(e,t,n,r){if(0===e.length||0===t.length)return null;let i={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;i.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==pp(e,i)){if(e.negative){if(!bp(i))return null}else if(!0!==up(i.terms[i.t],e,i.start_i+i.t,i.phrase_length)){if(!0!==e.optional)return null}else if(!Ep(i))return null}else if(!Ep(i))return null}else{if(e.negative&&e.anything)return null;if(!Ep(i))return null}else if(!fp(i))return null}else if(!hp(i))return null}else if(!gp(i))return null}let a=[null,n,i.t+n];if(a[1]===a[2])return null;let o={};return Object.keys(i.groups).forEach((e=>{let t=i.groups[e],r=n+t.start;o[e]=[null,r,r+t.length]})),{pointer:a,groups:o}},yp=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},vp=function(e,t,n){let r=Sp(e,t,0,e.length);return r?(r=yp(r,n),r):null},Tp={api:function(e){Object.assign(e.prototype,Mu)},methods:{one:{termMethods:cp,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=function(e){let t=e.split(Pu),n=[];t.forEach((e=>{Bu(e)?n.push(e):n=n.concat(e.split(Lu))})),n=Uu(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Bu(e)?r.push(e):r=r.concat(e.split(Fu))})),r=Uu(r),r}(e);return r=r.map((e=>Qu(e,t))),r=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&Zu.test(r.word)){let i=r.word.split(/[-–—]/g);if(n.hasOwnProperty(i[0]))continue;i=i.filter((e=>e)).reverse(),e.splice(t,1),i.forEach((n=>{let i=Object.assign({},r);i.word=n,e.splice(t,0,i)}))}}return e}(r,n),r=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Xu(e,t)):"Noun"===e.pos?n=n.concat(Ju(e,t)):"Adjective"===e.pos&&(n=n.concat(ep(e,t))):(n=n.concat(Xu(e,t)),n=n.concat(Ju(e,t)),n=n.concat(ep(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e}(r,n),i=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e})),i=function(e){return e.map((e=>(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(i),r=i,r;var i},match:function(e,t,n){n=n||[];let{regs:r,group:i,justOne:a}=t,o=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=vp(i,r,t);e&&o.push(e)}}return!0===r[r.length-1].end&&(o=o.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(o=function(e,t,n){return e=e.filter((e=>{let[r,i,a]=e.pointer,o=n[r].slice(i,a);for(let e=0;e{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}}(o,i),o.ptrs.forEach((t=>{let[n,r,i]=t;t[3]=e[n][r].id,t[4]=e[n][i-1].id})),o}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}},Cp=/^\../,Np=/^#./,Ap={html:function(e){let{starts:t,ends:n}=function(e,t){let n={},r={};return Object.keys(t).forEach((i=>{let a=t[i],o=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Cp.test(e)?t=``),t+=">",{start:t,end:n}}(i);"string"==typeof a&&(a=e.match(a)),a.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(o.start);let i=e[e.length-1].id;r[i]=r[i]||[],r[i].push(o.end)}))})),{starts:n,ends:r}}(this,e),r="";return this.docs.forEach((e=>{for(let i=0;i{let n=e.pre||"",i=e.post||"";"some"===t.punctuation&&(n=n.replace(Op,""),Rp.test(i)&&(i=" "),i=i.replace(wp,""),i=i.replace(/\?!+/,"?"),i=i.replace(/!+/,"!"),i=i.replace(/\?+/,"?"),i=i.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(i=i.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),i=i.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Op,""),i="-"===i?" ":i.replace(xp,""));let a=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(a=e.implicit||e.text),"root"===t.form&&e.implicit&&(a=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||i&&Ip.test(i)||(i+=" "),r+=n+a+i})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},kp={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kp.clean=kp.normal,kp.reduced=kp.root;const Mp=kp;let Pp=[],Lp=0;for(;Lp<64;)Pp[Lp]=0|4294967296*Math.sin(++Lp%Math.PI);const Fp=function(e){let t,n,r,i=[t=1732584193,n=4023233417,~t,~n],a=[],o=decodeURI(encodeURI(e))+"€",s=o.length;for(e=--s/4+2|15,a[--e]=8*s;~s;)a[s>>2]|=o.charCodeAt(s)<<8*s--;for(Lp=o=0;Lp>4]+Pp[o]+~~a[Lp|15&[o,5*o+1,3*o+5,7*o][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+o++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(o=4;o;)i[--o]+=s[o]}for(e="";o<32;)e+=(i[o>>3]>>4*(1^o++)&15).toString(16);return e},Bp={text:!0,terms:!0};let Up={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Gp=function(e,t){return Object.assign({},e,t)},zp={text:e=>Dp(e,{keepPunct:!0},!1),normal:e=>Dp(e,Gp(Mp.normal,{keepPunct:!0}),!1),implicit:e=>Dp(e,Gp(Mp.implicit,{keepPunct:!0}),!1),machine:e=>Dp(e,Up,!1),root:e=>Dp(e,Gp(Up,{form:"root"}),!1),hash:e=>Fp(Dp(e,{keepPunct:!0},!1)),offset:e=>{let t=zp.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};zp.sentences=zp.sentence,zp.clean=zp.normal,zp.reduced=zp.root;const Hp={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Bp,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let i={};return Object.keys(r).forEach((a=>{r[a]&&zp[a]&&(i[a]=zp[a](e,n,t))})),i})));var n,r;return"number"==typeof e?t[e]:t}};Hp.data=Hp.json;const Vp=Hp,qp=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},Yp=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,i)=>{for(let a=0;ae.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Yp(this,e)}},$p=jp,Wp={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Mp.hasOwnProperty(e)?t=Object.assign({},Mp[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r""+e+Qp,red:e=>""+e+Qp,blue:e=>""+e+Qp,magenta:e=>""+e+Qp,cyan:e=>""+e+Qp,yellow:e=>""+e+Qp,black:e=>""+e+Qp,dim:e=>""+e+Qp,i:e=>""+e+Qp},Xp={api:function(e){Object.assign(e.prototype,Kp)},methods:{one:{hash:Fp,debug:{tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Zp.blue("\n ──────")),t.forEach((t=>{console.log(Zp.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],i=t.text||"-";t.sense&&(i=`{${t.normal}/${t.sense}}`),t.implicit&&(i="["+t.implicit+"]"),i=Zp.yellow(i);let a="'"+i+"'";if(t.reference){let n=e.update([t.reference]).text("normal");a+=` - ${Zp.dim(Zp.i("["+n+"]"))}`}a=a.padEnd(18);let o=Zp.blue(" │ ")+Zp.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Zp[n](e)}))),e.join(", ")}(r,n);console.log(o)}))})),console.log("\n")},clientSide:function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Zp.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Zp.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Zp.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Zp.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,i=t.start+r,a=i+t.length;return[e.substring(0,i),e.substring(i,a),e.substring(a,e.length)]})(e,t,n);return`${r[0]}${Zp.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")}}}}},Jp=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,i,a]=t;return n<=i&&r>i||i<=n&&a>n},em=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t},tm=function(e,t){let n=em(t),r=[];return e.forEach((e=>{let[t]=e,i=n[t]||[];if(i=i.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===i.length)return void r.push({passthrough:e});i=i.sort(((e,t)=>e[1]-t[1]));let a=e;i.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,i=t[1],a=t[2],o={};if(ra&&(o.after=[n,a,e[2]]),o}(a,e);i[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(a=n.after)):r.push(n)}))})),r},nm={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[a,o,s,l,c]=r,d=t[a]||[];if(void 0===o&&(o=0),void 0===s&&(s=d.length),!l||d[o]&&d[o].id===l)d=d.slice(o,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let i=t[n-r].findIndex((t=>t.id===e));if(-1!==i)return[n-r,i]}if(t[n+r]){let i=t[n+r].findIndex((t=>t.id===e));if(-1!==i)return[n+r,i]}}return null}(l,t,a);if(null!==n){let r=s-o;d=t[n[0]].slice(n[1],n[1]+r);let a=d[0]?d[0].id:null;e[i]=[n[0],n[1],n[1]+r,a]}}0!==d.length&&o!==s&&(c&&d[d.length-1].id!==c&&(d=function(e,t){let[n,r,,,i]=e,a=t[n],o=a.findIndex((e=>e.id===i));return-1===o?(e[2]=t[n].length,e[4]=a.length?a[a.length-1].id:null):e[2]=o,t[n].slice(r,e[2]+1)}(r,t)),n.push(d))})),n=n.filter((e=>e.length>0)),n},pointer:{indexN:em,splitAll:tm}}},rm=function(e,t){let n=e.concat(t),r=em(n),i=[];return n.forEach((e=>{let[t]=e;if(1===r[t].length)return void i.push(e);let n=r[t].filter((t=>Jp(e,t)));n.push(e);let a=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);i.push(a)})),i=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},am=(e,t)=>{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},om=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},sm={union:function(e){e=am(e,this);let t=rm(this.fullPointer,e.fullPointer);return t=om(t,this.document),this.toView(t)}};sm.and=sm.union,sm.intersection=function(e){e=am(e,this);let t=function(e,t){let n=em(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Jp(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{e=rm(e,[t])})),e=om(e,this.document),this.update(e)};const lm={methods:nm,api:function(e){Object.assign(e.prototype,sm)}},cm=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null},dm={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:i}=n;let a=i.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&i.one.bulkTagger(a,r,this.world),a=a.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],i=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+i]),e}));let o=a.map((e=>e.pointer));return a=a.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(o),found:a}}},methods:{one:{buildNet:function(e,t){e=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(cm(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(cm(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:i}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=cm(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=i,e.minWords=e.regs.filter((e=>!e.optional)).length})),e}(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let i=n.one.cacheDoc(e),a=(o=i,s=t.hooks,o.map(((e,t)=>{let n=[];Object.keys(s).forEach((e=>{o[t].has(e)&&(n=n.concat(s[e]))}));let r={};return n=n.filter((e=>"boolean"!=typeof r[e.match]&&(r[e.match]=!0,!0))),n})));var o,s;return a=function(e,t){return e.map(((e,n)=>{let r=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))}(a,i),t.always.length>0&&(a=a.map((e=>e.concat(t.always)))),a=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords))}))}(a,e),function(e,t,n,r,i){let a=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)})),!0===i.matchOne))return[a[0]]}return a}(a,e,0,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:i}=n,{getDoc:a,setTag:o,unTag:s}=i.one,l=i.two.looksPlural;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let i=e.reason||e.match,c=a([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let i=r[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(c,e.unTag,n,e.safe,i),e.chunk&&c.forEach((t=>t.chunk=e.chunk))})))}}}},um=/ /,pm=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},mm=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);let i=n[t];if(i){if(i.not&&i.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var i;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(i=r,""+i+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,i),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),um.test(t))!function(e,t,n,r){let i=t.split(um);e.forEach(((e,t)=>{let a=i[t];a&&(a=a.replace(/^#/,""),mm(e,a,n,r))}))}(e,t,a,r);else{t=t.replace(/^#/,"");for(let n=0;ngm(e,t,n,r)))},_m=gm,hm=function(e){return e.children=e.children||[],e._cache=e._cache||{},e.props=e.props||{},e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],e},fm=/^ *(#|\/\/)/,bm=function(e){let t=e.trim().split(/->/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>hm({id:e}))),t}return[hm({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Sm=e=>"[object Array]"===Object.prototype.toString.call(e),ym=e=>(e=e||"").trim(),vm=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||fm.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:bm(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=hm({});return e.forEach((e=>{if((e=hm(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Em(t=e).forEach(hm),t);var t},Tm=function(e,t){let n="-> ";t&&(n="→ ");let r="";return Em(e).forEach(((e,i)=>{let a=e.id||"";if(t&&(a=(e=>""+e+"")(a)),0===i&&!e.id)return;let o=e._cache.parents.length;r+=" ".repeat(o)+n+a+"\n"})),r},Cm=function(e){let t=Em(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Nm={text:Tm,txt:Tm,array:Cm,flat:Cm},Am=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Tm(e,!0)),null):Nm.hasOwnProperty(t)?Nm[t](e):e},xm=e=>{Em(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Om=/\//;class wm{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=ym(e),!Om.test(e)){let t=this.json.children.find((t=>t.id===e));return new wm(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||hm({});return new wm(t)}add(e,t={}){if(Sm(e))return e.forEach((e=>this.add(ym(e),t))),this;e=ym(e);let n=hm({id:e,props:t});return this.json.children.push(n),new wm(n)}remove(e){return e=ym(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Em(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Em(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Em(this.json)}fillDown(){var e;return e=this.json,Em(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Sm(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){xm(this.json);let e=Em(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return xm(this.json),Am(this.json,e)}debug(){return xm(this.json),Am(this.json,"debug"),this}}const Rm=function(e){let t=vm(e);return new wm(t)};Rm.prototype.plugin=function(e){e(this)};const Im={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Dm=function(e){if(Im.hasOwnProperty(e.id))return Im[e.id];if(Im.hasOwnProperty(e.is))return Im[e.is];let t=e._cache.parents.find((e=>Im[e]));return Im[t]},km=function(e){return e?"string"==typeof e?[e]:e:[]},Mm={one:{setTag:_m,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=km(e[t].children),e[t].not=km(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e}(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Rm(t).cache().fillDown().out("array")}(Object.assign({},t,e));return function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:i,novel:a}=e.props,o=e._cache.parents;r&&(o=o.concat(r)),t[e.id]={is:i,not:n,novel:a,also:r,parents:o,children:e._cache.children,color:Dm(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t}(n)},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let r=n[t].not||[];for(let t=0;ti.one.setTag(r,e,o,n,t))):i.one.setTag(r,e,o,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:i,model:a}=this;!0===i&&console.log(" - ",e,t||"");let o=a.one.tagSet;return Pm(e)?e.forEach((e=>r.one.unTag(n,e,o))):r.one.unTag(n,e,o),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((i,a)=>{i.forEach(((i,o)=>{n(i,e,t)||r.push([a,o,o+1])}))}));let i=this.update(r);return this.difference(i)}},Fm=Lm,Bm=new Set(["Auxiliary","Possessive"]),Um={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Bm.has(e)||!t.hasOwnProperty(n))return 1;if(Bm.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],i=r.length;return r=t[n].children||[],i-r.length})),e}(t,r)}))}))}},methods:Mm,api:function(e){Object.assign(e.prototype,Fm)},lib:{addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let i=(0,n.one.addTags)(e,r);return t.one.tagSet=i,this}}},Gm=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,zm=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Hm=/((?:\r?\n|\r)+)/,Vm=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,qm=/\S/,Ym={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},jm=RegExp("["+Object.keys(Ym).join("")+"]","g"),$m=RegExp("["+Object.values(Ym).join("")+"]","g"),Wm=function(e){if(!e)return!1;let t=e.match($m);return null!==t&&1===t.length},Km=/\(/g,Qm=/\)/g,Zm=/\S/,Xm=/^\s+/,Jm=function(e,t){let n=e.split(/[-–—]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:i}=t.one;return(1!==n[0].length||!/[a-z]/i.test(n[0]))&&(!r.hasOwnProperty(n[0])&&(n[1]=n[1].trim().replace(/[.?!]$/,""),!i.hasOwnProperty(n[1])&&(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i.test(e)||!0===/^[('"]?([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e))))},eg=function(e){let t=[];const n=e.split(/[-–—]/);let r="-",i=e.match(/[-–—]/);i&&i[0]&&(r=i);for(let e=0;e(e[t]=!0,e)),{});const og=/\p{Letter}/u,sg=/[\p{Number}\p{Currency_Symbol}]/u,lg=/^[a-z]\.([a-z]\.)+/i,cg=/[sn]['’]$/,dg=/([A-Z]\.)+[A-Z]?,?$/,ug=/^[A-Z]\.,?$/,pg=/[A-Z]{2,}('s|,)?$/,mg=/([a-z]\.)+[a-z]\.?$/,gg=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,t),r=function(e){return function(e){return!0===dg.test(e)||!0===mg.test(e)||!0===ug.test(e)||!0===pg.test(e)}(e)&&(e=e.replace(/\./g,"")),e}(r),e.normal=r},_g=/[ .][A-Z]\.? *$/i,hg=/(?:\u2026|\.{2,}) *$/,fg=/\p{L}/u,bg=/\. *$/,Eg=/^[A-Z]\. $/,Sg={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},tokenize:{splitSentences:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Zm.test(e))return[];let n=function(e){let t=[],n=e.split(Hm);for(let e=0;e0&&(i.push(a),e[t]="")}return i}(r,t),r=function(e){let t=[];for(let n=0;n0?(n[n.length-1]+=a,n.push(t)):n.push(a+t),a=""):a+=t}return a&&(0===n.length&&(n[0]=""),n[n.length-1]+=a),n=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:r,post:i}=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:i}=t.one,a=e,o="",s="",l=Array.from(e);if(i.hasOwnProperty(e.trim()))return{str:e.trim(),pre:o,post:" "};let c=l.length;for(let e=0;e(s=e||"",""))),e=a,o=""),{str:e,pre:o,post:s}}(e,t);return{text:n,pre:r,post:i,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:i,splitTerms:a,splitWhitespace:o}=n.one.tokenize;return e=i(e=e||"",t).map((e=>{let n=a(e,r);return n=n.map((e=>o(e,r))),n.forEach((e=>{gg(e,t)})),n})),e}}}};let yg={},vg={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{yg[t]=!0,vg[t]="Abbreviation",void 0!==e[1]&&(vg[t]=[vg[t],e[1]])}))}));const Tg=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Cg={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗễ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇіїi̇",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ng={};Object.keys(Cg).forEach((function(e){Cg[e].split("").forEach((function(t){Ng[t]=e}))}));const Ag=/\//,xg=/[a-z]\.[a-z]/i,Og=/[0-9]/,wg=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ag.test(n)&&!xg.test(n)&&!Og.test(n)){let t=n.split(Ag);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},Rg=/^\p{Letter}+-\p{Letter}+$/u,Ig=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),Rg.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},Dg=function(e,t){let n=e.docs;for(let r=0;rDg(e,wg),machine:e=>Dg(e,Ig),normal:e=>Dg(e,gg),freq:function(e){let t=e.docs,n={};for(let e=0;e{let o=(e=e.toLowerCase().trim()).length;t.max&&o>t.max&&(o=t.max);for(let s=t.min;s{delete r[e]})),r}(e,t,this.world());return Object.keys(i).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=i[e]})),this}},Bg={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=Pg},lib:Fg,compute:Mg,hooks:["typeahead"]};Zc.extend(Od),Zc.extend(Xp),Zc.extend(Tp),Zc.extend(lm),Zc.extend(Um),Zc.plugin(Jd),Zc.extend(kg),Zc.extend(iu),Zc.plugin(Jc),Zc.extend(fu),Zc.extend(Bg),Zc.extend(uu),Zc.extend(dm);const Ug=Zc,Gg={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},zg={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦bests,sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"true¦0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re","Plural|Verb":"true¦leaves",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;! lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,our0thy;!s","Noun|Verb":"true¦0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"true¦0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"true¦aCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"true¦0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"true¦0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"true¦0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"true¦0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"true¦0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦elle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"true¦aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"true¦a07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0m²,²,³;/h,cro2l0;e0liK;!²;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,²;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"true¦0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"true¦abid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"true¦a8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"true¦0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"true¦0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"true¦a0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"true¦aTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"true¦0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"true¦0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"true¦a08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"true¦b3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Person|Verb":"true¦b8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"},Hg="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").reduce((function(e,t,n){return e[t]=n,e}),{}),Vg=function(e){if(void 0!==Hg[e])return Hg[e];let t=0,n=1,r=36,i=1;for(;n=0;n--,i*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*i}return t},qg=function(e,t,n){const r=Vg(t);return r{let a=e.nodes[r];"!"===a[0]&&(t.push(i),a=a.slice(1));const o=a.split(/([A-Z0-9,]+)/g);for(let a=0;a{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Yg(t[e]);"true"===e&&(e=!0);for(let t=0;t{if(Xg[t]=e,"Noun|Verb"===e){let e=Kg(t,Jg);Xg[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Zg[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Zg[e]="Emoticon")),delete Zg[""],delete Zg.null,delete Zg[" "];const e_="Singular",t_={beforeTags:{Determiner:e_,Possessive:e_,Acronym:e_,Noun:e_,Adjective:e_,PresentTense:e_,Gerund:e_,PastTense:e_,Infinitive:e_,Date:e_,Ordinal:e_,Demonym:e_},afterTags:{Value:e_,Modal:e_,Copula:e_,PresentTense:e_,PastTense:e_,Demonym:e_,Actor:e_},beforeWords:{the:e_,with:e_,without:e_,of:e_,for:e_,any:e_,all:e_,on:e_,cut:e_,cuts:e_,increase:e_,decrease:e_,raise:e_,drop:e_,save:e_,saved:e_,saves:e_,make:e_,makes:e_,made:e_,minus:e_,plus:e_,than:e_,another:e_,versus:e_,neither:e_,about:e_,favorite:e_,best:e_,daily:e_,weekly:e_,linear:e_,binary:e_,mobile:e_,lexical:e_,technical:e_,computer:e_,scientific:e_,security:e_,government:e_,popular:e_,formal:e_,no:e_,more:e_,one:e_,let:e_,her:e_,his:e_,their:e_,our:e_,us:e_,sheer:e_,monthly:e_,yearly:e_,current:e_,previous:e_,upcoming:e_,last:e_,next:e_,main:e_,initial:e_,final:e_,beginning:e_,end:e_,top:e_,bottom:e_,future:e_,past:e_,major:e_,minor:e_,side:e_,central:e_,peripheral:e_,public:e_,private:e_},afterWords:{of:e_,system:e_,aid:e_,method:e_,utility:e_,tool:e_,reform:e_,therapy:e_,philosophy:e_,room:e_,authority:e_,says:e_,said:e_,wants:e_,wanted:e_,is:e_,did:e_,do:e_,can:e_,wise:e_}},n_="Infinitive",r_={beforeTags:{Modal:n_,Adverb:n_,Negative:n_,Plural:n_},afterTags:{Determiner:n_,Adverb:n_,Possessive:n_,Reflexive:n_,Preposition:n_,Cardinal:n_,Comparative:n_,Superlative:n_},beforeWords:{i:n_,we:n_,you:n_,they:n_,to:n_,please:n_,will:n_,have:n_,had:n_,would:n_,could:n_,should:n_,do:n_,did:n_,does:n_,can:n_,must:n_,us:n_,me:n_,let:n_,even:n_,when:n_,help:n_,he:n_,she:n_,it:n_,being:n_,bi:n_,co:n_,contra:n_,de:n_,inter:n_,intra:n_,mis:n_,pre:n_,out:n_,counter:n_,nobody:n_,somebody:n_,anybody:n_,everybody:n_},afterWords:{the:n_,me:n_,you:n_,him:n_,us:n_,her:n_,his:n_,them:n_,they:n_,it:n_,himself:n_,herself:n_,itself:n_,myself:n_,ourselves:n_,themselves:n_,something:n_,anything:n_,a:n_,an:n_,up:n_,down:n_,by:n_,out:n_,off:n_,under:n_,what:n_,all:n_,to:n_,because:n_,although:n_,how:n_,otherwise:n_,together:n_,though:n_,into:n_,yet:n_,more:n_,here:n_,there:n_,away:n_}},i_={beforeTags:Object.assign({},r_.beforeTags,t_.beforeTags,{}),afterTags:Object.assign({},r_.afterTags,t_.afterTags,{}),beforeWords:Object.assign({},r_.beforeWords,t_.beforeWords,{}),afterWords:Object.assign({},r_.afterWords,t_.afterWords,{})},a_="Adjective",o_={beforeTags:{Determiner:a_,Possessive:a_,Hyphenated:a_},afterTags:{Adjective:a_},beforeWords:{seem:a_,seemed:a_,seems:a_,feel:a_,feels:a_,felt:a_,stay:a_,appear:a_,appears:a_,appeared:a_,also:a_,over:a_,under:a_,too:a_,it:a_,but:a_,still:a_,really:a_,quite:a_,well:a_,very:a_,truly:a_,how:a_,deeply:a_,hella:a_,profoundly:a_,extremely:a_,so:a_,badly:a_,mostly:a_,totally:a_,awfully:a_,rather:a_,nothing:a_,something:a_,anything:a_,not:a_,me:a_,is:a_,face:a_,faces:a_,faced:a_,look:a_,looks:a_,looked:a_,reveal:a_,reveals:a_,revealed:a_,sound:a_,sounded:a_,sounds:a_,remains:a_,remained:a_,prove:a_,proves:a_,proved:a_,becomes:a_,stays:a_,tastes:a_,taste:a_,smells:a_,smell:a_,gets:a_,grows:a_,as:a_,rings:a_,radiates:a_,conveys:a_,convey:a_,conveyed:a_,of:a_},afterWords:{too:a_,also:a_,or:a_,enough:a_,as:a_}},s_="Gerund",l_={beforeTags:{Adverb:s_,Preposition:s_,Conjunction:s_},afterTags:{Adverb:s_,Possessive:s_,Person:s_,Pronoun:s_,Determiner:s_,Copula:s_,Preposition:s_,Conjunction:s_,Comparative:s_},beforeWords:{been:s_,keep:s_,continue:s_,stop:s_,am:s_,be:s_,me:s_,began:s_,start:s_,starts:s_,started:s_,stops:s_,stopped:s_,help:s_,helps:s_,avoid:s_,avoids:s_,love:s_,loves:s_,loved:s_,hate:s_,hates:s_,hated:s_},afterWords:{you:s_,me:s_,her:s_,him:s_,his:s_,them:s_,their:s_,it:s_,this:s_,there:s_,on:s_,about:s_,for:s_,up:s_,down:s_}},c_="Gerund",d_="Adjective",u_={beforeTags:Object.assign({},o_.beforeTags,l_.beforeTags,{Imperative:c_,Infinitive:d_,Plural:c_}),afterTags:Object.assign({},o_.afterTags,l_.afterTags,{Noun:d_}),beforeWords:Object.assign({},o_.beforeWords,l_.beforeWords,{is:d_,are:c_,was:d_,of:d_,suggest:c_,suggests:c_,suggested:c_,recommend:c_,recommends:c_,recommended:c_,imagine:c_,imagines:c_,imagined:c_,consider:c_,considered:c_,considering:c_,resist:c_,resists:c_,resisted:c_,avoid:c_,avoided:c_,avoiding:c_,except:d_,accept:d_,assess:c_,explore:c_,fear:c_,fears:c_,appreciate:c_,question:c_,help:c_,embrace:c_,with:d_}),afterWords:Object.assign({},o_.afterWords,l_.afterWords,{to:c_,not:c_,the:c_})},p_={Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},m_={},g_={beforeTags:Object.assign({},o_.beforeTags,t_.beforeTags,p_),afterTags:Object.assign({},o_.afterTags,t_.afterTags,m_),beforeWords:Object.assign({},o_.beforeWords,t_.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},o_.afterWords,t_.afterWords)};let __="PastTense",h_="Adjective";const f_={beforeTags:{Adverb:__,Pronoun:__,ProperNoun:__,Auxiliary:__,Noun:__},afterTags:{Possessive:__,Pronoun:__,Determiner:__,Adverb:__,Comparative:__,Date:__,Gerund:__},beforeWords:{be:__,who:__,get:h_,had:__,has:__,have:__,been:__,it:__,as:__,for:h_,more:h_,always:h_},afterWords:{by:__,back:__,out:__,in:__,up:__,down:__,before:__,after:__,for:__,the:__,with:__,as:__,on:__,at:__,between:__,to:__,into:__,us:__,them:__,his:__,her:__,their:__,our:__,me:__,about:h_}},b_={beforeTags:Object.assign({},o_.beforeTags,f_.beforeTags),afterTags:Object.assign({},o_.afterTags,f_.afterTags),beforeWords:Object.assign({},o_.beforeWords,f_.beforeWords),afterWords:Object.assign({},o_.afterWords,f_.afterWords)},E_={beforeTags:Object.assign({},o_.beforeTags,r_.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},o_.afterTags,r_.afterTags,{Noun:"Adjective",Conjunction:void 0}),beforeWords:Object.assign({},o_.beforeWords,r_.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},o_.afterWords,r_.afterWords,{to:void 0,as:"Adjective"})},S_={beforeTags:Object.assign({},l_.beforeTags,t_.beforeTags,{Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"}),afterTags:Object.assign({},l_.afterTags,t_.afterTags,{Value:"Gerund"}),beforeWords:Object.assign({},l_.beforeWords,t_.beforeWords,{are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"}),afterWords:Object.assign({},l_.afterWords,t_.afterWords,{the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"})},y_="Singular",v_="Infinitive",T_={beforeTags:Object.assign({},r_.beforeTags,t_.beforeTags,{Adjective:y_,Particle:y_}),afterTags:Object.assign({},r_.afterTags,t_.afterTags,{ProperNoun:v_,Gerund:v_,Adjective:v_,Copula:y_}),beforeWords:Object.assign({},r_.beforeWords,t_.beforeWords,{is:y_,was:y_,of:y_,have:null}),afterWords:Object.assign({},r_.afterWords,t_.afterWords,{instead:v_,about:v_,his:v_,her:v_,to:null,by:null,in:null})},C_="Person",N_={beforeTags:{Honorific:C_,Person:C_},afterTags:{Person:C_,ProperNoun:C_,Verb:C_},ownTags:{ProperNoun:C_},beforeWords:{hi:C_,hey:C_,yo:C_,dear:C_,hello:C_},afterWords:{said:C_,says:C_,told:C_,tells:C_,feels:C_,felt:C_,seems:C_,thinks:C_,thought:C_,spends:C_,spendt:C_,plays:C_,played:C_,sing:C_,sang:C_,learn:C_,learned:C_,wants:C_,wanted:C_}},A_="Month",x_={beforeTags:{Date:A_,Value:A_},afterTags:{Date:A_,Value:A_},beforeWords:{by:A_,in:A_,on:A_,during:A_,after:A_,before:A_,between:A_,until:A_,til:A_,sometime:A_,of:A_,this:A_,next:A_,last:A_,previous:A_,following:A_,with:"Person"},afterWords:{sometime:A_,in:A_,of:A_,until:A_,the:A_}},O_={beforeTags:Object.assign({},N_.beforeTags,x_.beforeTags),afterTags:Object.assign({},N_.afterTags,x_.afterTags),beforeWords:Object.assign({},N_.beforeWords,x_.beforeWords),afterWords:Object.assign({},N_.afterWords,x_.afterWords)},w_="Place",R_={beforeTags:{Place:w_},afterTags:{Place:w_,Abbreviation:w_},beforeWords:{in:w_,by:w_,near:w_,from:w_,to:w_},afterWords:{in:w_,by:w_,near:w_,from:w_,to:w_,government:w_,council:w_,region:w_,city:w_}};let I_="Unit";const D_={"Actor|Verb":i_,"Adj|Gerund":u_,"Adj|Noun":g_,"Adj|Past":b_,"Adj|Present":E_,"Noun|Verb":T_,"Noun|Gerund":S_,"Person|Noun":{beforeTags:Object.assign({},t_.beforeTags,N_.beforeTags),afterTags:Object.assign({},t_.afterTags,N_.afterTags),beforeWords:Object.assign({},t_.beforeWords,N_.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},t_.afterWords,N_.afterWords)},"Person|Date":O_,"Person|Verb":{beforeTags:Object.assign({},t_.beforeTags,N_.beforeTags,r_.beforeTags),afterTags:Object.assign({},t_.afterTags,N_.afterTags,r_.afterTags),beforeWords:Object.assign({},t_.beforeWords,N_.beforeWords,r_.beforeWords),afterWords:Object.assign({},t_.afterWords,N_.afterWords,r_.afterWords)},"Person|Place":{beforeTags:Object.assign({},R_.beforeTags,N_.beforeTags),afterTags:Object.assign({},R_.afterTags,N_.afterTags),beforeWords:Object.assign({},R_.beforeWords,N_.beforeWords),afterWords:Object.assign({},R_.afterWords,N_.afterWords)},"Person|Adj":{beforeTags:Object.assign({},N_.beforeTags,o_.beforeTags),afterTags:Object.assign({},N_.afterTags,o_.afterTags),beforeWords:Object.assign({},N_.beforeWords,o_.beforeWords),afterWords:Object.assign({},N_.afterWords,o_.afterWords)},"Unit|Noun":{beforeTags:{Value:I_},afterTags:{},beforeWords:{per:I_,every:I_,each:I_,square:I_,cubic:I_,sq:I_,metric:I_},afterWords:{per:I_,squared:I_,cubed:I_,long:I_}}},k_=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};D_["Plural|Verb"]={beforeWords:k_(D_["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:k_(D_["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:k_(D_["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:k_(D_["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const M_=D_,P_="Adjective",L_="Infinitive",F_="PresentTense",B_="Singular",U_="PastTense",G_="Adverb",z_="Plural",H_="Actor",V_="Verb",q_="Noun",Y_="LastName",j_="Modal",$_="Place",W_="Participle",K_=[null,null,{ea:B_,ia:q_,ic:P_,ly:G_,"'n":V_,"'t":V_},{oed:U_,ued:U_,xed:U_," so":G_,"'ll":j_,"'re":"Copula",azy:P_,eer:q_,end:V_,ped:U_,ffy:P_,ify:L_,ing:"Gerund",ize:L_,ibe:L_,lar:P_,mum:P_,nes:F_,nny:P_,ous:P_,que:P_,ger:q_,ber:q_,rol:B_,sis:B_,ogy:B_,oid:B_,ian:B_,zes:F_,eld:U_,ken:W_,ven:W_,ten:W_,ect:L_,ict:L_,ign:L_,oze:L_,ful:P_,bal:P_,ton:q_},{amed:U_,aped:U_,ched:U_,lked:U_,rked:U_,reed:U_,nded:U_,mned:P_,cted:U_,dged:U_,ield:B_,akis:Y_,cede:L_,chuk:Y_,czyk:Y_,ects:F_,iend:B_,ends:V_,enko:Y_,ette:B_,iary:B_,wner:B_,fies:F_,fore:G_,gate:L_,gone:P_,ices:z_,ints:z_,ruct:L_,ines:z_,ions:z_,ners:z_,pers:z_,lers:z_,less:P_,llen:P_,made:P_,nsen:Y_,oses:F_,ould:j_,some:P_,sson:Y_,ians:z_,tion:B_,tage:q_,ique:B_,tive:P_,tors:q_,vice:B_,lier:B_,fier:B_,wned:U_,gent:B_,tist:H_,pist:H_,rist:H_,mist:H_,yist:H_,vist:H_,ists:H_,lite:B_,site:B_,rite:B_,mite:B_,bite:B_,mate:B_,date:B_,ndal:B_,vent:B_,uist:H_,gist:H_,note:B_,cide:B_,ence:B_,wide:P_,vide:L_,ract:L_,duce:L_,pose:L_,eive:L_,lyze:L_,lyse:L_,iant:P_,nary:P_,ghty:P_,uent:P_,erer:H_,bury:$_,dorf:q_,esty:q_,wych:$_,dale:$_,folk:$_},{elist:H_,holic:B_,phite:B_,tized:U_,urned:U_,eased:U_,ances:z_,bound:P_,ettes:z_,fully:G_,ishes:F_,ities:z_,marek:Y_,nssen:Y_,ology:q_,osome:B_,tment:B_,ports:z_,rough:P_,tches:F_,tieth:"Ordinal",tures:z_,wards:G_,where:G_,archy:q_,pathy:q_,opoly:q_,embly:q_,phate:q_,ndent:B_,scent:B_,onist:H_,anist:H_,alist:H_,olist:H_,icist:H_,ounce:L_,iable:P_,borne:P_,gnant:P_,inant:P_,igent:P_,atory:P_,rient:B_,dient:B_,maker:H_,burgh:$_,mouth:$_,ceter:$_,ville:$_,worth:q_},{auskas:Y_,parent:B_,cedent:B_,ionary:B_,cklist:B_,keeper:H_,logist:H_,teenth:"Value",worker:H_,master:H_,writer:H_,brough:$_,cester:$_},{logists:H_,opoulos:Y_,borough:$_,sdottir:Y_}],Q_="Adjective",Z_="Noun",X_="Verb",J_=[null,null,{},{neo:Z_,bio:Z_,"de-":X_,"re-":X_,"un-":X_,"ex-":Z_},{anti:Z_,auto:Z_,faux:Q_,hexa:Z_,kilo:Z_,mono:Z_,nano:Z_,octa:Z_,poly:Z_,semi:Q_,tele:Z_,"pro-":Q_,"mis-":X_,"dis-":X_,"pre-":Q_},{anglo:Z_,centi:Z_,ethno:Z_,ferro:Z_,grand:Z_,hepta:Z_,hydro:Z_,intro:Z_,macro:Z_,micro:Z_,milli:Z_,nitro:Z_,penta:Z_,quasi:Q_,radio:Z_,tetra:Z_,"omni-":Q_,"post-":Q_},{pseudo:Q_,"extra-":Q_,"hyper-":Q_,"inter-":Q_,"intra-":Q_,"deca-":Q_},{electro:Z_}],eh="Adjective",th="Infinitive",nh="PresentTense",rh="Singular",ih="PastTense",ah="Adverb",oh="Expression",sh="Actor",lh="Verb",ch="Noun",dh="LastName",uh={a:[[/.[aeiou]na$/,ch,"tuna"],[/.[oau][wvl]ska$/,dh],[/.[^aeiou]ica$/,rh,"harmonica"],[/^([hyj]a+)+$/,oh,"haha"]],c:[[/.[^aeiou]ic$/,eh]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,ih,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,ih,"rammed"],[/.[aeiou][sg]hed$/,ih,"gushed"],[/.[aeiou]red$/,ih,"hired"],[/.[aeiou]r?ried$/,ih,"hurried"],[/[^aeiou]ard$/,rh,"steward"],[/[aeiou][^aeiou]id$/,eh,""],[/.[vrl]id$/,eh,"livid"],[/..led$/,ih,"hurled"],[/.[iao]sed$/,ih,""],[/[aeiou]n?[cs]ed$/,ih,""],[/[aeiou][rl]?[mnf]ed$/,ih,""],[/[aeiou][ns]?c?ked$/,ih,"bunked"],[/[aeiou]gned$/,ih],[/[aeiou][nl]?ged$/,ih],[/.[tdbwxyz]ed$/,ih],[/[^aeiou][aeiou][tvx]ed$/,ih],[/.[cdflmnprstv]ied$/,ih,"emptied"]],e:[[/.[lnr]ize$/,th,"antagonize"],[/.[^aeiou]ise$/,th,"antagonise"],[/.[aeiou]te$/,th,"bite"],[/.[^aeiou][ai]ble$/,eh,"fixable"],[/.[^aeiou]eable$/,eh,"maleable"],[/.[ts]ive$/,eh,"festive"],[/[a-z]-like$/,eh,"woman-like"]],h:[[/.[^aeiouf]ish$/,eh,"cornish"],[/.v[iy]ch$/,dh,"..ovich"],[/^ug?h+$/,oh,"ughh"],[/^uh[ -]?oh$/,oh,"uhoh"],[/[a-z]-ish$/,eh,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,dh,"polish-male"]],k:[[/^(k){2}$/,oh,"kkkk"]],l:[[/.[gl]ial$/,eh,"familial"],[/.[^aeiou]ful$/,eh,"fitful"],[/.[nrtumcd]al$/,eh,"natal"],[/.[^aeiou][ei]al$/,eh,"familial"]],m:[[/.[^aeiou]ium$/,rh,"magnesium"],[/[^aeiou]ism$/,rh,"schism"],[/^[hu]m+$/,oh,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,eh,"republican"],[/[^aeiou]ician$/,sh,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,oh,"noooo"],[/^(yo)+$/,oh,"yoo"],[/^wo{2,}[pt]?$/,oh,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,rh],[/[^i]fer$/,th],[/.[^aeiou][ao]pher$/,sh],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,eh],[/[aeiou].*ist$/,eh],[/^[a-z]et$/,lh]],s:[[/.[^aeiou]ises$/,nh],[/.[rln]ates$/,nh],[/.[^z]ens$/,lh],[/.[lstrn]us$/,rh],[/.[aeiou]sks$/,nh],[/.[aeiou]kes$/,nh],[/[aeiou][^aeiou]is$/,rh],[/[a-z]'s$/,ch],[/^yes+$/,oh]],v:[[/.[^aeiou][ai][kln]ov$/,dh]],y:[[/.[cts]hy$/,eh],[/.[st]ty$/,eh],[/.[tnl]ary$/,eh],[/.[oe]ry$/,rh],[/[rdntkbhs]ly$/,ah],[/.(gg|bb|zz)ly$/,eh],[/...lly$/,ah],[/.[gk]y$/,eh],[/[bszmp]{2}y$/,eh],[/.[ai]my$/,eh],[/[ea]{2}zy$/,eh],[/.[^aeiou]ity$/,rh]]},ph="Verb",mh="Noun",gh={leftTags:[["Adjective",mh],["Possessive",mh],["Determiner",mh],["Adverb",ph],["Pronoun",ph],["Value",mh],["Ordinal",mh],["Modal",ph],["Superlative",mh],["Demonym",mh],["Honorific","Person"]],leftWords:[["i",ph],["first",mh],["it",ph],["there",ph],["not",ph],["because",mh],["if",mh],["but",mh],["who",ph],["this",mh],["his",mh],["when",mh],["you",ph],["very","Adjective"],["old",mh],["never",ph],["before",mh],["a",mh],["the",mh],["been",ph]],rightTags:[["Copula",mh],["PastTense",mh],["Conjunction",mh],["Modal",mh]],rightWords:[["there",ph],["me",ph],["man","Adjective"],["him",ph],["it",ph],["were",mh],["took",mh],["himself",ph],["went",mh],["who",mh],["jr","Person"]]},_h=/^([0-9]+)/,hh=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(_h);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(_h,"")}(n,t[n]),e)),{})},fh=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=hh(e.fwd||""),e.both=hh(e.both||""),e.rev=hh(e.rev||""),e.ex=hh(e.ex||""),e},bh=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},Eh=function(e={}){return{reversed:!0,both:bh(e.both),ex:bh(e.ex),fwd:e.rev||{}}},Sh=fh({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belled¦4:ebuted,hined,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ing:ung,ang¦ep:pt¦ink:ank,unk¦ig:ug¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought¦1ive:rove¦1el:elt¦1id:bade¦1et:got¦1y:aid¦1it:sat¦3e:lid¦3d:pent",both:"1:aed,fed,xed,hed¦2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,cceded¦3ad:sled¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1un:ran¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1ake:woke¦go:went",rev:"3:rst,hed,hut,cut,set¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cy¦1ung:ling,ting,wing¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind,wind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,we¦2ed:dd,oy,or,ey,gg,rr,us,ew,to¦2ame:ecome,rcome¦2ped:ap¦2ged:ag,og,ug,eg¦2bed:ub,ab,ib,ob¦2lt:neel¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦2ode:rride¦2at:ysit¦3ted:mit,hat,mat,lat,pot,rot,bat¦3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bow¦3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,ade¦3red:lur,cur,pur,car¦3ped:hop,rop,uip,rip,lip,tep,top¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim,lim¦4ted:quit,llot¦4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weak¦4led:nnel,qual,ebel,ivel¦4red:nfer,efer,sfer¦4n:sake,trew¦4d:ntee¦4ded:hred¦4ned:rpin¦5ed:light,nceal,right,ndear,arget,hread,eight,rtial,eboot¦5d:edite,nvite¦5ted:egret¦5led:ravel",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vetted¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeled¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speeded¦6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfolded¦7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomed¦8:expedited,infringed¦9:interfered,intervened,persevered¦10:contravened¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1ig:dug¦1all:fell¦2el:felt¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),yh=fh({fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦3:iases¦2y:llies,plies¦1y:cies,bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go,do¦3es:cho,eto",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"}),vh=fh({fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing,celling¦4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrolling¦5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploring¦3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uin¦3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,cap¦3ming:tem,wim,rim,kim,lim¦3ting:mat,cut,pot,lit,lot,hat,set,pit,put¦3ding:hed,bed,bid¦3king:rek¦3ling:cil,pel¦3bing:rib¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcel¦4ring:efer,nfer¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret¦4ling:evel,xcel,ivel¦4ding:hred¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suiting¦5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hinging¦5e:defining,refining,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing"}),Th=fh({fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"}),Ch=Eh(Sh),Nh=Eh(yh),Ah=Eh(vh),xh=Eh(Th),Oh=fh({fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3der:mad,sad¦3er:shy,fun¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"}),wh=fh({fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"}),Rh={fromPast:Sh,fromPresent:yh,fromGerund:vh,fromParticiple:Th,toPast:Ch,toPresent:Nh,toGerund:Ah,toParticiple:xh,toComparative:Oh,toSuperlative:wh,fromComparative:Eh(Oh),fromSuperlative:Eh(wh),adjToNoun:fh({fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"})},Ih=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","faction","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Dh=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),kh=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Mh=function(e,t){const{irregularPlurals:n}=t.two;let r=(i=n,Object.keys(i).reduce(((e,t)=>(e[i[t]]=t,e)),{}));var i;if(r.hasOwnProperty(e))return r[e];for(let t=0;t=1;r-=1){let i=e.length-r,a=e.substring(i,e.length);if(!0===t.hasOwnProperty(a))return e.slice(0,i)+t[a];if(!0===n.hasOwnProperty(a))return e.slice(0,i)+n[a]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};let Fh={Gerund:["ing"],Actor:["erer"],Infinitive:["ate","ize","tion","rify","then","ress","ify","age","nce","ect","ise","ine","ish","ace","ash","ure","tch","end","ack","and","ute","ade","ock","ite","ase","ose","use","ive","int","nge","lay","est","ain","ant","ent","eed","er","le","unk","ung","upt","en"],PastTense:["ept","ed","lt","nt","ew","ld"],PresentTense:["rks","cks","nks","ngs","mps","tes","zes","ers","les","acks","ends","ands","ocks","lays","eads","lls","els","ils","ows","nds","ays","ams","ars","ops","ffs","als","urs","lds","ews","ips","es","ts","ns"],Participle:["ken","wn"]};Fh=Object.keys(Fh).reduce(((e,t)=>(Fh[t].forEach((n=>e[n]=t)),e)),{});const Bh=Fh,Uh=function(e){let t=e.substring(e.length-3);if(!0===Bh.hasOwnProperty(t))return Bh[t];let n=e.substring(e.length-2);return!0===Bh.hasOwnProperty(n)?Bh[n]:"s"===e.substring(e.length-1)?"PresentTense":null},Gh={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},zh=function(e,t,n){const{fromPast:r,fromPresent:i,fromGerund:a,fromParticiple:o}=t.two.models;let{prefix:s,verb:l,particle:c}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[i,a]=e.split(/ /);return a&&!0===r[i]&&(n=i,i=a,a=""),{prefix:n,verb:i,particle:a}}(e,t),d="";if(n||(n=Uh(e)),Gh.hasOwnProperty(e))d=Gh[e];else if("Participle"===n)d=Lh(l,o);else if("PastTense"===n)d=Lh(l,r);else if("PresentTense"===n)d=Lh(l,i);else{if("Gerund"!==n)return e;d=Lh(l,a)}return c&&(d+=" "+c),s&&(d=s+" "+d),d},Hh=function(e,t){const{toPast:n,toPresent:r,toGerund:i,toParticiple:a}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[o,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:o,PastTense:Lh(o,n),PresentTense:Lh(o,r),Gerund:Lh(o,i),FutureTense:"will "+o},c=Lh(o,a);if(c!==e&&c!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[c]&&"Adjective"!==n[c]||("play"===e&&(c="played"),l.Participle=c)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Vh={toInfinitive:zh,conjugate:Hh,all:function(e,t){let n=Hh(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},qh=function(e,t){const n=t.two.models.toSuperlative;return Lh(e,n)},Yh=function(e,t){const n=t.two.models.toComparative;return Lh(e,n)},jh=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let i=e.substring(n-r,e.length);if(!0===t[i.length].hasOwnProperty(i))return e.slice(0,n-r)+t[i.length][i]}return null},$h="ically",Wh=new Set(["analyt"+$h,"chem"+$h,"class"+$h,"clin"+$h,"crit"+$h,"ecolog"+$h,"electr"+$h,"empir"+$h,"frant"+$h,"grammat"+$h,"ident"+$h,"ideolog"+$h,"log"+$h,"mag"+$h,"mathemat"+$h,"mechan"+$h,"med"+$h,"method"+$h,"method"+$h,"mus"+$h,"phys"+$h,"phys"+$h,"polit"+$h,"pract"+$h,"rad"+$h,"satir"+$h,"statist"+$h,"techn"+$h,"technolog"+$h,"theoret"+$h,"typ"+$h,"vert"+$h,"whims"+$h]),Kh=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Qh=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Zh={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Xh=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Jh={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"},ef=function(e){if(Jh.hasOwnProperty(e))return Jh[e];let t=jh(e,Xh);return t||(t=e+"ly"),t},tf={toSuperlative:qh,toComparative:Yh,toAdverb:ef,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Lh(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Wh.has(e)?e.replace(/ically/,"ical"):Qh.has(e)?null:Zh.hasOwnProperty(e)?Zh[e]:jh(e,Kh)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Lh(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Lh(e,n)},all:function(e,t){let n=[e];return n.push(qh(e,t)),n.push(Yh(e,t)),n.push(ef(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},nf={noun:Ph,verb:Vh,adjective:tf},rf={Singular:(e,t,n,r)=>{let i=r.one.lexicon,a=n.two.transform.noun.toPlural(e,r);i[a]||(t[a]=t[a]||"Plural")},Actor:(e,t,n,r)=>{let i=r.one.lexicon,a=n.two.transform.noun.toPlural(e,r);i[a]||(t[a]=t[a]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let i=r.one.lexicon,{toSuperlative:a,toComparative:o}=n.two.transform.adjective,s=a(e,r);i[s]||(t[s]=t[s]||"Superlative");let l=o(e,r);i[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let i=n.two.transform.noun.toPlural(e,r);t[i]=t[i]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let i=r.one.lexicon,a=n.two.transform.verb.conjugate(e,r);Object.entries(a).forEach((e=>{i[e[1]]||t[e[1]]||"FutureTense"===e[0]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let i=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let a=r.one._multiCache,[o,s]=e.split(" ");i[o]||(t[o]=t[o]||"Infinitive");let l=n.two.transform.verb.conjugate(o,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||i[e[1]]||(t[e[1]]=e[0]),a[e[1]]=2;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},af={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},of=new Set(["israelis","menus","logos"]),sf=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],lf=function(e){if(!e||e.length<=3)return!1;if(of.has(e))return!0;let t=e[e.length-1];return af.hasOwnProperty(t)?af[t].find((t=>e.endsWith(t))):"s"===t&&!sf.find((t=>e.endsWith(t)))},cf={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((i,a)=>{t.test(i.post)&&function(e,t){let n=e[t];if(!n)return!1;const r=new Set(["may","april","august","jan"]);if("like"===n.normal||r.has(n.normal))return!1;if(n.tags.has("Place")||n.tags.has("Date"))return!1;if(e[t-1]){let i=e[t-1];if(i.tags.has("Date")||r.has(i.normal))return!1;if(i.tags.has("Adjective")||n.tags.has("Adjective"))return!1}let i=n.normal;return 1!==i.length&&2!==i.length&&4!==i.length||!/^[0-9]+$/.test(i)}(e,a+1)&&(n.push(e.slice(r,a+1)),r=a+1)})),r{let o=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===a[s[0]]||s.length>a[s[0]])&&(a[s[0]]=s.length),!0===rf.hasOwnProperty(o)&&rf[o](t,i,n,r),i[t]=i[t]||o})),delete i[""],delete i.null,delete i[" "],{lex:i,_multi:a}},transform:nf,looksPlural:lf}};let df={one:{lexicon:{}},two:{models:Rh}};const uf={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},pf=function(e,t){const n={model:t,methods:cf};let{lex:r,_multi:i}=cf.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,i),t},mf=function(e,t,n){let r=Hh(e,df);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},gf=function(e,t,n){let r=qh(e,n);t[r]=t[r]||"Superlative";let i=Yh(e,n);t[i]=t[i]||"Comparative"};let _f={one:{_multiCache:{},lexicon:Zg,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:Gg,models:Rh,suffixPatterns:K_,prefixPatterns:J_,endsWith:uh,neighbours:gh,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Xg,clues:M_,uncountable:{},orgWords:Ih,placeWords:Dh}};var hf;hf=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((hf=pf((hf=_f).one.lexicon,hf)).one.lexicon,hf),_f=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e}(hf=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((i=>{const a=e[i];if(n[i]=uf[a],"Noun|Verb"!==a&&"Person|Verb"!==a&&"Actor|Verb"!==a||mf(i,r,!1),"Adj|Present"===a&&(mf(i,r,!0),gf(i,r,t)),"Person|Adj"===a&&gf(i,r,t),"Adj|Gerund"===a||"Noun|Gerund"===a){let e=zh(i,df,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==a&&"Adj|Noun"!==a&&"Person|Noun"!==a||function(e,t,n){let r=Kg(e,n);t[r]=t[r]||"Plural"}(i,r,t),"Adj|Past"===a){let e=zh(i,df,"PastTense");r[e]||(n[e]="Infinitive")}})),t=pf(n,t)}(hf.two.switches,hf));const ff=_f,bf=function(e,t,n,r){const i=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&i([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")},Ef=/^(under|over|mis|re|un|dis|semi)-?/,Sf=function(e,t,n){const r=n.two.switches;let i=e[t];if(r.hasOwnProperty(i.normal))i.switch=r[i.normal];else if(Ef.test(i.normal)){let e=i.normal.replace(Ef,"");e.length>3&&r.hasOwnProperty(e)&&(i.switch=r[e])}},yf=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var i;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(i=r,""+i+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))},vf=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],Tf=function(e,t,n){let r=e[t],i=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(lf(e.normal)?yf(e,"Plural","3-plural-guess"):yf(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Uh(e.normal);t&&yf(e,t,"3-verb-tense-guess")}}(r)},Cf=/^\p{Lu}[\p{Ll}'’]/u,Nf=/[0-9]/,Af=["Date","Month","WeekDay","Unit","Expression"],xf=/[IVX]/,Of=/^[IVXLCDM]{2,}$/,wf=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Rf={li:!0,dc:!0,md:!0,dm:!0,ml:!0},If=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let i=r.index[1],a=r.text||"";return 0!==i&&!0===Cf.test(a)&&!1===Nf.test(a)?Af.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(Tf(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),yf(r,"ProperNoun","2-titlecase"),!0):a.length>=2&&Of.test(a)&&xf.test(a)&&wf.test(a)&&!Rf[r.normal]?(yf(r,"RomanNumeral","2-xvii"),!0):null},Df=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let i=r;i>1;i-=1){let r=e.substring(n-i,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null},kf=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Df(r.normal,n.two.suffixPatterns);if(null!==e)return yf(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Df(r.implicit,n.two.suffixPatterns),null!==e))return yf(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null},Mf=/['‘’‛‵′`´]/,Pf=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return yf(r,e,"2-prefix"),r.confidence=.5,!0}return null},Bf=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Uf=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Bf.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gf=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zf=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))},Hf=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let i=e[t-1],a=e[t+1];if(Uf(i)||Uf(a))return yf(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gf(i)||Gf(a))return yf(n,"Year","2-tagYear-close");if(zf(e[t-2])||zf(e[t+2]))return yf(n,"Year","2-tagYear-far");if(i&&(i.tags.has("Determiner")||i.tags.has("Possessive"))&&a&&a.tags.has("Noun")&&!a.tags.has("Plural"))return yf(n,"Year","2-tagYear-noun")}}}return null},Vf=function(e,t,n,r){const i=r.methods.one.setTag,a=e[t],o=["PastTense","PresentTense","Auxiliary","Modal","Particle"];a.tags.has("Verb")&&(o.find((e=>a.tags.has(e)))||i([a],"Infinitive",r,null,"2-verb-type''"))},qf=/^[A-Z]('s|,)?$/,Yf=/^[A-Z-]+$/,jf=/^[A-Z]+s$/,$f=/([A-Z]\.)+[A-Z]?,?$/,Wf=/[A-Z]{2,}('s|,)?$/,Kf=/([a-z]\.)+[a-z]\.?$/,Qf={I:!0,A:!0},Zf={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Xf=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===Yf.test(n)){if(!(n.length>3&&!0===jf.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Qf.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$f.test(n)&&!0!==Kf.test(n)&&!0!==qf.test(n)&&!0!==Wf.test(n))}(r,n)?(r.tags.clear(),yf(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Zf[r.normal]&&yf(r,"Place","3-place-acronym"),!0===jf.test(r.text)&&yf(r,"Plural","3-plural-acronym"),!0):!Qf.hasOwnProperty(r.text)&&qf.test(r.text)?(r.tags.clear(),yf(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(yf(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Yf.test(r.text)&&r.text.length<=6?(yf(r,"Acronym","3-titlecase-acronym"),!0):null},Jf=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},eb=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null},tb=function(e,t,n){const{leftTags:r,leftWords:i,rightWords:a,rightTags:o}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Jf(e[t-1],i),l=l||Jf(e[t+1],a),l=l||eb(e[t-1],r),l=l||eb(e[t+1],o),l)return yf(s,l,"3-[neighbour]"),Tf(e,t,n),e[t].confidence=.2,!0}return null},nb=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r},rb=function(e,t,n,r){const i=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===i[o.machine||o.normal]&&nb(e[t-1],t-1,r)){a([e[t]],"Organization",n,null,"3-[org-word]");for(let i=t;i>=0&&nb(e[i],i,r);i-=1)a([e[i]],"Organization",n,null,"3-[org-word]")}return null},ib=/'s$/,ab=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),ob=new Set(["center","centre","way","range","bar","bridge","field","pit"]),sb=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||ib.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(i=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(i)))&&(0!==t||r.has("Singular")));var i},lb=function(e,t,n,r){const i=n.model.two.placeWords,a=n.methods.one.setTag;let o=e[t],s=o.machine||o.normal;if(!0===i[s]){for(let i=t-1;i>=0;i-=1)if(!ab.has(e[i].normal)){if(!sb(e[i],i,r))break;a(e.slice(i,t+1),"Place",n,null,"3-[place-of-foo]")}if(ob.has(s))return!1;for(let i=t+1;ie[t].tags.has("ProperNoun")&&db.test(e[t].text)?"Noun":null,pb=(e,t,n)=>0!==t||e[1]?null:n,mb={"Adj|Gerund":(e,t)=>ub(e,t),"Adj|Noun":(e,t)=>ub(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>ub(e,t),"Adj|Past":(e,t)=>ub(e,t),"Adj|Present":(e,t)=>ub(e,t),"Noun|Gerund":(e,t)=>ub(e,t),"Noun|Verb":(e,t)=>t>0&&ub(e,t)||pb(e,t,"Infinitive"),"Plural|Verb":(e,t)=>ub(e,t)||pb(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?"Plural":null}(e,t),"Person|Noun":(e,t)=>ub(e,t),"Person|Verb":(e,t)=>0!==t?ub(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||ub(e,t)?"Person":null},gb=mb,_b="undefined"!=typeof process&&process.env?process.env:self.env||{},hb=/^(under|over|mis|re|un|dis|semi)-?/,fb=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&_b.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},bb=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),i=r.find((e=>t[e]));return i&&_b.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${i}) `),i=t[i],i},Eb=function(e,t,n){const r=n.model,i=n.methods.one.setTag,{switches:a,clues:o}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(hb.test(l)&&!a[l]&&(l=l.replace(hb,"")),s.switch){let a=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let c=function(e,t,n,r){if(!n)return null;const i="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),a=r.one.tagSet;let o=fb(e[t+1],n.afterWords);return o=o||fb(e[i],n.beforeWords),o=o||bb(e[i],n.beforeTags,a),o=o||bb(e[t+1],n.afterTags,a),o}(e,t,o[a],r);gb[a]&&(c=gb[a](e,t)||c),c?(i([s],c,n,null,`3-[switch] (${a})`),Tf(e,t,r)):_b.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${a}) `)}},Sb={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},yb=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},vb=function(e,t,n,r){for(let i=0;i=2){if(e.length<4&&!Sb[e[1].normal])return;if(!i.tags.has("PhrasalVerb")&&r.hasOwnProperty(i.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!i.tags.has("#PhrasalVerb")||n([i],"Imperative",t,null,"3-[imperative]"))}}(e,n)},Cb={Possessive:e=>{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},Nb={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NN",Plural:"NNS",Noun:"NN",There:"EX"},Ab={preTagger:function(e){const{methods:t,model:n,world:r}=e;let i=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,r){const i=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;i([e[0]],"Expression",r,null,"2-punct-colon''")}}}(e,0,0,n)}))}(i,0,r);let a=t.two.quickSplit(i);for(let e=0;e{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,i+t],e))),n[0]&&(n[0].pre=e[r][i].pre,n[n.length-1].post=e[r][i].post,n[0].text=e[r][i].text,n[0].normal=e[r][i].normal),e[r].splice(i,1,...n))},Lb=/'/,Fb=new Set(["been","become"]),Bb=new Set(["what","how","when","if","too"]);let Ub=new Set(["too","also","enough"]);const Gb=/'/,zb=new Set(["better","done","before","it","had"]),Hb=new Set(["have","be"]),Vb={that:!0,there:!0,let:!0,here:!0,everywhere:!0},qb={in:!0,by:!0,for:!0};let Yb=new Set(["too","also","enough","about"]),jb=new Set(["is","are","did","were","could","should","must","had","have"]);const $b=/'/,Wb=function(e,t,n,r){let i=t.update();i.document=[e];let a=n+r;n>0&&(n-=1),e[a]&&(a+=1),i.ptrs=[[0,n,a]],i.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Kb={d:(e,t)=>function(e,t){let n=e[t].normal.split(Gb)[0];return"how"===n||"what"===n?[n,"did"]:"had"===((e,t)=>{for(let n=t+1;nfunction(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((e,t)=>{let n=e[t];if(Vb.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(jb.has(n.normal))return!0;if(Yb.has(n.normal))return!1}if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===qb[e[t-1].normal])return!0;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):function(e,t){let n=e[t].normal.split(Lb)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{let{world:t,document:n}=e;n.forEach(((r,i)=>{for(let a=r.length-1;a>=0;a-=1){if(r[a].implicit)return;let o=null;!0===$b.test(r[a].normal)&&(o=r[a].normal.split($b)[1]);let s=null;Kb.hasOwnProperty(o)&&(s=Kb[o](r,a,t)),s&&(s=Qb(s,e),Pb(n,[i,a],s),Wb(n[i],e,a,s.length))}}))}},Xb={compute:Zb,api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach((e=>{let t=Mb.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit||"",delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new t(this.document,e.pointer)},e.prototype.contract=kb},hooks:["contractionTwo"]},Jb="(hard|fast|late|early|high|right|deep|close|direct)",eE="(i|we|they)";let tE=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${Jb}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${Jb}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",notIf:"(getting|becoming|feeling)",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive?",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"},{match:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4-mark"},{match:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",notIf:"#Place",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",notIf:"#Place",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:eE,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:eE,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:eE,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",notIf:"#FirstName",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),nE=null;const rE={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;nE=nE||r.one.buildNet(n.two.matches,t);let i=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),a=e.update(i);return a.cache(),a.sweep(nE),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])},iE={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:rE,model:{two:{matches:tE}},hooks:["postTagger"]},aE=iE,oE={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),i=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))}(r,n);return i.found?(i.compute(["index","tagger"]),i.match(t)):r.none()}}},sE=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let i=this.match(r);return n&&(i=i.if(n)),i.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(i,t):i.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(i,t):i.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(i,t):i.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let i=t;e.has("#Comparative")?i=n(i,e.model):e.has("#Superlative")&&(i=r(i,e.model)),i&&e.replaceWith(i)}(i,t):this},lE={api:function(e){e.prototype.swap=sE}};Ug.plugin(Rb),Ug.plugin(Xb),Ug.plugin(aE),Ug.plugin(oE),Ug.plugin(lE);const cE=Ug,dE=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r},uE={api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:i}=this.methods.two.transform.adjective;return e.normal=!0,this.map((a=>{let o=a.toView().json(e)[0]||{},s=dE(a);return o.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:i(s,this.model)},o}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:i}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let a=dE(e);return{Adjective:a,Comparative:t(a,this.model),Superlative:n(a,this.model),Noun:r(a,this.model),Adverb:i(a,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dE(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dE(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dE(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dE(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let n=this.match("#Adjective");return n=n.getNth(e),new t(n.document,n.pointer)},e.prototype.superlatives=function(e){let n=this.match("#Superlative");return n=n.getNth(e),new t(n.document,n.pointer)},e.prototype.comparatives=function(e){let n=this.match("#Comparative");return n=n.getNth(e),new t(n.document,n.pointer)}}},pE=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},mE={this:"Noun",then:"Pivot"},gE=[{match:"[that] #Determiner #Noun",group:0,chunk:"Pivot"},{match:"#PastTense [that]",group:0,chunk:"Pivot"},{match:"[so] #Determiner",group:0,chunk:"Pivot"},{match:"#Copula #Adverb+? [#Adjective]",group:0,chunk:"Adjective"},{match:"#Adjective and #Adjective",chunk:"Adjective"},{match:"#Adverb+ and #Adverb #Verb",chunk:"Verb"},{match:"#Gerund #Adjective$",chunk:"Verb"},{match:"#Gerund to #Verb",chunk:"Verb"},{match:"#PresentTense and #PresentTense",chunk:"Verb"},{match:"#Adverb #Negative",chunk:"Verb"},{match:"(want|wants|wanted) to #Infinitive",chunk:"Verb"},{match:"#Verb #Reflexive",chunk:"Verb"},{match:"#Verb [to] #Adverb? #Infinitive",group:0,chunk:"Verb"},{match:"[#Preposition] #Gerund",group:0,chunk:"Verb"},{match:"#Infinitive [that] ",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let _E=null;const hE=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → ${t.padEnd(12)}  -fallback- `)}e.chunk=t},fE={chunks:function(e){const{document:t,world:n}=e;(function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))}(t)}},bE={compute:fE,api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}e.prototype.chunks=function(e){let n=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)}(this);return n=n.getNth(e),new t(this.document,n.pointer)},e.prototype.clauses=pE},hooks:["chunks"]},EE=/\./g,SE=/\(/,yE=/\)/,vE=function(e,t){for(;t{e.forEach((e=>{e.text=e.text.replace(EE,""),e.normal=e.normal.replace(EE,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(EE,""),e.normal=e.normal.replace(EE,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let n=this.match("#Acronym");return n=n.getNth(e),new t(n.document,n.pointer)}})(e),function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return function(e){return e.docs.forEach((e=>{e[0].pre=e[0].pre.replace(SE,"");let t=e[e.length-1];t.post=t.post.replace(yE,"")})),e}(this)}}e.prototype.parentheses=function(e){let n=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(TE,""),e.normal=e.normal.replace(TE,"")}))})),this}}e.prototype.possessives=function(e){let n=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return n=n.getNth(e),new t(n.document,n.pointer)}}(e),function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return function(e){e.docs.forEach((e=>{e[0].pre=e[0].pre.replace(NE,"");let t=e[e.length-1];t.post=t.post.replace(AE,"")}))}(this)}}e.prototype.quotations=function(e){let n=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=OE,RE.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))}(e)}},DE=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))},kE={case:e=>{DE(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;DE(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{DE(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{DE(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()},debullet:e=>{const t=/^\s*([-–—*•])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}},ME=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),PE="unicode|punctuation|whitespace|acronyms",LE="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",FE={light:ME(PE),medium:ME(PE+LE),heavy:ME(PE+LE+"|possessives|adverbs|nouns|verbs")},BE={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=FE[e]),Object.keys(e).forEach((t=>{kE.hasOwnProperty(t)&&kE[t](this,e[t])})),this}}},UE=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"],GE=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},HE=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:zE(e,t),isSubordinate:GE(e),root:t}},VE=e=>e.text(),qE=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),YE=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null},jE=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")},$E={tags:!0},WE={tags:!0},KE={api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(HE)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=function(e){let t=HE(e);return{root:VE(t.root),number:YE(t.number),determiner:VE(t.determiner),adjectives:qE(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}}(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=HE(e),r=n.root.compute("root").text("root"),i={Singular:r};return jE(n.root)&&(i.Plural=t.toPlural(r,this.model)),i.Singular===i.Plural&&delete i.Plural,i}),[])}isPlural(e){let t=this.filter((e=>HE(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!HE(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=HE(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!jE(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:i}=n.two.transform.noun;let a=i(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(a,$E).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let o=t.root.after("not? #Adverb+? [#Copula]",0);return o.found&&(o.has("is")?e.replace(o,"are"):o.has("was")&&e.replace(o,"were")),e}(e,HE(e))))}toSingular(e){return this.getNth(e).map((e=>function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:i}=n.two.transform.noun;let a=i(t.root.text("normal"),r);return e.replace(t.root,a,WE).tag("Singular","toPlural"),e}(e,HE(e))))}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}e.prototype.nouns=function(e){let n=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t}(this);return n=n.getNth(e),new t(this.document,n.pointer)}}},QE={ones:{zeroth:0,first:1,second:2,third:3,fourth:4,fifth:5,sixth:6,seventh:7,eighth:8,ninth:9,zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9},teens:{tenth:10,eleventh:11,twelfth:12,thirteenth:13,fourteenth:14,fifteenth:15,sixteenth:16,seventeenth:17,eighteenth:18,nineteenth:19,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19},tens:{twentieth:20,thirtieth:30,fortieth:40,fourtieth:40,fiftieth:50,sixtieth:60,seventieth:70,eightieth:80,ninetieth:90,twenty:20,thirty:30,forty:40,fourty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90},multiples:{hundredth:100,thousandth:1e3,millionth:1e6,billionth:1e9,trillionth:1e12,quadrillionth:1e15,quintillionth:1e18,sextillionth:1e21,septillionth:1e24,hundred:100,thousand:1e3,million:1e6,billion:1e9,trillion:1e12,quadrillion:1e15,quintillion:1e18,sextillion:1e21,septillion:1e24,grand:1e3}},ZE=(e,t)=>{if(QE.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(QE.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(QE.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},XE=function(e){let t="0.";for(let n=0;n(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1"),eS=/^([0-9,. ]+)\/([0-9,. ]+)$/,tS={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},nS=e=>Object.keys(e).reduce(((t,n)=>t+e[n]),0),rS=function(e){if(!0===tS.hasOwnProperty(e))return tS[e];if("a"===e||"an"===e)return 1;const t=(e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=aS(n),r=aS(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:aS(n);let i=r.text("reduced");return iS.test(i)&&(i=i.replace(iS,""),r=r.replaceWith(i)),r=oS.hasOwnProperty(i)?oS[i]:aS(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:aS(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},lS=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))},cS=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],dS=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],uS=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],pS=function(e){let t=[];if(e>100)return t;for(let n=0;n=cS[n][1]&&(e-=cS[n][1],t.push(cS[n][0]));return dS[e]&&t.push(dS[e]),t},mS=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=lS(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return uS.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(pS(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=lS(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let i=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},gS={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"},_S=e=>{let t=mS(e).split(" "),n=t[t.length-1];return gS.hasOwnProperty(n)?t[t.length-1]=gS[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},hS=function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(sS)}get(e){return this.getNth(e).map(sS)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=sS(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=sS(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=sS(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=function(e){if(!e.numerator||!e.denominator)return"";let t=mS({num:e.numerator}),n=_S({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""}(sS(e));e.after("^#Noun").found&&(t+=" of"),e.replaceWith(t)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=function(e){return e.numerator&&e.denominator?`${mS({num:e.numerator})} out of ${mS({num:e.denominator})}`:""}(sS(e));e.replaceWith(t)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=sS(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let n=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n}(this);return n=n.getNth(e),new t(this.document,n.pointer)}},fS="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty",bS=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+fS+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+fS+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+fS+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+fS+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${fS})`),r=e.has("("+fS+") #Cardinal"),i=e.has("#Multiple #Value");n||r||i||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+fS+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+fS+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ES=function(e){if("string"==typeof e)return{num:rS(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let i=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,i]=n,a=n.slice(2).join("");return""!==i&&t.length<2?(i=Number(i||e),"number"!=typeof i&&(i=null),a=a||"","st"!==a&&"nd"!==a&&"rd"!==a&&"th"!==a||(a=""),{prefix:r||"",num:i,suffix:a}):null}(t,e);if(null!==i)return i.hasComma=r,i.unit=n,i}let i=e.match("#Fraction{2,}$");i=!1===i.found?e.match("^#Fraction$"):i;let a=null;i.found&&(i.has("#Value and #Value #Fraction")&&(i=i.match("and #Value #Fraction")),a=sS(i),t=(e=(e=e.not(i)).not("and$")).text("reduced"));let o=0;return t&&(o=rS(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:r,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},SS={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},yS={"%":"percent","°":"degrees"},vS=function(e){let t={suffix:"",prefix:e.prefix};return SS.hasOwnProperty(e.prefix)&&(t.suffix+=" "+SS[e.prefix],t.prefix=""),yS.hasOwnProperty(e.suffix)&&(t.suffix+=" "+yS[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},TS=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=vS(e);return t+_S(e)+n}if("Ordinal"===t)return e.prefix+function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let i=lS(t),a=i.slice(i.length-1,i.length);return i+=r[a]?r[a]:"th",i}(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=vS(e);return t+mS(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},CS=function(e,t={}){return t=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t}(t),e.filter((e=>{let{unit:n}=ES(e);return!(!n||!0!==t[n])}))},NS={api:function(e){hS(e),function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(ES)}get(e){return this.getNth(e).map(ES).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ES(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return CS(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=ES(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=TS(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=ES(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=TS(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=ES(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=TS(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new t(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=ES(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=TS(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new t(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=ES(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=TS(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new t(e.document,e.pointer)}isEqual(e){return this.filter((t=>ES(t).num===e))}greaterThan(e){return this.filter((t=>ES(t).num>e))}lessThan(e){return this.filter((t=>ES(t).num{let r=ES(n).num;return r>e&&r{let n=ES(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let i=TS(n,r);return n.hasComma&&"Cardinal"===r&&(i=Number(i).toLocaleString()),(t=t.not("#Currency")).replaceWith(i,{tags:!0}),t}));return new t(n.document,n.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=ES(e).num);let n=this.map((t=>{let n=ES(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let i=TS(n,r);return t.replaceWith(i,{tags:!0}),t}));return new t(n.document,n.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}t.prototype.toNice=t.prototype.toLocaleString,t.prototype.isBetween=t.prototype.between,t.prototype.minus=t.prototype.subtract,t.prototype.plus=t.prototype.add,t.prototype.equals=t.prototype.isEqual,e.prototype.numbers=function(e){let n=bS(this);return n=n.getNth(e),new t(this.document,n.pointer)},e.prototype.percentages=function(e){let n=bS(this);return n=n.filter((e=>e.has("#Percent")||e.after("^percent"))),n=n.getNth(e),new t(this.document,n.pointer)},e.prototype.money=function(e){let n=bS(this);return n=n.filter((e=>e.has("#Money")||e.after("^#Currency"))),n=n.getNth(e),new t(this.document,n.pointer)},e.prototype.values=e.prototype.numbers}(e)}},AS={people:!0,emails:!0,phoneNumbers:!0,places:!0},xS=function(e={}){return!1!==(e=Object.assign({},AS,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},OS={api:function(e){e.prototype.redact=xS}},wS=OS,RS=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}},IS=function(e){let t=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(^despite|^during|^before|^through|^throughout)"),1===t.length?t:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))}(e.clauses()).chunks(),n=e.none(),r=e.none(),i=e.none();return t.forEach(((e,t)=>{0!==t||e.has("")?r.found||!e.has("")?r.found&&(i=i.concat(e)):r=e:n=e})),r.found&&!n.found&&(n=r.before("+").first()),{subj:n,verb:r,pred:i,grammar:RS(r)}},DS={api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:i,pred:a,grammar:o}=IS(t);return n.sentence={subject:r.text("normal"),verb:i.text("normal"),predicate:a.text("normal"),grammar:o},n}),[])}toPastTense(e){return this.getNth(e).map((e=>{IS(e);return function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e}(e)}))}toPresentTense(e){return this.getNth(e).map((e=>{IS(e);return function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e}(e)}))}toFutureTense(e){return this.getNth(e).map((e=>{IS(e);return function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e}(e)}))}toInfinitive(e){return this.getNth(e).map((e=>{IS(e);return function(e){return e.verbs().toInfinitive(),e}(e)}))}toNegative(e){return this.getNth(e).map((e=>(IS(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(IS(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}t.prototype.toPresent=t.prototype.toPresentTense,t.prototype.toPast=t.prototype.toPastTense,t.prototype.toFuture=t.prototype.toFutureTense;const n={sentences:function(e){let n=this.map((e=>e.fullSentence()));return n=n.getNth(e),new t(this.document,n.pointer)},questions:function(e){return function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],i=r[r.length-1];return!(!i||n[i.index[0]].length!==r.length)&&(!!t.test(i.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))}(this).getNth(e)}};Object.assign(e.prototype,n)}},kS=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t},MS="male",PS="female",LS={mr:MS,mrs:PS,miss:PS,madam:PS,king:MS,queen:PS,duke:MS,duchess:PS,baron:MS,baroness:PS,count:MS,countess:PS,prince:MS,princess:PS,sire:MS,dame:PS,lady:PS,ayatullah:MS,congressman:MS,congresswoman:PS,"first lady":PS,mx:null},FS=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return PS;if(n.has("#MaleName"))return MS;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),LS.hasOwnProperty(e))return LS[e];if(/^her /.test(e))return PS;if(/^his /.test(e))return MS}let i=t.after();if(!i.has("#Person")&&i.has("#Pronoun")){let e=i.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return MS;if(n&&!t)return PS}return null},BS=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n},US={api:function(e){(function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(kS)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=kS(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:FS(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}e.prototype.people=function(e){let n=function(e){let t=e.match("#Honorific+? #Person+"),n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t}(this);return n=n.getNth(e),new t(this.document,n.pointer)}})(e),function(e){e.prototype.places=function(t){let n=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t}(this);return n=n.getNth(t),new e(this.document,n.pointer)}}(e),function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}}(e),function(e){e.prototype.topics=BS}(e)}},GS=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)},zS=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},HS=function(e){return e.match("#Negative")},VS=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}},qS=function(e){let t=e.clone();t.contractions().expand();const n=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t}(t);return{root:n,prefix:t.match("#Prefix"),adverbs:GS(t,n),auxiliary:zS(t,n),negative:HS(t),phrasal:VS(n)}},YS={tense:"PresentTense"},jS={conditional:!0},$S={tense:"FutureTense"},WS={progressive:!0},KS={tense:"PastTense"},QS={complete:!0,progressive:!1},ZS={passive:!0},XS=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},JS={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[YS]],["^wanted to #Infinitive$",[KS]],["^will want to #Infinitive$",[$S]]],"gerund-phrase":[["^#PastTense #Gerund$",[KS]],["^#PresentTense #Gerund$",[YS]],["^#Infinitive #Gerund$",[YS]],["^will #Infinitive #Gerund$",[$S]],["^have #PastTense #Gerund$",[KS]],["^will have #PastTense #Gerund$",[KS]]],"simple-present":[["^#PresentTense$",[YS]],["^#Infinitive$",[YS]]],"simple-past":[["^#PastTense$",[KS]]],"simple-future":[["^will #Adverb? #Infinitive",[$S]]],"present-progressive":[["^(is|are|am) #Gerund$",[YS,WS]]],"past-progressive":[["^(was|were) #Gerund$",[KS,WS]]],"future-progressive":[["^will be #Gerund$",[$S,WS]]],"present-perfect":[["^(has|have) #PastTense$",[KS,QS]]],"past-perfect":[["^had #PastTense$",[KS,QS]],["^had #PastTense to #Infinitive",[KS,QS]]],"future-perfect":[["^will have #PastTense$",[$S,QS]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[KS,WS]]],"past-perfect-progressive":[["^had been #Gerund$",[KS,WS]]],"future-perfect-progressive":[["^will have been #Gerund$",[$S,WS]]],"passive-past":[["(got|were|was) #Passive",[KS,ZS]],["^(was|were) being #Passive",[KS,ZS]],["^(had|have) been #Passive",[KS,ZS]]],"passive-present":[["^(is|are|am) #Passive",[YS,ZS]],["^(is|are|am) being #Passive",[YS,ZS]],["^has been #Passive",[YS,ZS]]],"passive-future":[["will have been #Passive",[$S,ZS,jS]],["will be being? #Passive",[$S,ZS,jS]]],"present-conditional":[["would be #PastTense",[YS,jS]]],"past-conditional":[["would have been #PastTense",[KS,jS]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$S]]],"auxiliary-past":[["^did #Infinitive$",[KS,{plural:!1}]],["^used to #Infinitive$",[KS,QS]]],"auxiliary-present":[["^(does|do) #Infinitive$",[YS,QS,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[KS]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ey=[];Object.keys(JS).map((e=>{JS[e].forEach((t=>{ey.push({name:e,match:t[0],data:XS(t[1])})}))}));const ty=ey,ny=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),i=r.match("(i|he|she|we|you|they)");if(i.found)return i.nouns();let a=n.if("^(that|this|those)");return a.found||!1===n.found&&(a=t.match("^(that|this|those)"),a.found)?a:(r=n.last(),ry(r)&&(n.remove(r),r=n.last()),ry(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:iy(t,e)}},oy=e=>e,sy=(e,t)=>{let n=ay(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},ly=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ay(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},cy=function(e,t){let n=ay(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},dy=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},uy=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,dy(e)),r&&e.replace(t.root,r),e},py=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),my=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},gy=function(e){return e&&e.isView?e.text("normal"):""},_y=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,dy(e))},hy={tags:!0},fy={tags:!0},by={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,i=t.root;if(i.has("#Modal"))return e;let a=i.text({keepPunct:!1});return a=r(a,e.model,dy(i)),a=n(a,e.model).PastTense,a="been"===a?"was":a,"was"===a&&(a=((e,t)=>{let{subject:n,plural:r}=ay(e);return r||n.has("we")?"were":"was"})(e)),a&&e.replace(i,a,fy),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=by.simple(e,t),e=by.noAux(e,t))},hasHad:e=>(e.replace("has","had",fy),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,i=t.root;let a=i.text("normal");return a=r(a,e.model,dy(i)),n(a,e.model).Participle}},Ey={infinitive:by.simple,"simple-present":by.simple,"simple-past":oy,"simple-future":by.both,"present-progressive":e=>(e.replace("are","were",fy),e.replace("(is|are|am)","was",fy),e),"past-progressive":oy,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":by.hasHad,"past-perfect":oy,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=py(e)),e.remove("have"),e),"present-perfect-progressive":by.hasHad,"past-perfect-progressive":oy,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",fy),e),"passive-past":e=>(e.replace("have","had",fy),e),"passive-present":e=>(e.replace("(is|are)","was",fy),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",fy),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":oy,"auxiliary-future":e=>(e.replace("(is|are|am)","was",fy),e),"auxiliary-past":oy,"auxiliary-present":e=>(e.replace("(do|does)","did",fy),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",fy):(by.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":oy,"want-infinitive":e=>(e.replace("(want|wants)","wanted",fy),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),by.simple(e,t),py(e),e)},Sy=function(e,t){let n=ay(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},yy=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:i,auxiliary:a}=t;if(i.has("#Modal"))return e;let o=i.text({keepPunct:!1});o=r(o,e.model,dy(i));let s=n(o,e.model);if(o=s.Participle||s.PastTense,o){e=e.replace(i,o);let t=Sy(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(a)}return e},vy={infinitive:yy,"simple-present":yy,"simple-future":(e,t)=>e.replace("will",Sy(e)),"present-perfect":oy,"past-perfect":oy,"future-perfect":(e,t)=>e.replace("will have",Sy(e)),"present-perfect-progressive":oy,"past-perfect-progressive":oy,"future-perfect-progressive":oy},Ty={tags:!0},Cy=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,i=t.root;let a=i.text("normal");return a=r(a,e.model,dy(i)),!1===sy(e)&&(a=n(a,e.model).PresentTense),i.has("#Copula")&&(a=ly(e)),a&&(e=e.replace(i,a,Ty)).not("#Particle").tag("PresentTense"),e},Ny=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,i=t.root;let a=i.text("normal");return a=r(a,e.model,dy(i)),!1===sy(e)&&(a=n(a,e.model).Gerund),a&&(e=e.replace(i,a,Ty)).not("#Particle").tag("Gerund"),e},Ay={infinitive:Cy,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Cy(e,t);{let t=ay(e).subject;if(sy(e)||t.has("i"))return e;let i=r.text("normal"),a=n(i,e.model).PresentTense;i!==a&&e.replace(r,a,Ty)}return e},"simple-past":Cy,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=ly(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Cy(e,t),e=e.remove("will");return e},"present-progressive":oy,"past-progressive":(e,t)=>{let n=ly(e);return e.replace("(were|was)",n,Ty)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Cy(e,t),e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ay(e).subject;return sy(e)||n.has("i")?((e=uy(e,t)).remove("had"),e):(e.replace("had","has",Ty),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":oy,"past-perfect-progressive":e=>e.replace("had","has",Ty),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=ly(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ty),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":oy,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":oy,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ny(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=cy(e);return e.replace(t.auxiliary,n),e}return Ny(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":oy,"modal-infinitive":oy,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let i=t.root.text("normal");i=n(i,e.model,dy(r)),i&&(e=e.replace(t.root,i,Ty))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Cy(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return sy(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ty),e.remove("will"),e}},xy={tags:!0},Oy=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:i}=t;if(r.has("#Modal"))return e;let a=r.text("normal");return a=n(a,e.model,dy(r)),a&&(e=e.replace(r,a,xy)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(i),e},wy=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:i,auxiliary:a}=t;let o=i.text("normal");return o=r(o,e.model,dy(i)),o&&(o=n(o,e.model).Gerund,e.replace(i,o,xy),e.not("#Particle").tag("PresentTense")),e.remove(a),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ry={infinitive:Oy,"simple-present":Oy,"simple-past":Oy,"simple-future":oy,"present-progressive":wy,"past-progressive":wy,"future-progressive":oy,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":oy,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":oy,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":oy,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":oy,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":oy,"modal-past":oy,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oy(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)},Iy={tags:!0},Dy={tags:!0},ky=function(e,t){let n=cy(e);return e.prepend(n+" not"),e},My=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Py=e=>e.has("(is|was|am|are|will|were|be)"),Ly={"simple-present":(e,t)=>!0===Py(e)?My(e):(e=uy(e,t),e=ky(e)),"simple-past":(e,t)=>!0===Py(e)?My(e):((e=uy(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Py(e)?My(e):ky(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Dy),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>(e=ky(e)).replace("wants","want",Dy)},Fy={api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(qS)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=function(e){let t=qS(e);e=e.clone().toView();const n=ny(e,t);return{root:t.root.text(),preAdverbs:my(t.adverbs.pre),postAdverbs:my(t.adverbs.post),auxiliary:gy(t.auxiliary),negative:t.negative.found,prefix:gy(t.prefix),infinitive:_y(t.root),grammar:n}}(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>{qS(e);return ay(e).subject}))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==ay(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===ay(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=qS(e);return function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:i}=t;let a=i.terms().harden(),o=r.text("normal");if(o=n(o,e.model,dy(r)),o&&e.replace(r,o,hy).tag("Verb").firstTerm().tag("Infinitive"),a.found&&e.remove(a),t.negative.found){e.has("not")||e.prepend("not");let t=cy(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e}(e,t,ny(e,t).form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=qS(e),n=ny(e,t);return n.isInfinitive?e:function(e,t,n){return Ay.hasOwnProperty(n)?((e=Ay[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=qS(e),n=ny(e,t);return n.isInfinitive?e:function(e,t,n){return Ey.hasOwnProperty(n)?((e=Ey[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=qS(e),n=ny(e,t);return n.isInfinitive?e:function(e,t,n){return e.has("will")||e.has("going to")?e:Ry.hasOwnProperty(n)?((e=Ry[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=qS(e),n=ny(e,t);return n.isInfinitive?e:function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:i,auxiliary:a}=t;if(e.has("#Gerund"))return e;let o=i.text("normal");o=n(o,e.model,dy(i));let s=r(o,e.model).Gerund;if(s){let t=ly(e);e.replace(i,s,Iy),e.remove(a),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e}(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=qS(e),n=ny(e,t);return n.isInfinitive?e:function(e,t,n){return vy.hasOwnProperty(n)?((e=vy[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=yy(e,t)).fullSentence().compute(["tagger","chunks"]),e)}(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=qS(e),i=ny(e,r);"imperative"===i.form&&(i.form="simple-present");let a=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=dy(r.root);a=n(a,e.model,t)||a}return t(a,e.model)}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=qS(e);return function(e,t,n){if(e.has("#Negative"))return e;if(Ly.hasOwnProperty(n))return Ly[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Py(e)?My(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)}(e,t,ny(e,t).form)}))}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}t.prototype.toPast=t.prototype.toPastTense,t.prototype.toPresent=t.prototype.toPresentTense,t.prototype.toFuture=t.prototype.toFutureTense,e.prototype.verbs=function(e){let n=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t}(this);return n=n.getNth(e),new t(this.document,n.pointer)}}},By=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},Uy=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()},Gy=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?By("(she|her|hers)",e):"m"===t?By("(he|him|his)",e):e.none())},zy=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=By("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())},Hy=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=Uy(e),r=t(n),r.found?r:(n=Uy(n),r=t(n),r.found?r:e.none()))},Vy={compute:{coreference:function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Hy(e,(e=>Gy(e,"m"))):e.has("(she|her|hers)")?t=Hy(e,(e=>Gy(e,"f"))):e.has("(they|their|theirs)")&&(t=Hy(e,zy)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))}},api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let n=new t(this.document,e);return n._cache=this._cache,n}}e.prototype.pronouns=function(e){let n=this.match("#Pronoun");return n=n.getNth(e),new t(n.document,n.pointer)}}};cE.plugin(uE),cE.plugin({api:function(e){class t extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let n=this.match("#Adverb");return n=n.getNth(e),new t(n.document,n.pointer)}}}),cE.plugin(bE),cE.plugin(Vy),cE.plugin(IE),cE.plugin(BE),cE.plugin(KE),cE.plugin(NS),cE.plugin(wS),cE.plugin(DS),cE.plugin(US),cE.plugin(Fy);const qy=cE;function Yy(e){let t=function(e){const t=document.createElement("div");return t.innerHTML=e,t.textContent||t.innerText||""}(e);t=function(e){let t=e.replace(/<[^>]*>/g,"");return["CONVERSATION HISTORY","BACKGROUND KNOWLEDGE","QUESTION","QUOTE","COMMENTS","POWER_UP","UNDERSTANDING"].forEach((e=>{const n=new RegExp(e+":[^\\n]*\\n?","gi");t=t.replace(n,"")})),t=t.trim().replace(/\s+/g," "),t}(e),t=t.replace(/\s+/g," ").replace(/\n+/g,"\n").trim(),t=function(e){return qy(e).normalize().remove("#Stop").out("text")}(t);let n=function(e){return qy(e).topics().out("array")}(t);return 0===n.length&&(n=function(e){return qy(e).nouns().out("array")}(t),0===n.length&&(n=t.split(" "))),n}function jy(e="tinyMLDB",t="tinyMLDB_chats"){return new Promise(((n,r)=>{const i=indexedDB.open(e,1);i.onerror=function(e){r("Database error: "+e.target.errorCode)},i.onsuccess=function(e){n(e.target.result)},i.onupgradeneeded=function(e){e.target.result.createObjectStore(t,{keyPath:"id"})}}))}async function $y(e,t){if(void 0===t)t=await async function(e){const t=e.getElementById("message-container"),n=t.innerHTML;let r=Yy(function(e){let t="";const n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:function(e){return e.parentNode.tagName.match(/SCRIPT|STYLE/i)||""===e.nodeValue.trim()?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}},!1);let r;for(;r=n.nextNode();)t+=r.textContent+" ";return t.trim()}(t));if(r=r.length>3?[...r].sort((()=>.5-Math.random())).slice(0,3).join("-"):r.join("-"),0===r.length)return(new Date).toString();try{const e=await async function(e,t,n="tinyMLDB_chats"){const r=(await jy()).transaction([n],"readwrite").objectStore(n),i=r.count(),a=await new Promise(((e,t)=>{i.onsuccess=()=>{e(i.result+1)},i.onerror=e=>{t("Error counting rows: "+e.target.errorCode)}}));return new Promise(((n,i)=>{const o=r.put({id:a,title:e,html_content:t});o.onsuccess=()=>n({success:!0,id:a}),o.onerror=e=>i("Error saving content: "+e.target.errorCode)}))}(r,n);return e.id}catch(e){return console.error("Error saving chat:",e),null}}(e);else{const n=e.querySelector("#message-container");if(!n)return void console.error("Element '#message-container' not found.");(async function(e,t,n="tinyMLDB_chats"){if(null==e)throw new Error("ID is required for updating content.");const r=(await jy()).transaction([n],"readwrite").objectStore(n);return new Promise(((n,i)=>{const a=r.get(e);a.onsuccess=()=>{const o=a.result;if(o){o.html_content=t;const a=r.put(o);a.onsuccess=()=>{n({success:!0,id:e})},a.onerror=e=>i("Error updating content: "+e.target.errorCode)}else i("Entry not found with ID: "+e)},a.onerror=e=>i("Error retrieving entry: "+e.target.errorCode)}))})(t,n.innerHTML).then((e=>console.log(e))).catch((e=>console.error(e)))}return t}function Wy(e,t){let n;return n=ar(e,"ai"===t?"ai-message":"human-message","","message-container"),n}function Ky(e,t,n){const r=ar(e,"reference-btn-container","");return n.forEach(((t,n)=>{const i=ar(e,"reference-btn","");i.setAttribute("href",t),i.textContent=n+1,r.appendChild(i)})),r}const Qy="https://export.arxiv.org/api/query?search_query=";async function Zy(e,t){const n=e.map((async e=>{const n=await fetch(`${Qy}${e}&max_results=${t}`),r=await n.text(),i=(new DOMParser).parseFromString(r,"text/xml");return Array.from(i.querySelectorAll("entry")).map((e=>{const t=e.querySelector("title").textContent,n=e.querySelector("id").textContent,r=e.querySelector("author name").textContent,i=tv(e.querySelector("summary").textContent),a=e.querySelector("published").textContent;return{title:t,link:n,author:r,summary:i,year:new Date(a).getFullYear()}}))}));return(await Promise.all(n)).flat()}function Xy(e,t){let n="";var r;return n+="| Title |Link |\n",n+="|---------|-----|\n",n+=`| ${r=e.title,r.replace(/[\r\n]+/g,"")} | ↗Link |\n\n`,e.year&&(n+=`⭈ Year: ${e.year}\n\n`),e.citations&&"Not available"!==e.citations&&(n+=`☆ Citations: ${e.citations}\n\n`),e.similarity&&(n+=`≈ Similarity: ${(100*e.similarity).toFixed(2)}%\n\n`),n+=`::: spoiler Summary\n*${e.summary}*\n:::\n\n`,n+="


      \n\n",n}const Jy="https://api.semanticscholar.org/graph/v1/paper/search",ev="43dKLfcWbP3K1gE6e4TPe1VSLX2OWA9b3W1NAn8k";function tv(e){if(!e)return"";const t=e.match(/[^\.!\?]+[\.!\?]+/g);return t&&0!==t.length?t.slice(0,2).join(" "):""}const nv=' Tailwind CDN Example
      ';let rv,iv=!1;function av(e){if(console.log("i am progress",e),iv)return;const t=document.createElement("template");t.innerHTML=nv;const n=e.querySelector("#progress");return n?(rv=n.cloneNode(!0),n.innerHTML="",n.appendChild(t.content.cloneNode(!0))):console.error("Button menu not found"),n}async function ov(e,t){if(iv)return;const n=e.querySelector(`#${t}`);n?(function(e){if(iv)return;e.querySelectorAll("svg.hidden").forEach((e=>{e.classList.remove("hidden")}))}(n),setTimeout((()=>{n.parentNode&&n.parentNode.removeChild(n)}),500)):console.error(`Element with ID '${t}' not found.`)}function sv(e,t){iv||function(e,t,n,r,i){if(iv)return;const a=Date.now(),o=setInterval((function(){if(Date.now()-a>5e3)return void clearInterval(o);const n=t.querySelector(e);n&&(clearInterval(o),function(e){e.classList.remove("hidden")}(n))}),100)}(`#progress${t}`,e)}function lv(e,t){iv||e.forEach(((e,n)=>{setTimeout((()=>function(e,t,n){if(iv)return;const r=e.querySelector("#checklist");if(r){const e=document.createElement("div");e.className="flex items-center text-blue-400 dark:text-blue-400 bg-transparent p-1 rounded-lg border-b border-zinc-300 dark:border-zinc-700 animate-fadeInUp",e.innerHTML=`\n
      • ${t}\n \n
      \n `,r.appendChild(e)}}(t,e,n)),100*n)}))}function cv(e){const t=function(e){return qy(e).sentences().out("array").map((e=>{let t=qy(e),n=t.topics().out("array"),r=t.nouns().out("array").filter((e=>!n.includes(e)));return{sentence:e,entities:n,nouns:r}}))}(e),n=function(e){let t=[];return e.forEach((({sentence:e,entities:n,nouns:r})=>{let i=qy(e).terms().out("array").filter((e=>!n.includes(e)&&!r.includes(e))),a=n.length>0?n:r;a.forEach((n=>{let o=e.replace(n,"______"),s=n,l=a.filter((e=>e!==n)).concat(r.filter((e=>e!==n)),i);uv(l);let c=l.slice(0,3);for(;c.length<3&&i.length>0;){let e=i.pop();c.includes(e)||c.push(e)}let d={question:o,answers:[]};c.forEach((e=>{d.answers.push({text:e,correct:!1,explanation:"This is not the correct answer for the blank."})})),d.answers.push({text:s,correct:!0,explanation:"This is the correct answer based on the context."}),uv(d.answers),t.push(d)}))})),t}(t);return function(e){let t=e.filter(pv);return uv(t),{questions:t.slice(0,3).map((e=>({...e,question:dv(e.question)})))}}(n).questions}function dv(e){return(e=e.replace(/<\/?[^>]+(>|$)/g,"")).replace(/\b[A-Z]{1,2}\s*:\s*/g,"")}function uv(e){for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}}function pv(e){return dv(e.question).replace(/______/g,"").trim().split(/\s+/).length>=3}function mv(e){const t=e.querySelector("#helpModal"),n=t.classList.contains("hidden"),r=t.querySelector("#youtubeVideo-container");n?(t.classList.remove("hidden"),document.addEventListener("click",gv),r.innerHTML=''):(t.classList.add("hidden"),document.removeEventListener("click",gv),function(e){var t=e.querySelector("iframe");t&&t.src.includes("youtube.com/embed")&&t.contentWindow.postMessage(JSON.stringify({event:"command",func:"pauseVideo"}),"*")}(t),r.innerHTML="")}function gv(e){const t=document.querySelector("#helpModal"),n=document.querySelector("#helpModalContainer");!t||t.contains(e.target)||n.contains(e.target)||mv(document)}function _v(e,t){console.log("i am searching for ERRORS",e);const n=t.querySelectorAll(`.${e}`);console.log("i am searching for ERRORS",n);let r=!1;n.forEach((e=>{const t=document.createElement("div");t.className="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative",t.role="alert",t.innerHTML='\n Error: \n Check your network connection and try again.\n ',e.replaceWith(t),r=!0})),r&&function(e,t){t.querySelectorAll(`#${e}`).forEach((e=>{e.remove()}))}(e,t)}function hv(e){let t=!1;const n=document.querySelector(".quarto-color-scheme-toggle");function r(e){t?e.classList.add("dark-mode"):e.classList.remove("dark-mode")}n&&n.classList.contains("alternate")&&(t=!0),console.log("isDarkMode",t),["text-selection-menu","text-selection-menu-highlight","popover-container","modal1","modal_feedback"].forEach((t=>{const n=e.getElementById(t);if(n&&(r(n),n.querySelectorAll("*").forEach(r),"modal_feedback"===t)){const e=n.querySelector("#feedback-iframe");if(e&&e.contentDocument){const t=e.contentDocument;r(t.documentElement),t.querySelectorAll("*").forEach(r)}}}))}function fv(e,t=2){if(!e)return[];const n=e=>e.toLowerCase().replace(/ /g,"-"),r=[],i=Math.min(Math.max(t,2),6);if(!e.name)return;const a=`\n
      \n ${e.name}\n
      \n \x3c!-- Main content on the left (spanning two columns) --\x3e\n
      \n\n
      \n\n
      \n\n
      \n\n
      \n\n \x3c!-- Right column for key definitions --\x3e\n
      \n
      `;if(r.push(a),e.children&&e.children.length)for(const n of e.children){const e=fv(n,t+1);r.push(...e)}return r}function bv(e){return new Promise((t=>setTimeout(t,e)))}function Ev(e,t){const n=e.split("\n");t.innerHTML="",n.forEach((e=>{const n=document.createElement("p");n.classList.add("mb-4"),n.textContent=e,t.appendChild(n)}))}const Sv={top:20,right:120,bottom:20,left:200};let yv=800,vv=600;function Tv(e){const t=document.getElementById("tree-container");document.getElementById("tree-container1"),t.innerHTML="";const n=d3.tree().size([vv-Sv.top-Sv.bottom,yv-Sv.left-Sv.right]).nodeSize([30,40]).separation(((e,t)=>e.parent===t.parent?1:2)),r=d3.hierarchy(e,(e=>e.children));r.x0=vv/2-Sv.top,r.y0=0;let i=0;const a=d3.select("#tree-container").append("svg").attr("viewBox",`0 0 ${yv} ${vv}`).attr("height","100%").style("background-color","black").attr("preserveAspectRatio","xMidYMid meet").append("g").attr("transform",`translate(${Sv.left},${vv/2})`);d3.select("#tree-container svg").append("text").attr("x",20).attr("y",20).attr("text-anchor","start").style("font-family","Courier New, monospace").style("font-size","16px").style("fill","white").style("font-weight","bold").text("This tree shows what topics the AI will add to your Generative AI chapter");const o=d3.zoom().scaleExtent([.5,5]).on("zoom",(function(e){a.attr("transform",e.transform)})),s=e=>{const t=n(r),o=t.descendants(),l=t.links(),c=yv-Sv.left-Sv.right,d=vv-Sv.top-Sv.bottom;o.forEach((e=>{e.y=150*e.depth,e.y>c&&(e.y=c-(e.y-c)/2),e.x>d&&(e.x=d-(e.x-d)/2)}));const u=a.selectAll("g.node").data(o,(e=>e.id||(e.id=++i))),p=u.enter().append("g").attr("class","node").attr("transform",(t=>`translate(${e.y0},${e.x0})`)).on("click",(function(e,t){t.children?(t._children=t.children,t.children=null):(t.children=t._children,t._children=null),s(t)}));p.append("rect").attr("rx",15).attr("ry",15).style("fill","#f0f0f3").style("stroke","#e0e0e0").style("stroke-width","1px").style("filter","drop-shadow(8px 8px 10px rgba(0,0,0,0.1)) drop-shadow(-8px -8px 10px rgba(255,255,255,0.7))"),p.append("text").attr("dy",".35em").style("font-family","Georgia, serif").style("font-size",(e=>0===e.depth?"20px":"10px")).style("fill","royalblue").text((e=>e.data.name));const m=p.merge(u);m.transition().duration(200).attr("transform",(e=>`translate(${e.y},${e.x})`)),m.select("rect").attr("width",(function(e){return this.parentNode.querySelector("text").getBBox().width+20})).attr("height",(function(e){return this.parentNode.querySelector("text").getBBox().height+20})).attr("x",(function(e){return-(this.parentNode.querySelector("text").getBBox().width+20)/2})).attr("y",(function(e){return-(this.parentNode.querySelector("text").getBBox().height+20)/2})).style("fill",(e=>e._children?"#e0e0e0":"#f0f0f3")),m.select("text").attr("x",0).attr("y",(function(){return this.getBBox().height/4-8}));const g=u.exit().transition().duration(200).attr("transform",(t=>`translate(${e.y},${e.x})`)).remove();g.select("rect").attr("width",1e-6),g.select("text").style("fill-opacity",1e-6);const _=a.selectAll("path.link").data(l,(e=>e.target.id));function h(e,t){const n=e.x,r=e.y+(e.rectWidth||0)/2,i=t.x,a=t.y-(t.rectWidth||0)/2;return`M ${r} ${n}\n C ${(r+a)/2} ${n},\n ${(r+a)/2} ${i},\n ${a} ${i}`}_.enter().insert("path","g").attr("class","link").attr("d",(t=>{const n={x:e.x0,y:e.y0};return h(n,n)})).style("fill","none").style("stroke","royalblue").style("stroke-width","2px").merge(_).transition().duration(200).attr("d",(e=>h(e.source,e.target))),_.exit().transition().duration(200).attr("d",(t=>{const n={x:e.x,y:e.y};return h(n,n)})).remove(),o.forEach((e=>{e.x0=e.x,e.y0=e.y}))};s(r),d3.select("#tree-container").append("div").attr("style","position: absolute; bottom: 10px; right: 10px;").html('\n \n
      \n \n \n
      \n '),d3.select("#zoom-in").on("click",(function(){d3.select("svg").transition().call(o.scaleBy,1.2)})),d3.select("#zoom-out").on("click",(function(){d3.select("svg").transition().call(o.scaleBy,.8)})),function(){let e=1/0,t=-1/0;r.each((n=>{n.xt&&(t=n.x)}));const n=t-e,i=(t+e)/2,o=+a.attr("width"),s=+a.attr("height");a.attr("viewBox",`0 ${e} ${o} ${n}`),a.select("g").attr("transform",`translate(${Sv.left},${s/2-i})`)}()}var Cv=n(1113),Nv=n.n(Cv),Av=n(4729),xv=n.n(Av);const Ov="https://tinymlbackend3.azurewebsites.net/",wv=Ov+"query_agent_stream_tiny",Rv=Ov+"api/get-summary";let Iv;async function Dv(e,t){let n=wv;try{const r=await fetch(n,{method:"POST",headers:{Authorization:`Bearer ${Iv}`,"Content-Type":"application/json"},body:JSON.stringify(e)});if(console.log("queryAgentBackup",r),!r.ok)throw new Error(`HTTP error! Status: ${r.status}, response: ${r}`);if(r.body){const e=r.body.getReader(),n=new TextDecoder("utf-8");for(;;){const{done:r,value:i}=await e.read();if(r)break;let a=n.decode(i);console.log("MEME CHUNK!!!",a),t(a)}}else console.error("Response body is null.")}catch(e){console.error("Failed to query agent:",e)}}async function kv(e,t){const n={prompt:e};try{const r=await fetch("https://us-east4-socratiq-gemini.cloudfunctions.net/gemini-node-streams",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n)});if(r.ok&&r.body){const e=r.body.getReader();for(;;){const{done:n,value:r}=await e.read();if(n)break;t((new TextDecoder).decode(r))}}else console.error("Network response was not ok."),console.log("Falling back to queryAgentDirect"),await Dv({prompt:e,model:"llama3-70b-8192"},t)}catch(n){console.error("Error:",n),console.log("Falling back to queryAgentDirect"),await Dv({query:{prompt:e}},t)}}async function Mv(e){try{const t=await fetch(Rv,{method:"POST",headers:{Authorization:`Bearer ${Iv}`,"Content-Type":"application/json"},body:JSON.stringify({topic:e})}),n=await t.json();if(n.error)return`Error: ${n.error}`;console.log("i am wiki data",n),n.summary}catch(e){return`Error: ${e.message}`}}var Pv=n(4385),Lv=n.n(Pv),Fv=new URL(n(8163),n.b),Bv=new URL(n(4926),n.b);const Uv='